Vamos a ver algunos de los comandos más usados en linux (Debian es una versión basada en Linux).
Realizar el curso: https://openwebinars.net/academia/portada/shell-linux/
Uso de man: man comando
Pequeña descripción: man -f comando
Buscar una palabra en todas las páginas man: man -k palabra1
Hacer una búsqueda or de palabras: man -k palabra1 palabra2 ....
Hacer una búsqueda and de palabras: man -k palabra1 | grep palabra2 | ....
Búsqueda hacia adelante dentro de una página man: /palabra
Búsqueda hacia atrás dentro de una página man: ?palabra
Búsqueda de información de un parámetro: man comando | grep "parámetro"
Búsqueda de información de un parámetro abriendo less: man comando | less +/parámetro
Ubicación de la página más de un comando: man -w comando
Recomiendo usarlo online
sudo apt-get install gem
gem install bropages
gem install bropages
Uso de las bropages: bro comando
Instalación de Manly: pip install --user manly
Ejemplo de uso: manly dpkg -i -R
whoami
quien soy
su usuario
cambiar de usuario
su
para acceder como usuario root
exit
salir
ls
mostrar archivos en el directorio actual
ls /home
mostrar archivos en el directorio /home
ls -a
mostrar archivos en el directorio actual incluidos los archivos ocultos
ls -a .
mostrar archivos en el directorio actual incluidos los archivos ocultos
ls -a ..
mostrar archivos en el directorio padre incluidos los archivos ocultos
ls -l
mostrar archivos en el directorio actual detallado
ls -lh
mostrar archivos en el directorio actual detallado (h=human) capacida en K, M
ls -lhS
mostrar archivos en el directorio actual detallado (h=human) capacida en K, M, ordenados
orden de los parametros da igual (-lhS o -lSh, etc)
pwd
directorio en el que estamos
cd
cambiar de directorio /home/usuario
cd ~
cambiar de directorio /home/usuario
cd ..
cambiar de directorio al padre
cd /
cambiar de directorio raiz
cd /home
cambiar de directorio /home
Guarda en memoria las rutas con las que estamos trabajando
pushd /home
cambio al directorio /home y lo guarda en memoria
pushd ..
cambio al directorio padre y lo guarda en memoria
pushd /var
cambio al directorio /var y lo guarda en memoria
dirs -v
muestra las rutas guardadas
popd
cambia al último directorio almacenado
popd +2
cambia al último directorio almacenado en +2
popd -1
probar
Un poco lioso de usar.
tree es un paquete para mostrar en pantalla el árbol de directorios
sudo apt install tree
instalamos el comando tree
tree .
muestar la estructura en arbol del directorio actual
tree /home
muestar la estructura en arbol del directorio /home
cd
cambiar de directorio /home/usuario
mkdir proyectos
crea la carpeta proyectos en la ruta que estemos
ls
muestra el contenido de la carpeta actual (observa que esta proyectos)
cd proyectos
cambio al directorio proyectos
mkdir p1 p2
crea los directorios p1 y p2
mkdir {p3,p4}
crea los directorios p3 y p4
rm -rf *
borra todos los archivos y directorios en el directorio que estamos
Crear estructuras complejas. No poner espacios.
mkdir -p personal/{p1,p2}
crea los directorios p3 y p4
rm fichero
borrar un fichero
rm fichero1 fichero2
borrar varios ficheros
rm fiche*
borrar ficheros que comiencen por fiche
rm -r directorio
borrar un directorio
rm -d directorio
borrar solo los directorios vacios y archivos
rm -rf directorio
borrar el directorio forzandolo
*
comodin
mv origen destino
mover un fichero
mv viejoNombre nuevoNombre
renombrar
cp origen destino
copiar archivos
cp - r dirOrigen dirDestino
copiar directorio
apt install paqueteAInstalar
como instalar un paquete (programa)
apt install tree
instalamos el paquete tree (ya lo hicimos antes)
apt install vls
instalamos el paquete vlc
vlc
ejecutamos el programa vlc
mkdir -p {a/{b,c},d/e/f/{a,b,c}}
touch nombreArchivo
crea un archivo vacio
nano nombreArchivo
abre un editor, se edita y se guarda
nano hola.txt
Escribimos hola. Ctrl+O para guardar. Ctrl+X para salir.
Ctrl+W, escribimos el texto a buscar y pulsamos enter. Pone el cursor donde esta esa palabra.
Reemplazar texto: Ctrl+\, escribimos el texto viejo intro, escribrimos el texto nuevo intro y nos da opciones.
Ctrl+K cortar una linea de texto
Ctrl+U pegar texto
cat nombreArchivo
Ver contenido de un fichero de texto
nano -m nombreArchico
nos permite que al hacer click en una letra se nos posicione el cursor ahí
nano -B nombreArchivo
crea un archivo de backup, llamado nombreArchivo~
Toma el contenido de un archivo y lo muestra en pantalla
cat nombreArchivo
cat nombreArchivo1 nombreArchivo2
concatena archivos (El orden importa)
cat nombreArchivo1 nombreArchivo2 > resultado
concatena archivos y los guarda en resultado
>
es un tipo de direccionamiento
Es un visor de archivos de texto (para archivos grandes)
less nombreArchivo
Teclas útiles: h ayuda y q salir.
head nombreArchivo
muestra las 10 primeras líneas de un archivo
head -n x nombreArchivo
muestra las x primeras líneas de un archivo
tail nombreArchivo
muestra las 10 últimas líneas de un archivo
tail -n x nombreArchivo
muestra las x últimas líneas de un archivo
tail nombreArchivo
muestra las 10 últimas líneas de un archivo y se queda a la escucha de cambios
En otro terminal: nano nombreArchivo
lo modificamos y al darla guardar vemos que el
terminal que esta a la escucha cambia
Ctrl+C para terminal el proceso de escucha
wc nombreArchivo -w
Nos muestra: total lineas, total palabras, capacidad (bytes) y nombre archivo
wc -w nombreArchivo -w
Nos muestra: total palabras y nombre archivo
wc -l nombreArchivo -w
Nos muestra: total líneas y nombre archivo
wc -c nombreArchivo -w
Nos muestra: capacidad y nombre archivo
ls | wc -w
Nos muestra: número de archivos y directorios en el directorio
ls -a
Nos muestra: archivos, carpetar, ocultos + . y ..
ls -A | wc -w
Total excepto . y ..
ls -a | wc -w
Nos da 2 más que el comando anterior (. y ..)
*
Cualquier carácter o conjunto de ellos incluyendo la cadena vacía
?
Cualquier carácter (solo uno)
[]
Rango. Un conjunto concreto te caracteres
ls nombr?.txt
ls nombr*.txt
ls nombr??.txt
ls [1-3].log
ls [1-3].log
ls [a-z].avi | wc -l
ls [a-z]*.avi | wc -l
ls [a-z]*.avi
grep "palabra a buscar" fichero
Buscar palabras o frases en un fichero
grep "palabra a buscar" *
Buscar palabras o frases en todos los ficheros del directorio actual
grep -r "palabra a buscar"
Buscar palabras o frases en todos los directorios desde al actual de forma recursiva
devuelve nombre de archivo: texto de la línea que contiene la palabra a buscar
grep -rn "palabra a buscar"
devuelve nombre de archivo: número de la ĺinea donde esta: texto de la línea que contiene la palabra a buscar
grep -rE '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}\b'
Ejemplo buscar todos los documentos que tengan una ip
which python
sudo updatedb
Actualizar la base de datos de ficheros
locate fichero
Localizar un fichero a través de la base de datos
find -type f
Buscar solo ficheros
find -type d
Buscar solo directorios
find -name palabra
Buscar con case sensitive
find -type d -name "src"
Buscar directorios llamados src
find -type d -iname "sRc"
Buscar directorios llamados src sin tener en cuenta minusculas ni mayúsculas
find -iname openwebinars
Buscar sin case sensitive
find -size +XM
Buscar ficheros de menos de x MegaBytes: find -size -XM donde x es el numero en MegaBytes
k
para KiloBytes
M
para MegaBytes
G
para GigaBytes
find . -cmin -x
Ficheros que han sido modificados hace menos de X minutos
find . -cmin +x
Ficheros que han sido modificados hace más de X minutos
find . -maxdepth 1 -cmin +5
Buscar solo en el directorio actual.
find -size +300M | xargs ls -lh
find . -size +10M -iname *.avi
dd if=/dev/zero of=video_1M.avi bs=1M count=1
Crear un archivo avi de 1M
Entras y salidas existentes
stdin - Entrada estándar - 0
stdout - Salida estándar - 1
stderr - Salida de error estándar - 2
Redireccionamientos
comando < fichero
Toma la entrada de un fichero
comando > fichero
Envía la salida del comando al fichero sobreescribiendo este
comando 2> fichero
Envía la salida de error del comando al fichero
comando >> fichero
Añade al final del archivo
comando 2>&1
Envía la salida de error a la salida estándar
comando &> fichero
Envía la salida estándar y error al fichero
comando 2> errorfile 1>stadout
Enviar las salidas en archivos separados
La saiida de un comando se convierte en entrada de otro comando.
|
La tuberia se representa con el carácter
comando | comando | comando | ...
Uso
Ejemplo: la salida estandard de aquí | entra aquí
Ejemplo:cat filename | less
tee
sirve para leer desde la entrada estándar y escribe en la salida estándar y ficheros
Ejemplo: ls | tee fichero1 fichero2
Y si queremos agregar al final en vez de sobrescribir: -a
Ejemplo: ls | tee -a fichero1 fichero2
xargs
sirve para pasar argumentos de la salida estándar de otro comando por ejemplo
Uso: comando | xargs comando
Ejemplo: ls fichero[12] | xargs rm
Zip
Instalar zip: sudo apt install zip unzip
Comprimir ficheros: zip nombreArchivo.zip [fichero | carpeta | patrón | ficheros]
Comprimir ficheros de forma recursiva: zip -r nombreArchivo.zip [fichero | carpeta | patrón | ficheros]
Ver el contenido de un fichero zip: unzip -vl archivo.zip
Borrar un fichero dentro de un zip : zip -d fichero.zip fichero_a_borrar
Descomprimir en la carpeta actual: unzip archivo.zip
Descomprimir en otra ruta: unzip archivo.zip -d ruta
RETO COmprimir todos tus archivos *.avi
Solución: find . -iname '*avi' | xargs zip videos.zip
Crear un contenedor: tar vcf archivo.tar archivos
Crear un contenedor y comprimirlo: tar cfz archivo.tar.gz archivos
Descomprimir todo y sacar del contenedor: tar xcf archivo.tar.gz
cfz create archivho comprimido
ls -lh
Significado de las letras en los permisos: (r)ead, (w)rite, e(x)cution y - sin permisos
---:---:---:
Lo podemos dividir en tres ---
:
Para cada grupo los permisos tienen el siguiente valor:
rwx
421
Ejemplos:
r-- =
4rw- =
6r-x =
5-wx =
3rwx =
7Ejemplo una vez dado algún permisos a los usuarios, grupo y anónimos
777 = rwx:rwx:rwx
ls -lh
whoami
chmod permisos ficheros
chmod o=rw fichero
o=otros r=lectura w=escritura
sudo -u usuario chmod ugo=rwx fichero
u=usuario, g=grupo, o=otros r=lectura, w=escritura, x=ejecución
chmod ugo=rwx hola.txt
permiso a todos para todo (no recomendado)
chmod 777 hola.txt
hace lo mismo que el de arriba
chmod 000 hola.txt
quito todos los permisos
chmod 710 hola.sh
Es como crear atajos del teclado.
ls -lh
Creamos un alias para el comando anterior (modificamos .bashrc)
Nos ponemos al final del archivo y añdimos nuestros alias.
nano -m .bashrc
Sobre el final podemos descomentar alǵun alias que exista y crear otro como;
alias='ls lh'
Se cierra el terminal y se vuelve a abrir para que funcione.
Aún quedan muchos comandos que podemos usar
Libros:
LPIC-1 Linux Professional Institute Certification
Dentro de openwebinars hay otros 2 cursos interesantes:
- Curso de LPIC 1 Examen 102 - Temas 105 y 106: Shell Scripting, interfaces y entornos
- Curso de bash scripting y automatización de procesos
Realizar un listado de los comandos usados en la práctica y una breve descripción de su utilidad
Subirlo a la carpeta que os he compartido en drive.
Nombre documentaciónp14.pdf