principales comandos de linux

Principales comandos de Linux

Una de las fortalezas en las que nos podemos apoyar los gestores de TI, son los principales comandos comandos de Linux, que nos permite implementar soluciones, resolver problemas tanto en gestión de ofimática, así como en gestión de infraestructura y procesamiento de datos. 

Tareas como administrar servidores con un mínimo costo de máquina, automatizar operaciones en archivos, procesos y servicios con los principales comandos de Linux, es uno de los grandes aportes que este S.O nos puede ofrecer en Sistemas, Seguridad Informática e Infraestructura.

Principales comandos de Linux para listar y ubicar archivos


Abrimos la consola de terminal de nuestra preferencia, y comenzamos:

Comando para identificar nuestra ubicación actual en el sistema de ficheros

pwd

Comandos para listar archivos y directorios de nuestra ubicación actual

ls -lsh

Lista los archivos y los ordena según su fecha de modificación, su extensión, su tamaño, respectivamente.

ls -lsht
ls -lshX
ls -lShS

Muestra solo el directorio especificado.

ls -ld directorio

Lista todos los archivos y directorios pero en varias columnas, y de mayor a menor tamaño.

ls -lhaxsS

Muestra los archivos y directorios definidos entre los corchetes

ls -lsh {archivo1,archivo4,directorio20,otra_cosa}

Tuberías y redirecciones


Las tuberías y redirecciones son técnicas para canalizar los resultados de los comandos a otros recursos. Esos recursos pueden ser un archivo u otro comando. Cuando la salida de un comando se redirecciona a un archivo, lo llamamos “redirección”. Cuando la salida se redirecciona a otro comando, lo llamamos “tubería”.

El caracter | se utiliza para canalizar la salida de un comando como entrada para otro. Básicamente, toma la salida estándar (stdout) del comando que está antes del | y la pasa como entrada estándar (stdin) al comando que está después del |.

ls -l | grep ".txt"

El > se utiliza para redirigir la salida estándar de un comando a un archivo, en lugar de mostrarla en la pantalla. Si el archivo especificado no existe, se crea; si ya existe, se sobrescribe.

ls -l > lista_archivos.txt

Comandos de Linux para crear directorios y archivos


Crear un archivo. Los archivos los podemos crear con el comando touch o con el editor de texto nano.

touch file.txt
nano file.txt

Comando para crear un directorio, mkdir

mkdir mi_directorio

Comando para crear directorios de forma recursiva. Esto es cuando necesitamos crear un directorio y un subdirectorio al tiempo

mkdir -p prueba/prueba2

El valor de los tamaños de los directorios no se puede visualizar con el comando ls. Para ese propósito, usamos el comando du.

du -sh directorio

Para generar una lista de directorios visualizando sus tamaños en orden de kilo, mega y giga bytes:

