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)
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:
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-extra2. Recargar el idioma con:
$ export LANG=es_ES.UTF-83. 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)
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 -aPara mostrar los archivos y carpetas junto con los permisos que tiene, lo que ocupa, su dueño, ...:
$ ls -lAdemá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
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)
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 …cdSí, 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)
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)
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_archivoPara borrar un directorio o carpeta vacía:
$ rm nombre_carpetaPara 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_carpetaOtras 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_directorioPero 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)
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.backupNota: 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.backupNota: 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)
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.flvO 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)
opciones y se utiliza escribiendo simplemente:
$ pwd
find
→ (find: encontrar)
La sinapsis del comando sería:
$ find [/directorio/donde/buscar...] [-expresión] [búsqueda]
$ 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 "
-
"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
$ 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
$ find / -name gdmflexiserver 2>/dev/null
grep
→ (localizar)
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.fLas 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)
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