Το 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_+
Μερικά από τα πεδία στη σύνοψη συστήματος είναι τα εξής:
πάνω
Χρόνος λειτουργίας. Χρόνος από την τελευταία εκκίνηση του μηχανήματος.
μέσο φορτίο
Ο μέσος όρος φορτίου αναφέρεται στον αριθμό των διεργασιών που περιμένουν να εκτελεστούν, η τιμή μικρότερη από 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.