Artículo

Comandos de consola básicos para el desarrollo web frontend

Muchos usuarios que comienzan en el desarrollo web o están empezando con tecnologías como Node.js y nunca habían utilizado un terminal pueden sentirse algo perdidos al tratar de utilizar estas herramientas. Incluso diseñadores que quieren usar herramientas para la automatización de tareas como Gulp o Grunt pueden encontrar dificultades por no haber usado nunca una consola de comandos.

En este artículo vamos a tratar de explicar los comandos más relevantes para poder utilizar el terminal.

Usuarios de Windows: Estos comandos son para Unix, en los que están basados Linux y OSX, pero los usuarios de Windows los pueden usar con ciertas terminales que los traen incorporados, yo para Windows utilizo Cmder.

Directorios y ficheros

Los sistemas Unix, como OSX y Linux, utilizan un sistema de ficheros que se basa en en directorios y ficheros. En Unix todo archivo que contiene datos es un fichero, el resto son directorios.

Los directorios en Unix se representan con la barra normal /. Todo lo que acabe en / es un directorio, el resto son ficheros. Así pues si tenemos algo así:

/Users/adrigm/www/prueba.txt

Tenemos los siguientes directorios o carpetas, uno dentro de otro:

  • /
  • Users/
  • adrigm/
  • www/

Y el siguiente fichero:

  • prueba.txt

Como vemos el primer directorio / no le precede ningún nombre, es el llamado directorio raíz y es el principal nodo del árbol del sistema de archivos todo el resto de directorios y ficheros están dentro de este.

Existen dos directorios especiales en los sistemas Unix que son . (un punto) y .. (dos puntos). El directorio . representa siempre al directorio actual en el que te encuentras y .. representa siempre el directorio anterior al actual.

Saber el directorio en el que te encuentras: pwd

Cuando ejecutamos el comando pwd nos muestra siempre el directorio actual en el que nos encontramos.

 pwd
/Users/adrigm/www

Moverse entre directorios: cd

Con el comando cd nos podemos desplazar entre los directorios.

cd /Users/adrigm/www/prueba/

Podemos usar los directorios especiales para movernos más rápido

> cd ./prueba
> pwd
/Users/adrigm/www/prueba
> cd ..
> pwd
/Users/adrigm/www
> cd ..
> pwd
/Users/adrigm
> cd ./www/prueba
> pwd
/Users/adrigm/www/prueba

Con esto ya deberías saber navegar por el árbol de directorios.

Listando ficheros y directorios: ls

El comando ls nos permite listar todos los ficheros y directorios que contenga un directorio concreto.

> ls
a.txt      b.txt      otro       prueba.txt

Algunos comandos aceptan modificadores, en el caso de ls podemos usar -a para mostrar los archivos ocultos

> ls -a
.          ..         a.txt      b.txt      otro       prueba.txt

Tip: En Unix todos los directorios que empiezan por . se consideran ocultos.

También podemos usar el modificador -l para que nos muestre información detallada. O incluso una combinación de ambos.

> ls -l
-rw-r--r--  1 adrigm  _www   0 30 may 05:21 a.txt
-rw-r--r--  1 adrigm  _www   0 30 may 05:21 b.txt
drwxr-xr-x  2 adrigm  _www  68 30 may 05:21 otro
-rw-r--r--  1 adrigm  _www   0 30 may 05:21 prueba.txt

> ls -al
drwxr-xr-x  6 adrigm  _www  204 30 may 05:21 .
drwxr-xr-x  9 adrigm  _www  306 30 may 04:47 ..
-rw-r--r--  1 adrigm  _www    0 30 may 05:21 a.txt
-rw-r--r--  1 adrigm  _www    0 30 may 05:21 b.txt
drwxr-xr-x  2 adrigm  _www   68 30 may 05:21 otro
-rw-r--r--  1 adrigm  _www    0 30 may 05:21 prueba.txt

Creando nuevos directorios: mkdir

El comando mkdir sirve para crear un nuevo directorio.

> mkdir prueba
> mkdir prueba
mkdir: prueba: File exists

