Comandos básicos en la terminal de GNU/Linux

26 julio 2017

Para cualquier usuario de Linux experimentado no es un secreto que cada vez más las diferentes distribuciones hacen más completas y funcionales sus GUI (graphical user interface o lo que es lo mismo: interfaz gráfica de usuario) la terminal siempre ha estado, y de seguro estará ahí como una herramienta omnipotente y omnipresente, para ayudarnos a realizar toda clase de tareas dentro de cualquier sistema GNU/Linux.



Muchos nuevos usuarios de cualquier distribución Linux sienten un miedo intrínseco a esta potente herramienta. Generalmente crecemos acostumbrados a la facilidad de Windows, a su “popularidad” y simplicidad y para muchas y muchos resulta bastante difícil tomar la decisión de migrar a Software Libre. En el caso de usuarios inexpertos, su primer encuentro con una terminal puede resultar intimidante.

Sin embargo, aunque el uso de la terminal no es indispensable para la mayoría de las distribuciones Linux de la actualidad, si comienzas a utilizar la misma con regularidad, no solo enfrentarás el miedo, sino que descubrirás que puedes tener conocimiento sobre una herramienta potente que te permitirá mantener tu sistema operativo y en muchos casos solucionar problemas y acceder a partes del sistema que de forma gráfica son sencillamente inaccesibles.

El objetivo de este artículo se centra en proporcionar una lista de comandos básicos de la terminal de Linux para que comiences a utilizar dicha herramienta desde las bases.

Antes de comenzar


No podemos trabajar con la terminal si no sabemos cómo abrirla, por lo tanto ese debería ser el primer paso. En los sistemas basados en Debian se encuentra generalmente en Aplicaciones > accesorios pero la forma mas rápida de abrirla es utilizando el atajo de teclado Ctrl + Alt + t

Un tip importante sería que al momento de tener tu terminal abierta puedes utilizar ciertos atajos de teclado que te ayudaran bastante a ahorrar tiempo:

Buscando comandos en el historial: Para ello simplemente debes pulsar la flecha arriba y automáticamente comenzarás a ver los comandos en el orden en el que los has ejecutado.

Copiando y pegando dentro de la terminal: Para copiar y pegar utilizas el mismo atajo que en cualquier otro sistema, pero añadiendo Shift a la combinación, de esta manera copiar sería Ctrl + Shift + c y pegar sería Ctrl + Shift + v

Completando rutas y nombres de ficheros: Cuando estás escribiendo un nombre o ruta de un archivo o directorio, puedes utilizar la tecla Tab para acelerar el proceso. Si el fichero existe, automáticamente se completará lo que estás escribiendo, y si hay varios archivos de nombres parecidos, incluso del mismo nombre pero con diferente extensión, al presionar dos veces Tab se mostrarán los nombres para que elijas cual estás intentando escribir.

Accediendo como root


Para la mayoría de los usuarios de Android, sonará común este término “root”. Para poder mover las aplicaciones de Google a la memoria sd siempre es necesario rootear el teléfono o lo que es lo mismo tener acceso como superusuario o usuario root.

Lo mismo sucede con los sistemas GNU/Linux. Para realizar ciertos procesos y/o acceder a ciertos ficheros, debemos tener acceso al usuario root. Aunque a diferencia de los sistemas Android, no necesitamos instalar aplicaciones ni nada por el estilo. La terminal de Linux nos brinda el comando sudo con el cual siempre podremos acceder a los permisos del usuario administrador del sistema tras colocar la contraseña del administrador.

Tenemos dos formas para realizar esta acción. En el primer caso podremos acceder al usuario root y mantenerlo utilizando el siguiente comando:

sudo su

Tras ingresar este comando y presionar enter, se nos pedirá la contraseña y posteriormente podremos ejecutar cualquier acción que requiera o no, acceso root.

La segunda forma es ejecutar cualquier acción que requiera superusuario anteponiendo el comando sudo, como por ejemplo:

sudo apt-get upgrade

