GNU/Linux >> Tutoriels Linux >  >> Linux

15 commandes intégrées utiles de Bash Shell (avec exemples)

Bash a plusieurs commandes fournies avec le shell (c'est-à-dire construites à l'intérieur du shell bash).

Lorsque vous exécutez une commande intégrée, bash shell l'exécute immédiatement, sans appeler d'autre programme.

Les commandes intégrées du shell Bash sont plus rapides que les commandes externes, car les commandes externes forment généralement un processus pour l'exécuter.

Dans cet article, passons en revue quelques commandes intégrées utiles du shell bash avec des exemples.

1. Exemple de commande d'exportation Bash

La commande export est utilisée pour exporter une variable ou une fonction vers l'environnement de tous les processus enfants exécutés dans le shell actuel.

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

Il exporte une variable ou une fonction avec une valeur. La commande "env" liste toutes les variables d'environnement. Dans l'exemple suivant, vous pouvez voir que env affiche la variable exportée.

$ export country=India

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

La commande "export -p" affiche également toutes les variables exportées dans le shell actuel.

2. Exemple de commande Bash eval

La commande eval combine tous les arguments donnés et évalue l'expression combinée et l'exécute, et renvoie l'état de sortie de la commande exécutée.

$ 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

L'extrait de code ci-dessus accepte un argument, qui est le modèle d'une commande grep. Cela répertorie les processus dans l'ordre d'utilisation du processeur et greps pour un modèle particulier donné dans la ligne de commande.

Remarque : Cet article fait partie de notre série de tutoriels Bash en cours.

3. Exemple de commande de hachage bash

La commande hash maintient une table de hachage contenant les noms de chemin de la commande utilisée. Lorsque vous exécutez une commande, il recherche une commande dans la variable $PATH.
Mais si la commande est disponible dans la table de hachage, il la récupère à partir de là et l'exécute. La table de hachage maintient le nombre de résultats rencontrés pour chaque commande utilisée jusqu'à présent dans ce shell.

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

Vous pouvez supprimer une commande particulière d'une table de hachage à l'aide de l'option -d et de l'option -r pour réinitialiser la table de hachage complète.

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

4. Exemple de commande Bash pwd

pwd est une commande intégrée du shell pour imprimer le répertoire de travail actuel. Il renvoie essentiellement la valeur de la variable intégrée ${PWD}

$pwd
/home/sasikala/bash/exercises

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

5. Exemple de commande Bash en lecture seule

La commande readonly est utilisée pour marquer une variable ou une fonction en lecture seule, qui ne peut plus être modifiée.

$ 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. Exemple de commande bash shift

La commande shift est utilisée pour décaler les paramètres positionnels à gauche d'un nombre N de fois et renomme la variable en conséquence après le décalage.

$ 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. Exemple de commande de test bash

La commande test évalue l'expression conditionnelle et renvoie zéro ou un en fonction de l'évaluation. Reportez-vous à la page de manuel de bash pour plus d'opérateurs de test.

#! /bin/bash

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

8. Exemple de commande Bash getops

La commande getopts est utilisée pour analyser les arguments de ligne de commande donnés. Nous pouvons définir les règles pour les options, c'est-à-dire quelle option accepte les arguments et laquelle ne les accepte pas. Dans la commande getopts, si une option est suivie de deux-points, elle attend un argument pour cette option.

getopts fournit deux variables $OPTIND et $OPTARG qui ont respectivement l'index du paramètre suivant et les arguments d'option.

$ 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. Commande de déconnexion de Bash

Déconnexion intégrée utilisée pour quitter un shell en cours.

10. Exemple de commande bash umask

La commande umask définit un masque de création de mode fichier pour un processus en cours. Lorsqu'un utilisateur crée un fichier, son autorisation par défaut est basée sur la valeur définie dans umask. L'autorisation par défaut pour le fichier est 666, et elle sera masquée avec les bits umask lorsque l'utilisateur créera un fichier.

Pour plus de détails, veuillez consulter notre article Autorisations de fichiers et de répertoires.

Lorsque l'utilisateur crée un fichier, 666 est masqué par 022, donc l'autorisation de fichier par défaut serait 644.

$ umask
0022

$ > temporary

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

11. Exemples de commande Bash set

set est une commande intégrée du shell, qui est utilisée pour définir et modifier les variables internes du shell. La commande set sans argument répertorie toutes les variables et leurs valeurs. La commande set est également utilisée pour définir les valeurs des paramètres de position.

$ 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. Exemples de commandes Bash unset

unset intégré est utilisé pour définir la variable shell sur null. unset également utilisé pour supprimer un élément d'un tableau et
pour supprimer un tableau complet.

Pour plus de détails sur le tableau Bash, reportez-vous à notre article précédent 15 Opérations sur les tableaux 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

Dans l'exemple ci-dessus, après la désactivation, la variable "var" sera affectée d'une chaîne nulle.

13. Exemple de commande Bash let

let commandes est utilisée pour effectuer des opérations arithmétiques sur des variables 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. Exemple de commande Bash shopt

La commande intégrée shopt est utilisée pour définir et supprimer les options d'un shell. En utilisant cette commande, vous pouvez utiliser l'intelligence du 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

Avant d'activer l'option xpg_echo, l'instruction echo ne développait pas les séquences d'échappement. "je." est aliasé à ls -l du répertoire courant. Après avoir désactivé l'option expand_aliases dans le shell, il n'a pas développé les alias, vous pourriez remarquer une erreur l. commande introuvable.

15. Exemple de commande Bash printf

Semblable à printf en langage C, bash printf intégré est utilisé pour formater les opérations d'impression.

Dans l'exemple 13, le script effectue une opération arithmétique sur deux entrées. Dans ce script au lieu de l'instruction echo, vous pouvez utiliser l'instruction printf pour imprimer la sortie formatée comme indiqué ci-dessous.

Dans arith.sh, remplacez l'instruction echo par cette instruction 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. Commandes couplées avec des opérateurs de contrôle dans Bash

  2. Commande Bash wait avec exemples

  3. Commande Nohup avec exemples

  4. Tutoriel sur l'état de sortie de Bash Shell avec des exemples pratiques

  5. '&&' vs '&' avec la commande 'test' dans Bash

Commandes Nmap avec exemples

Commande pwd sous Linux avec des exemples utiles

Commande SS sous Linux avec des exemples utiles

La commande Bash Echo expliquée avec des exemples sous Linux

Bash Scripting - Commande Printf expliquée avec des exemples

Commande d'historique avec exemples