BASH
related
cheatsheet
shell
- /etc/shells
Bash scripting cheatsheet
https://devhints.io/bashThe Bash Hackers Wiki
https://wiki.bash-hackers.org/startBash variables and command substitution
http://www.compciv.org/topics/bash/variables-and-substitution/Parameter expansion
http://wiki.bash-hackers.org/syntax/pe?rev=1529675381list of Unix binaries that can be exploited by an attacker to bypass local security restrictions
https://gtfobins.github.io/Settings Shell Options
https://bash.cyberciti.biz/guide/Setting_shell_optionscomandos CLI
scripting
Guía rápida para principiantes
http://es.tldp.org/COMO-INSFLUG/COMOs/Bash-Prog-Intro-COMO/Bash-Prog-Intro-COMO.htmlDiferencia entre brackets y dobles brackets
https://www.baeldung.com/linux/bash-single-vs-double-brackets#:~:text=In%20this%20article%2C%20we%20discussed,we%20should%20prefer%20single%20brackets.- 
- while true; do read -sk1 "?copiar (n surt): "; if [[ $REPLY != "n" ]]; then scp temperatures.py vmware-sentinel:~/temperatures; else break;fi; done 
 
- Errores de novato: http://wiki.bash-hackers.org/scripting/newbie_traps
- 
- herramienta chequeo scripts:shellcheck
 
shortcuts
| shorcut | descripción | 
|---|---|
| bash | |
| CTRL + ALT + E | expande alias | 
| CTRL + A | inicio de línea | 
| CTRL + E | final de linea | 
| CTRL + H | borra caracter izquierda | 
| CTRL + D | borra caracter cursor | 
| CTRL + U | borra del inicio al cursor | 
| CTRL + K | borra del cursor al final de línea | 
| CTRL + W | borra desde principio de palabra hasta cursor | 
| CTRL + Y | recupera lo último borrado | 
| CTRL + T | intercambia carácter del cursor con el carácter de la izquierda | 
| <esc> + T | intercambia 2 palabras | 
| emacs | |
| CTRL + p | sube una linea, linea anterior | 
| CTRL + n | baja una linea, linea posterior | 
| CTRL + r | búsqueda recursiva hacía atrás en histórico comandos ( ~/.bash_history) | 
| CTRL + s | búsqueda recursiva hacía adelante en histórico comandos ( ~/.bash_history) | 
| META + p | |
| META + n | |
| META + < | |
| META + > | |
| CTRL + l | limpia pantalla | 
| CTRL + d | cierra sesión | 
| shorcut | descripción | 
|---|---|
| navegación | |
| CTRL + A | principio línea | 
| CTRL + E | final de línea | 
| CTRL + XX | conmuta entre la posición actual del cursor y el principio de línea ? | 
| ALT + B | atrasa una palabra el cursor | 
| ALT + F | adelanta una palabra el cursor | 
| edición | |
| ALT + U | uppercase caracter cursor | 
| ALT + L | lowercase caracter cursor | 
| ALT + C | capitalize caracter cursor y va al final de palabra | 
| ALT + D | borra palabra desde cursor hasta el final de la misma | 
| ALT + Del | borra palabra desde cursor hasta el principio de la misma | 
| ALT + T | intercambio palabra con la anterior | 
| CTRL + _ | undo | 
| historia | |
| control del procesos | |
| CTRL + C | interrumpe/mata | 
| CTRL + L | limpia pantalla | 
| CTRL + S | para salida por pantalla | 
| CTRL + Q | permitir salida por pantalla | 
| CTRL + D | marca EOF | 
| CTRL + Z | interrumpe/mata | 
Variables de entorno
- HISTFILE: Fichero donde se almacena el historial de comandos tecleados
- HISTFILESIZE: número de comandos que se guarda en el historial
- HISTSIZE: longitud máxima del fichero de historial
- HISTIGNORE: que comandos no se guardan en el historial de comandos. Lista de patrones separados por coma
- HISTTIMEFORMAT:- HISTTIMEFORMAT='%F %T'→ añade TIMESTAMP delante del comando
- PS1: prompt shell
- EDITOR: establece editor por defecto (para less o crontab -e, por ejemplo)
- CDPATH: establece directorios donde se hará búsqueda de directorios (que no sea el local)
export CDPATH=/var/www:/nas10 cd html (en lugar de) cd /var/www/html
comandos abreviados y parámetros
- <tab> → completa nombre ficbero
- 2x<tab> → muestra opciones de completado (para comandos, para archivos)
- (comando) → abre nuevo bash y retorna.- (cd /tmp && ls)→ ejecuta el CD y el LS, pero al abrir sesión nueva, de deja donde estabas.
 
- averiguar si comando es interno/externo o alias:type -a <comando>$ type -a ls ls is aliased to `ls --color=auto' ls is /bin/ls $ type -a cd cd is a shell builtin 
https://www.cyberciti.biz/faq/linux-unix-bash-shell-list-all-builtin-commands/