El comando apt-get upgrade, que veremos más adelante, requiere acceso root por lo tanto al ejecutarlo anteponiendo el comando sudo, la terminal nos solicitará la contraseña y posteriormente se ejecutará el comando.

Trabajando con paquetes


El proyecto Debian nos brinda una herramienta de empaquetado de aplicaciones que nos ayuda a simplificar la instalación y desinstalación de paquetes en nuestra distribución, además de la actualización del sistema, la actualización de paquetes, actualización de versión, entre otras cosas que veremos a continuación. para esto tenemos APT (Advanced Packaging Tool).

Actualización de la lista de paquetes


El sistema de paquetes de Linux utiliza una base de datos para llevar un monitoreo de todos los paquetes instalados, no instalados, actualizables y disponibles para instalación. Con el comando apt-get podemos acceder a esta base de datos y ejecutar la acción que necesitemos, en este caso: actualizar la lista de paquetes.

Con el sufijo update en el comando apt-get actualizaremos la lista de paquetes que se encuentra en /etc/apt/sources.list El comando final sería:

apt-get update

Como ya deberías imaginar, el comando anterior requiere acceso root para su ejecución, por lo tanto antes de colocarlo debemos usar el comando sudo su y colocar nuestra contraseña o anteponer el comando sudo de la siguiente manera.

sudo apt-get update

Es una práctica bastante recomendable ejecutar este comando de manera constante para mantenerse al tanto de las posibles actualizaciones de sistema, recuerda que cualquier sistema no actualizado es vulnerable.

Instalando y desinstalando paquetes


Para instalar aplicaciones con la terminal de GNU/Linux, también utilizaremos el programa apt-get  añadiendo el comando install y el nombre del paquete y como ya en este punto debes suponer, requiere acceso root.

sudo apt-get install chromium-browser

Otra opción que tenemos para instalar paquetes es el programa aptitude que es una interfaz de APT que tiene fama de resolver mejor las dependencias y eliminar paquetes inútiles.

Es probable que no esté instalada en tu distribución y como debes suponer, la instalas utilizando apt-get

sudo apt-get install aptitude

Luego puedes usarla de la siguiente manera

sudo aptitude install chromium-browser

Ahora bien, si lo que queremos es eliminar una aplicación, podemos utilizar apt-get añadiendo el comando remove que elimina la aplicación y --purge que elimina todos los datos de la aplicación para que no quede rastro de la misma en nuestro sistema.

sudo apt-get remove --purge chromium-browser

La interfaz de APT, aptitude, también nos sirve para eliminar aplicaciones y la sintaxis es la misma. Solo debemos cambiar el apt-get por aptitude.

Añadiendo Repositorios


Los repositorios son paquetes que se encuentran en línea disponibles para ser descargados e instalados en nuestra distribución GNU/Linux. En ocasiones nos encontramos con paquetes de aplicaciones oficiales de nuestra distribución y por lo tanto no podemos instalarlos como vimos anteriormente con el navegador Chromium.

Digamos ahora que estás usando Ubuntu y quieres instalar el editor de texto Sublime Text 3 que no se encuentra en los repositorios oficiales de Ubuntu. Para este fin utilizaremos el programa PPA (Personal Package Archive). La sintaxis es ppa:nombre_del_paquete pero utilizando el comando add-apt-repository

sudo add-apt-repository ppa:webupd8team/sublime-text-3

Tras esto deberemos actualizar nuestra lista de paquetes y ya podremos instalar nuestro nuevo paquete de Sublime Text 3 utilizando apt-get

sudo apt-get update
sudo apt-get install sublime-text-installer

Actualización del sistema


Bien sea por motivos de soporte o seguridad, siempre será necesario mantener actualizado nuestra distribución de Linux y aunque muchas de ellas tienen aplicaciones que nos ayudan a realizar esta acción de manera gráfica, no esta demás conocer el comando para ejecutar actualizaciones en nuestro sistema GNU/Linux. Seguimos trabajando con apt-get solo que esta vez añadimos el sufijo upgrade

