GNU/Linux >> Tutoriales Linux >  >> Linux

15 útiles comandos integrados de Bash Shell (con ejemplos)

Bash tiene varios comandos que vienen con el shell (es decir, construido dentro del shell bash).

Cuando ejecuta un comando incorporado, bash shell lo ejecuta inmediatamente, sin invocar ningún otro programa.

Los comandos incorporados de Bash Shell son más rápidos que los comandos externos, porque los comandos externos generalmente bifurcan un proceso para ejecutarlo.

En este artículo, revisemos algunas funciones integradas útiles de bash shell con ejemplos.

1. Ejemplo de comando de exportación de Bash

El comando de exportación se usa para exportar una variable o función al entorno de todos los procesos secundarios que se ejecutan en el shell actual.

export varname=value
export -f functionname # exports a function in the current shell.

Exporta una variable o función con un valor. El comando "env" enumera todas las variables de entorno. En el siguiente ejemplo, puede ver que env muestra la variable exportada.

$ export country=India

$ env
SESSIONNAME=Console
country=India
_=/usr/bin/env

El comando "exportar -p" también muestra todas las variables exportadas en el shell actual.

2. Ejemplo de comando Bash eval

El comando eval combina todos los argumentos proporcionados y evalúa la expresión combinada y la ejecuta, y devuelve el estado de salida del comando ejecutado.

$ cat evalex.sh
if [ ! -z $1 ]
then
proccomm="ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | grep $1"
else
proccomm="ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu"
fi
eval $proccomm

El fragmento de código anterior acepta un argumento, que es el patrón para un comando grep. Esto enumera los procesos en el orden de uso de la CPU y greps para un patrón particular dado en la línea de comando.

Nota: Este artículo es parte de nuestra serie de tutoriales de Bash en curso.

3. Ejemplo de comando bash hash

El comando hash mantiene una tabla hash, que tiene los nombres de ruta del comando usado. Cuando ejecuta un comando, busca un comando en la variable $PATH.
Pero si el comando está disponible en la tabla hash, lo recoge desde allí y lo ejecuta. La tabla hash mantiene el número de aciertos encontrados para cada comando usado hasta ahora en ese shell.

$ hash
hits    command
   1    /usr/bin/cat
   2    /usr/bin/ps
   4    /usr/bin/ls

Puede eliminar un comando en particular de una tabla hash usando la opción -d y la opción -r para restablecer la tabla hash completa.

$ hash -d cat
$ hash
hits    command
   2    /usr/bin/ps
   4    /usr/bin/ls

4. Ejemplo de comando Bash pwd

pwd es un comando integrado de shell para imprimir el directorio de trabajo actual. Básicamente, devuelve el valor de la variable integrada ${PWD}

$pwd
/home/sasikala/bash/exercises

$echo $PWD
/home/sasikala/bash/exercises

5. Ejemplo de comando de solo lectura de Bash

El comando de solo lectura se usa para marcar una variable o función como de solo lectura, que no se puede cambiar más.

$ cat readonly_ex.sh
#!/bin/bash
# Restricting an array as a readonly
readonly -a shells=("ksh" "bash" "sh" "csh" );
echo ${#shells[@]}

# Trying to  modify an array, it throws an error
shells[0]="gnu-bash"

echo ${shells[@]}

$ ./readonly_ex.sh
4
readonly_ex.sh: line 9: shells: readonly variable

6. Ejemplo de comando Bash shift

El comando de cambio se usa para cambiar los parámetros posicionales dejados por N número de veces y cambia el nombre de la variable en consecuencia después del cambio.

$ cat shift.sh
#! /bin/bash

while [ $# -gt 0 ]
do
        case "$1" in

        -l) echo "List command"
            ls
    	    shift
            ;;
	-p) echo "Process command"
    	    ps -a
    	    shift
    	    ;;
	-t) echo "Hash Table command"
    	    hash
    	    shift
    	    ;;
	-h) echo "Help command"
    	    help
    	    shift
	    ;;
	esac
done

$./shift.sh -l -t
List command analysis  break  testing t1.sh temp Hash Table command
hits    command
   1    /usr/bin/ls

7. Ejemplo de comando de prueba Bash

El comando test evalúa la expresión condicional y devuelve cero o uno según la evaluación. Consulte la página del manual de bash para obtener más operadores de prueba.

#! /bin/bash

if test -z $1
then
        echo "The positional parameter \$1 is empty"
fi

8. Ejemplo de comando getopts de Bash

El comando getopts se usa para analizar los argumentos de la línea de comando dados. Podemos definir las reglas para las opciones, es decir, qué opción acepta argumentos y cuál no. En el comando getopts, si una opción va seguida de dos puntos, espera un argumento para esa opción.

getopts proporciona dos variables $OPTIND y $OPTARG que tienen índice del siguiente parámetro y argumentos de opción respectivamente.

$ cat options.sh
#! /bin/bash

while getopts :h:r:l: OPTION
do
         case $OPTION in
          h) echo "help of $OPTARG"
             help "$OPTARG"
             ;;
          r) echo "Going to remove a file $OPTARG"
             rm -f "$OPTARG"
            ;;
         esac
done

