GNU/Linux >> LINUX-Kenntnisse >  >> Linux

15 nützliche integrierte Bash Shell-Befehle (mit Beispielen)

Bash verfügt über mehrere Befehle, die mit der Shell geliefert werden (d. h. in die Bash-Shell eingebaut sind).

Wenn Sie einen eingebauten Befehl ausführen, führt ihn die Bash-Shell sofort aus, ohne ein anderes Programm aufzurufen.

Bash-Shell-integrierte Befehle sind schneller als externe Befehle, da externe Befehle normalerweise einen Prozess forken, um ihn auszuführen.

Lassen Sie uns in diesem Artikel einige nützliche eingebaute Bash-Shells mit Beispielen überprüfen.

1. Beispiel für einen Bash-Exportbefehl

Der Befehl export wird verwendet, um eine Variable oder Funktion in die Umgebung aller untergeordneten Prozesse zu exportieren, die in der aktuellen Shell ausgeführt werden.

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

Es exportiert eine Variable oder Funktion mit einem Wert. Der Befehl „env“ listet alle Umgebungsvariablen auf. Im folgenden Beispiel sehen Sie, dass env die exportierte Variable anzeigt.

$ export country=India

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

Der Befehl „export -p“ zeigt auch alle exportierten Variablen in der aktuellen Shell an.

2. Bash eval-Befehlsbeispiel

Der Befehl eval kombiniert alle angegebenen Argumente und wertet den kombinierten Ausdruck aus, führt ihn aus und gibt den Beendigungsstatus des ausgeführten Befehls zurück.

$ 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

Das obige Code-Snippet akzeptiert ein Argument, das das Muster für einen grep-Befehl ist. Dies listet die Prozesse in der Reihenfolge der CPU-Auslastung auf und sucht nach einem bestimmten Muster, das in der Befehlszeile angegeben wird.

Hinweis: Dieser Artikel ist Teil unserer fortlaufenden Bash-Tutorial-Reihe.

3. Bash-Hash-Befehlsbeispiel

Hash-Befehl verwaltet eine Hash-Tabelle, die die Pfadnamen des verwendeten Befehls enthält. Wenn Sie einen Befehl ausführen, sucht es nach einem Befehl in der Variable $PATH.
Aber wenn der Befehl in der Hash-Tabelle verfügbar ist, greift es dort auf und führt ihn aus. Die Hash-Tabelle verwaltet die Anzahl der Treffer, die für jeden Befehl gefunden wurden, der bisher in dieser Shell verwendet wurde.

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

Sie können einen bestimmten Befehl aus einer Hash-Tabelle löschen, indem Sie die Option -d und die Option -r verwenden, um die vollständige Hash-Tabelle zurückzusetzen.

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

4. Bash pwd-Befehlsbeispiel

pwd ist ein in die Shell eingebauter Befehl zum Drucken des aktuellen Arbeitsverzeichnisses. Es gibt im Grunde den Wert der eingebauten Variablen ${PWD}

zurück
$pwd
/home/sasikala/bash/exercises

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

5. Bash readonly-Befehlsbeispiel

readonly-Befehl wird verwendet, um eine Variable oder Funktion als schreibgeschützt zu markieren, die nicht weiter geändert werden kann.

$ 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. Bash-Shift-Befehlsbeispiel

Der Befehl shift wird verwendet, um die Positionsparameter um N Mal nach links zu verschieben, und benennt die Variable nach dem Verschieben entsprechend um.

$ 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. Beispiel für einen Bash-Testbefehl

Der Testbefehl wertet den bedingten Ausdruck aus und gibt basierend auf der Auswertung null oder eins zurück. Weitere Testoperatoren finden Sie auf der Handbuchseite von bash.

#! /bin/bash

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

8. Bash getopts-Befehlsbeispiel

Der Befehl getopts wird verwendet, um die angegebenen Befehlszeilenargumente zu analysieren. Wir können die Regeln für Optionen definieren, d. h. welche Option Argumente akzeptiert und welche nicht. Wenn im Befehl getopts auf eine Option ein Doppelpunkt folgt, erwartet er ein Argument für diese Option.