sudo apt-get upgrade

En caso de que queramos pasar a una nueva versión de nuestra distribución sólo añadiremos a APT el sufijo dist-upgrade y el comando quedaría de la siguiente forma.

sudo apt-get dist-upgrade

Eliminado ficheros inútiles de paquetes instalados


Cuando instalas un paquete utilizando APT se descargan los ficheros necesarios del servidor en /etc/apt/sources y estos a su vez son guardados en un depósito local /var/cache/apt/archives/ y es desde ahí que se instalan.

En principio esto no es problema, pero con el tiempo este depósito puede crecer y ocupar bastante espacio en nuestro disco pero afortunadamente APT nos brinda una herramienta bastante útil para limpiar este depósito.

sudo apt-get clean

Con este comando eliminamos todos los archivos en /var/cache/apt/archives/ de esta forma si quieres instalar de nuevo un mismo paquete, se descargara todo de nuevo.

sudo apt-get autoclean

Con este último comando se eliminan solo los archivos que no pueden ser descargados de nuevo.

Manejando directorios


La terminal de Linux nos brinda una serie de herramientas, algunas iguales a las de Símbolo de Sistema de Windows (para los usuarios que conocen dicha herramienta les será familiar), para manejar directorios o lo que es lo mismo: carpetas.

Mkdir


Mkdir (make directory o crear directorio) Creo que no es necesario explicar lo que hace, pero si es necesario decir que al crear un directorio, lo hace tomando en cuenta el directorio en el que te encuentras. Cuando abrimos la terminal generalmente estamos en /home/usuario/ (donde "usuario" es el nombre de tu maquina) aunque también podemos abrir la terminal en un directorio específico, pero digamos que el caso es el primero.

Puedes entonces crear un directorio dentro del directorio en el que te has posicionado o utilizar rutas absolutas.

mkdir nombre-del-directorio

con esto crearas el directorio en tu locación pero digamos que quieres crear uno nuevo dentro del directorio del servidor local que acabas de instalar y te encuentras en /home/usuario/ Para realizar dicha acción sin necesidad de moverte de directorio puedes utilizar el rutas absolutas

mkdir /var/www/html/nombre-del-directorio

El comando leerá la ruta pasada hasta que se encuentre con “nombre-de-directorio” que asumira como el directorio que hay que crear.

Cd


Cd (change directory o cambiar directorio) Evidentemente nos sirve para cambiar de directorio dentro de la terminal. la sintaxis es cd nombre-del-directorio (si está dentro del directorio en el que nos encontramos), /ruta/al/directorio/ (Si se encuentra fuera de nuestro directorio o con varios niveles de acceso) y .. (para ir un directorio arriba).

Digamos que estamos de nuevo en /home/usuario/ y queremos acceder a Descargas, luego regresar a /home/usuario/ y por último al directorio de nuestro servidor local.

Estamos en /home/usuario y nos movemos a /home/usuario/Descargas/

cd Descargas

Regresamos a /home/usuario/

cd ..

Nos movemos a /var/www/html/

cd /var/www/html


Un dato importante es que en Linux los directorios siempre están separados por slashes / y siempre se comienza con un / ya que él mismo hace referencia al directorio raíz. Algo así como c: en Windows.

Ls


Ls (list directory o listar directorio) Sirve para generar una lista del contenido del directorio. Su sintaxis es ls -opción (opcional) nombre de directorio, ruta al directorio.

Digamos que estamos en /user/home/ y queremos listar ese mismo directorio, el directorio Descargas y el directorio de nuestro servidor local

Listando /home/usuario/ desde esa posición

ls

Listando /home/usuario/Descargas desde /home/usuario/

ls Descargas

Listando /var/www/html/ desde /home/usuario/

ls /var/www/html

