Ir al contenido principal

La terminal de GNU/Linux y algunos de sus comandos (I)

Cada vez que escribo un post me doy cuenta de que hay que ir explicando más cosas. En la entrada anterior hablé por encima de la terminal de GNU/Linux, en esta profundizaremos un poco más y mostraré algunos de los comandos que se pueden utilizar.

Como ya comenté en la entrada anterior la terminal o consola es el intérprete de comandos con el que se interactúa con el sistema operativo. El acceso directo para acceder a la terminal lo podemos encontrar en Ubuntu en la sección de Accesorios de los programas instalados. Donde podremos ver un icono con este aspecto:

Cuando abrimos una ventana de consola, el sistema nos muestra lo que se llama indicador. En GNU/Linux existen dos indicadores: $, cuando se trata de un usuario sin privilegios de administración (un usuario que no es root, el superusuario), y #, cuando se trata del usuario root. Por seguridad, no es aconsejable utilizar el usuario root para realizar las tareas administrativas, sino que se recomienda el uso del comando sudo, que expliqué en la anterior entrada. 


En Ubuntu, el usuario con que se realiza la instalación es el que puede realizar las tareas administrativas usando sudo. En una instalación estándar de un PC en casa, sólo tendrás configurado ese usuario.


A continuación, mostraré una serie de los comandos más comunes con algunas de sus opciones:
  • ls(del inglés list): este comando se utiliza para mostrar el contenido de un directorio (o carpeta). Si se utiliza sin argumentos ni modificadores, opciones precedidas de un signo -, lista sólo el nombre de los archivos y directorios que hay en el directorio actual (carpeta en la que nos encontramos en ese momento). Este comando dispone de gran cantidad de modificadores. Pero sólo explicaré unos pocos:
    • -l: muestra el listado en formato largo. La información que se muestra de izquierda a derecha es: permisos, número de enlaces asociados al archivo, usuario, grupo, tamaño y fecha de última modificación y nombre.
    • -h: muestra los datos del tamaño del archivo en formato legible por los humanos. Es decir, en megabytes, gigabytes...
    • -d: muestra sólo el nombre de los directorios y no su contenido.
    • -a: muestra también los archivos ocultos. En Unix y sus derivados, como el GNU/Linux, los archivos ocultos son aquellos cuyo nombre comienza por un . (punto).
    Por ejemplo:
    $ls -lha
    Nos muestra una salida como la de la imagen siguiente.

  • cd (change directory): este comando nos permite cambiar de directorio. Cuando abrimos una ventana de terminal, ésta se abre siempre en el directorio personal del usuario (home del usuario). Dentro del árbol de directorios del sistema, el directorio personal se encuentra en /home/nombre_usuario, donde nombre_usuario es el nombre del usuario con el que estamos trabajando. Si queremos cambiar de directorio, p.e. a /tmp, lo haríamos con esta orden:
  • $cd /tmp
    Por otro lado, si sólo ponemos el comando cd, estemos donde estemos dentro del sistema de archivos, al ejecutarlo nos llevaría a nuestro home directory (directorio personal).
  • mkdir (make directory): esta orden permite la creación de directorios. Si se utiliza con la opción -p, crea en una sola acción todos los directorios  necesarios. Por ejemplo:
    $mkdir documentos
    Esta instrucción crea el directorio documentos a partir del directorio actual.
    $mkdir -p /home/pepito/imagenes/jpg
    Esta otra orden crea el directorio jpg en la ruta /home/pepito/imagenes/ y todos los directorios padres necesarios. Es decir, si no existe imagenes se crea, si tampoco existe pepito, y así con todos los directorios contenidos en la instrucción.

    Una aclaración importante es que se tiene que tener permiso para crear el/los directorios en la ruta especificada. En el próximo artículo explicaré un poco de esto.
  • rmdir (remove directory): esta orden permite la eliminación de directorios vacíos. Si se utiliza con la opción -p, elimina el directorio especifica y sus ancestros. Por ejemplo:
    $rmdir jpg
    Elimina el directorio jpg, si está vacío, del directorio actual.
    $rmdir -p imagenes/jpg
    Este comando eliminaría primero el directorio jpg y si, tras la eliminación, el directorio imagenes está vacío también será eliminado.
  • rm (remove): esta orden permite eliminar ficheros o directorios. rm elimina cada uno de los ficheros especificados, por defecto, no elimina directorios. Este comando admite una serie de opciones, las más comunes son:
    • -f, --force: ignora los archivos que no existen. Nunca pregunta al usuario por la confirmación de la acción de borrado.
    • -i: utiliza el modo interactivo, es decir, pregunta al usuario antes de cada acción de borrado si quiere o no eliminar el archivo.
    • -I: pide confirmación al usuario antes de eliminar más de tres archivos, o cuando se utiliza el borrado recursivo. Es más seguro que -i ya que previene errores del usuario.
    • -r, -R, --recursive: elimina directorios y su contenido de forma recursiva.

    En el uso de rm el comando admite máscaras para la selección de archivos. El uso de máscaras permite seleccionar gran cantidad de archivos de una sola vez. Los metacaracteres (caracteres que se utilizan en la máscara) más utilizados son:
    • *: sustituye a cualquier grupo de cero o más caracteres. Por ejemplo, ma* equivale a todos los archivos que empiezan por ma; *fel* equivale a todos los archivos que contienen la cadena de caracteres fel; *lib equivale a todos los ficheros que terminan en lib; por último, * equivale a todos los archivos.
    • ?: sustituye a una sola letra dentro de la cadena que representa al nombre de archivo. Por ejemplo, alb?ri equivale a todos los archivos que empiezan por alb, que la cuarta letra sea una cualquiera y que terminen en ri; alb??op* equivale a todos los archivos que empiezan por alb, seguidos por dos letras cualquiera, que tengan a continuación la cadena op y que terminen con cualquier número de caracteres.
    A continuación mostraré un par de ejemplos en el uso del comando rm:
    $rm *.jpg
    Esta orden elimina todos los archivos de cualquier nombre y que terminen en .jpg.
    $rm -r imagenes/
    Esta orden elimina el directorio imagenes y todo su contenido, sea éste de archivos o directorios o de ambos. Es decir, elimina todo el árbol del sistema de archivos que cuelga del directorio imagenes.
    $rm -r -i *
    Esta instrucción elimina todo lo que hay a partir del directorio actual, pidiendo confirmación al usuario antes de realizar cada una de las acciones de borrado.
  • cat (concatenate): este comando permite concatenar archivos y mostrarlos por la pantalla. Es muy útil para ver el contenido de un archivo de texto. Si se utiliza junto con el símbolo >, símbolo para la redirección de la salida del comando, sirve para crear nuevos archivos a partir de los que se han concatenado. El comando dispone de varias opciones, una muestra de ellas son:
    • -A, --show-all: muestra todo el contenido del archivo, incluídos los caracteres no imprimibles como TAB (tabulador), fin de línea...
    • -b, --number-nonblank: numera todas las líneas, excepto las líneas en blanco.
    • -n: numera todas las líneas.
    Ahora veamos algunos ejemplos de la utilización de este comando:
    $cat readme.txt
     Muestra por pantalla el contenido del fichero readme.txt.
    $cat readme.txt leeme.txt > juntos.txt
    Crea el fichero juntos.txt a partir de los contenidos de los archivos readme.txt y leeme.txt.
