GNU/Linux >> Linux Esercitazione >  >> Linux

15 utili comandi integrati di Bash Shell (con esempi)

Bash ha diversi comandi forniti con la shell (cioè costruiti all'interno della shell bash).

Quando esegui un comando integrato, bash shell lo esegue immediatamente, senza invocare nessun altro programma.

I comandi integrati della shell Bash sono più veloci dei comandi esterni, perché i comandi esterni di solito eseguono il fork di un processo per eseguirlo.

In questo articolo esaminiamo alcuni utili builtin della shell bash con esempi.

1. Esempio di comando di esportazione Bash

Il comando export viene utilizzato per esportare una variabile o una funzione nell'ambiente di tutti i processi figlio in esecuzione nella shell corrente.

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

Esporta una variabile o una funzione con un valore. Il comando "env" elenca tutte le variabili di ambiente. Nell'esempio seguente, puoi vedere che env mostra la variabile esportata.

$ export country=India

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

Il comando “export -p” mostra anche tutte le variabili esportate nella shell corrente.

2. Esempio di comando Bash eval

Il comando eval combina tutti gli argomenti forniti e valuta l'espressione combinata, la esegue e restituisce lo stato di uscita del comando eseguito.

$ 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

Il frammento di codice precedente accetta un argomento, che è il modello per un comando grep. Questo elenca i processi nell'ordine di utilizzo della cpu e greps per un modello particolare fornito nella riga di comando.

Nota: Questo articolo fa parte della nostra serie di tutorial Bash in corso.

3. Esempio di comando hash Bash

hash command mantiene una tabella hash, che ha i nomi di percorso del comando utilizzato. Quando esegui un comando, cerca un comando nella variabile $PATH.
Ma se il comando è disponibile nella tabella hash, lo riprende da lì e lo esegue. La tabella hash mantiene il numero di hit incontrati per ogni comando utilizzato finora in quella shell.

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

Puoi eliminare un comando particolare da una tabella hash usando l'opzione -d e l'opzione -r per reimpostare la tabella hash completa.

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

4. Esempio di comando Bash pwd

pwd è un comando integrato nella shell per stampare la directory di lavoro corrente. Fondamentalmente restituisce il valore della variabile incorporata ${PWD}

$pwd
/home/sasikala/bash/exercises

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

5. Esempio di comando di sola lettura Bash

Il comando readonly viene utilizzato per contrassegnare una variabile o una funzione come di sola lettura, che non può essere ulteriormente modificata.

$ 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. Esempio di comando di spostamento Bash

Il comando shift viene utilizzato per spostare i parametri posizionali lasciati da un numero N di volte e rinomina la variabile di conseguenza dopo lo spostamento.

$ 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. Esempio di comando Bash test

Il comando test valuta l'espressione condizionale e restituisce zero o uno in base alla valutazione. Fare riferimento alla pagina di manuale di bash, per ulteriori operatori di test.

#! /bin/bash

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

8. Esempio di comando Bash getopts

Il comando getopts viene utilizzato per analizzare gli argomenti della riga di comando forniti. Possiamo definire le regole per le opzioni, ad esempio quale opzione accetta argomenti e quale no. Nel comando getopts, se un'opzione è seguita da due punti, si aspetta un argomento per quell'opzione.

getopts fornisce due variabili $OPTIND e $OPTARG che hanno rispettivamente l'indice del parametro successivo e gli argomenti dell'opzione.

$ 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 di disconnessione di Bash

Logout integrato utilizzato per uscire da una shell corrente.

10. Esempio di comando Bash umask

Il comando umask imposta una maschera di creazione della modalità file per un processo corrente. Quando un utente crea un file, la sua autorizzazione predefinita si basa sul valore impostato in umask. L'autorizzazione predefinita per il file è 666 e verrà mascherata con i bit umask quando l'utente crea un file.

Per maggiori dettagli, fare riferimento al nostro articolo Autorizzazioni di file e directory.

Quando l'utente crea un file 666 è mascherato con 022, quindi il permesso predefinito per il file sarebbe 644.

$ umask
0022

$ > temporary

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

11. Esempi di comandi per set Bash

set è un comando integrato nella shell, che viene utilizzato per impostare e modificare le variabili interne della shell. set comando senza argomento elenca tutte le variabili e i suoi valori. Il comando set viene utilizzato anche per impostare i valori dei parametri posizionali.

$ 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. Esempi di comandi di disattivazione di Bash

unset built-in viene utilizzato per impostare la variabile della shell su null. unset utilizzato anche per eliminare un elemento di un array e
per eliminare un array completo.

Per maggiori dettagli sull'array Bash, fare riferimento al nostro precedente articolo 15 Operazioni sull'array 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

Nell'esempio sopra, dopo aver annullato l'impostazione, la variabile "var" verrà assegnata con una stringa nulla.

13. Esempio di comando Bash let

let viene utilizzato per eseguire operazioni aritmetiche sulle variabili della 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. Esempio di comando Bash shopt

Il comando integrato shopt viene utilizzato per impostare e deselezionare le opzioni di una shell. Usando questo comando, puoi utilizzare l'intelligenza della 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

Prima di abilitare l'opzione xpg_echo, l'istruzione echo non espandeva le sequenze di escape. "l." è alias a ls -l della directory corrente. Dopo aver disabilitato l'opzione expand_aliases nella shell, non ha espanso gli alias, potresti notare un errore l. comando non trovato.

15. Esempio di comando Bash printf

Simile a printf in linguaggio C, bash printf integrato viene utilizzato per formattare le operazioni di stampa.

Nell'esempio 13, lo script esegue operazioni aritmetiche su due input. In quello script invece dell'istruzione echo, puoi usare l'istruzione printf per stampare l'output formattato come mostrato di seguito.

In arith.sh, sostituisci l'istruzione echo con questa istruzione 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. Comandi accoppiati con operatori di controllo in Bash

  2. Comando Bash wait con esempi

  3. Comando Nohup con esempi

  4. Esercitazione sullo stato di uscita di Bash Shell con esempi pratici

  5. '&&' vs. '&' con il comando 'test' in Bash

Comandi Nmap con esempi

comando pwd in Linux con esempi utili

Comando SS in Linux con esempi utili

Comando Bash Echo spiegato con esempi in Linux

Scripting Bash – Spiegazione del comando Printf con esempi

Comando della cronologia con esempi