Como vemos la segunda vez que intentamos crear el directorio nos avisa de que ya existe. Una vez creado podemos movernos dentro de el y crear otro nuevo con el mismo nombre o con otros.

> cd prueba
> mkdir prueba2 prueba3
> ls
prueba2 prueba3

La estructura que tenemos ahora mismo sería así:

- prueba/
    - prueba2/
    - prueba3/

Creando archivos: touch

Con touch podemos crear nuevos archivos vacíos.

> touch a.txt
> touch b.txt c.html d.js
> ls
a.txt   b.txt   c.html  d.js    prueba2 prueba3

Tip: No pasa nada si tratamos de acer touch de un archivo que ya existe, será ignorado.

Borrar archivos: rm

Por contrapartida el comando rm nos permite borrar archivos.

> rm c.html
> rm a.txt b.txt
> rm prueba2
rm: prueba2: is a directory
> ls
d.js prueba2 prueba3

Como vemos, nos ha permitido borrar los archivos, pero no el directorio. Para borrar un directorio debemos hacer uso del modificador -R que borra un directorio y su contenido.

> rm -R ./prueba2
> ls
d.js    prueba3

¡Cuidado! Cuando se borra un archivo con el comando rm, se borra definitivamente, no hay ninguna papelera de reciclaje.

Si un archivo se nos resiste podemos forzar su borrado con rm -f.

De aquí viene el mítico comando temido de rm -Rf / que se supone que borraría todo el disco duro. Digo se supone porque los sistemas modernos viene con protección para que no lo hagas. De todas formas recomendamos no probarlo, por si acaso.

Selección por patrones: glob

Esto no es un comando, sino un paquete de Unix para la selección de varios archivos basados en patrones. Imaginemos que tienes un directorio con muchos archivos con extensión .txt y muchos otros con extensión .html y queremos borrar todos los archivos .txt. Lo podemos hacer usando el patrón rm *.txt

> touch 1.txt 2.txt 3.txt
> ls
1.txt 2.txt 3.txt
> rm *.txt

El patrón * quiere decir cualquier texto, es decir, se leería algo asi como: Borra todos los archivos que empiecen por cualquier texto seguido de .txt.

También podríamos usarlo al final file*. Aquí estamos diciendo: Borra cualquier archivo que empiece por file seguido de cualquier otra cosa. Ojo, nada también es cualquier otra cosa, por lo que un archivo llamado file solamente también sería borrado.

Existen muchos más patrones aparte de *, pero se escapan del objetivo introductorio de este artículo. Aquí puedes aprender más sobre ellos:

Copiar y mover archivos: cp y mv

Podemos usar el comando cp para copiar varios archivos de un directorio a otro o incluso para duplicar archivos. Del mismo modo podemos usar mv para mover archivos, su funcionamiento es igual que el de cp, pero borrar el archivo origen.

Dejo una secuencia de ejemplos de uso en la consola, en la que puedes ver como funcionan.

> touch 1.txt 2.txt 3.txt
> ls
1.txt 2.txt 3.txt
> rm *.txt
> ls
> touch 1.txt 2.txt
> mkdir otro
> cp 1.txt ./otro
> ls ./otro
1.txt
> cp 2.txt 3.txt
> ls
1.txt 2.txt 3.txt otro
> mv 3.txt ./otro
> ls
1.txt 2.txt otro
> ls ./otro
1.txt 3.txt
> mv 1.txt a.txt
> ls
2.txt a.txt otro
> mv *.txt ./otro
> ls
otro
> ls ./otro
1.txt 2.txt 3.txt a.txt

Otros comandos de utilidad: cat y clear

El comando clear sirve para limpiar la ventana de terminal. Algo no muy útil, pero que puede dar cierto orden en algunos casos.

Por su parte el comando cat vuelca el contenido de un fichero en la terminal. Puede servir para visualizar rápidamente el contenido de un fichero. Su verdadero potencia está junto a los Pipes y a los patrones, para filtrar contenido de un archivo y obtener la información que nos interesa, pero está mas allá de este tutorial introductorio.

Con estos comandos básicos ya estás listo para probar gestores de paquetes como NPM, Bower, etc o gestores de tareas como Gulp y Grunt.

Comentarios