Tabla resumen de los 50 mejores Comandos Linux
env variable de entorno guztiak listatzeko
| ls | Lista directorios |
| cd | Cambia el directorio actual de trabajo |
| cp | Copia contenido desde un origen a un destino |
| mkdir | Crea un directorio |
| rm | Borra ficheros o directorios |
| mv | Mueve elementos o les cambia el nombre |
| touch | Crea un directorio vacío (o cambia la fecha) |
| man | Consulta la ayuda más común, las páginas man |
| info | Consulta otra ayuda, más parecido a una web, con texto y enlaces |
| whatis | Muestra la descripción corta de un comando |
| clear | borra la pantalla |
| history | Muestra las últimas instrucciones ejecutadas |
| pwd | Muestra el directorio actual de trabajo |
| find | Busca un elemento del sistema de ficheros en función a nos criterios |
| locate | Encontrar un fichero o directorio |
| whereis | indica dónde está un programa |
| chmod | cambia los permisos de un fichero o directorio |
| chown | Cambia la propiedad de un fichero o directorio |
| wget | Descargar el contenido de una URL en la red |
| cat | Ver el contenido de un fichero de texto |
| grep | muestra las lineas de un texto que cumpla con un patrón |
| tail | muestra las últimas lineas de un texto |
| head | muestra la primeras lineas de un texto |
| sort | ordena texto |
| more | Para la salida de texto cuando se llena la pantalla |
| less | Igual que more, pero más pontente |
| dpkg | administra paquetes en Debian y derivadas |
| rpm | Administra paquetes en Red Hat y derivadas |
| free | muestra información sobre la memoria (RAM y SWAP) |
| df | Indica el tamaño usado y libre de los discos |
| du | Calcula el tamaño ocupado por un fichero o directorio |
| lsblk | Lista información sobre los dispositivos de bloques |
| fdisk | Administra particiones de disco |
| top | Información de los procesos en ejecucuión |
| ps | listado de procesos en ejecución |
| kill | Enviar señales a un proceso (terminar, matar, pausar, etc.) |
| mount | Montar un sistema de ficheros |
| umount | Desmontar un sistema de ficheros |
| uname | Información del sistema: nombre, versión kernel, etc.. |
| uptime | tiempo encendido y carga del sistema |
| poweroff | apaga el sistema |
| reboot | rinicia |
| id | muestra información de un usuario |
| ping | Indica si un ordenador está accesible en la red |
| nano | editor de texto fácil de usar |
| tar | comprime y descomprime ficheros y directorios |
| ssh | Permite ejecutar instrucciones en otro ordenador |
| who | muestra usuarios conectados al sistema |
| passwd | cambia la contraseña de acceso |
| sudo | Ejecuta una instrucción con más privilegios |
| su | Permite identificarte como otro usuario |
sudo passwd root (kontraseña aldatzeko)
mv ~/.config/nvim{,.bak} #bertan.bak bezela gordetzeko
https://itsfoss.com/online-linux-terminals/ (terminalak online probatzeko)
ctrl a : prompt hasiera
ctrl e: prompt bukaera
ctrl k: bukaerarte dagoena borratzen du
ctrl w: aurreko hitza borratzen du
ctrl u: aurreko dana borratzen du
ctrl z: egiten ari zarena ( vim - ekin artxibo bat aldatzen adibidez) segundo planora eramaten du eta terminalera juten zea. gero fg komandoakin berriro artxiboa aldatzera pasa zaitezke
!cd : historikotik zure azkeneko komandoa hartuko du cd jartzen duena
!:1 : azkeneko argumentoa
^fuzzy^fzf : reemplaza fuzzy por fzf en el ultimo comando
cd - : cambia al directorio previo que estabas
mkdir -p mydir/{dir1,dir2,dir3} : direktorio berria sortzen du eta barruan beste 3 direktorio.
1. Repetir comandos con !
- ’!!’ -> Repite el último comando del historial.
- ‘!n’ -> Repite el enésimo comando del historial.
- ’!-n’ -> Repite el enésimo comando desde el final.
2. Repetir comandos que coincidan con una cadena - ‘!string’ -> Repite el último comando que comience con ‘string’.
- ’!?string’ -> Repite el último comando que contenga ‘string’.
3. Sustituir texto en comandos anteriores - ‘^old^new’ -> Sustituye la primera aparición de ‘old’ por ‘new’ en el comando anterior.
-ki ’!!:s/old/new/’ -> Sustituye ‘old’ por ‘new’ en el último comando. - ‘!string:s/old/new/’ -> Sustituye ‘old’ por ‘new’ en un comando que contiene ‘string’.
4. Repetir y manipular argumentos de comandos anteriores - ’!:n’ -> Repite el enésimo argumento del comando anterior.
- ’!!:’ -> Repite el último argumento del comando anterior.
- ’!:*’ -> Repite todos los argumentos del comando anterior.
5. Impresión y visualización de comandos - ’!:p’ -> Imprime el comando sin ejecutarlo.
- ‘CTRL+R’ -> Activa la búsqueda interactiva en el historial. find jarrita danak topatzen ditu eta gero CTRL+R berriro emanez hurrengora juten da.
- ‘history’ -> Lista numerada de los comandos ejecutados.
6. Combinar comandos con pipes - Ejemplo: ‘ls | grep ‘.txt” seguido de ’!! | sort’.
7. Personalización del historial - ‘HISTSIZE’ -> Número de comandos almacenados en memoria.
- ‘HISTFILESIZE’ -> Número de comandos almacenados en el archivo.
- ‘HISTIGNORE’ -> Ignorar comandos específicos.
- ‘HISTCONTROL’ -> Control del historial con opciones como ‘ignorespace’ o ‘ignoredups’.
8. Otras funcionalidades avanzadas - ‘history -d n’ -> Borra el enésimo comando del historial.
- ‘history -c’ -> Limpia todo el historial
ln -s target\_file link\_name The -s option is important here. It determines that the link is soft link. If you don’t use it, it will create a hard link. I’ll explain the difference between soft links and hard links in a different article. (lehenengo ruta linkatzea nahi dezuna eta gero artxibo baten izena)
df -h uso en disco
ncdu analisis interactivo espacio en disco (barruan zaudela ? ematen badiogu aukerak ikusten dira. b emanez gero terminalera juten zea aukeratutako direktoriora)
duf informazio bisuala diskoaren erabilpena (duf . Zauden partizioa bakarrik erakusten du)
`para comparar archivos de texto y ver en que linea son y cuales son las diferencis. tambien se puede usar primerocmp` y simplemente te dice si son iguales (no marca nada) o hay diferencias de bytes
Hobeto fd eta rg (ripgrep) erabiltzen badegu.
https://atareao.es/podcast/deja-de-buscar-en-linux-como-siempre-hazlo-asi/
Cinco usos básicos
Encontrar archivos por el nombre
El ejemplo clásico es buscar cualquier archivo que tenga una palabra clave, por ejemplo linux.
- Con
find:find -name "*linux*" - Con
fd:fd linux
Tienes que tener en cuenta que fd es Smart Case, esto quiere decir que si el patrón que pones a buscar es en minúsculas el lo realizará de forma Case Insensitive mientras si lo utilizas con mayúsculas entonces si que es Case Sensitive.
Por esta razón no tendrás los mismos resultados si utilizas fd linux que si utilizas fd Linux o incluso fd LINUX
Si quieres forzar cualquiera de los otros comportamientos puedes utilizar -s para Case Sensitive y -i para Case Insenstive.
En el 90% de los casos, al escribir rápido, solo tecleamos en minúsculas. *Smart Case garantiza que encuentres el archivo aunque no recuerdes si estaba en MiArchivo.txt o miarchivo.txt. Pero, si deliberadamente utilizamos una mayúscula, fd entiende que estás siendo preciso sobre la capitalización del nombre del archivo, y te da resultados más selectivos, como cuando buscas archivos de código con convenciones de nomenclatura específicas, por ejemplo, una clase como MiClase.java.
Buscar tipos de archivos
Si queremos buscar un archivo de tipo markdown y que contenga la palabra linux el comando es,
- Con
find:find -type f -name "*linux*.md - Con
fd:fd -s -t f -e md linux
Buscar directorios
Si en lugar de archivos lo que queremos es buscar directorios, el comando es,
- Con
find:find -type d -iname "*linux* - Con
fd:fd -t d linux
Buscar por un texto dentro de los archivos
Aquí lo que necesitamos hacer es una búsqueda recursiva de un texto en todo el árbol de directorios.
- Con
grep:grep -r Linux - Con
ripgrep:rg Linux
Buscar por un texto Case Insensitive dentro de los archivos
Similar al caso anterior pero en este caso Case inssensitive.
- Con
grep:grep -ri Linux - Con
ripgrep:rg -iLinux
Cinco trucos imprescindible
- Buscar archivos de tipo markdown que contentan
Linuxen su interior. Esto es algo sencillo como utilizarrg -t md Linux - Buscar código en archivos Python es algo similar al anterior pero en este caso
rg -t py "import md5". Si quieres saber todos los tipos tienes que utilizarrg --type-list. - Ejecutar comandos sobre los archivos encontrados. Por ejemplo si quieres borrar todos los archivos
.bakque contengan la palabralinuxlo puedes hacer confd -s -t f -e py linux - Buscar por archivos con un nombre exacto. Por ejemplo si quieres buscar todos los archivos que se llamen README lo puedes hacer con
fd '^README$' - Si quieres buscar todos los archivos que no contienen la cadena
TODOlo puedes hacer con la opción-files-without-match. Por ejemplorg --files-without-match TODO
figlet - ART bihurtzeko textua programa
fzf fuzzy finder
Rename:
rename "s/SEARCH/REPLACE/g" *
This will replace the string SEARCH with REPLACE in every file (that is, *). The /g means global, so if you had a SEARCH_SEARCH.jpg, it would be renamed REPLACE_REPLACE.jpg. If you didn’t have /g, it would have only done substitution once, and thus now named REPLACE_SEARCH.jpg. If you want case-insensitive, add /i (that would be, /gi or /ig at the end).
Lista de shells disponibles
cat /etc/shells
Shell activo echo $SHELL
sd: sed baina errezago replace-ak egiteko
https://github.com/chmln/sd
Simpler syntax for replacing all occurrences:
- sd:
sd before after - sed:
sed s/before/after/g
Replace newlines with commas:
- sd:
sd '\n' ',' - sed:
sed ':a;N;$!ba;s/\n/,/g'
Extracting stuff out of strings containing slashes:
-
sd:
echo "sample with /path/" | sd '.*(/.*/)' '$1' -
sed:
echo "sample with /path/" | sed -E 's/.*(\\/.*\\/)/\1/g'With sed, you can make it better with a different delimiter, but it is still messy:
echo "sample with /path/" | sed -E 's|.*(/.*/)|\1|g'
In place modification of files:
-
sd:
sd before after file.txt -
sed:
sed -i -e 's/before/after/g' file.txtWith sed, you need to remember to use
-eor else some platforms will consider the next argument to be a backup suffix.
Para programar un script que se ejecute a las 10:00 AM del día siguiente:
echo '/ruta/al/script.sh' | at 10:00 tomorrow
echo 'tar -czf backup.tar.gz /ruta/del/directorio' | at 2024-12-01 14:00
ncdu (sudo apt install ncdu)terminaletik diskoko egoera ikusteko nun dauden artxibo astunenak. b teklarekin karpetan sartzen zea terminalen
services : adibidez cloudflared
systemctl start cloudflared.service
systemctl status cloudflared.service
Rsync
rsync -av source destination (ssh bidez konektatu daiteke) hemen ez dira artxiboak borratzen, bakarrik gehitu
rsync —dry-run -av source destination (simulatzeko)
rsync -av —delete source destination (guztiz sinkronizatzen du, artxiboak ezabatuz)
Rclone modernoagoa
fish
https://ubunlog.com/fish-linea-comandos-inteligente/
https://fishshell.com/
Sudo apt install fish
which fish
chsh -s /usr/bin/fish
alias bezela hemen abrebiaturakin jolastu daiteke komando erabilienekin baina gero modifikatu daiteke
abbr —add ddo ‘docker compose down’
abbr —list (listatzeko danak)
alias —save hx=“helix”
fish no usa un archivo .bashrc o .zshrc. Al usar el flag --save, la shell crea automáticamente un archivo de función en: ~/.config/fish/functions/hx.fish