Si vamos a administrar un servidor GNU/Linux es esencial conocer los comandos que se pueden ejecutar en la consola ya que es a través de ellos que podemos operar en el sistema para su administración.
Si bien hay sistemas como cPanel que nos permiten administrar el sistema en modo gráfico, siempre va a ser necesario conocer los comandos y manejar el sistema desde la consola si es que se quiere operar de forma avanzada.
Vamos a ver ejemplos prácticos de los 10 comandos más utilizados:
1.- tar: permite crear y extraer archivos comprimidos.
Crear un arvhivo comprimido:
$ tar cvf nombre_del_archivo.tar nombre_del_directorio/
Extraer un archivo comprimido:
$ tar xvf nombre_del_archivo.tar
Ver el contenido de un archivo comprimido:
tar tvf nombre_del_archivo.tar
2.- grep: busca expresiones regulares en archivos e imprime las coincidencias resultantes.
Buscar una cadena en un archivo diferenciando mayúsculas y minúsculas:
$ grep -i "hola" archivo_de_prueba
Buscar una cadena de manera recursiva en todos los archivos:
$ grep -r "reglas" *
3.- find: se utiliza para encontrar archivos en determinados directorios mediante diversas reglas de búsqueda.
Buscar archivos por nombre diferenciando mayúsculas y minúsculas:
# find -iname "MiPrograma.c"
Buscar todos los archivos vacíos en el directorio home:
# find ~ -empty
4.- ssh: sirve para acceder a servidores remotos a través de la red.
Ingresar a un servidor remoto:
ssh root@108.153.175.36
Mostrar la versión de ssh instalada:
OpenSSH_6.6.1p1 Ubuntu-2ubuntu2, OpenSSL 1.0.1f 6 Jan 2014
5.- sed: es una herramienta para tratamiento de texto.
Imprimir el contenido de un archivo en modo inverso:
sed -n '1!G;h;$p' instrucciones.txt
Añadir un número para todas las líneas que no estén vacías:
sed '/./=' instrucciones.txt | sed 'N; s/\n/ /'
6.- awk: es un lenguaje de programación diseñado para procesar datos basados en texto, ya sean ficheros o flujos de datos.
Remover líneas duplicadas:
awk '!($0 in array) { array[$0]; print }' temp
Mostrar solo un campo determinado de un archivo:
$ awk '{print $2,$5;}' instrucciones.txt
7.- vim: es una versión mejorada del editor de texto vi, presente en todos los sistemas UNIX.
Saltar a la línea 20 de un archivo:
$ vim +20 archivo.txt
Abrir un archivo en modo de solo lectura:
$ vim -R /etc/passwd
8.- diff: es una utilidad para la comparación de archivos que genera las diferencias entre dos archivos o los cambios realizados en un archivo determinado comparándolo con una versión anterior del mismo archivo
Compara dos archivos ignorando los espacios en blanco:
diff -w archivo1.txt archivo2.txt
9.- sort: toma los archivos que figuran en su lista de argumentos y ordena sus líneas
Ordena un archivo de forma ascendente:
sort nombres.txt
Ordena un archivo de forma descendente:
sort -r nombres.txt
10.- xargs: nos permite realizar operaciones con directorios con una gran cantidad de archivos.
Copiar todas las imágenes a un disco duro externo:
# ls *.jpg | xargs -n1 -i cp {} /disco_duro_externo/directorio
Descargar todas las URL listadas en el archivo url.txt:
# cat url.txt | xargs wget –c
Encontrar todas las imágenes .jpg en el servidor y comprimirlas:
find / -name *.jpg -type f -print | xargs tar -cvzf imagenesjpg.tar.gz