Los comandos que todo novato en GNU/Linux debería aprender

Hace unos días navegando por la web me encontré con un articulo en linux.com titulado Must-Know Linux Commands For New Users que en verdad, me pareció información bastante imprescindible, y qué mejor que esté en español; explicándolo a mi manera y añadiendo algunos otros comandos que según mi criterio son indispensables.

Algo realmente útil e interesante de la terminal, es que los comandos sin importar la distribución o escritorio en la mayoría de los casos son los mismos; al contrario de la interfaz gráfica, ya que, dependiendo del escritorio o distro los paquetes tienden a ser diferentes. Aclaro, eso no significa que uno sea mejor que otro, cada uno tiene sus ventajas.

En este articulo se hablará sobre los comandos GNU/Linux para novatos o mejor dicho, los que todo principiante debería conocer: Actualizar el sistema, administrar software, manipular archivos, etc en las tres principales distribuciones; Debian (que también incluye Ubuntu, sus sabores y derivados: Elementary, Linux Mint….), OpenSUSE y Fedora utilizando la terminal (la pueden encontrar en el lanzador, menú).

1. El comando sudo
2. Actualizar el sistema
2.1 Actualizar el sistema en Debian/Ubuntu
2.2 Actualizar el sistema en OpenSUSE
2.3 Actualizar el sistema en Fedora
3. Instalar y remover software
3.1 Instalar/Remover un paquete en Debian/Ubuntu
3.2 Instalar/Remover un paquete en OpenSUSE
3.3 Instalar/Remover un paquete en Fedora
4. Gestionar software de terceros
4.1 Agregar repositorios en Debian/Ubuntu
4.2 Agregar repositorios en OpenSUSE
4.3 Agregar repositorios en Fedora
5. Administrar de archivos
5.1 Navegar entre los directorios/crear carpetas
5.2 Borrar carpetas/archivos
5.3 Mover carpetas/archivos
5.4 Copiar carpetas/archivos
5.5 Leer y editar documentos
6. Utilizar el usuario root

El comando sudo

Si de comandos hablamos, uno que no puede faltar y que nos acompañará por el resto de nuestra misera existencia, es el comando sudo…¿por qué?

En algunas distros de GNU/Linux el usuario root viene activado por defecto, sin embargo, no en todas…esto por seguridad, hablamos de el usuario root, que tiene todos los permisos en el sistema, podría borrar todo sin que nada le detenga, mientras que el resto de los usuarios tienen permisos limitados y no pueden modificar los archivos y algunas configuraciones del sistema. El comando sudo permite al resto de los usuarios realizar acciones de super usuario (root); obtener privilegios de seguridad de otro usuario de manera segura, gracias a eso podemos dejar que cualquiera use el sistema sin temor a que convierta el pc en un pisapapeles, pues sólo alguien con la contraseña de el usuario puede utilizar el comando sudo.

Algo importante y realmente gracioso de este comando es que al utilizarlo nos pedirá la contraseña, lo cual es normal, sin embargo, la contraseña no se verá, será como escribir nada, pero en realidad sí estamos escribiendo; la razón por la que no se ve es por seguridad.

Actualizar el sistema

Según nos da a entender el autor del post en forma de metáfora, es que Linux es seguro, sin embargo, un sistema desactualizado es como un tanque blindado con las puertas abiertas ¿de qué nos sirve el blindaje? actualizar el sistema es la mejor forma de protegerse, el mejor antivirus/firewall es uno mismo. Actualizar el sistema, también actualizará las aplicaciones dentro de el.

Actualizar el sistema en Debian/Ubuntu

Algo a tener en cuenta antes de realizar una actualización, es actualizar los repositorios de Ubuntu pues es de allí de dónde se descargarán las actualizaciones, para hacerlo utilizaremos el gestor de paquetes apt-get:
sudo apt-get update
Una vez actualizados los repositorios, llego la hora de actualizar el sistema:
sudo apt-get upgrade
Sin embargo, este comando no actualiza el kernel y algunos otros paquetes, por lo que también se debe ejecutar el siguiente comando:
sudo apt-get dist-upgrade

