Verstinn verschidde Klassifikatioune vu Shell Kommandoen an hir Notzung am Linux


Wann et drëm geet absolut Kontroll iwwer Äre Linux System ze kréien, da kënnt näischt no bei der Kommandozeil-Interface (CLI). Fir e Linux Power User ze ginn, muss een déi verschidden Aarte vu Shellbefehle verstoen an déi entspriechend Weeër fir se vum Terminal ze benotzen.

Am Linux ginn et verschidden Aarte vu Kommandoen, a fir en neie Linux Benotzer, d'Bedeitung vu verschiddene Kommandoen ze kennen erméiglecht et effizient a präzis Notzung. Dofir, an dësem Artikel, wäerte mir duerch déi verschidde Klassifikatiounen vu Shell Kommandoen am Linux goen.

Eng wichteg Saach fir ze notéieren ass datt d'Kommandozeil-Interface anescht ass wéi d'Shell, et bitt nëmmen e Mëttel fir Iech op d'Shell ze kommen. D'Shell, déi och programméierbar ass, mécht et méiglech mat dem Kernel mat Kommandoen ze kommunizéieren.

Verschidde Klassifikatioune vu Linux Kommandoen falen ënner de folgende Klassifikatiounen:

1. Programm Executables (Dateisystem Kommandoen)

Wann Dir e Kommando leeft, sicht Linux duerch d'Verzeichnisser déi an der PATH Ëmweltvariabel vu lénks op riets gespäichert sinn fir den Ausféierbar vun deem spezifesche Kommando.

Dir kënnt d'Verzeichnisser am PATH kucken wéi follegt:

$ echo $PATH

/home/aaronkilik/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

An der uewe genannter Uerdnung gëtt de Verzeechnes /home/aaronkilik/bin als éischt gesicht gefollegt vun /usr/local/sbin a sou weider, d'Bestellung ass bedeitend an der Sich Prozess.

Beispiller vu Dateisystembefehle am /usr/bin Verzeichnis:

$ 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. Linux Aliasen

Dëst sinn Benotzerdefinéiert Kommandoen, si gi mam Alias Shell agebaute Kommando erstallt, an enthalen aner Shellbefehle mat e puer Optiounen an Argumenter. D'Iddien sinn am Fong nei a kuerz Nimm fir laang Kommandoen ze benotzen.

D'Syntax fir en Alias ze kreéieren ass wéi follegt:

$ alias newcommand='command -options'

Fir all Aliasen op Ärem System ze lëschten, gitt de Kommando hei ënnen:

$ 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'

Fir en neien Alias am Linux ze kreéieren, gitt duerch e puer Beispiller hei ënnen.

$ alias update='sudo apt update'
$ alias upgrade='sudo apt dist-upgrade'
$ alias -p | grep 'up'

Wéi och ëmmer, d'Aliasen, déi mir uewen erstallt hunn, funktionnéieren nëmmen temporär, wann de System nei gestart gëtt, funktionnéiere se net nom nächste Boot. Dir kënnt permanent Aliasen an Ärem .bashrc-Datei setzen wéi hei ënnendrënner.

Nodeems Dir se bäigefüügt hutt, fuert de Kommando hei ënnen fir aktiv.

$ source ~/.bashrc

3. Linux Shell Reservéiert Wierder

An der Shell-Programméierung, Wierder wéi wann, dann, fi, fir, iwwerdeems, Fall, esac, soss, bis a vill anerer sinn Shell-reservéiert Wierder. Wéi d'Beschreiwung implizéiert, si hu spezialiséiert Bedeitung fir d'Schuel.

Dir kënnt all Linux Shell Schlësselwieder oplëschten andeems Dir Typ Kommando benotzt wéi gewisen:

$ 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. Linux Shell Funktiounen

Eng Shellfunktioun ass eng Grupp vu Kommandoen déi kollektiv bannent der aktueller Shell ausgefouert ginn. Funktiounen hëllefen eng spezifesch Aufgab an engem Shell-Skript auszeféieren. Déi konventionell Form vu Schreifshellfunktiounen an engem Skript ass:

function_name() {
command1
command2
…….
}

Alternativ,

function function_name {
command1
command2
…….
}

Loosst eis kucken wéi Shell Funktiounen an engem Skript mam Numm shell_functions.sh schreiwen.

#!/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

Amplaz déi zwee Kommandoen auszeféieren: sudo apt update an sudo apt dist-upgrade vun der Kommandozeil, hu mir eng einfach Shell-Funktioun geschriwwen fir déi zwee Kommandoen als eenzeg auszeféieren. Kommando, upgrade_system an engem Skript.

Späichert d'Datei an duerno, maacht de Skript ausféierbar. Endlech lafen et wéi hei ënnen:

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

5. Linux Shell Built-in Kommandoen

Dëst sinn Linux Kommandoen déi an der Shell agebaut sinn, sou datt Dir se net am Dateiesystem fannt. Si enthalen pwd, CD, bg, Alias, Geschicht, Typ, Quell, Liesen, Sortie a vill anerer.

Dir kënnt Linux agebaute Kommandoen oplëschten oder iwwerpréiwen andeems Dir Typ Kommando wéi gewisen:

$ 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

Léiert iwwer e puer Linux agebaute Kommandoen Notzung:

  1. 15 'pwd' Kommando Beispiller am Linux
  2. 15 'cd' Kommando Beispiller am Linux
  3. Léiert d'Kraaft vum Linux 'Geschicht' Kommando

Conclusioun

Als Linux Benotzer ass et ëmmer wichteg ze wëssen wéi eng Zort Kommando Dir leeft. Ech gleewen, mat der präzis an einfach ze verstoen Erklärung uewendriwwer mat e puer relevant Illustratiounen, hutt Dir wahrscheinlech e gutt Verständnis vun de verschiddene Kategorien vu Linux Kommandoen.

Dir kënnt och schwéier duerch d'Kommentarsektioun hei drënner kommen fir all Froen oder Ergänzungs Iddien déi Dir eis gäre géift bidden.