“Shell” buýruklarynyň dürli klassifikasiýalaryna we olaryň Linux-da ulanylyşyna düşünmek


Linux ulgamyňyza doly gözegçilik etmek barada aýdylanda, buýruk setiriniň interfeýsine (CLI) hiç zat ýakynlaşmaýar. Linux güýç ulanyjysy bolmak üçin gabyk buýruklarynyň dürli görnüşlerine we terminaldan ulanmagyň degişli usullaryna düşünmeli.

Linux-da buýruklaryň birnäçe görnüşi bar we täze Linux ulanyjysy üçin dürli buýruklaryň manysyny bilmek netijeli we takyk ulanmaga mümkinçilik berýär. Şonuň üçin bu makalada Linux-daky gabyk buýruklarynyň dürli klassifikasiýalaryna geçeris.

Bellemeli möhüm bir zat, buýruk setiriniň interfeýsi gabykdan tapawutlanýar, diňe gabyga girmek üçin serişdeleri üpjün edýär. Programmirläp bolýan gabyk, soňra buýruklary ulanyp, ýadro bilen aragatnaşyk saklamaga mümkinçilik berýär.

Linux buýruklarynyň dürli klassifikasiýalary aşakdaky klassifikasiýalara degişlidir:

1. Programmanyň ýerine ýetirilişi (Faýl ulgamynyň buýruklary)

Buýruk işledeniňizde, Linux şol buýrugyň ýerine ýetirilmegi üçin çepden saga PATH daşky gurşaw üýtgeýjisinde saklanýan kataloglary gözleýär.

Kataloglary PATH aşakdaky ýaly görüp bilersiňiz:

$ echo $PATH

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

Aboveokardaky tertipde ilki bilen /home/aaronkilik/bin katalogy gözlener, soň bolsa /usr/local/sbin we ş.m. gözlegde buýruk möhümdir prosesi.

Faýl ulgamy buýruklarynyň mysallary /usr/bin katalogynda:

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

Bular ulanyjy kesgitlän buýruklar, lakamly gabyň içindäki buýrugy ulanyp döredilýär we käbir opsiýalar we argumentler bilen beýleki gabyk buýruklaryny öz içine alýar. Pikirler, uzyn buýruklar üçin esasan täze we gysga atlary ulanmak.

Lakam döretmek üçin sintaksis aşakdaky ýaly:

$ alias newcommand='command -options'

Ulgamyňyzdaky ähli lakamlary sanamak üçin aşakdaky buýrugy beriň:

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

Linux-da täze lakam döretmek üçin aşakdaky käbir mysallara geçiň.

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

Şeýle-de bolsa, ýokarda döreden lakamlarymyz diňe wagtlaýyn işleýär, ulgam täzeden açylanda indiki ýüklemeden soň işlemez. Aşakda görkezilişi ýaly .bashrc faýlyňyzda hemişelik lakamlary düzüp bilersiňiz.

Olary goşanyňyzdan soň aşakdaky buýrugy işjeňleşdiriň.

$ source ~/.bashrc

3. Linux Shell ätiýaçlandyrylan sözler

Gabyk programmirlemesinde, eger, soň, fi, ýaly, sözler, esac we başgalar, we beýlekiler gabykda saklanýan sözler bolýança. Düşündirişden görnüşi ýaly, olaryň gabygy üçin ýöriteleşdirilen manysy bar.

Görkezilişi ýaly görnüşi buýrugyny ulanyp, Linux gabyk açar sözleriniň hemmesini sanap bilersiňiz:

$ 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 gabyk funksiýalary

Gabyk funksiýasy, häzirki gabygyň içinde bilelikde ýerine ýetirilýän buýruklar toparydyr. Funksiýalar gabyk skriptinde belli bir işi ýerine ýetirmäge kömek edýär. Scriptazgyda gabyk funksiýalaryny ýazmagyň adaty görnüşi:

function_name() {
command1
command2
…….
}

Ativea-da bolmasa,

function function_name {
command1
command2
…….
}

Geliň, shell_functions.sh atly skriptde gabyk funksiýalaryny nädip ýazmalydygyna göz aýlalyň.

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

Iki buýrugy ýerine ýetirmegiň ýerine: sudo apt update we sudo apt dist-upgrade buýruk setirinden iki buýrugy ýeke-täk ýerine ýetirmek üçin ýönekeý gabyk funksiýasyny ýazdyk. skriptiň içinde upgrade_system buýrugy.

Faýly ýazdyryň we şondan soň skripti ýerine ýetirip bilersiňiz. Ahyrynda ony aşakdaky ýaly işlediň:

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

5. Linux Shell gurlan buýruklar

Bular gabygyň içine gurlan Linux buýruklary, şonuň üçin olary faýl ulgamynyň içinde tapyp bilmersiňiz. Olara pwd, cd, bg, lakam, taryh, görnüş, çeşme, okamak, çykmak we başgalar girýär.

Görkezilişi ýaly görnüşi buýrugyny ulanyp, Linux gurlan buýruklary sanap ýa-da barlap bilersiňiz:

$ 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

Gurlan buýruklaryň ulanylyşy barada öwreniň:

  1. Linux-da 15 pwd buýruk mysallary
  2. Linux-da 15 cd buýruk mysallary
  3. Linux “taryh” buýrugynyň güýjüni öwreniň

Netije

Linux ulanyjysy hökmünde işleýän buýrugyňyzyň görnüşini bilmek hemişe möhümdir. Aboveokardaky takyk we ýönekeý düşünmek bilen birnäçe degişli suratlary goşmak bilen, Linux buýruklarynyň dürli kategoriýalaryna gowy düşünýän bolsaňyz gerek.

Şeýle hem, bize hödürlemek isleýän soraglaryňyz ýa-da goşmaça pikirleriňiz üçin aşakdaky teswirler bölüminiň üsti bilen kynçylyk çekip bilersiňiz.