Comprensión de las diferentes clasificaciones de los comandos de shell y su uso en Linux


Cuando se trata de obtener un control absoluto sobre su sistema Linux, nada se acerca a la interfaz de línea de comandos (CLI). Para convertirse en un usuario avanzado de Linux, uno debe comprender los diferentes tipos de comandos de shell y las formas apropiadas de usarlos desde la terminal.

En Linux, hay varios tipos de comandos, y para un nuevo usuario de Linux, conocer el significado de los diferentes comandos permite un uso eficiente y preciso. Por lo tanto, en este artículo, analizaremos las diversas clasificaciones de comandos de shell en Linux.

Una cosa importante a tener en cuenta es que la interfaz de línea de comandos es diferente del shell, solo proporciona un medio para que acceda al shell. El shell, que también es programable, permite comunicarse con el kernel mediante comandos.

Las diferentes clasificaciones de los comandos de Linux se incluyen en las siguientes clasificaciones:

1. Programas ejecutables (comandos del sistema de archivos)

Cuando ejecuta un comando, Linux busca en los directorios almacenados en la variable de entorno $PATH de izquierda a derecha el ejecutable de ese comando específico.

Puede ver los directorios en $PATH de la siguiente manera:

$ echo $PATH

/home/aaronkilik/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

En el orden anterior, se buscará primero en el directorio /home/aaronkilik/bin seguido de /usr/local/sbin y así sucesivamente, el orden es significativo en la búsqueda proceso.

Ejemplos de comandos del sistema de archivos en el directorio /usr/bin :

$ ll /bin/
total 16284
drwxr-xr-x  2 root root    4096 Jul 31 16:30 ./
drwxr-xr-x 23 root root    4096 Jul 31 16:29 ../
-rwxr-xr-x  1 root root    6456 Apr 14 18:53 archdetect*
-rwxr-xr-x  1 root root 1037440 May 17 16:15 bash*
-rwxr-xr-x  1 root root  520992 Jan 20  2016 btrfs*
-rwxr-xr-x  1 root root  249464 Jan 20  2016 btrfs-calc-size*
lrwxrwxrwx  1 root root       5 Jul 31 16:19 btrfsck -> btrfs*
-rwxr-xr-x  1 root root  278376 Jan 20  2016 btrfs-convert*
-rwxr-xr-x  1 root root  249464 Jan 20  2016 btrfs-debug-tree*
-rwxr-xr-x  1 root root  245368 Jan 20  2016 btrfs-find-root*
-rwxr-xr-x  1 root root  270136 Jan 20  2016 btrfs-image*
-rwxr-xr-x  1 root root  249464 Jan 20  2016 btrfs-map-logical*
-rwxr-xr-x  1 root root  245368 Jan 20  2016 btrfs-select-super*
-rwxr-xr-x  1 root root  253816 Jan 20  2016 btrfs-show-super*
-rwxr-xr-x  1 root root  249464 Jan 20  2016 btrfstune*
-rwxr-xr-x  1 root root  245368 Jan 20  2016 btrfs-zero-log*
-rwxr-xr-x  1 root root   31288 May 20  2015 bunzip2*
-rwxr-xr-x  1 root root 1964536 Aug 19  2015 busybox*
-rwxr-xr-x  1 root root   31288 May 20  2015 bzcat*
lrwxrwxrwx  1 root root       6 Jul 31 16:19 bzcmp -> bzdiff*
-rwxr-xr-x  1 root root    2140 May 20  2015 bzdiff*
lrwxrwxrwx  1 root root       6 Jul 31 16:19 bzegrep -> bzgrep*
-rwxr-xr-x  1 root root    4877 May 20  2015 bzexe*
lrwxrwxrwx  1 root root       6 Jul 31 16:19 bzfgrep -> bzgrep*
-rwxr-xr-x  1 root root    3642 May 20  2015 bzgrep*

2. Alias de Linux

Estos son comandos definidos por el usuario, se crean utilizando el comando integrado de shell de alias y contienen otros comandos de shell con algunas opciones y argumentos. La idea es utilizar básicamente nombres nuevos y cortos para comandos extensos.

La sintaxis para crear un alias es la siguiente:

$ alias newcommand='command -options'

Para enumerar todos los alias en su sistema, ejecute el siguiente comando:

$ alias -p

alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'

Para crear un nuevo alias en Linux, revise algunos ejemplos a continuación.

$ alias update='sudo apt update'
$ alias upgrade='sudo apt dist-upgrade'
$ alias -p | grep 'up'

Sin embargo, los alias que hemos creado anteriormente solo funcionan temporalmente, cuando se reinicia el sistema, no funcionarán después del próximo arranque. Puede establecer alias permanentes en su archivo .bashrc como se muestra a continuación.

Después de agregarlos, ejecute el siguiente comando para activar.

$ source ~/.bashrc

3. Palabras reservadas del shell de Linux

En la programación de shell, palabras como if, then, fi, for, while, case, esac, else, until y muchas otras son palabras reservadas de shell. Como implica la descripción, tienen un significado especializado para el caparazón.

Puede enumerar todas las palabras clave del shell de Linux usando el comando type como se muestra:

$ type if then fi for while case esac else until
if is a shell keyword
then is a shell keyword
fi is a shell keyword
for is a shell keyword
while is a shell keyword
case is a shell keyword
esac is a shell keyword
else is a shell keyword
until is a shell keyword

4. Funciones del shell de Linux

Una función de shell es un grupo de comandos que se ejecutan colectivamente dentro del shell actual. Las funciones ayudan a realizar una tarea específica en un script de shell. La forma convencional de escribir funciones de shell en un script es:

function_name() {
command1
command2
…….
}

Alternativamente,

function function_name {
command1
command2
…….
}

Echemos un vistazo a cómo escribir funciones de shell en un script llamado shell_functions.sh .

#!/bin/bash 

#write a shell function to update and upgrade installed packages 
upgrade_system(){
        sudo apt update;
        sudo apt dist-upgrade;
}

#execute function
upgrade_system

En lugar de ejecutar los dos comandos: sudo apt update y sudo apt dist-upgrade desde la línea de comandos, hemos escrito una función de shell simple para ejecutar los dos comandos como un solo comando, upgrade_system dentro de un script.

Guarde el archivo y, a continuación, haga que el script sea ejecutable. Finalmente ejecútelo como se muestra a continuación:

$ chmod +x shell_functions.sh
$ ./shell_functions.sh

5. Comandos integrados del shell de Linux

Estos son comandos de Linux que están integrados en el shell, por lo que no puede encontrarlos dentro del sistema de archivos. Incluyen pwd, cd, bg, alias, history, type, source, read, exit y muchos otros.

Puede enumerar o verificar los comandos integrados de Linux usando el comando type como se muestra:

$ type pwd
pwd is a shell builtin
$ type cd
cd is a shell builtin
$ type bg
bg is a shell builtin
$ type alias
alias is a shell builtin
$ type history
history is a shell builtin

Aprenda sobre el uso de algunos comandos integrados de Linux:

  1. 15 ejemplos de comandos "pwd" en Linux
  2. 15 ejemplos de comandos "cd" en Linux
  3. Aprenda el poder del comando "historial" de Linux

Conclusión

Como usuario de Linux, siempre es importante saber el tipo de comando que está ejecutando. Creo que, con la explicación precisa y fácil de entender anterior que incluye algunas ilustraciones relevantes, probablemente tenga una buena comprensión de las diversas categorías de comandos de Linux.

También puede ponerse duro a través de la sección de comentarios a continuación para cualquier pregunta o idea complementaria que le gustaría ofrecernos.