Κατανόηση των διαφορετικών ταξινομήσεων των εντολών Shell και της χρήσης τους στο Linux


Όταν πρόκειται να αποκτήσετε τον απόλυτο έλεγχο του συστήματος Linux σας, τότε τίποτα δεν πλησιάζει τη διεπαφή γραμμής εντολών (CLI). Για να γίνει κάποιος δυναμικός χρήστης Linux, πρέπει να κατανοήσει τους διαφορετικούς τύπους εντολών φλοιού και τους κατάλληλους τρόπους χρήσης τους από το τερματικό.

Στο Linux, υπάρχουν διάφοροι τύποι εντολών και για έναν νέο χρήστη Linux, η γνώση της σημασίας των διαφορετικών εντολών επιτρέπει την αποτελεσματική και ακριβή χρήση. Επομένως, σε αυτό το άρθρο, θα περιηγηθούμε στις διάφορες ταξινομήσεις των εντολών φλοιού στο Linux.

Ένα σημαντικό πράγμα που πρέπει να σημειωθεί είναι ότι η διεπαφή της γραμμής εντολών είναι διαφορετική από το κέλυφος, παρέχει μόνο ένα μέσο για να έχετε πρόσβαση στο κέλυφος. Το κέλυφος, το οποίο είναι επίσης προγραμματιζόμενο, καθιστά δυνατή την επικοινωνία με τον πυρήνα χρησιμοποιώντας εντολές.

Οι διαφορετικές ταξινομήσεις εντολών Linux εμπίπτουν στις ακόλουθες ταξινομήσεις:

1. Εκτελέσιμα προγράμματα (εντολές συστήματος αρχείων)

Όταν εκτελείτε μια εντολή, το Linux πραγματοποιεί αναζήτηση στους καταλόγους που είναι αποθηκευμένοι στην περιβαλλοντική μεταβλητή PATH από αριστερά προς τα δεξιά για το εκτελέσιμο αρχείο της συγκεκριμένης εντολής.

Μπορείτε να δείτε τους καταλόγους στο PATH ως εξής:

$ echo $PATH

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

Στην παραπάνω σειρά, ο κατάλογος /home/aaronkilik/bin θα αναζητηθεί πρώτα και θα ακολουθηθεί από /usr/local/sbin και ούτω καθεξής, η σειρά είναι σημαντική στην αναζήτηση επεξεργάζομαι, διαδικασία.

Παραδείγματα εντολών συστήματος αρχείων στον κατάλογο /usr/bin:

$ 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

Αυτές είναι εντολές που ορίζονται από το χρήστη, δημιουργούνται χρησιμοποιώντας την ενσωματωμένη εντολή ψευδώνυμο και περιέχουν άλλες εντολές φλοιού με ορισμένες επιλογές και ορίσματα. Η ιδέα είναι να χρησιμοποιείτε βασικά νέα και σύντομα ονόματα για μεγάλες εντολές.

Η σύνταξη για τη δημιουργία ενός ψευδώνυμου είναι η εξής:

$ alias newcommand='command -options'

Για να παραθέσετε όλα τα ψευδώνυμο στο σύστημά σας, εκδώστε την παρακάτω εντολή:

$ 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, διαβάστε μερικά παρακάτω παραδείγματα.

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

Ωστόσο, τα ψευδώνυμα που δημιουργήσαμε παραπάνω λειτουργούν μόνο προσωρινά, όταν το σύστημα επανεκκινηθεί, δεν θα λειτουργήσουν μετά την επόμενη εκκίνηση. Μπορείτε να ορίσετε μόνιμα ψευδώνυμα στο αρχείο σας .bashrc όπως φαίνεται παρακάτω.

Αφού τα προσθέσετε, εκτελέστε την παρακάτω εντολή για ενεργή.

$ source ~/.bashrc

3. Linux Shell Reserved Words

Στον προγραμματισμό φλοιού, λέξεις όπως αν, τότε, fi, για, ενώ >, υπόθεση, esac, άλλο, έως και πολλές άλλες είναι δεσμευμένες λέξεις με κέλυφος. Όπως υπονοεί η περιγραφή, έχουν εξειδικευμένη σημασία στο κέλυφος.

Μπορείτε να απαριθμήσετε όλες τις λέξεις-κλειδιά του κελύφους Linux χρησιμοποιώντας την εντολή type όπως φαίνεται:

$ 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

Μια συνάρτηση φλοιού είναι μια ομάδα εντολών που εκτελούνται συλλογικά εντός του τρέχοντος φλοιού. Οι συναρτήσεις βοηθούν στην εκτέλεση μιας συγκεκριμένης εργασίας σε ένα σενάριο φλοιού. Η συμβατική μορφή γραφής λειτουργιών φλοιού σε ένα σενάριο είναι:

function_name() {
command1
command2
…….
}

Εναλλακτικά,

function function_name {
command1
command2
…….
}

Ας ρίξουμε μια ματιά στον τρόπο εγγραφής συναρτήσεων φλοιού σε ένα σενάριο που ονομάζεται 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

Αντί να εκτελέσουμε τις δύο εντολές: sudo apt update και sudo apt dist-upgrade από τη γραμμή εντολών, έχουμε γράψει μια απλή συνάρτηση φλοιού για την εκτέλεση των δύο εντολών ως μία εντολή, upgrade_system μέσα σε ένα σενάριο.

Αποθηκεύστε το αρχείο και στη συνέχεια, κάντε το σενάριο εκτελέσιμο. Τέλος εκτελέστε το ως εξής:

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

5. Ενσωματωμένες εντολές Linux Shell

Αυτές είναι εντολές Linux που είναι ενσωματωμένες στο κέλυφος, επομένως δεν μπορείτε να τις βρείτε μέσα στο σύστημα αρχείων. Περιλαμβάνουν pwd, cd, bg, ψευδώνυμο, ιστορικό, πληκτρολογήστε, πηγή, ανάγνωση, έξοδος και πολλά άλλα.

Μπορείτε να παραθέσετε ή να ελέγξετε τις ενσωματωμένες εντολές Linux χρησιμοποιώντας την εντολή type όπως φαίνεται:

$ 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

Μάθετε για ορισμένες ενσωματωμένες εντολές Linux:

  1. 15 Παραδείγματα εντολών pwd στο Linux
  2. 15 Παραδείγματα εντολών «cd» στο Linux
  3. Μάθετε την Εντολή Ιστορίας της δύναμης του Linux

συμπέρασμα

Ως χρήστης Linux, είναι πάντα σημαντικό να γνωρίζετε τον τύπο της εντολής που εκτελείτε. Πιστεύω ότι, με την ακριβή και κατανοητή εξήγηση παραπάνω που περιλαμβάνει μερικές σχετικές απεικονίσεις, πιθανότατα έχετε καλή κατανόηση των διαφόρων κατηγοριών εντολών Linux.

Μπορείτε επίσης να έρθετε σε δύσκολη θέση μέσω της ενότητας σχολίων παρακάτω για τυχόν ερωτήσεις ή συμπληρωματικές ιδέες που θα θέλατε να μας προσφέρετε.