getopts bietet zwei Variablen $OPTIND und $OPTARG, die den Index des nächsten Parameters bzw. Optionsargumente haben.

$ 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. Bash-Logout-Befehl

Eingebautes Logout zum Verlassen einer aktuellen Shell.

10. Bash umask-Befehlsbeispiel

Der Befehl umask legt eine Dateimodus-Erstellungsmaske für einen aktuellen Prozess fest. Wenn ein Benutzer eine Datei erstellt, basiert seine Standardberechtigung auf dem in umask festgelegten Wert. Die Standardberechtigung für die Datei ist 666 und wird mit den umask-Bits maskiert, wenn der Benutzer eine Datei erstellt.

Weitere Einzelheiten finden Sie in unserem Artikel Datei- und Verzeichnisberechtigungen.

Wenn der Benutzer eine Datei erstellt, wird 666 mit 022 maskiert, daher wäre die Standarddateiberechtigung 644.

$ umask
0022

$ > temporary

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

11. Bash set-Befehlsbeispiele

set ist ein in die Shell eingebauter Befehl, der verwendet wird, um die internen Variablen der Shell zu setzen und zu ändern. set-Befehl ohne Argument listet alle Variablen und ihre Werte auf. Der Befehl set wird auch verwendet, um die Werte für die Positionsparameter festzulegen.

$ 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. Bash unset-Befehlsbeispiele

unset built-in wird verwendet, um die Shell-Variable auf null zu setzen. unset wird auch verwendet, um ein Element eines Arrays zu löschen und
um ein komplettes Array zu löschen.

Weitere Einzelheiten zu Bash-Arrays finden Sie in unserem früheren Artikel 15 Bash-Array-Operationen

$ 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

Im obigen Beispiel wird der Variablen „var“ nach dem Unset eine Nullzeichenfolge zugewiesen.

13. Bash let-Befehlsbeispiel

let-Befehle werden verwendet, um arithmetische Operationen mit Shell-Variablen auszuführen.

$ 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. Bash shopt-Befehlsbeispiel

Der eingebaute Befehl shopt wird verwendet, um Shell-Optionen zu setzen und zurückzusetzen. Mit diesem Befehl können Sie Shell-Intelligenz nutzen.

$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

Vor dem Aktivieren der Option xpg_echo hat die echo-Anweisung Escape-Sequenzen nicht erweitert. „Ich.“ hat einen Alias ​​für ls -l des aktuellen Verzeichnisses. Nach dem Deaktivieren der Option expand_aliases in der Shell wurden Aliase nicht erweitert, Sie konnten einen Fehler l bemerken. Befehl nicht gefunden.

15. Bash printf-Befehlsbeispiel

Ähnlich wie printf in der C-Sprache wird bash printf built-in verwendet, um Druckvorgänge zu formatieren.

In Beispiel 13 führt das Skript arithmetische Operationen an zwei Eingaben durch. In diesem Skript können Sie anstelle der echo-Anweisung die printf-Anweisung verwenden, um die formatierte Ausgabe wie unten gezeigt zu drucken.

Ersetzen Sie in arit.sh die echo-Anweisung durch diese printf-Anweisung.

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. Gekoppelte Befehle mit Steueroperatoren in Bash

  2. Bash-Warten-Befehl mit Beispielen

  3. Nohup-Befehl mit Beispielen

  4. Bash Shell Exit Status Tutorial mit praktischen Beispielen

  5. '&&' vs. '&' mit dem 'test'-Befehl in Bash

Nmap-Befehle mit Beispielen

pwd-Befehl in Linux mit nützlichen Beispielen

SS-Befehl in Linux mit nützlichen Beispielen

Bash Echo-Befehl mit Beispielen in Linux erklärt

Bash-Scripting – Printf-Befehl mit Beispielen erklärt

Verlaufsbefehl mit Beispielen