Ls también cuenta con una serie de opciones bastante útiles que determinan la forma en la que se listan los contenidos. Entre las más comunes tenemos -a que sirve para mostrar archivos ocultos y -l que sirve para mostrar los usuarios, permisos y accesos de los diferentes archivos. Como con todas las opciones de los programas que usamos en la terminal, podemos combinar las opciones entonces listemos nuestro directorio actual mostrando archivos ocultos y permisos de usuarios.

ls -la

Du


Con este comando podemos fácilmente generar una lista de contenido de un directorio y al finalizar nos arrojará el tamaño total del contenido del directorio en bytes. La sintaxis es du -opción nombre-de-directorio, /ruta/al/directorio/.

Du posee una serie de opciones que puedes ver utilizando el comando du --help pero una de las más útiles sería la opción -h que arroja el peso del directorio con unidades de peso más legibles, ejemplo:

Desde /home/usuario/ averiguaremos el peso de dicho directorio y supongamos que hay unos 20 Gigas

du -h

Se listará el contenido y al final te arrojará el peso como 20G

Pwd


Pwd (Print working directory o Imprime directorio de trabajo) Muestra el directorio de trabajo actual. Su sintaxis es demasiado simple: solo escribimos pwd y nos ubica en el espacio dentro de la terminal. Digamos que abrimos una terminal desde /home/usuario/ y ejecutamos pwd

pwd

Nos arrojará /home/usuario

Trabajando con archivos


La terminal de Linux también nos brinda una serie de comandos que nos ayudan a gestionar nuestros archivos de forma facil y rapida,

Touch


Con Touch creamos un archivo y su sintaxis es similar a la de mkdir. Podemos utilizar rutas relativas al directorio en el que nos encontramos o rutas absolutas para directorios externos.

Esta vez crearemos tres ficheros: uno de texto en nuestra posición actual /home/usuario/, otro, tambien de texto, en el escritorio y uno php en nuestro servidor local.

Estamos en /home/usuario/ y creamos prueba.txt alli.

touch prueba.txt

Creamos prueba.txt en /home/usuario/Escritorio

touch Escritorio/prueba.txt

Creamos info.php en /var/www/html/

touch /var/www/html/info.php

Cat


Cat (concatenar) sirve para mostrar el contenido de un fichero desde la terminal de Linux sin necesidad de un editor de texto y su sintaxis es la misma de mkdir y touch: cat fichero.extension, /ruta/al/fichero.extension

cat prueba.txt

File


File (archivo), muestra el tipo de archivo que indiquemos. Su sintaxis es file fichero.extension, /ruta/al/fichero.extension. Nos devuelve el nombre del archivo o la ruta al mismo y el tipo del mismo.

file prueba.txt

Devuelve

prueba.txt: ASCII text

Diff


Diff nos muestra diferencias entre dos ficheros y su sintaxis es diff primer-fichero.extension, /ruta/al/primer-fichero.extension segundo fichero.extension, /ruta/al/segundo-fichero.extensión

Veamos un ejemplo. Digamos que creamos dos archivos de texto: uno se llamara prueba.txt y el otro test.txt El primero contendrá en su primera línea la frase Hola Mundo y el segundo Hello World!, ahora ejecutamos el comando

diff prueba.txt test.txt

Nos devolverá algo como esto:

1c1
< Hola mundo
---
> Hello World

Borrando copiando y moviendo


Si estás comenzando con Linux y has llegado a este punto, seguro te has dado cuenta de que puedes realizar básicamente todo lo que haces a través de la interfaz gráfica, en la terminal. Lo mismo sucede con el borrado, la copia el movimiento de ficheros, así que veamos algunos comandos sobre estas acciones.

Rm


Rm (remove) es el comando que utilizaremos para borrar ficheros. su sintaxis es rm -opción (opcional) fichero.extension, /ruta/al/fichero.extension

Con este comando tenemos varias posibilidades que veremos como ejemplos. Digamos que queremos borrar el archivo prueba.txt que se encuentra en /home/usuario/ la cual es nuestra posición actual dentro de la terminal.

rm prueba.txt