du -smh ./mi_directorio/* | sort -h

Con la opción -c, el comando du produce un gran total al final de la ejecución.

Ahora organizamos por nombre:

du -smh ./mi_directorio/* | sort -k2

También podemos visualizar el tamaño de los directorios con el comando ncdu. Lo instalamos y ejecutamos:

sudo apt install ncdu
ncdu

Encontrar diferencias entre dos directorios

diff /dir1 /dir2

Desplazarse al último directorio usado

cd -

Renombrar archivos


Puede que tengamos una lista larga de archivos con cierto texto o cadena en sus nombres, que necesitamos quitar. Por ejemplo, puede que tengamos esto:

Seguridad en wifi7@web.pdf
infosec@web.pdf
kuberntes_para_principiantes@web.pdf

En dicha lista queremos quitarle el «@web» a sus nombres sin sacrificar la extensión ni el resto de sus nombres. Entonces con el comando ‘rename‘ podemos lograrlo:

rename 's/\@web//' *.pdf

Si hay más de esos archivos en subdirectorios, restructuramos el comando rename así:

find . -name "*@web*.pdf" -exec rename 's/\@web//' {} +

Copiar archivos – fechas


Copiamos el archivo file.txt y los pegamos como file2.txt

cp file1.txt file2.txt

Copiar dos archivos dentro de un directorio

cp {archivo1, archivo2} directorio_destino/
ó
cp archivo1 archivo2 directorio_destino/

Ver la fecha actual en formato Año-Mes-Día

date +%Y-%m-%d

Podemos crear un archivo de gran tamaño para hacer pruebas. Creamos el archivo ejemplo.txt de caracteres aleatorios y de 1 GB de tamaño.

sudo dd if=/dev/urandom of=ejemplo.txt bs=1M count=1024 iflag=fullblock

Aquí algunos trucos para copiar y gestionar archivos en la línea de comandos.

Copiar archivos y directorios con comando en Linux

Visualizar el uso del almacenamiento interno


Trabajar con estos comandos puede requerir el monitoreo de nuestro almacenamiento interno (por si se llena). Los siguientes comandos nos ayudan visualizando el uso de nuestros dispositivos de almacenamiento (disco duro, usb, estado sólido).

df -h

dfc

Principales comandos de Linux para comprimir archivos y directorios


Comprimir un archivo BMP en Zip

zip -g imagen.zip imagen.bmp
ó
bzip2 imagen.bmp

Comprimir un directorio y que quede en formato tar.gz. A los tar.gz se le conocen como tarball.

tar cvfz directorio.tar.gz directorio

Descomprimir el tarball

tar xvfz directorio.tar.gz

Visualizar el contenido del tarball y de un Gzip, respectivamente

tar tvfz directorio.tar.gz
zless file.gz

Ahora comprimimos el mismo directorio, que quede en formato tarball y le incluimos la fecha en que se comprimió

tar cvfz directorio-`date +%Y-%m-%d`tar.gz directorio

Descomprimir varios tarball

cat *.tar.gz | tar xvfz - -i

Dividir archivos. Esto es útil cuando necesitamos ‘partir’ en varios trozos un archivo grande, entre varios archivos pequeños. Por ejemplo, dividimos el archivo ‘Enorme.zip’ en archivos de 100 MB.

split -b100m Enerome.zip EnormeParte-

Juntarlos nuevamente

cat EnormeParte-* > Enorme.zip

Comprimir en formato gz. Con el comando gzip podemos definir el nivel de compresión que necesitamos en nuestros comprimidos. El rango va de 1 a 9, siendo 9 el más alto nivel de compresión.

gzip -1 -k reporte2.csv
gzip -9 -k reporte2.csv

El detalle aquí es que Gzip no comprime directorios, si le pasamos como parámetro un directorio él se encarga de comprimir los archivos que contenga el directorio y sus subdirectorios. Para comprimir con nivel 9 un  directorio, acudimos a tar de la siguiente manera

GZIP=-9 tar cvfz directorio-`date +%Y-%m-%d`tar.gz directorio

Así como en Windows podemos instalar a 7zip o Winrar para manejar este asunto de forma gráfica, en Ubuntu podemos instalar el gestor de compresión PeaZip.

principales comandos de linux

Una mejora que tiene PeaZip es que usa el multithreading para el trabajo de comprimir-descomprimir.

Ejecutar un comando tras otro


Podemos separar varios comandos con punto y coma ( ; ), para que se ejecuten en secuencia, por ejemplo:

gzip -1 -k reporte2.csv ; echo Finalizado

Si lo que necesitamos es ejecutar el próximo programa sólo si la secuencia de comandos ha terminado con devolución código 0 (lo que normalmente significa que se ha ejecutado correctamente), entonces:

gzip -1 -k reporte2.csv && echo OK

Ahora por el contrario, continuamos sólo si el comando actual ha fallado:

gzip -1 -k reporte2.csv || echo FALLO

Si el directorio filomena y el archivo atilano no existen, que los cree:

test -d filomena || mkdir filomena
test -w atilano || touch atilano

Comandos para leer y escribir en archivos de texto y CSV


Validar si un archivo contiene tabulaciones (aparecen como ^I)

cat -A archivo.txt

Escribir texto en un archivo archivo llamado file.txt

echo “Una línea de texto” > file.txt

El comando echo sobreescribe el archivo cuantas veces se le ejecute.

Escribir texto en un archivo sin sobrescribir. Esto hace que echo escriba después de la última línea

echo “Una segunda línea” >> file

Adicionar texto en un archivo CSV separado por comas

echo enero,24 >> archivo.csv

Tenemos un archivo CSV llamado lista.csv con el siguiente contenido:

2010:Junio:23:Carla:Martínez:Equipo-de-básquet
2011:Abril:22:Yoel:Alonso:Clases-de-danza
2009:Febrero:21:Bernat:Molina:Equipo-de-básquet
2012:Enero:22:Noelia:Bernabeu:Equipo-de-básquet
2010:Mayo:11:Arnau:Silvestre:Clases-de-judo
2011:Febrero:23:Lucia:Pérez:Clases-de-danza
2013:Mayo:20:Gerard:Reverte:Clases-de-judo

Necesitamos visualizar solo desde la segunda hasta la cuarta columna:

cut -d ":" -f 2,4 lista.csv
Junio:Carla
Abril:Yoel
Febrero:Bernat
Enero:Noelia
Mayo:Arnau

Lo que haremos a continuación será sustituir los dos puntos “:”, por un espacio o un tabulador, para que la información sea más legible. Esto lo podemos hacer de diferentes maneras. La primera es utilizar el parámetro “--output-delimiter”, como se ve en el ejemplo:

cut -d ":" -f 4,5 --output-delimiter=$'\t' lista.csv

Mediante “\t” le decimos que sustituye el valor delimitador “:” por un una tabulación. La otra opción posible es utilizar otro comando, al que le enviamos la salida standard (stdout), en este caso TR

cut -d ":" -f 4,5 ejercicio-cut.txt | tr -s ':' ' '

Con tr indicamos que vamos a sustituir los dos puntos por un espacio, utilizando el parámetro “-s”

En ambos casos el resultado es similar:

Junio Carla
Abril Yoel
Febrero Bernat
Enero Noelia
Mayo Arnau

Además podemos utilizar un tercer comando, en este caso SORT, que nos ordenará el listado:

cut -d ":" -f 4,5 --output-delimiter=$'\t' ejercicio-cut.txt | sort
Abril Yoel
Enero Noelia
Febrero Bernat
Junio Carla
Mayo Arnau

Otro uso habitual del comando CUT es que nos muestre cierta cantidad de carácteres, utilizando el parámetro “-c”, como vemos en el ejemplo, de la frase “En UNIX y en GNU/Linux todo es un fichero”

echo "En UNIX y en GNU/Linux todo es un fichero" | cut -c 4-7
UNIX

El comando CUT tienes opciones muy interesantes para trabajar con textos desde la línea de comandos. Por ejemplo, podemos indicarle que nos muestre la segunda columna de un archivo de texto, que tiene como separador de campos el carácter tabulador ( \t ).

cut -d$'\t' -f2 prueba.txt

Visualizar el historial de comandos

history

Estadísticas de un archivo. Con el comando wc podemos obtener estadísticas de un archivo, como la cantidad de líneas, palabras y caracteres.

wc test2.txt
6 6 12 test2.txt

En el ejemplo, el archivo test2.txt contiene 6 líneas o renglones, 6 palabras y 12 caracteres. Para contar solo el número de líneas usamos el comando así: wc -l

También podemos pasarle como argumento a wc la salida de otro comando, por medio de pipe ( | ). Por ejemplo, entregandole la salida de du a wc podemos hacer un total de los directorios encontrados:

du -sh ./* | wc -l

Ejecutar el último comando. Escribiendo dos veces el caracter de admiración de cierre ( !! ), y enter, ejecutamos el último comando del historial de comandos:

!!

¿Qué sucedería si combinamos los dos últimos comandos que acabamos de ver?

du -sh ./* | wc -l && !! | wc -l

Respuesta/ Listamos los directorios de la ubicación actual, y generamos un total de los directorios listados.

Comando para leer archivos XLS


Xlsxgrep es un comando para leer archivos XLS. Esta desarrollado en Python y lo podemos instalar así:

pip install xlsxgrep

Usarlo del siguiente modo:

xlsxgrep -i "foo" foobar.xlsx //Busque cadenas que contenga "foo".
xlsxgrep -c -H "(?i)foo|bar" /folder //hace un conteo.
xlsxgrep -r 'lt-|900' //que busque textos comenzando con ambas cadenas.

Puedes ver cómo editar archivos desde la línea de comandos, aquí

Editar archivos de texto desde la línea de comandos en Linux

Atajos de la línea de comandos


Ctrl + ← / → = mueve el cursor entre palabras
Tab = autocompleta un comando o una ruta
Ctrl + A = mueve el cursor al comienzo de una línea
Ctrl + E = mueve el cursor al final de una línea
Ctrl + w = borra todo lo que está detrás del cursor por palabras
Ctrl + u = borra todo lo que está detrás del cursor
Ctrl + k = borra todo lo que está delante del cursor
Alt + u = cambia a mayúscula todo lo que esté delante del cursor
Ctrl + y = restaura la linea borrada
Ctrl + l = limpia la pantalla (igual que el comando clear)

Puedes ver cómo gestionar procesos desde la línea de comandos, aquí

Comandos para gestionar procesos en Linux


Valora este artículo

Principales comandos de Linux
5,0 rating based on 12.345 ratings
Overall rating: 5 out of 5 based on 1 reviews.
Nombres
Email
Titulo
Calificanos
Contenido

muy bueno

★★★★★
“ Muy bueno, excelente”
- Frank Urrutia
Comparte esto en
Publicado en GNU Linux.