Kuelewa Ainisho Tofauti za Amri za Shell na Matumizi Yake katika Linux


Linapokuja suala la kupata udhibiti kamili juu ya mfumo wako wa Linux, basi hakuna kitu kinachokaribia kiolesura cha mstari wa amri (CLI). Ili kuwa mtumiaji wa nguvu wa Linux, mtu lazima aelewe aina tofauti za amri za shell na njia zinazofaa za kuzitumia kutoka kwa terminal.

Katika Linux, kuna aina kadhaa za amri, na kwa mtumiaji mpya wa Linux, kujua maana ya amri tofauti huwezesha matumizi ya ufanisi na sahihi. Kwa hiyo, katika makala hii, tutapitia uainishaji mbalimbali wa amri za shell katika Linux.

Jambo moja muhimu kukumbuka ni kwamba kiolesura cha mstari wa amri ni tofauti na ganda, hutoa tu njia ya wewe kufikia ganda. Ganda, ambalo pia linaweza kupangwa basi huwezesha kuwasiliana na kernel kwa kutumia amri.

Uainishaji tofauti wa amri za Linux huanguka chini ya uainishaji ufuatao:

1. Utekelezaji wa Programu (Amri za Mfumo wa Faili)

Unapoendesha amri, Linux hutafuta saraka zilizohifadhiwa katika utofauti wa mazingira wa PATH kutoka kushoto kwenda kulia kwa ajili ya kutekelezwa kwa amri hiyo maalum.

Unaweza kuona saraka katika PATH kama ifuatavyo:

$ echo $PATH

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

Katika mpangilio ulio hapo juu, saraka /home/aaronkilik/bin itatafutwa kwanza ikifuatiwa na /usr/local/sbin na kadhalika, mpangilio ni muhimu katika utafutaji. mchakato.

Mifano ya amri za mfumo wa faili katika /usr/bin saraka:

$ 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. Lakabu za Linux

Hizi ni amri zilizofafanuliwa na mtumiaji, huundwa kwa kutumia ganda la pak amri iliyojengwa ndani, na ina amri zingine za ganda zilizo na chaguzi na hoja kadhaa. Mawazo ni kimsingi kutumia majina mapya na mafupi kwa amri ndefu.

Syntax ya kuunda lakabu ni kama ifuatavyo.

$ alias newcommand='command -options'

Ili kuorodhesha lakabu zote kwenye mfumo wako, toa amri ifuatayo:

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

Ili kuunda lakabu mpya katika Linux, pitia mifano iliyo hapa chini.

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

Hata hivyo, lakabu ambazo tumeunda hapo juu zinafanya kazi kwa muda tu, mfumo unapoanzishwa upya, hautafanya kazi baada ya boot inayofuata. Unaweza kuweka lakabu za kudumu katika faili yako ya .bashrc kama inavyoonyeshwa hapa chini.

Baada ya kuziongeza, endesha amri hapa chini ili kufanya kazi.

$ source ~/.bashrc

3. Linux Shell zimehifadhiwa Maneno

Katika upangaji wa ganda, maneno kama vile if, basi, fi, for, while, case, esac, else, mpaka na mengine mengi ni maneno yaliyohifadhiwa kwa shell. Kama maelezo yanavyomaanisha, yana maana maalum kwa ganda.

Unaweza kuorodhesha maneno yote ya ganda la Linux kwa kutumia type amri kama inavyoonyeshwa:

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

Kazi ya ganda ni kikundi cha amri ambazo hutekelezwa kwa pamoja ndani ya ganda la sasa. Kazi husaidia kutekeleza kazi maalum katika hati ya ganda. Njia ya kawaida ya uandishi wa kazi za ganda kwenye hati ni:

function_name() {
command1
command2
…….
}

Vinginevyo,

function function_name {
command1
command2
…….
}

Hebu tuangalie jinsi ya kuandika vitendaji vya ganda katika hati inayoitwa 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

Badala ya kutekeleza amri mbili: sasisho la sudo apt na sudo apt dist-upgrade kutoka kwa safu ya amri, tumeandika kazi rahisi ya ganda kutekeleza amri mbili kama moja. amri, upgrade_system ndani ya hati.

Hifadhi faili na baada ya hapo, fanya hati itekelezwe. Mwishowe iendeshe kama ilivyo hapo chini:

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

5. Maagizo ya Ndani ya Sheli ya Linux

Hizi ni amri za Linux zilizojengwa ndani ya ganda, kwa hivyo huwezi kuzipata ndani ya mfumo wa faili. Ni pamoja na pwd, cd, bg, alias, historia, aina, chanzo, kusoma, kuondoka na wengine wengi.

Unaweza kuorodhesha au kuangalia amri zilizojengewa ndani za Linux kwa kutumia type amri kama inavyoonyeshwa:

$ 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

Jifunze kuhusu matumizi ya Maagizo yaliyojengwa ndani ya Linux:

  1. Mifano 15 ya Amri za ‘pwd’ katika Linux
  2. Mifano 15 ya Amri za ‘cd’ katika Linux
  3. Jifunze Uwezo wa Amri ya 'historia' ya Linux

Hitimisho

Kama mtumiaji wa Linux, daima ni muhimu kujua aina ya amri unayoendesha. Ninaamini, kwa maelezo sahihi na rahisi kuelewa hapo juu ikijumuisha vielelezo vichache muhimu, labda una ufahamu mzuri wa kategoria mbali mbali za amri za Linux.

Unaweza pia kupata mgumu kupitia sehemu ya maoni hapa chini kwa maswali yoyote au maoni ya ziada ambayo ungependa kutupa.