Actualizar el sistema en OpenSUSE

Nuevamente, se deben actualizar los reposotorios de OpenSUSE antes que iniciar una actualización, para ellos utilizaremos el gestor de paquetes zypper:
sudo zypper refresh
Y actualizamos el sistema con:
sudo zypper up

Actualizar el sistema en Fedora

El gestor de paquetes dnf fue incluido en Fedora a partir de la versión 18 como remplazo para yum, aquellos con versiones anteriores a la 18 pueden utilizar yum en su lugar.
Al igual que en las distros anteriores, primero se debe actualizar los reposotorios de Fedora, utilizaremos el gestor de paquetes dnf:
sudo dnf update
Y actualizamos el sistema con:
sudo dnf upgrade

Instalar y remover software

Los paquetes son básicamente programas, software….como podrían ser Firefox, Chrome, GIMP, MegaSync, etc: instalarlos mediante la terminal es bastante sencillo y similar a actualizar el sistema. Nuevamente, haremos uso de el gestor de paquetes de cada distribución, como ya aprendimos antes el gestor de paquetes de Debian/Ubuntu es apt-get, el de OpenSUSE es zypper y el de Fedora es dnf, aclarado eso ¡manos a la obra! (o al teclado, lo que les guste más)

Instalar/Remover un paquete en Debian/Ubuntu

Los paquetes son instalados utilizando apt-get install, de la siguiente manera:
sudo apt-get install paquete por ejemplo: sudo apt-get install firefox
Por otra parte, para eliminarlos se utiliza apt-get remove
sudo apt-get remove paquete

Instalar/Remover un paquete en OpenSUSE

Para instalar un paquete, al igual que en Debian, se utiliza la opción install en el gestor de paquetes:
sudo zypper install paquete por ejemplo: sudo sudo zypper install firefox
Y como si fuera disco rayado, se hace lo mismo para eliminar, se utiliza la opción remove
sudo zypper remove paquete por ejemplo: sudo zypper remove firefox

Instalar/Remover un paquete en Fedora

Si ponen atención a los anteriores gestores de paquetes, podrán ver que como mencioné al inicio del articulo, los comandos la mayoría de las veces son iguales, en este caso, los gestores de paquetes comparten opciones similares tanto para instalar como para remover paquetes.

Para instalar:
sudo dnf install paquete por ejemplo: sudo dnf install firefox
Para remover:
sudo dnf remove paquete por ejemplo: sudo dnf remove firefox

Gestionar software de terceros

El software de terceros proviene de repositorios que son agregados, por ende, siempre que se agregue uno nuevo se debe actualizar la lista de repositorios; ya se explicó como en actualizar el sistema.

Los repositorios pueden ser muy útiles para instalar programas que no están en los repos por defecto de nuestra distribución, cabe recordar que de allí es de donde se descargan, y sin ellos, el gestor de paquetes no encontrará el paquete que quieren instalar…pues sin nada que le diga «hey, está aquí» el gestor de paquetes, no podrá hacer nada. Por ejemplo, en el caso de Fedora cuando la usé hace unos meses, el paquete Opera (el navegador) no estaba, al menos no sus nuevas versiones, por lo que para instalarlo (si mal no recuerdo) tuve que agregar el repositorio RPM Fusion.

Sin más historias que contar, y una vez que ha quedado en claro la importancia de los repositorios…

Agregar repositorios en Debian/Ubuntu

Ubuntu depende fuertemente de las PPA (archivos del paquete personal), para agregar uno (generalmente en la web encontrarán el nombre):
sudo add-apt-repository ppa:repositorio
Por ejemplo, el de libreoffice: sudo add-apt-repository ppa:libreoffice/ppa

Después de eso, el repositorio ya estará, sólo restaría actualizar los repositorios e instalar libreoffice con sudo apt-get install libreoffice.