Pero estando en ese mismo sitio tal vez quieras borrar un archivo index.php por allá en /var/www/html/mi-proyecto/ entonces siempre tendremos las rutas absolutas.

rm /var/www/html/mi-proyecto/index.php

En el caso de directorios, cambia un poco la cosa. Para borrar un directorio y todo su contenido debemos agregar la opción -r (de recursive). Veamos: tenemos un directorio imágenes dentro del escritorio y estamos en /home/usuario/ entonces:

rm -r Escritorio/imagenes/


En el caso de directorios vacíos, utilizaremos rmdir y la sintaxis es la misma.

rmdir directorio-a-borrar

Aplican de nuevo las rutas absolutas.

Cp


Cp (copy o copiar) sirve para copiar un archivo y su sintaxis es cp archivo.extensión /ruta/al/lugar/en/el/que/se/copiara/y/nombre-de-la-copia.extensión

En este ejemplo tendremos un archivo app.js en nuestro directorio Descargas y lo copiaremos en nuestro servidor local, donde hipotéticamente tenemos un proyecto que requiere dicho archivo como mi-app.js. Nuestra posición actual es /home/usuario/ entonces

cp Descargas/app.js /var/www/html/mi-proyecto/assets/js/mi-app.js

Listo, nuestro archivo ha sido copiado, y como es seguramente te diste cuenta: aplican rutas relativas y absolutas.

Mv


Mv sirve para mover ficheros. No hay mucho que decir, su sintaxis es similar a la de cp así que veamos el mismo ejemplo anterior.

Movemos el archivo app.js de Descargas a nuestro proyecto en el servidor local.

mv Descargas/app.js /var/www/html/mi-proyecto/assets/js/

La única diferencia aquí fue que no renombramos el fichero de una vez, aunque se puede hacer, quise dejarlo así para que veas que mv también sirve para renombrar archivos por si solo.

Tenemos prueba.txt y queremos que sea test.txt pues simple, usamos mv

mv prueba.txt test.txt

Nuestro archivo ha sido renombrado y como en todos los casos, aplican rutas relativas y absolutas.

Bonus


Además de estos comandos básicos, te compartiré unos cuantos más como bonus. Un par de comandos bastante útiles y otro para para que los tengas presente, ya que debido a sus posibilidades, gran utilidad y profundidad, los explicare mejor en otro post. Veamos de qué se trata.

Clear


Clear, nada de misterio, simplemente sirve para limpiar nuestra terminal y dejarla como si estuviera recién abierta.

clear

Man


Man es un comando bastante útil que nos devuelve la documentación de todos los comandos de la terminal su sintaxis es man nombre-del-comando

Digamos que quieres conocer a mayor profundidad el comando ls

man ls

Te devolverá el manual de dicho comando.

Chown


Chown, de este comando y el que sigue no hablaré demasiado, solo daré su función principal para prepararte para el siguiente post sobre la terminal de linux. Este comando te sirve para cambiar el dueño de un archivo y su sintaxis es chown usuario fichero.extension

chown mi-usuario prueba.text

Chmod


Chmod es, segun mi opinion, uno de los comandos más útiles que podemos encontrarnos en la terminal de Linux y sirve para cambiar los permisos de un archivo o de un directorio. Su sintaxis básica es chmod <permisos> fichero.extension, /ruta/al/fichero.extension.

Digamos que tenemos un script de shell en nuestro directorio de usuario /home/usuario/ que se llama script.sh y desamos darle permisos de ejecución para poder ejecutarlo, valga la redundancia, con un simple doble clic.

chmod +x script.sh

Y listo. ya nuestro archivo tiene permisos de ejecución.

Los permisos de usuario y dueños de ficheros son todo un tema que veremos a profundidad en posteriores publicaciones. De momento esto es todo, espero que te sirvan estos comandos básicos en la terminal de Linux y si conoces algún otro, no dudes en recordarmelo en los comentarios.

No hay comentarios:

Publicar un comentario