103.1 - Trabajar en la linea de comandos: Comandos clave

Identificacion de comandos

ComandoDescripcionEjemplo
type comandoMuestra el tipo de comando (builtin, alias, file…)type cd -> builtin
type -a comandoMuestra todas las ubicaciones del comandotype -a echo
type -t comandoMuestra solo el tipo (builtin, alias, file, function, keyword)type -t ls -> alias
which comandoMuestra la ruta del ejecutable (solo busca en PATH)which grep -> /usr/bin/grep
which -a comandoMuestra todas las rutas en PATHwhich -a python
whereis comandoMuestra binario, man page y fuentewhereis ls
whereis -b comandoSolo el binariowhereis -b ls
whereis -m comandoSolo la pagina de manualwhereis -m ls

Variables de entorno

ComandoDescripcionEjemplo
echo $VARIABLEMuestra el valor de una variableecho $PATH
VARIABLE=valorDefine una variable localNOMBRE="Sandra"
export VARIABLE=valorDefine y exporta variable de entornoexport EDITOR=vim
export VARIABLEExporta variable existenteexport NOMBRE
export -n VARIABLEDes-exporta una variableexport -n NOMBRE
unset VARIABLEElimina una variableunset NOMBRE
envLista variables de entornoenv
env -i comandoEjecuta con entorno limpioenv -i bash
setLista todas las variables y funcionesset
set -o opcionActiva opcion del shellset -o noclobber
set +o opcionDesactiva opcion del shellset +o noclobber

Variables de entorno importantes

VariableDescripcionEjemplo de valor
PATHDirectorios de busqueda de comandos/usr/local/bin:/usr/bin:/bin
HOMEDirectorio personal/home/sandra
USERUsuario actualsandra
SHELLShell de login/bin/bash
PS1Prompt principal\u@\h:\w\$
PS2Prompt secundario>
LANGIdioma/localizaciones_ES.UTF-8
PWDDirectorio actual/home/sandra/docs
OLDPWDDirectorio anterior/home/sandra
HISTSIZEComandos en memoria1000
HISTFILESIZELineas en archivo historial2000
HISTFILEArchivo de historial~/.bash_history

Historial de comandos

ComandoDescripcion
historyMuestra el historial completo
history NMuestra los ultimos N comandos
history -cLimpia el historial en memoria
history -wEscribe la memoria al archivo
history -rLee el archivo a memoria
history -d NElimina la entrada N
!!Repite el ultimo comando
!NEjecuta el comando numero N
!-NEjecuta el comando N posiciones atras
!cadenaUltimo comando que empieza por cadena
!?cadenaUltimo comando que contiene cadena
^viejo^nuevoReemplaza en ultimo comando
Ctrl+RBusqueda inversa interactiva

Comillas y escape

SintaxisComportamientoEjemplo
'texto'Sin expansion algunaecho '$HOME' -> $HOME
"texto"Expansion de $, ` y \echo "$HOME" -> /home/usuario
`comando`Sustitucion de comando (antigua)echo `date`
$(comando)Sustitucion de comando (moderna)echo $(date)
\caracterEscape de un caracterecho \$HOME -> $HOME

Secuencias de comandos

OperadorComportamientoEjemplo
;Ejecuta secuencialmente (siempre)cmd1 ; cmd2
&&Ejecuta siguiente solo si anterior tuvo exitomkdir dir && cd dir
||Ejecuta siguiente solo si anterior fallocd dir || echo "Error"
$?Codigo de salida del ultimo comandoecho $?

Paginas de manual

ComandoDescripcion
man comandoAbre la pagina de manual
man N comandoAbre la seccion N de la pagina
man -k palabraBusca en descripciones (= apropos)
man -f comandoDescripcion corta (= whatis)
apropos palabraIgual que man -k
whatis comandoIgual que man -f
info comandoAbre la pagina info

Secciones del manual

SeccionContenido
1Comandos de usuario
2Llamadas al sistema
3Funciones de libreria
4Archivos especiales (/dev)
5Formatos de archivos de configuracion
6Juegos
7Miscelanea
8Comandos de administracion

Alias

ComandoDescripcionEjemplo
alias nombre='comando'Crea un aliasalias ll='ls -la'
aliasLista todos los aliasalias
unalias nombreElimina un aliasunalias ll
unalias -aElimina todos los aliasunalias -a
\comandoEjecuta sin alias\rm archivo

Expansion de llaves y globbing

SintaxisDescripcionEjemplo
{a,b,c}Lista de opcionesecho {a,b,c} -> a b c
{1..10}Rango numericoecho {1..5} -> 1 2 3 4 5
{a..z}Rango alfabeticoecho {a..d} -> a b c d
{1..10..2}Rango con incrementoecho {1..9..2} -> 1 3 5 7 9
*Cero o mas caracteresls *.txt
?Exactamente un caracterls archivo?.log
[abc]Un caracter de la listals [abc].txt
[a-z]Un caracter del rangols [a-z]*.txt
[!abc]Cualquier caracter excepto los listadosls [!0-9]*

Otros comandos importantes

ComandoDescripcionEjemplo
uname -aToda la informacion del sistemauname -a
uname -rVersion del kerneluname -r
uname -mArquitecturauname -m
echoMuestra textoecho "Hola"
pwdDirectorio actualpwd
exec comandoReemplaza el shell por el comandoexec ls
chsh -s /ruta/shellCambia el shell de loginchsh -s /bin/zsh