Entendiendo 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 entender los diferentes tipos de comandos de shell y las formas apropiadas de usarlos desde el terminal.

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

Una cosa importante a tener en cuenta es que la interfaz de línea de comandos es diferente de la shell, solo proporciona un medio para que usted acceda a la shell. El shell, que también es programable, hace posible la comunicación con el kernel mediante comandos.

Diferentes clasificaciones de comandos de Linux caen bajo las siguientes clasificaciones:

1. Ejecutables del programa (Comandos del sistema de archivos)

Cuando ejecuta un comando, Linux busca en los directorios almacenados en/usr/local/bin:/usr/local/sbin:/usr/bin:/opt/cuda/bin:/usr/lib/jvm/default/bin :/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl variable de entorno de izquierda a derecha para el ejecutable de ese comando específico.

Puede ver los directorios en /usr/local/bin:/usr/local/sbin:/usr/bin:/opt/cuda/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl 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, primero se buscará 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 incorporado del shell alias y contienen otros comandos del shell con algunas opciones y argumentos. La idea es usar básicamente nombres nuevos y cortos para comandos largos.

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, lea 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 siguiente arranque. Puede establecer alias permanentes en su archivo .bashrc como se muestra a continuación.

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

$ source ~/.bashrc

3. Palabras reservadas de Linux Shell

En la programación de shell, palabras como si , luego , fi , para , mientras que , mayúsculas , esac , else , hasta y muchas otras son palabras reservadas para el shell. Como la descripción implica, tienen un significado especializado para la concha.

Puede enumerar todas las palabras clave de 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 de 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
…….
}

Veamos 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 simple función de shell para ejecutar los dos comandos como una sola comando, upgrade_system dentro de un script.

Guarde el archivo y, a continuación, haga el script ejecutable. Finalmente ejecútalo como a continuación:

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

5. Comandos incorporados de Linux Shell

Estos son comandos de Linux que están integrados en el shell, por lo tanto, no puede encontrarlos dentro del sistema de archivos. Incluyen pwd , cd , bg , alias , historia , escriba , fuente , lea , salga y muchos otros.

Puede listar o verificar los comandos incorporados 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

Aprende sobre el uso de algunos comandos integrados de Linux:

  1. 15 ‘pwd’ Command Examples in Linux
  2. 15 ‘cd’ Command Examples in Linux
  3. Learn The Power of Linux ‘history’ Command

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 sencilla de entender que incluye algunas ilustraciones relevantes, es probable que comprenda bien las diversas categorías de comandos de Linux.

También puede ponerse duro en la sección de comentarios a continuación para cualquier pregunta o idea complementaria que desee ofrecernos.