20 εντολές Linux για διαχειριστή συστήματος

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

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

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

Το όνομα σου

Χρησιμοποιήστε την εντολή uname με τη σημαία -a για να εκτυπώσετε πληροφορίες συστήματος. Αυτή η εντολή θα σας δείξει το όνομα του πυρήνα, την έκδοση του πυρήνα, την έκδοση του πυρήνα, το όνομα κεντρικού υπολογιστή, τον τύπο επεξεργαστή και τις πληροφορίες της πλατφόρμας υλικού σας.

[email protected]:~$ uname -a
Linux ubuntu18 5.3.0-1028-azure #29~18.04.1-Ubuntu SMP Fri Jun 5 14:32:34 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Να τι σημαίνει αυτό:

kernel name:Linux 
hostname: ubuntu18 
kernel release: 5.3.0-1028-azure 
kernel version: #29~18.04.1-Ubuntu SMP Fri Jun 5 14:32:34 UTC 2020 
machine hardware name: x86_64 
processor: x86_64 
hardware-platform: x86_64 
operating system: GNU/Linux

df

Χρησιμοποιήστε την εντολή df για να επαληθεύσετε το μέγεθος του συστήματος αρχείων και τον διαθέσιμο χώρο. Αυτή η εντολή που χρησιμοποιείται από μόνη της εμφανίζει έξοδο σε μπλοκ 1K.

[email protected]:~$ df 
Filesystem     1K-blocks    Used Available Use% Mounted on
udev              437208       0    437208   0% /dev
tmpfs              91100     692     90408   1% /run
/dev/sda1       30309264 2383952  27908928   8% /
....

Η επιλογή -h εμφανίζει την έξοδο σε μορφή αναγνώσιμη από τον άνθρωπο, δηλαδή σε MB και GB.

[email protected]:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            427M     0  427M   0% /dev
tmpfs            89M  692K   89M   1% /run
/dev/sda1        29G  2.3G   27G   8% /
tmpfs           445M     0  445M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           445M     0  445M   0% /sys/fs/cgroup
/dev/sda15      105M  3.6M  101M   4% /boot/efi
/dev/sdb1       3.9G   16M  3.7G   1% /mnt
tmpfs            89M     0   89M   0% /run/user/1001 

Για να αγνοήσετε οποιοδήποτε σύστημα αρχείων, για παράδειγμα, tmpfs, δηλαδή για καθαρότερη έξοδο, χρησιμοποιήστε το flag -x

[email protected]:~$ df -h -x tmpfs
Filesystem      Size  Used Avail Use% Mounted on
udev            427M     0  427M   0% /dev
/dev/sda1        29G  2.3G   27G   8% /
/dev/sda15      105M  3.6M  101M   4% /boot/efi
/dev/sdb1       3.9G   16M  3.7G   1% /mnt

Για να παραθέσετε μόνο έναν συγκεκριμένο τύπο συστήματος αρχείων, χρησιμοποιήστε τη σημαία -t. για παράδειγμα, για να δείτε μόνο το σύστημα αρχείων ext4:

[email protected]:~$ df -h -t ext4
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        29G  2.3G   27G   8% /
/dev/sdb1       3.9G   16M  3.7G   1% /mnt

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

[email protected]:~$ df -h -t ext4 --total
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        29G  2.3G   27G   8% /
/dev/sdb1       3.9G   16M  3.7G   1% /mnt
<b>total            33G  2.3G   31G   8% -</b>

du

Για να ελέγξετε τη χρήση του χώρου στο δίσκο σε έναν κατάλογο, χρησιμοποιήστε την εντολή du. Για παράδειγμα, για να δείτε τη χρήση του χώρου στο δίσκο στον κατάλογο /var/log. Χρησιμοποιήστε τη σημαία -h για μορφή αναγνώσιμη από τον άνθρωπο.

[email protected]:~$ sudo du -h /var/log
24K	/var/log/Microsoft/Azure/NetworkWatcherAgent/Logs
28K	/var/log/Microsoft/Azure/NetworkWatcherAgent
32K	/var/log/Microsoft/Azure
36K	/var/log/Microsoft
60K	/var/log/apt
4.0K	/var/log/samba
177M	/var/log/journal/0f4f926f583b4691af7de11025b19ff6
177M	/var/log/journal
...
204M	/var/log