Con esto terminamos la primera entrega de los comandos de la consola. Pero antes tengo que recordarles que si quieren ver una descripción completa de los comandos no duden en utilizar las páginas del manual: man nombre_comando.

Comentarios

Entradas populares de este blog

Añadir disco en caliente a un Ubuntu virtualizado

  En este artículo vamos a explicar cómo aumentar un volumen de discos en una máquina virtual. Pongamos por caso que tenemos un servidor que se nos ha quedado corto de espacio en disco y que no podemos parar. La solución es añadir un nuevo disco virtual a nuestra máquina y, con ese espacio añadido, extender el volumen de discos.  En principio, este es un proceso en el que no hay pérdida de datos. Sin embargo, es conveniente que exista una copia de seguridad antes de llevarlo a cabo como precaución. He de decir que yo lo he hecho en un par de ocasiones y no ha habido problemas con la máquina virtual ni con los datos. De hecho, los usuarios ni se enteraron de que se amplió el espacio en disco. Consideraciones iniciales En primer lugar, este es un proceso que sólo se puede llevar a cabo en una máquina virtual. Para añadir un disco nuevo en una máquina física hay que pararla y, por lo tanto, no se puede añadir en caliente. Cierto es que la parte de extender el volumen sí que se realiza igu

Atom ha muerto, viva Zed

El día 8 de junio de 2022, Microsoft anunció que a partir del día 31 de diciembre de este mismo año dejaría de dar soporte para el editor de código Atom .  ¿En qué nos afecta esto a nosotros? Bueno, pues si me han seguido en artículos anteriores saben que tras una comparativa de varios IDEs había decidido utilizar Atom para los ejemplos que tuviera que hacer en este blog. Sobre todo los artículos que prepararé para ilustrar el uso de Laravel . Amén de los miles de programadores que actualmente usan Atom  en sus proyectos, claro. Pero, ¿qué editor de código abierto podremos utilizar para sustituir a Atom ? En el mismo comunicado, Microsoft explicaba que el abandono del proyecto Atom  se debía a que querían volcar todos sus esfuerzos en el Visual Studio Code y, por supuesto, recomendó a los usuarios de Atom la utilización del mismo como alternativa natural. No quiero entrar en las bondades o defectos del Visual Studio Code  si quieres elegirlo como tu IDE para desarrollo predeterm

Zed: ahora un editor de código de código abierto

  Zed: ahora un editor de código de código abierto Introducción Como ya les comenté en un artículo anterior  Atom ha muerto, viva ZED , Microsoft dejó de dar soporte para el editor de código Atom en el año 2022 en beneficio del Visual Studio Code . En aquel artículo les comentaba que para mi el sucesor de Atom era Zed pues era un editor que se estaba creando por el mismo grupo de trabajo que creó el Atom . Además de que parecía que iba a seguir con la misma filosofía con la que nació  Atom . El editor Zed, una descripción de sus características Zed es un editor de código desarrollado en Rust que, como deberíamos saber, es un lenguaje de programación de sistemas que se enfoca en la seguridad, el rendimiento y la concurrencia. Pues, como decíamos, Zed acaba de dar el salto a ser de código abierto bajo la licencia GPL v3 . Este cambio no solo representa una nueva era para Zed , sino que también nos dirige a un nuevo mundo de colaboración y desarrollo en el ámbito de la programación.