Comandos Ubuntu






1. INTRODUCCIÓN


Un intérprete de comandos es un programa que toma la entrada del usuario, por ejemplo las órdenes que teclea, y la traduce a instrucciones. Podemos compararlo con el COMMAND.COM de MS-DOS.
  • En cualquier GNU/Linux tenemos la llamada terminal o consola que abre un shell o intérprete de comandos. En Ubuntu la abrimos buscando en en el Dash o tablero de Unity: "Terminal" o pulsando la combinación de teclas Ctrl+Alt+T
  • También se puede pasar al modo texto (intérprete de comandos) desde el modo gráfico pulsando:Ctrl+Alt+F1 o bien con: F2 F3 F4 F5 F6.
    Esto hace que el sistema salga del modo gráfico y acceda a alguna de las seis consolas virtuales de Linux, a las cuales también se puede acceder cuando se arranca en modo de texto.
    Para volver al modo gráfico hay que presionar Ctrl+Alt+F7 o Ctrl+Alt+F8 (Según la sesión en modo gráfico a la que deseemos regresar).


2. NOCIONES BÁSICAS


En una terminal:
  • Las aplicaciones con nombres compuestos se escriben con guión entre las palabras (ej. compizconfig-settings-manager).
  • Para los nombres de archivos y directorios que contienen espacios en blanco hay que envolverlos en comillas dobles (ej. "nombre archivo") o simples (ej. 'nombre archivo').
    Un consejo: Para no haceros un lío, nunca uséis espacios en blanco en los nombres de carpetas y archivos y sustituirlo por un guión bajo (mis_imágenes) o un guión medio (mis-imágenes)
  • Los espacios en blanco se utilizan únicamente para separar ordenes (ej. para instalar varios paquetes: sudo apt-get install avidemux k3b kde-i18n-es k3b-i18n, vemos que dichos paquetes están separados por espacios en blanco entre ellos).
  • La ruta "/home/tu_usuario" se puede cambiar por el símbolo "~" (para escribirlo, pulsar la combinación de teclas Alt Gr+Ñ), que viene a sustituirlo en la línea de ordenes, sea cual sea el nombre del usuario.


3. MANUALES DE COMANDOS


  • man → (manual: manual)

Nos ofrece el manual de cualquier comando en la propia terminal.

En esta guía he pretendido hacer solo una breve introducción de los comandos y sus argumentos más utilizados y sus posibilidades son muchas más, por ello os animo a que lo utilicéis siempre que tengáis alguna duda.

Para utilizarlo, basta con ejecutar "man" seguido del comando del que deseamos saber más o simplemente recordar:

$ man comando
 
En ocasiones la información que nos ofrece man puede llegar a ser 
excesiva. Casi todos los comandos y aplicaciones aceptan el argumento 
“--help” o "-h" para que muestre cierta ayuda más resumida. Por ejemplo 
con "apt-get":

$ apt-get --help 

 En Ubuntu, los manuales están en Inglés pero podéis ponerlos en español (no todo está traducido). Para ello:

1. Instalar los paquetes de idioma español:

$ sudo apt-get install manpages-es manpages-es-extra
2. Recargar el idioma con:
$ export LANG=es_ES.UTF-8
3. Reiniciar la terminal y por ejemplo para ver el manual del comando "ls", ejecutamos:
$ man ls


4. COMANDOS RELACIONADOS CON ARCHIVOS Y DIRECTORIOS


  • ls → (list: listar)

Nos muestra el contenido de la carpeta que le indiquemos después.

La sinapsis del comando sería:
$ ls [opciones] [ruta]
Opciones:
-a → Muestra todos los ficheros incluyendo algunos que ordinariamente están ocultos para el usuario (aquellos que comienzan por un punto). Recordemos que el fichero punto . indica el directorio actual y el doble punto .. el directorio padre, que contiene, al actual.
-l → Esta es la opción de lista larga: muestra toda la información de cada fichero incluyendo: protecciones, tamaño y fecha de creación o del último ambio introducido,...
-c → Muestra ordenando por día y hora de creación.
-t → Muestra ordenando por día y hora de modificación.
-r → Muestra el directorio y lo ordena en orden inverso.
-R → Lista también subdirectorios.
ls subdir → Muestra el contenido del subdirectorio subdir.
-l filename → Muestra toda la información sobre el fichero filename.
--color → Muestra el contenido del directorio coloreado.

Ejemplos:

Si queremos que nos muestre lo que contiene el directorio o carpeta "/etc":
$ ls /etc

Si no ponemos nada interpretará que lo que queremos ver es el contenido de la carpeta donde estamos actualmente:

$ ls

Además acepta ciertos argumentos que pueden ser interesantes:
Para mostrar todos los archivos y carpetas, incluyendo los ocultos:

$ ls -a
Para mostrar los archivos y carpetas junto con los permisos que tiene, lo que ocupa, su dueño, ...:
$ ls -l
Además se pueden solapar los argumentos:
Si quisiéramos mostrar los archivos de la misma forma que antes, pero que muestre también los ocultos:
$ ls -la

  • file

Este comando realiza una serie de comprobaciones en un fichero para tratar de clasificarlo, mostrando sus características.

La sinapsis del comando sería:
file [OPCIÓN...] [ARCHIVO...]
Tras su ejecución este comando muestra el tipo del fichero e información al respecto del mismo. Este comando se puede aplicar también a directorios.

  • cd → (change directory: cambiar directorio)

Lo utilizamos para cambiar de directorio o carpeta en la terminal.

Podemos usarlo con rutas absolutas o relativas.

En las absolutas le indicamos toda la ruta desde la raíz (/). Por ejemplo, estemos donde estemos, si escribimos en consola …
$ cd /etc/apt
… nos llevará a esa carpeta directamente. Del mismo modo si escribimos …
$ cd /
… nos mandará a la raíz del sistema de ficheros.

Las rutas relativas son relativas a algo, y ese algo es la carpeta donde estemos actualmente. Imaginad que estamos en /home y queremos ir a la carpeta "Imágenes" dentro de vuestra carpeta personal. Con escribir …
$ cd Imágenes
… nos situará allí. Como véis hemos obviado el "/home/carpeta_personal" inicial ya que si no lo introducimos toma como referencia el directorio donde estamos, que es ese.
¿Y qué sucede si escribimos tan sólo …
cd
Sí, sólo “cd”. Esto lo que hace es que te lleva a tu carpeta personal directamente, estemos donde estemos. Es algo realmente muy práctico, muy simple y que no todos conocen.

  • mkdir → (make directory: hacer directorio)

Crea una carpeta o directorio con el nombre que le indiquemos.

Nuevamente podemos usar rutas absolutas y relativas. Podemos indicarle toda la ruta que le precede al directorio que queremos crear:
$ mkdir /home/carpeta_personal/nueva_carpeta
O si estamos ya en la carpeta que lo va a contener basta con poner tan sólo el nombre de la nueva carpeta. Por ej. si ya estamos en /home/carpeta_personal:
$ mkdir nueva_carpeta


  • rm → (remove: borrar)

Borra el archivo o la carpeta que le indiquemos.

Como antes se puede indicar la ruta completa o el nombre del archivo. Esto a partir de ahora lo vamos a obviar, creo que ya ha quedado claro con los dos comandos anteriores.

Para borrar un archivo:
$ rm nombre_archivo
Para borrar un directorio o carpeta vacía:
$ rm nombre_carpeta
Para borrar un directorio o carpeta que contiene archivos y/o otras carpetas que pueden, a su vez, contener más carpetas y archivos:
rm -r nombre_carpeta
Otras opciones:
"-f", no te pide una confirmación para eliminar.
"-v", va mostrando lo que va borrando.

También existe el comando "rmdir" para borrar carpetas o directorios:
$ rmdir nombre_directorio
Pero solo borrará directorios vacíos. Para borrar un directorio no vacío, junto con todo lo que tenga debajo, emplear "rm -r".

  • cp → (copy: copiar)

Copia el archivo o directorio indicado donde le digamos.

Aquí podemos también jugar con las rutas, tanto para el fichero origen, como en el del destino. También podéis cambiar el nombre que le queréis poner a la copia.

La sinapsis del comando sería:
cp [/ruta/de/original...] [/ruta/de/copia...]
Por ejemplo, en nuestra carpeta personal vamos a crear una copia de seguridad "sources.list.backup", de nuestros repositorios "/etc/apt/sources.list". Lo voy a explicar según donde estemos colocados en la terminal, para comprender lo primordial que es saber en todo momento el directorio donde estamos colocados en la terminal:

- Si estamos colocados en nuestra carpeta personal, debemos de poner la ruta absoluta del original y la ruta relativa de la copia:
$ cp /etc/apt/sources.list sources.list.backup
- Si nos colocamos en el directorio que contiene el archivo original (cd /etc/apt), debemos de poner la ruta relativa del original y la ruta absoluta de la copia:
$ cp sources.list /home/tu_usuario/sources.list.backup
Nota: no olvides cambiar "tu_usuario" por el nombre de tu usuario o en su defecto sustituye "/home/tu_usuario" por el símbolo "~" (pulsar la combinación de teclas Alt Gr+Ñ). Sería así:
$ cp sources.list ~/sources.list.backup
- Si estuviéramos en cualquier otro directorio o simplemente para no tener problemas, escribimos las dos rutas absolutas:
$ cp /etc/apt/sources.list /home/tu_usuario/sources.list.backup
Nota: no olvides cambiar "tu_usuario" por el nombre de tu usuario o en su defecto sustituye "/home/tu_usuario" por el símbolo "~" (pulsar la combinación de teclas Alt Gr+Ñ). Sería así:
$ cp /etc/apt/sources.list ~/sources.list.backup


  • mv → (move: mover)

Es igual que el anterior, sólo que en lugar de hacer una copia, mueve directamente el archivo con el nombre que le indiquemos, pudiendo ser otro distinto al original:

La sinapsis del comando sería idéntica a copiar:
$ mv [/ruta/de/original...] [/ruta/de/destino...]
Ejemplo para mover un "archivo.flv" del directorio "/tmp" (temporales) a nuestra carpeta personal y de paso cambiarle el nombre a "mi_archivo.flv". Lo pongo con las dos rutas absolutas para no repetir todo lo anterior.
$ mv /etc/archivo.flv /home/tu_carpeta/mi_archivo.flv
O en su defecto sustituye "/home/tu_usuario" por el símbolo "~" (Alt Gr+Ñ)

Otro uso muy práctico que se le puede dar es para renombrar un archivo. Basta con indicar el nuevo nombre en el segundo argumento con la misma ruta del primero. En este ejemplo suponemos que ya estamos en la carpeta que lo contiene:
$ mv archivo.flv mi_archivo.flv
 
  • pwd → (print working directory)

Visualiza o imprime la ruta del directorio en el que nos encontramos en este momento. Este comando es uno de los pocos que no tiene
opciones y se utiliza escribiendo simplemente:
$ pwd
  • find → (find: encontrar)

Busca archivos o carpetas en la ruta que le indiques:

La sinapsis del comando sería:
$ find [/directorio/donde/buscar...] [-expresión] [búsqueda]
Donde "expresión" es el tipo de búsqueda y siempre se le antepone el signo "-"

La expresión "-name" sería para realizar una búsqueda por nombre. Por ejemplo, para buscar en todo el sistema de archivos o raíz "/" las carpetas y archivos que se llamen "pepino". Sería:

$ find / -name pepino
Si tuviéramos la seguridad de que se encuentra en /var por ejemplo, se lo indicaríamos:
$ find /var -name pepino
Si no estamos muy seguros del nombre podemos indicárselo con comodines. Supongamos que el nombre de lo que buscamos contiene “pepi”, en la misma carpeta de antes:

$ find /var -name *pepi*
Otra expresión sería "-size" para realizar la búsqueda por tamaño. Por ejemplo podemos decirle que encuentre los archivos/carpetas de más de 1500 KB:

$ find / -size +1500
Se pueden conbinar varios atributos para afinar la búsqueda. Por ejemplo, buscar los archivos/carpetas que contienen el nombre “pepi” y tienen menos de 1000 KB:

$ find / -name *pepi* -size -1000La opción "2>/dev/null" es muy interesante para que no muestre los errores de "Permiso denegado".
Por ejemplo para buscar en la raíz "/" el archivo "gdmflexiserver":
$ find / -name gdmflexiserver 2>/dev/null
  • grep → (localizar)

El comando grep localiza una palabra, clave o frase en un conjunto de directorios, indicando en cuáles de ellos la ha encontrado. Este comando rastrea fichero por fichero, por turno, imprimiendo aquellas líneas que contienen el conjunto de caracteres buscado. Si el conjunto de caracteres a buscar está compuesto por dos o más palabras separadas por un espacio, se colocará el conjunto de caracteres entre apóstrofes ('). S

La sinapsis del comando sería:
$ grep [OPCIÓN] 'conjuntocaracteres' [ARCHIVOS...]
siendo 'conjuntocaracteres' la secuencia de caracteres a buscar, y file1, file2, y file3 los ficheros donde se debe buscar. Veamos Ejemplo para buscar TRIANGULARIZACION MATRIZ entre las líneas de los ficheros matrix.f y scaling.f.:
grep 'TRIANGULARIZACION MATRIZ' matrix.f scaling.f
Las opciones principales del comando son:
-c → lo único que se hace es escribir el número de las líneas que satisfacen la condición.
-i → no se distinguen mayúsculas y minúsculas.
-l → se escriben los nombres de los ficheros que contienen líneas buscadas.
-n → cada línea es precedida por su número en el fichero.
-s → no se vuelcan los mensajes que indican que un fichero no se puede abrir.
-v → se muestran sólo las líneas que no satisfacen el criterio de selección.

A continuación se muestra una serie de ejemplos.
$ grep ‘ˆd’ text → líneas que comienzan por d.
$ grep ‘ˆ[ˆd]’ text → líneas que no comienzan por d.
$ grep -v ‘ˆC’ file1 > file2 → quita las líneas de file1 que comienzan por C y lo copia en file2.
 
  • cat → (Visualización sin formato de un fichero)

Este comando permite visualizar el contenido de uno o más ficheros de forma no formateada. También permite copiar uno o más ficheros
como apéndice de otro ya existente. Algunas formas de utilizar este comando son las siguientes:

Sacar por pantalla el contenido del fichero filename:
$ cat filename
Sacar por pantalla, secuencialmente y según el orden especificado, el contenido de los ficheros indicados (file1 y file2):
$ cat file1 file2

Aceptar lo que se introduce por el teclado y lo almacena en file1 (se crea file1):
$ cat >file1


 

No hay comentarios:

Publicar un comentario