Agregar repositorios en OpenSUSE

sudo zypper ar -f http://url_de_el_repo nombre_de_repo
Ejemplo: sudo zypper ar -f http://download.opensuse.org/repositories/LibreOffice:Factory/openSUSE_13.2/LibreOffice:Factory.repo LOF

De modo que sólo resta actualizar los repositorios e instalar libreoffice con sudo zypper install libreoffice.

Agregar repositorios en Fedora

En Fedora, es bastante similar a OpenSUSE, se tiene que ingresar el enlace hacía el repositorio:
dnf config-manager --add-repo http://www.ejemplo.com/ejemplo.repo
Seguido de de eso, actualizamos la lista de repositorios e instalamos nuestro paquete.

Administrar archivos

Tal y como suena, crear carpetas, borrar archivos, mover, copiar, ver archivos (de texto: .txt, .css, etc) y editarlos es posible mediante la terminal.
Nota: para crear carpetas, editar, borrar, copiar y mover archivos en la partición root (donde se encuentra el sistema) requerimos, naturalmente, utilizar el comando sudo, mientras que en la carpeta personal (home), no requerimos de dicho comando.

Navegar entre los directorios/crear carpetas

Desde la terminal, podemos ver la lista de carpetas utilizando:
ls
El comando anterior nos mostrará las carpetas en nuestra carpeta personal, para ver las carpetas del sistema, debemos agregar un slash «/»:
ls /
Una vez que veamos las carpetas, podemos entrar en ellas con:
cd /carpeta
Y también podemos crear nuevas carpetas con:
mkdir nombre
La carpeta será creado en nuestra carpeta personal, para crear una carpeta en la partición root, requerimos del comando sudo:
sudo mkdir /nombre
Y como podrán ver, antes de «nombre» se debe agegar un slash (/): «/nombre», el slash indica que queremos que sea creada en la partición root (/).

Borrar carpetas/archivos

Para eliminar archivos o carpetas se utiliza el comando rm, en el caso de los archivos:
rm archivo.mp3
Y para borrar carpetas (y su contenido, evidentemente) se utiliza rm -rf, por ejemplo, para eliminar la carpeta videos:
rm -rf /carpeta/videos/
En caso de que el archivo o carpeta a borrar se encuentre en la partición root, debemos usar el comando sudo:
sudo rm /carpeta/archivo.conf

Mover carpetas/archivos

Llegado a este punto, no es necesario recordar que se requiere de el comando sudo si moveremos, copiaremos o editaremos algún archivo o carpeta en la partición root. Para mover un archivo, se debe especificar el lugar donde se localiza el archivo o carpeta y después dónde lo queremos mover, por ejemplo, para mover el archivo archivo.mp3 de la carpeta ejemplo a la carpeta musica:
mv /ejemplo/archivo.mp3 /musica/archivo.mp3

Copiar carpetas/archivos

Como era de esperarse, para copiar un archivo, es básicamente lo mismo, sólo que utilizando el comando cp en lugar de mv:
cp /ejemplo/archivo.mp3 /musica/archivo.mp3

Leer y editar documentos

Aunque no es posible leer todo tipo de documentos, es posible con la mayoría, a menos que estén encriptado o tengan algún formato como .doc o .epub, sólo es funcional con los documentos .txt, .ini, .css, .js, .php, etc.

Para leer los archivos (sólo lectura):
cat /carpeta/archivo.txt
Para leer y editar dicho archivo:
nano /carpeta/archivo.txt

Utilizar el usuario root

Ya hablamos sobre el usuario root, quien tiene todos los permisos, el control y dominio mundial….utilizar el comando sudo para obtener los permisos en nuestro usuario la mayoría de las veces es la solución, sin embargo, existen momentos donde es mejor utilizar el usuario root, por ejemplo, si haremos un proceso largo, somos flojos (ahorradores) y no queremos escribir la contraseña cada cierto tiempo. Para utilizar el usuario root, sólo debemos escribir lo siguiente en la terminal:
sudo -i