Zoeken op website

Inzicht in verschillende classificaties van Shell-opdrachten en hun gebruik in Linux


Als het gaat om het verkrijgen van absolute controle over je Linux-systeem, komt niets in de buurt van de opdrachtregelinterface (CLI). Om een Linux-hoofdgebruiker te worden, moet je de verschillende soorten shell-opdrachten begrijpen en de juiste manieren om ze vanaf de terminal te gebruiken.

In Linux zijn er verschillende soorten commando's, en voor een nieuwe Linux-gebruiker maakt het kennen van de betekenis van verschillende commando's een efficiënt en nauwkeurig gebruik mogelijk. Daarom zullen we in dit artikel de verschillende classificaties van shell-opdrachten in Linux doornemen.

Voorgesteld leesvoer: 5 interessante tips en trucs voor de opdrachtregel in Linux – Deel 1

Een belangrijk ding om op te merken is dat de opdrachtregelinterface anders is dan de shell, deze biedt u alleen een manier om toegang te krijgen tot de shell. De shell, die ook programmeerbaar is, maakt het vervolgens mogelijk om met behulp van commando's met de kernel te communiceren.

Verschillende classificaties van Linux-opdrachten vallen onder de volgende classificaties:

1. Uitvoerbare programmabestanden (bestandssysteemopdrachten)

Wanneer je een commando uitvoert, doorzoekt Linux de mappen die zijn opgeslagen in de omgevingsvariabele ` PATH van links naar rechts naar het uitvoerbare bestand van dat specifieke commando.

U kunt de mappen in het ` PATH als volgt bekijken:

echo $PATH

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

In de bovenstaande volgorde wordt eerst de map /home/aaronkilik/bin doorzocht, gevolgd door /usr/local/sbin enzovoort. De volgorde is belangrijk bij het zoeken proces.

Voorbeelden van bestandssysteemopdrachten in de map /usr/bin:

ll /bin/
Voorbeelduitvoer
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-aliassen

Dit zijn door de gebruiker gedefinieerde commando's, ze zijn gemaakt met behulp van de ingebouwde alias shell-opdracht, en bevatten andere shell-commando's met enkele opties en argumenten. Het idee is om in principe nieuwe en korte namen te gebruiken voor lange opdrachten.

Aanbevolen leesmateriaal: 10 verbazingwekkende en mysterieuze toepassingen van (!) symbolen of operators in Linux-opdrachten

De syntaxis voor het maken van een alias is als volgt:

alias newcommand='command -options'

Om alle aliassen op uw systeem weer te geven, voert u de onderstaande opdracht uit:

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'

Om een nieuwe alias in Linux te maken, doorloopt u enkele onderstaande voorbeelden.

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

De aliassen die we hierboven hebben aangemaakt, werken echter slechts tijdelijk; wanneer het systeem opnieuw wordt opgestart, werken ze niet meer na de volgende keer opstarten. U kunt permanente aliassen instellen in uw .bashrc-bestand, zoals hieronder weergegeven.

Nadat je ze hebt toegevoegd, voer je de onderstaande opdracht uit om actief te worden.

source ~/.bashrc

3. Linux Shell gereserveerde woorden

Bij shell-programmeren worden woorden als als, dan, fi, voor, terwijl >, case, esac, else, totdat en vele andere zijn gereserveerde shell-woorden. Zoals de beschrijving aangeeft, hebben ze een gespecialiseerde betekenis voor de schaal.

Je kunt alle Linux-shell-trefwoorden weergeven met de opdracht type, zoals weergegeven:

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

Aanbevolen leesmateriaal: 10 Handige Linux Chaining Operators met praktische voorbeelden

4. Linux Shell-functies

Een shell-functie is een groep opdrachten die gezamenlijk binnen de huidige shell worden uitgevoerd. Functies helpen bij het uitvoeren van een specifieke taak in een shellscript. De conventionele vorm van het schrijven van shell-functies in een script is:

function_name() {
command1
command2
…….
}

Alternatief,

function function_name {
command1
command2
…….
}

Laten we eens kijken hoe u shell-functies schrijft in een script met de naam shell_functions.sh.

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

In plaats van de twee commando's: sudo apt update en sudo apt dist-upgrade vanaf de commandoregel uit te voeren, hebben we een eenvoudige shell-functie geschreven om de twee commando's als één commando uit te voeren commando, upgrade_system binnen een script.

Aanbevolen leesmateriaal: 5 Shell-scripts voor Linux-nieuwkomers die Shell-programmering leren

Sla het bestand op en maak het script daarna uitvoerbaar. Voer het ten slotte uit zoals hieronder:

chmod +x shell_functions.sh
./shell_functions.sh

5. Ingebouwde Linux Shell-opdrachten

Dit zijn Linux-opdrachten die in de shell zijn ingebouwd, dus je kunt ze niet vinden in het bestandssysteem. Deze omvatten pwd, cd, bg, alias, geschiedenis, type, bron, lezen, exit en vele andere.

Je kunt ingebouwde Linux-opdrachten weergeven of controleren met behulp van de type-opdracht, zoals weergegeven:

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

Meer informatie over het gebruik van ingebouwde Linux-opdrachten:

  1. 15 ‘pwd’-opdrachtvoorbeelden in Linux
  2. 15 ‘cd’-opdrachtvoorbeelden in Linux
  3. Leer de kracht van Linux ‘geschiedenis’ Commando

Conclusie

Als Linux-gebruiker is het altijd belangrijk om te weten welk type opdracht u uitvoert. Ik denk dat je, met de precieze en eenvoudig te begrijpen uitleg hierboven, inclusief een paar relevante illustraties, waarschijnlijk een goed begrip hebt van de verschillende categorieën Linux-opdrachten.

U kunt ook contact opnemen via het commentaargedeelte hieronder voor eventuele vragen of aanvullende ideeën die u ons wilt bieden.