Για να δείτε μόνο τη συνολική χρήση, χρησιμοποιήστε τη σημαία -s (σύνοψη).

[email protected]:~$ sudo du -hs /var/log
204M	/var/log

Ελεύθερος

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

[email protected]:~$ free -h
              total        used        free      shared  buff/cache   available
Mem:           889M        272M        100M        712K        517M        443M
Swap:            0B          0B          0B
total - Total installed memory (memtotal + swaptotal)
used - used memory
free - unused memory (memfree + swapfree)
buffers - memory used by kernel buffers
cache - memory used by page caches
buff/cache - sum of buffers and cache
available - Estimated memory available for starting new applications, without swapping

ΥΣΤΕΡΟΓΡΑΦΟ

Χρησιμοποιήστε το ps για να εμφανίσετε πληροφορίες κατάστασης σχετικά με διεργασίες που εκτελούνται στο σύστημα. Για να δείτε όλες τις διεργασίες που ανήκουν στον χρήστη ubuntu, χρησιμοποιήστε τη σημαία -u με το όνομα χρήστη:

[email protected]:~$ ps -u ubuntu
   PID TTY          TIME CMD
  7804 ?        00:00:00 systemd
  7805 ?        00:00:00 (sd-pam)
  7940 ?        00:00:00 sshd
  7941 pts/0    00:00:00 bash
  8111 ?        00:00:00 sshd
  8112 pts/1    00:00:00 bash
 13868 ?        00:00:00 sshd
 13869 pts/2    00:00:00 bash
 13885 pts/0    00:00:00 man
 13895 pts/0    00:00:00 pager
 18111 pts/2    00:00:00 man
 18121 pts/2    00:00:00 pager
 18485 pts/1    00:00:00 ps

Για να δείτε όλες τις διεργασίες εκτελέστε το ps με σημαίες aux:

[email protected]:~$ ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.7 160076  7020 ?        Ss   Jun29   0:34 /sbin/init
root          2  0.0  0.0      0     0 ?        S    Jun29   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        I<   Jun29   0:00 [rcu_gp]
root          4  0.0  0.0      0     0 ?        I<   Jun29   0:00 [rcu_par_gp]
root          6  0.0  0.0      0     0 ?        I<   Jun29   0:00 [kworker/0:0H-kb]
....

όπου

Επικεφαλίδα
Εννοια
PID
Αριθμός Αναγνώρισης Διεργασίας
%ΕΠΕΞΕΡΓΑΣΤΗΣ
Ποσοστό του χρόνου CPU που χρησιμοποιεί η διαδικασία
%MEM
Ποσοστό της διαδικασίας RAM που χρησιμοποιείται
VSZ
Εικονική μνήμη που χρησιμοποιείται σε KB
RSS
Φυσική μνήμη που χρησιμοποιεί η διαδικασία σε KB
TTY
Τερματικό που σχετίζεται με τη διαδικασία
STAT
R – Εκτελείται ή έτοιμο για εκτέλεση, S – Sleeping, I – Idle, T – Stop, Z – Zombie, D – Waiting for Disk I/O, X – Dead, W – Swapped out, N – Διαδικασία χαμηλής προτεραιότητας, < – Διαδικασία υψηλής προτεραιότητας

μπλουζα

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

Η έξοδος της κορυφαίας εντολής αποτελείται από δύο κύρια μέρη: τη σύνοψη συστήματος στο επάνω μέρος και τον πίνακα διεργασιών ταξινομημένων κατά δραστηριότητα της CPU.

top - 14:25:32 up 44 days, 11:37,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 114 total,   1 running,  59 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   910992 total,   101208 free,   274712 used,   535072 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   458492 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND    
 50497 ubuntu    20   0   44528   3944   3368 R  0.7  0.4   0:00.15 top        
     1 root      20   0  160076   7020   4400 S  0.0  0.8   0:34.85 systemd    
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.08 kthreadd   
     3 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 rcu_gp     
     4 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 rcu_par_gp 
     6 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 kworker/0:+
     9 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 mm_percpu_+

Μερικά από τα πεδία στη σύνοψη συστήματος είναι τα εξής:

  Πώς να δημιουργήσετε αντίγραφα ασφαλείας του υπολογιστή σας Linux με το BackInTime

πάνω
Χρόνος λειτουργίας. Χρόνος από την τελευταία εκκίνηση του μηχανήματος.
μέσο φορτίο
Ο μέσος όρος φορτίου αναφέρεται στον αριθμό των διεργασιών που περιμένουν να εκτελεστούν, η τιμή μικρότερη από 1,0 σημαίνει ότι το μηχάνημα δεν είναι απασχολημένο. Υπάρχουν 3 τιμές. Ο πρώτος είναι ο μέσος όρος των τελευταίων 60 δευτερολέπτων, ο δεύτερος ο μέσος όρος των τελευταίων 5 λεπτών και ο τρίτος είναι ο μέσος όρος των τελευταίων 15 λεπτών.
%CPU(s)

Αυτή η σειρά περιγράφει τις δραστηριότητες της CPU.
0,3 us, χρήστης
Το 0,3% CPU χρησιμοποιείται για διεργασίες χρήστη.
0.0 sy, σύστημα
Το 0,0% CPU χρησιμοποιείται για διεργασίες συστήματος.
0,0 ni, ωραία
Το 0,0% CPU χρησιμοποιείται από διαδικασίες χαμηλής προτεραιότητας (ωραίες).
99,7 id, idle
Το 99,7% της CPU είναι σε αδράνεια
0,0 wa, IO-αναμονή
Το 0,0% CPU περιμένει για I/O
0,0 γεια
χρόνος που αφιερώνεται σε διακοπές υλικού
0,0 si
χρόνος που αφιερώνεται σε διακοπές λογισμικού
0,0 st
χρονική πέτρα από αυτό το VM από τον hypervisor

Τα πεδία του πίνακα διεργασιών είναι τα εξής:

PID
Αριθμός Αναγνώρισης Διεργασίας
ΧΡΗΣΤΗΣ
Κάτοχος διαδικασίας
PR
Προτεραιότητα
NI
Ωραία τιμή
VIRT
Εικονική μνήμη που χρησιμοποιείται από τη διεργασία (KB)
ΑΠΕ
Φυσική μνήμη που χρησιμοποιείται από τη διαδικασία
SHR
Κοινόχρηστη μνήμη που χρησιμοποιείται από τη διαδικασία
μικρό
Κατάσταση διαδικασίας. R – Running, S – sleeping, I – Idle, T – stop, Z – zombie, D – αναμονή για είσοδο/έξοδο δίσκου, W- αντικαταστάθηκε, X – νεκρό
%ΕΠΕΞΕΡΓΑΣΤΗΣ
Η διαδικασία χρόνου CPU χρησιμοποιείται σε ποσοστό
%MEM
Η διαδικασία φυσικής μνήμης χρησιμοποιείται
ΧΡΟΝΟΣ[+]
Συνολικός χρόνος CPU που χρησιμοποιείται από τη διαδικασία
ΕΝΤΟΛΗ
Όνομα του προγράμματος

Ενώ εκτελείται η κορυφή, μπορείτε να εκδώσετε έναν αριθμό εντολών. Πατήστε h ή ? για να δείτε εντολές που μπορούν να εκτελεστούν ενώ εκτελείται η κορυφή. Πατήστε k για να σκοτώσετε μια διαδικασία. Πατήστε q για να βγείτε από την κορυφή.

σκάβω

Το dig είναι ένα εξαιρετικό εργαλείο για ερωτήματα DNS. Χρησιμοποιείται ως εξής:

dig <DNS server> <domain> <query-type>

όπου

  • <Διακομιστής DNS> είναι το όνομα διακομιστή DNS που θέλετε να υποβάλετε ερώτημα
  • Το είναι το όνομα τομέα για το οποίο θέλετε να ρωτήσετε
  • είναι το όνομα της εγγραφής που θέλετε να γνωρίζετε – A, MX, NS SOA, κ.λπ.

Για να καταστείλετε την αναλυτική έξοδο, χρησιμοποιήστε +σύντομη σημαία.

Για να δείτε μια εγγραφή για το google.com χρησιμοποιήστε:

[email protected]:~$ dig google.com +short
172.217.164.174

Για να δείτε εγγραφές MX για το google.com χρησιμοποιήστε:

[email protected]:~$ dig google.com MX  +short
50 alt4.aspmx.l.google.com.
10 aspmx.l.google.com.
20 alt1.aspmx.l.google.com.
40 alt3.aspmx.l.google.com.
30 alt2.aspmx.l.google.com.

Εάν πρέπει να υποβάλετε ερωτήματα για εγγραφές DNS στο Διαδίκτυο, μπορείτε να χρησιμοποιήσετε το εργαλείο αναζήτησης DNS.

ποιος και w

που εμφανίζει χρήστες που είναι συνδεδεμένοι.

[email protected]:~$ who
ubuntu   pts/0        2020-08-14 17:28 (183.83.211.129)
ubuntu   pts/1        2020-08-14 17:58 (183.83.211.129)

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

[email protected]:~$ w
 18:07:33 up 46 days, 15:19,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             [email protected]   IDLE   JCPU   PCPU WHAT
ubuntu   pts/0    183.83.211.129   17:28    2.00s  0.10s  0.00s w
ubuntu   pts/1    183.83.211.129   17:58    9:07   0.05s  0.01s vi

Το επόμενο μέρος δείχνει τα ονόματα χρήστη, το τερματικό και την απομακρυσμένη IP από την οποία έχουν συνδεθεί, τον χρόνο σύνδεσης, τον χρόνο αδράνειας, το JCPU, το PCPU και το πρόγραμμα που εκτελούν. Το JCPU είναι ο χρόνος που χρησιμοποιείται από όλες τις διεργασίες που συνδέονται με το tty ενώ το PCPU είναι ο χρόνος που χρησιμοποιείται από την τρέχουσα διεργασία.

πίσσα

Με το GNU tar μπορείτε να αρχειοθετήσετε πολλά αρχεία σε ένα μόνο αρχείο.

Για παράδειγμα, δημιουργήστε έναν κατάλογο myfiles και τρία αρχεία a.txt, b.txt, c.txt στον κατάλογο myfiles:

[email protected]:~$ mkdir myfiles ; touch myfiles/{a.txt,b.txt,c.txt}

Τώρα για να δημιουργήσετε ένα αρχείο με το όνομα allfiles.tar που περιέχει όλα τα αρχεία στον κατάλογο myfiles:

[email protected]:~$ tar -cvf allfiles.tar myfiles
myfiles/
myfiles/c.txt
myfiles/a.txt
myfiles/b.txt

Καταχωρίστε όλα τα αρχεία στον τρέχοντα κατάλογο. Μπορείτε να δείτε τον κατάλογο myfiles και το αρχείο allfiles.tar:

[email protected]:~$ ls
allfiles.tar  myfiles

Μπορείτε να αποσυσκευάσετε ένα αρχείο με σημαία -x. Έτσι, για να αποσυμπιέσετε το allfiles.tar:

[email protected]:~$ tar -xvf allfiles.tar
myfiles/
myfiles/c.txt
myfiles/a.txt
myfiles/b.txt

Μπορείτε επίσης να συμπιέσετε αυτό το αρχείο με σημαία -z. Αυτό θα δημιουργούσε ένα αρχείο συμπιεσμένο με gzip.

[email protected]:~$ tar -zcvf allfiles.tar.gz myfiles
myfiles/
myfiles/c.txt
myfiles/a.txt
myfiles/b.txt
[email protected]:~$ ls
allfiles.tar.gz  myfiles

Για να αποσυσκευάσετε ένα συμπιεσμένο αρχείο χρησιμοποιήστε -z με σημαία -x.

[email protected]:~$ tar -zxvf allfiles.tar.gz 
myfiles/
myfiles/c.txt
myfiles/a.txt
myfiles/b.txt

grep

Το grep χρησιμοποιείται για την αναζήτηση ενός μοτίβου σε ένα αρχείο ή ενός συνόλου αρχείων. Εκτυπώνει όλες τις γραμμές που ταιριάζουν με αυτό το μοτίβο. Για παράδειγμα, για να αναζητήσετε τη γραμμή που περιέχει το “ServerRoot” στο /etc/apache2/apache2.conf:

[email protected]:~$ grep ServerRoot /etc/apache2/apache2.conf 
# ServerRoot: The top of the directory tree under which the server's
#ServerRoot "/etc/apache2"

Για αναζήτηση σε όλα τα αρχεία ενός καταλόγου χρησιμοποιήστε το *. Για να συμπεριλάβετε την αναζήτηση σε υποκαταλόγους χρησιμοποιήστε τη σημαία -r (αναδρομική). Έτσι, για να αναζητήσετε όλες τις γραμμές που περιέχουν το μοτίβο “VirtualHost” σε όλα τα αρχεία στο /etc/apache2:

[email protected]:~$ cd /etc/apache2
[email protected]:/etc/apache2$ grep -r VirtualHost *
apache2.conf:# If you do not specify an ErrorLog directive within a <VirtualHost>
apache2.conf:# logged here.  If you *do* define an error logfile for a <VirtualHost>
conf-available/localized-error-pages.conf:# even on a per-VirtualHost basis.  If you include the Alias in the global server
conf-available/other-vhosts-access-log.conf:# Define an access log for VirtualHosts that don't define their own logfile
ports.conf:# have to change the VirtualHost statement in
sites-available/000-default.conf:<VirtualHost *:80>
...

rsync

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

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

Εδώ είναι ένα παράδειγμα:

Για να αντιγράψετε/συγχρονίσετε όλα τα αρχεία από τον κατάλογο myfiles στον κατάλογο αντιγράφων ασφαλείας:

[email protected]:~$ rsync -avh myfiles/ /backups
sending incremental file list
./
a.txt
b.txt
c.txt

sent 218 bytes  received 76 bytes  588.00 bytes/sec
total size is 0  speedup is 0.00

Για να συγχρονίσετε όλα τα αρχεία από τον κατάλογο myfiles στον κατάλογο αντιγράφων ασφαλείας σε έναν απομακρυσμένο κεντρικό υπολογιστή, συμπεριλάβετε το remote_user @remote_host στο όνομα προορισμού. Έτσι, για να συγχρονίσετε το φάκελο myfiles σε έναν απομακρυσμένο κεντρικό υπολογιστή με IP 10.0.0.50:

[email protected]:~$ rsync -avh myfiles/ [email protected]:/home/vagrant
[email protected]'s password: 
sending incremental file list
./
a.txt
b.txt
c.txt

sent 230 bytes  received 76 bytes  47.08 bytes/sec
total size is 0  speedup is 0.00

σσ

Η εντολή ss χρησιμοποιείται για την απόρριψη στατιστικών στοιχείων υποδοχής, παρόμοια με το βοηθητικό πρόγραμμα παλαιού τύπου netstat. Για να εμφανίσετε υποδοχές TCP χρησιμοποιήστε τη σημαία -t.

[email protected]:~$ ss -t 
State       Recv-Q        Send-Q                 Local Address:Port                     Peer Address:Port         
ESTAB       0             0                           10.0.0.4:53852                   168.63.129.16:8037         
ESTAB       0             0                           10.0.0.4:ssh                    183.83.211.129:64118        
ESTAB       0             0                           10.0.0.4:33256                 169.254.169.254:http         
ESTAB       0             1080                        10.0.0.4:ssh                     222.186.30.35:11527        
ESTAB       0             0                           10.0.0.4:ssh                    183.83.211.129:63049

Αυτό δεν θα εμφανίζει υποδοχές που ακούν. Για να συμπεριλάβετε υποδοχές ακρόασης και μη, χρησιμοποιήστε σημαίες -t και -a.

[email protected]:~$ ss -t -a 
State        Recv-Q        Send-Q                Local Address:Port                     Peer Address:Port         
LISTEN       0             128                         0.0.0.0:ssh                           0.0.0.0:*            
LISTEN       0             80                        127.0.0.1:mysql                         0.0.0.0:*            
LISTEN       0             128                   127.0.0.53%lo:domain                        0.0.0.0:*            
ESTAB        0             0                          10.0.0.4:53852                   168.63.129.16:8037         
ESTAB        0             0                          10.0.0.4:ssh                    183.83.211.129:64118        
ESTAB        0             0                          10.0.0.4:33256                 169.254.169.254:http         
ESTAB        0             1080                       10.0.0.4:ssh                     222.186.30.35:11527        
ESTAB        0             120                        10.0.0.4:ssh                    183.83.211.129:63049        
LISTEN       0             128                            [::]:ssh                              [::]:*            
LISTEN       0             128                               *:http                                *:*

εγκατάσταση

Η εντολή εντοπισμού χρησιμοποιεί μια βάση δεδομένων για την αναζήτηση αρχείων και στην πραγματικότητα μπορεί να είναι πολύ πιο γρήγορη από την εντολή εύρεσης. Πολύ απλό στη χρήση, για να αναζητήσετε ένα αρχείο, ας πούμε, apache2.conf:

[email protected]:~$ locate apache2.conf
/etc/apache2/apache2.conf
/var/lib/dpkg/info/apache2.conffiles

Μπορείτε να χρησιμοποιήσετε τη σημαία -c εάν θέλετε μόνο τον αριθμό των αρχείων που ταιριάζουν με το μοτίβο αναζήτησης.

[email protected]:~$ locate -c apache2.conf
2

Κατά καιρούς, μπορεί να χρειαστεί να ανανεώσετε τη βάση δεδομένων που χρησιμοποιείται από το locate, που είναι το mlocate. Για να ενημερώσετε τη βάση δεδομένων χρησιμοποιήστε την εντολή updatedb. Αυτό θα χρειαζόταν δικαιώματα υπερχρήστη.

[email protected]:~$ sudo updatedb

εύρημα

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

Για να αναζητήσετε ένα αρχείο με όνομα στον τρέχοντα κατάλογο, χρησιμοποιήστε τη σημαία -name ακολουθούμενη από το όνομα αρχείου για αναζήτηση.:

[email protected]:~$ find . -name a.txt
./myfiles/a.txt

Για να αναζητήσετε καταλόγους, χρησιμοποιήστε τη σημαία -type d:

[email protected]:~$ find . -type d
.
./.ssh
./myfiles
./.cache
./.gnupg
./.gnupg/private-keys-v1.d
./docker

Για να αναζητήσετε αρχεία κατά μέγεθος, ας πούμε αρχεία μεγαλύτερα από 20 MB, χρησιμοποιήστε τη σημαία -size:

[email protected]:~$ find . -size +20M
./docker/docker-ce-cli_5%3a19.03.12~3-0~ubuntu-bionic_amd64.deb
./docker/docker-ce_5%3a19.03.12~3-0~ubuntu-bionic_amd64.deb

systemctl

Τώρα που το systemd έχει αντικαταστήσει τη διαδικασία έναρξης SysV στις περισσότερες διανομές Linux, χρησιμοποιήστε την εντολή systemctl για να διαχειριστείτε τις υπηρεσίες και τις μονάδες του συστήματος.

Για να ξεκινήσετε μια υπηρεσία, για παράδειγμα apache2:

[email protected]:~$ sudo systemctl start apache2.service

Μπορείτε να αφήσετε το επίθημα υπηρεσίας.

Για να διακόψετε μια υπηρεσία:

[email protected]:~$ sudo systemctl stop apache2

Για να δείτε την κατάσταση της υπηρεσίας, χρησιμοποιήστε την εντολή systemctl status. Το ακόλουθο παράδειγμα δείχνει την κατάσταση του apache2 ενώ εκτελείται:

[email protected]:~$ sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Wed 2020-08-19 11:34:04 UTC; 2s ago
  Process: 25346 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS)
  Process: 18202 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
  Process: 25536 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
 Main PID: 25555 (apache2)
    Tasks: 55 (limit: 1024)
   CGroup: /system.slice/apache2.service
           ├─25555 /usr/sbin/apache2 -k start
           ├─25558 /usr/sbin/apache2 -k start
           └─25559 /usr/sbin/apache2 -k start

Aug 19 11:34:04 ubuntu18 systemd[1]: Starting The Apache HTTP Server...
Aug 19 11:34:04 ubuntu18 systemd[1]: Started The Apache HTTP Server.

εντολή ufw

UFW – το απλό τείχος προστασίας είναι ένα εύκολο στη χρήση frontend για iptables. Είναι διαθέσιμο από προεπιλογή, σε διανομές που βασίζονται στο Ubuntu. Στο CentOS, μπορείτε να εγκαταστήσετε το ufw από το αποθετήριο EPEL.

Για να ενεργοποιήσετε το ufw:

$ sudo ufw enable

Ελέγξτε την κατάσταση του τείχους προστασίας με την κατάσταση ufw:

$ sudo ufw status
Status: active

Οι προεπιλεγμένες πολιτικές UFW επιτρέπουν όλη την εξερχόμενη κίνηση και αποκλείουν όλη την εισερχόμενη κυκλοφορία.

Η ακόλουθη εντολή επιτρέπει την εισερχόμενη κίνηση στη θύρα HTTP:

$ sudo ufw allow http
Rule added
Rule added (v6)

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

$ sudo ufw deny 21
Rule added
Rule added (v6)

journalctl

Χρησιμοποιήστε το journalctl για να προβάλετε αρχεία καταγραφής που συλλέγονται από το systemd. Το systemd συλλέγει αρχεία καταγραφής σε μια κεντρική τοποθεσία σε δυαδική μορφή. Για να δείτε αυτά τα αρχεία καταγραφής:

[email protected]:~$ sudo journalctl
-- Logs begin at Mon 2020-06-29 02:48:31 UTC, end at Wed 2020-08-19 15:07:59 UTC. --
Jun 29 02:48:31 ubuntu kernel: Linux version 5.3.0-1028-azure ([email protected]) (gcc version 7.5.0 (Ubuntu
Jun 29 02:48:31 ubuntu kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-5.3.0-1028-azure root=UUID=b0dd9d06-536e-41
Jun 29 02:48:31 ubuntu kernel: KERNEL supported cpus:
Jun 29 02:48:31 ubuntu kernel:   Intel GenuineIntel
...

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

[email protected]:~$ sudo journalctl -r
-- Logs begin at Mon 2020-06-29 02:48:31 UTC, end at Wed 2020-08-19 15:10:16 UTC. --
Aug 19 15:10:16 ubuntu18 sudo[31263]: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0)
Aug 19 15:10:16 ubuntu18 sudo[31263]:   ubuntu : TTY=pts/1 ; PWD=/home/ubuntu ; USER=root ; COMMAND=/bin/journalc
Aug 19 15:10:11 ubuntu18 sudo[31213]: pam_unix(sudo:session): session closed for user root
Aug 19 15:07:59 ubuntu18 sudo[31213]: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0)
Aug 19 15:07:59 ubuntu18 sudo[31213]:   ubuntu : TTY=pts/1 ; PWD=/home/ubuntu ; USER=root ; COMMAND=/bin/journalc
Aug 19 15:07:56 ubuntu18 sudo[31183]: pam_unix(sudo:session): session closed for user root
Aug 19 15:06:47 ubuntu18 sudo[31183]: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0)
...

Για να δείτε τα αρχεία καταγραφής μιας συγκεκριμένης υπηρεσίας, για παράδειγμα mysql χρησιμοποιήστε τη σημαία -u:

[email protected]:~$ sudo journalctl -u mysql
-- Logs begin at Mon 2020-06-29 02:48:31 UTC, end at Wed 2020-08-19 15:11:34 UTC. --
Aug 16 12:30:02 ubuntu18 systemd[1]: Starting MySQL Community Server...
Aug 16 12:30:03 ubuntu18 systemd[1]: Started MySQL Community Server.
Aug 19 15:03:27 ubuntu18 systemd[1]: Stopping MySQL Community Server...
Aug 19 15:03:29 ubuntu18 systemd[1]: Stopped MySQL Community Server.

σκοτώστε και σκοτώστε

Μπορεί να χρειαστεί να σκοτώσετε μια εκτρεπόμενη διαδικασία ή όταν πρέπει να ελευθερώσετε ορισμένους πόρους του συστήματος. Η σημαία kill with -l δείχνει όλα τα σήματα που μπορείτε να στείλετε σε μια διαδικασία.

[email protected]:~$ kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
....

Δύο πιο συχνά χρησιμοποιούμενα σήματα είναι τα SIGTERM ΚΑΙ SIGKILL. Μπορείτε επίσης να χρησιμοποιήσετε -9 για SIGKILL και -15 για SIGTERM. Το SIGTERM επιτρέπει την ολοκλήρωση μιας διεργασίας πριν από τον τερματισμό της και επομένως ονομάζεται soft kill. Η SIGKILL τερματίζει τη διαδικασία αμέσως. Εδώ είναι ένα παράδειγμα:

Καταχωρίστε όλες τις διαδικασίες του apache2

[email protected]:~$ ps aux|grep apache2
root      45521  0.0  0.5  78188  4688 ?        Ss   Aug08   0:03 /usr/sbin/apache2 -k start
www-data  45524  0.0  0.5 830480  4816 ?        Sl   Aug08   0:00 /usr/sbin/apache2 -k start
www-data  45525  0.0  0.7 830480  6856 ?        Sl   Aug08   0:00 /usr/sbin/apache2 -k start
ubuntu    70374  0.0  0.1  14852  1040 pts/0    S+   07:45   0:00 grep --color=auto apache2

Για να σκοτώσετε τη διαδικασία apache2 με αναγνωριστικό διαδικασίας 45525:

[email protected]:~$ sudo kill -9 45525

Δείτε ξανά τη λίστα των διαδικασιών apache2:

[email protected]:~$ ps aux|grep apache2
root      45521  0.0  0.5  78188  4688 ?        Ss   Aug08   0:03 /usr/sbin/apache2 -k start
www-data  45524  0.0  0.5 830480  4816 ?        Sl   Aug08   0:00 /usr/sbin/apache2 -k start
ubuntu    70525  0.0  0.1  14852  1052 pts/0    S+   07:52   0:00 grep --color=auto apache2

Χρησιμοποιήστε το killall για να σκοτώσετε ένα πρόγραμμα με το όνομα. Που σημαίνει ότι το killall σκοτώνει τη διαδικασία ελέγχου (γονέα) και όλες τις θυγατρικές διεργασίες. Για να σκοτώσετε όλες τις παρουσίες της διαδικασίας apache2 στο παραπάνω παράδειγμα:

[email protected]:~$ sudo killall apache2

Χρησιμοποιήστε το kill and killall με προσοχή. Αυτές οι εντολές ενδέχεται να αφήσουν το σύστημα σε ασταθή κατάσταση.

IP

Η εντολή ip αντικαθιστά το ifconfig στις νεότερες διανομές Linux. Χρησιμοποιήστε το για να διαμορφώσετε και να εμφανίσετε τις διεπαφές δικτύου. Χρησιμοποιείται επίσης για την εμφάνιση και την τροποποίηση διευθύνσεων IP, διαδρομών και αντικειμένων γειτόνων.

Εμφάνιση πληροφοριών για όλες τις διεπαφές δικτύου:

[email protected]:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0d:3a:9b:88:d6 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.4/24 brd 10.0.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20d:3aff:fe9b:88d6/64 scope link 
       valid_lft forever preferred_lft forever

Για να φέρετε μια διεπαφή προς τα πάνω ή προς τα κάτω, χρησιμοποιήστε το ip link set dev ακολουθούμενο από το όνομα της συσκευής. Για παράδειγμα, για να φέρετε τη διεπαφή eth0 online:

[email protected]:~$ ip link set eth0 up

Και για να το κατεβάσω:

[email protected]:~$ ip link set eth0 down

ημερομηνία

Μια πολύ συχνά χρησιμοποιούμενη εντολή, εδώ εξερευνούμε μερικούς ενδιαφέροντες τρόπους χρήσης αυτής της εντολής.

[email protected]:~$ date
Tue Aug 11 07:42:49 UTC 2020

Για να δείτε την ημερομηνία της επόμενης Κυριακής:

[email protected]:~$ date -d 'next sunday'
Sun Aug 16 00:00:00 UTC 2020

Για να δείτε το ραντεβού της περασμένης Κυριακής:

[email protected]:~$ date -d 'last sunday'
Sun Aug  9 00:00:00 UTC 2020

Μπορείτε επίσης να χρησιμοποιήσετε –date αντί για –d flag:

[email protected]:~$ date --date="last sunday"
Sun Aug  9 00:00:00 UTC 2020

Για να δείτε την ημερομηνία πριν από 6 ημέρες:

[email protected]ntu18:~$ date --date="6 days ago"
Wed Aug  5 08:06:37 UTC 2020

Ημερομηνία σε 6 ημέρες από τώρα:

[email protected]:~$ date --date="6 days"
Mon Aug 17 08:08:37 UTC 2020

Μπορείτε εύκολα να ελέγξετε τη μορφή εξόδου ημερομηνίας. Εδώ είναι ένα παράδειγμα:

[email protected]:~$ date '+%d-%B-%Y'
11-August-2020

Περίληψη

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

Ελπίζουμε αυτές οι εντολές να σας φανούν χρήσιμες και να σας βοηθήσουν να κάνετε τη δουλειά σας καλύτερα.

Ακολουθούν ορισμένοι πελάτες FTP/SFTP και τα καλύτερα φύλλα εξαπάτησης Vim για προγραμματιστές και Sysadmin.