$ ./options.sh -h jobs
help of jobs
jobs: jobs [-lnprs] [jobspec ...] or jobs -x command [args]
    Lists the active jobs.  The -l option lists process id's in addition
    to the normal information; the -p option lists process id's only.

9. Comando de cierre de sesión de Bash

Cierre de sesión integrado utilizado para salir de un shell actual.

10. Ejemplo de comando Bash umask

El comando umask establece una máscara de creación de modo de archivo para un proceso actual. Cuando un usuario crea un archivo, su permiso predeterminado se basa en el valor establecido en umask. El permiso predeterminado para el archivo es 666 y se enmascarará con los bits umask cuando el usuario cree un archivo.

Para obtener más detalles, consulte nuestro artículo Permisos de archivos y directorios.

Cuando el usuario crea un archivo, 666 se enmascara con 022, por lo que el permiso de archivo predeterminado sería 644.

$ umask
0022

$ > temporary

$ ls -l temporary
-rw-r--r-- 1 root root 4 Jul 26 07:48 temporary

11. Ejemplos de comandos Bash set

set es un comando integrado de shell, que se utiliza para establecer y modificar las variables internas del shell. El comando set sin argumento enumera todas las variables y sus valores. El comando set también se usa para establecer los valores de los parámetros posicionales.

$ set +o history # To disable the history storing.
+o disables the given options.

$ set -o history
-o enables the history

$ cat set.sh
var="Welcome to thegeekstuff"
set -- $var
echo "\$1=" $1
echo "\$2=" $2
echo "\$3=" $3

$ ./set.sh
$1=Welcome
$2=to
$3=thegeekstuff

12. Ejemplos de comandos de Bash unset

unset incorporado se usa para establecer la variable de shell en nulo. unset también se usa para eliminar un elemento de una matriz y
para eliminar una matriz completa.

Para obtener más detalles sobre la matriz Bash, consulte nuestro artículo anterior 15 Operaciones de matriz Bash

$ cat unset.sh
#!/bin/bash
#Assign values and print it
var="welcome to thegeekstuff"
echo $var

#unset the variable
unset var
echo $var

$ ./unset.sh
welcome to thegeekstuff

En el ejemplo anterior, después de desactivar la variable "var" se asignará con una cadena nula.

13. Ejemplo de comando Bash let

let commands se usa para realizar operaciones aritméticas en variables de shell.

$ cat arith.sh
#! /bin/bash

let arg1=12
let arg2=11

let add=$arg1+$arg2
let sub=$arg1-$arg2
let mul=$arg1*$arg2
let div=$arg1/$arg2
echo $add $sub $mul $div

$ ./arith.sh
23 1 132 1

14. Ejemplo de comando Bash shopt

El comando incorporado shopt se usa para configurar y desactivar las opciones de un shell. Con este comando, puede hacer uso de la inteligencia de shell.

$cat shopt.sh
#! /bin/bash

## Before enabling xpg_echo
echo "WELCOME\n"
echo "GEEKSTUF\n"
shopt -s  xpg_echo
## After enabling xpg_echo
echo "WELCOME\n"
echo "GEEKSTUF\n"

# Before disabling aliases
alias l.='ls -l .'
l.

# After disabling aliases
shopt -u expand_aliases
l.

$ ./shopt.sh
WELCOME\n
GEEKSTUF\n
WELCOME

GEEKSTUF

total 3300
-rw------- 1 root root    1112 Jan 23  2009 anaconda-ks.cfg
-r-xr-xr-x 1 root root 3252304 Jul  1 08:25 backup
drwxr-xr-x 2 root root    4096 Jan 26  2009 Desktop
shopt.sh: line 17: l.: command not found

Antes de habilitar la opción xpg_echo, la instrucción echo no expandía las secuencias de escape. "yo". tiene el alias de ls -l del directorio actual. Después de deshabilitar la opción expand_aliases en Shell, no expandió los alias, podría notar un error l. comando no encontrado.

15. Ejemplo de comando Bash printf

Similar a printf en lenguaje C, bash printf incorporado se usa para formatear operaciones de impresión.

En el ejemplo 13, el script realiza una operación aritmética en dos entradas. En esa secuencia de comandos en lugar de la instrucción echo, puede usar la instrucción printf para imprimir la salida formateada como se muestra a continuación.

En arith.sh, reemplace la sentencia echo con esta sentencia printf.

printf "Addition=%d\nSubtraction=%d\nMultiplication=%d\nDivision=%f\n" $add $sub $mul $div

$ ./arith.sh
Addition=23
Subtraction=1
Multiplication=132
Division=1.000000

Linux
  1. Comandos acoplados con operadores de control en Bash

  2. Comando Bash wait con ejemplos

  3. Comando Nohup con ejemplos

  4. Tutorial de estado de salida de Bash Shell con ejemplos prácticos

  5. '&&' vs. '&' con el comando 'test' en Bash

Comandos de Nmap con ejemplos

Comando pwd en Linux con ejemplos útiles

Comando SS en Linux con ejemplos útiles

Comando Bash Echo explicado con ejemplos en Linux

Bash Scripting - Comando Printf explicado con ejemplos

Comando de historial con ejemplos