F.A.Q. >> Comandos útiles de Linux.

pwd ls rmdir cd rm touch mkdir tail head chmod gzip gunzip bzip2 bunzip2

 

  • pwd
  • Nos muestra el directorio en el que nos encontramos.

    En un principio es un comando que probablemente no nos parezca importante, pero cuando estamos trabajando es muy común tener varios intérpretes de comandos, y algunas veces es lioso saber en qué directorio estamos en cada uno de estos.

     

  • ls
  • Probablemente es el comando más utilizado en Linux. Sirve para listar el contenido de un directorio o las propiedades de un archivo. Si lo ejecutamos sin más nos mostrará el contenido del directorio en el que nos encontramos.

    Las dos opciones más usadas de ls probablemente son -l y -a

    La opción -l nos muestra la información que nos da ls pero en formato extendido, de tal forma que podremos ver las propiedades de los ficheros listados.

    La opción -a nos muestra todos los ficheros (ficheros regulares, directorios, etc.) incluidos los que su nombre comienza por el caracter ".", es decir, los considerados como ocultos para Linux.

    Estas opciones se pueden combinar entre sí, de tal forma que podríamos ejecutar sin mayor problema:

    ls -la

    o bien

    ls -al

    pues se pueden ejecutar en cualquier orden.

    Una salida de este comando podría ser:

    -rw-r--r-- 1 alumno quimica 19960 oct 29 12:31 total

    Fijémonos que "total" es un archivo regular. Esto lo sabemos porque el primer caracter que obtenemos es un guión (-).

    Seguido de este guión tenemos tres ternas, es decir, nueve caracteres, que indican los permisos de este fichero.

    En la primera terna tenemos

    rw-

    Esto significa que el propietario del archivo puede leer (r), modificar (w) pero no ejecutar (-) el fichero. Si pudiera ejecutarse este archivo aparecería (x) en vez de (-).

    La segunda terna es:

    r--

    Que significa que los integrantes del grupo al que pertenece el archivo pueden leerlo (r), pero no modificarlo (-) ni ejecutarlo (-).

    Finalmente en la tercera terna tenemos:

    r--

    Cuyo significado es equivalente a lo que hemos escrito anteriormente, pero aplicado a los usuarios de mi sistema que no sean el propietario del archivo ni los integrantes del grupo al que pertenece el archivo. En este caso estos usuarios pueden leer el archivo (r), pero no modificarlo (-) ni ejecutarlo(-).

    Siguiendo con la descripción del fichero, tenemos que en la tercera y cuarta columna aparecen el propietario del archivo y el grupo propietario respectivamente.

    En la quinta columna tenemos el tamaño de este archivo, y en la sexta, séptima y octava la fecha de modificación (o creación) del archivo.

    En el caso en el que listáramos un directorio, en la primera posición en vez de tener el caracter (-) tendríamos (d).

     

  • rmdir
  • Elimina un directorio, pero siempre que esté vacío. Podremos teclear entonces:

    rmdir nuevo

    para eliminar el directorio nuevo.

     

  • cd
  • Cambia de directorio. Escribiendo a continuación el nombre del directorio al que queremos movernos, nos posicionará en él.

    Para cambiarnos al directorio "padre", teclearemos:

    cd ..

    Si queremos posicionarnos en el mismo directorio en el que estamos, si esto tiene algún sentido, ejecutaremos:

    cd .

    ya que . significa "directorio actual".

    También podemos ejecutar

    cd -

    para acceder al directorio que visitamos con anterioridad, es decir, si hemos ejecutado

    cd directorio1

    y a continuación

    cd directorio2

    si ejecutamos cd - pasaremos a directorio1

    Si ejecutamos cd sin ningún argumentos adicional, es decir

    cd

    nos posicionará en el directorio por defecto, es decir, en nuestro directorio "home".

     

  • rm
  • Elimina un archivo (o directorio). "Simplemente" tendremos que ejecutar este comando seguido del nombre del fichero que queremos eliminar, por ejemplo

    rm fichero

    eliminará el fichero llamado "fichero".

    Hay que tener mucho cuidado con este comando ya que no podremos recuperar la información que elimine. NO existe papelera de reciclaje con este comando.

    Las opciones de rm más habituales son

    -f Fuerza el borrado. No nos preguntará cada vez que eliminemos algo.

    -i Pregunta siempre si estamos seguros de que queremos eliminar lo que indiquemos.

    -r Borra de forma recursiva. Si queremos eliminar un directorio y su contenido, utilizaremos esta opción para que vaya eliminando, recursivamente, todo el contenido del directorio y finalmente este.

     

  • touch
  • Este comando cambia la fecha de un fichero a la actual. En el caso en el que el fichero no exista, lo crea con la fecha actual y tamaño cero.

     

  • mkdir
  • Crea un directorio, cuyo nombre damos como argumento.

    mkdir nuevo

    crea el directorio llamado nuevo.

    También podemos utilizar una sintaxis más elaborada, por ejemplo

    mkdir primero/segundo/tercero/nuevo

    de tal forma que, en el caso en el que existan los directorios primero, segundo y tercero, se crea un directorio llamado nuevo en este último.

    En el caso en el que no existieran los directorios intermedios, podemos ejecutar

    mkdir -p primero/segundo/tercero/nuevo

    de tal forma que estos serían creados.

     

  • tail
  • Muestra las últimas diez líneas de un fichero.

    Podemos especificar un número distinto de líneas para ser mostradas, por ejemplo podemos escribir

    tail -1 tesis

    para que se nos muestre la última línea del fichero llamado tesis.

    También podemos ejecutar

    tail -f mensajes.log

    de tal forma que nos iría mostrando en pantalla las últimas líneas del fichero mensajes.log según vayan siendo generadas, es decir, si tenemos un fichero (por ejemplo de logs), que va creciendo de forma constante, podemos ver las líneas que van siendo añadidas de esta forma.

     

  • head
  • Muestra las 10 primeras líneas de un fichero.

    Podemos especificar el número de líneas que queremos que muestre, por ejemplo teclearemos:

    head -1 nombre-fichero

    para que nos muestre la primera línea del fichero llamado nombre-fichero.

     

  • chmod
  • Este comando cambia los permisos de acceso de los ficheros en Linux.

    La utilización habitual se basa en notación octal, si bien primero indicaremos cómo se pueden cambiar los permisos de una forma más sencilla de entender en un principio, aunque más engorrosa de utilizar una vez se está familiarizado con el comando.

    Recordemos que los permisos de un fichero (entendiendo como fichero los ficheros regulares, directorios, dispositivos, etc.) los podemos representar gracias a las tres ternas que obtenemos al ejecutar ls -l

    La primera terna hace referencia a los permisos del usuario u

    La segunda terna hace referencia a los permisos del grupo g

    La tercera terna hace referencia a los permisos de otros o

    En este sentido podemos añadir el permiso de lectura al fichero prueba en la terna "otros", tecleando:

    chmod o+r prueba

    O por ejemplo podemos realizar un cambio completo de permisos añadiendo opciones para cada una de las ternas:

    chmod u+x,g+w,o+wx prueba

    O, finalmente, podemos añadir un permiso para todas las ternas:

    chmod a+x prueba

    donde habremos añadido el permiso de ejecución a las tres ternas del fichero prueba, ya que hemos utilizado "a" que hace referencia a "all" (todas) las ternas.

    Si quisiéramos eliminar un permiso en concreto, sustituiríamos el caracter + por el -.

    La idea es que esta forma de cambiar permisos es muy intuitiva, pero tiene sus desventajas ya que hay que escribir mucho, las posibilidades de error son importantes por fallos al escribir el comando, y además debemos conocer los permisos iniciales del fichero porque de esta forma o añadimos o eliminamos permisos, pero estamos condicionados, en principio, a los permisos existentes.

    Para evitar estos problemas lo que podemos hacer es utilizar la notación octal, para ello podemos dar los valores 4, 2 y 1 a los permisos r, w y x respectivamente.

    r --> 4

    w --> 2

    x --> 1

    De tal forma que si decimos que damos permiso 5 a la terna de usuario, lo que estamos haciendo es dar permiso de lectura (r-->4) + ejecución (x-->1), ya que cualquier otra combinación nunca nos dará 5.

    A la hora de dar permisos de esta forma necesitamos indicar las tres ternas, es decir, podremos escribir

    chmod 762 prueba

    de tal forma que hemos dado, al fichero prueba, los permisos de lectura, modificación y ejecución a la terna de usuario (4+2+1=7), permisos de lectura y modificación al grupo (4+2=6) y permiso de modificación al resto de usuarios.

    Si nos fijamos esta combinación numérica no puede dar otro resultado, necesariamente los permisos quedarán como hemos indicado, independientemente de los permisos previos que tuviera prueba.

    El usuario que puede cambiar los permisos a un fichero es el propietario del mismo. Esta norma de seguridad no se la puede saltar ningún usuario salvo root, que puede cambiar los permisos de cualquier fichero del sistema.

    Como comentario adicional, indicar que el comando chmod también puede ser indicado con una posición adicional, es decir, podremos ejecutar:

    chmod 6762 prueba

    ya que entonces la primera posición hace referencia a los bits suid (4), guid (2) y sticky bit (1), de tal forma que en nuestro ejemplo, además de los permisos indicados anteriormente (762), estaríamos indicando que prueba a partir de este momento sería un archivo con el suid y el guid activo (4+2=6), pero sin sticky bit activo.

     

  • gzip
  • Este comando nos permite comprimir cualquier archivo.

    Para utilizarlo simplemente tendremos que ejecutar

    gzip fichero

    de tal forma que obtendremos como resultado el fichero llamado

    fichero.gz

    que en teoría ocupará menos que el original.

    Si utilizamos gzip para comprimir archivos que ya de por sí están comprimidos, como por ejemplo ficheros .bz2, .Z, .jpg, .mp3, etc. el ratio de compresión que obtendremos será insignificante, incluso en ocasiones obtendremos ficheros resultantes mayores que los originales, que haría por tanto ilógico el proceso.

    En el momento en el que se está comprimiendo el archivo que deseemos, tendremos en el directorio de trabajo dos ficheros. Uno de ellos será el original, y el otro el que se está generando con el proceso de compresión.

    Será al final cuando gzip elimine el original para dejar únicamente el fichero resultante.

     

  • gunzip
  • Descomprime ficheros que previamente han sido comprimidos con gzip.

    La sintaxis es

    gunzip fichero.gz

     

  • bzip2
  • Es equivalente al comando gzip, pero con un ratio de compresión mayor.

    Habitualmente se conserva en los sistemas operativos gzip por razones de compatibilidad, ya que normalmente es este comando, bzip2, el que se suele utilizar en sistemas operativos GNU/Linux para realizar la compresión de archivos.

    Su utilización por tanto es

    bzip2 archivo

    y, como decíamos al hablar de gzip, en el momento en el que está llevando a cabo el proceso de compresión coexisten tanto el fichero original como el fichero comprimido que se está generando, permaneciendo ambos hasta el final del proceso de compresión, cuando el comando bzip2 elimina el fichero original dejando únicamente el comprimido.

    No tiene mucho sentido comprimir archivos previamente comprimidos, o que han sido diseñados para ahorrar espacio, como por ejemplo archivos .Z, .gz, .mp3, .jpg, etc.

     

  • bunzip2
  • Descomprime archivos previamente comprimidos mediante la herramienta bzip2. Su forma de uso es sencilla: