20 Linux-Befehle für Systemadministratoren

Linux bietet unzählige Befehle und Dienstprogramme, mit denen Sie Ihre Systemverwaltungsaufgaben schnell und effizient erledigen können.

Ihre Arbeit als Systemadministrator umfasst das Installieren und Ausführen von Software, die Zugriffskontrolle, die Überwachung, die Gewährleistung der Verfügbarkeit, Backups, das Wiederherstellen von Backups und natürlich die Brandbekämpfung. 😜

In diesem Artikel gehen wir auf einige der Befehle ein, die Linux-Systemadministratoren bei ihrer täglichen Arbeit häufig verwenden.

dein Name

Verwenden Sie den Befehl uname mit dem Flag -a, um Systeminformationen zu drucken. Dieser Befehl zeigt Ihnen den Kernelnamen, die Kernelversion, die Kernelversion, den Hostnamen, den Prozessortyp und Ihre Hardwareplattforminformationen an.

[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

Hier ist, was das bedeutet:

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

Verwenden Sie den Befehl df, um die Größe des Dateisystems und den verfügbaren Speicherplatz zu überprüfen. Dieser selbst verwendete Befehl zeigt die Ausgabe in 1K-Blöcken an.

[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% /
....

Option -h zeigt die Ausgabe in einem für Menschen lesbaren Format an, d. h. in MB und 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 

Verwenden Sie Flag -x, um jedes Dateisystem zu ignorieren, z. B. tmpfs, d. h. für eine sauberere Ausgabe

[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

Um nur einen bestimmten Dateisystemtyp aufzulisten, verwenden Sie das Flag -t. um beispielsweise nur das ext4-Dateisystem anzuzeigen:

[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

Wenn Sie das Gesamt-Flag verwenden, wird eine Zeile mit den Gesamtsummen hinzugefügt:

[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

Verwenden Sie den Befehl du, um die Speicherplatznutzung in einem Verzeichnis zu überprüfen. Zum Beispiel, um die Speicherplatznutzung im Verzeichnis /var/log anzuzeigen. Verwenden Sie das Flag -h für ein menschenlesbares Format.

[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

Um nur die Gesamtnutzung anzuzeigen, verwenden Sie das Flag -s (Zusammenfassung).

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

frei

Verwenden Sie den Befehl free, um den gesamten, belegten und freien Systemspeicher anzuzeigen. Verwenden Sie das Flag -h für ein menschenlesbares Format.

[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

p.s

Verwenden Sie ps, um Statusinformationen zu Prozessen anzuzeigen, die auf dem System ausgeführt werden. Um alle Prozesse anzuzeigen, die dem Benutzer Ubuntu gehören, verwenden Sie das Flag -u mit dem Benutzernamen:

[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

Um alle Prozesse anzuzeigen, führen Sie ps mit aux-Flags aus:

[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]
....

wo

Überschrift
Bedeutung
PID
Prozess-Identifikationsnummer
%ZENTRALPROZESSOR
Prozentsatz der CPU-Zeit, die der Prozess verwendet
%MEM
Prozentsatz des verwendeten RAM-Prozesses
VSZ
Verwendeter virtueller Speicher in KB
RSS
Physischer Speicher, den der Prozess in KB verwendet
TTY
Dem Prozess zugeordnetes Terminal
STAT
R – Läuft oder bereit zur Ausführung, S – Schlafend, I – Leerlauf, T – Beendet, Z – Zombie, D – Warten auf Festplatten-I/O, X – Tot, W – Ausgelagert, N – Prozess mit niedriger Priorität, < – Prozess mit hoher Priorität

oben

Während der Befehl ps jederzeit eine Momentaufnahme des Zustands der Prozesse anzeigt, zeigt top eine kontinuierlich aktualisierte (standardmäßig alle drei Sekunden) Liste der Systemprozesse in der Reihenfolge der Prozessaktivität.

Die Ausgabe des obersten Befehls besteht aus zwei Hauptteilen: Die Systemzusammenfassung oben und die Tabelle der Prozesse, sortiert nach CPU-Aktivität.

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_+

Einige der Felder in der Systemzusammenfassung lauten wie folgt:

  So verwenden Sie den vmstat-Befehl unter Linux

hoch
Betriebszeit. Zeit seit dem letzten Start der Maschine.
Durchschnittslast
Der Lastdurchschnitt bezieht sich auf die Anzahl der Prozesse, die darauf warten, ausgeführt zu werden. Ein Wert unter 1,0 bedeutet, dass die Maschine nicht ausgelastet ist. Es gibt 3 Werte. Die erste zeigt den Durchschnitt der letzten 60 Sekunden, die zweite den Durchschnitt der letzten 5 Minuten und die dritte den Durchschnitt der letzten 15 Minuten.
%CPU(s)

Diese Zeile beschreibt die Aktivitäten der CPU.
0,3 uns, Benutzer
0,3 % der CPU werden für Benutzerprozesse verwendet.
0.0 sy, System
0,0 % CPU wird für Systemprozesse verwendet.
0,0 Ni, schön
0,0 % CPU wird von Prozessen mit niedriger Priorität (nice) verwendet
99,7 ID, Leerlauf
99,7 % CPU ist im Leerlauf
0,0 wa, IO-warten
0,0 % CPU wartet auf E/A
0.0 hallo
Zeit, die für Hardware-Interrupts aufgewendet wird
0,0 Si
Zeit, die für Softwareunterbrechungen aufgewendet wird
0,0 St
time stone von dieser VM durch den Hypervisor

Die Felder der Prozesstabelle lauten wie folgt:

PID
Prozess-Identifikationsnummer
BENUTZER
Prozesseigentümer
PR
Priorität
NI
Schöner Wert
VIRT
Vom Prozess verwendeter virtueller Speicher (KB)
RES
Vom Prozess verwendeter physischer Speicher
SHR
Vom Prozess verwendeter gemeinsam genutzter Speicher
S
Prozessstatus. R – läuft, S – schläft, I – Leerlauf, T – gestoppt, Z – Zombie, D – wartet auf Festplatten-I/O, W – ausgelagert, X – tot
%ZENTRALPROZESSOR
CPU-Zeit, die der Prozess in Prozent verwendet
%MEM
Der physische Speicherprozess verwendet
ZEIT[+]
Vom Prozess verwendete Gesamt-CPU-Zeit
BEFEHL
Name des Programms

Während top ausgeführt wird, können Sie eine Reihe von Befehlen eingeben. Drücken Sie h oder ? um Befehle zu sehen, die ausgeführt werden können, während top ausgeführt wird. Drücken Sie k, um einen Prozess zu beenden. Drücken Sie q, um oben zu beenden.

graben

dig ist ein großartiges Tool für DNS-Abfragen. Es wird wie folgt verwendet:

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

wo

  • ist der DNS-Servername, den Sie abfragen möchten
  • ist der Domainname, den Sie abfragen möchten
  • ist der Name des Datensatzes, den Sie wissen möchten – A, MX, NS SOA usw.

Um eine ausführliche Ausgabe zu unterdrücken, verwenden Sie das Flag +short.

So zeigen Sie einen A-Eintrag für google.com an:

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

So zeigen Sie MX-Einträge für die Verwendung von google.com an:

[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.

Wenn Sie DNS-Einträge im Internet abfragen müssen, können Sie das DNS-Lookup-Tool verwenden.

wer und w

who zeigt angemeldete Benutzer an.

[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 zeigt aktuell angemeldete Benutzer und ihre Prozesse. Die Kopfzeile zeigt die aktuelle Uhrzeit, die Systembetriebszeit, die Anzahl der angemeldeten Benutzer und die durchschnittliche Systemlast.

[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

Der nächste Teil zeigt die Benutzernamen, das Terminal und die Remote-IP, von der aus sie angemeldet sind, Anmeldezeit, Leerlaufzeit, JCPU, PCPU und das Programm, das sie ausführen. JCPU ist die Zeit, die von allen Prozessen verwendet wird, die mit dem tty verbunden sind, während PCPU die Zeit ist, die vom aktuellen Prozess verwendet wird.

Teer

Mit GNU tar können Sie mehrere Dateien in einer einzigen Datei archivieren.

Erstellen Sie als Beispiel ein Verzeichnis myfiles und drei Dateien a.txt, b.txt, c.txt im myfiles-Verzeichnis:

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

Erstellen Sie nun ein Archiv namens allfiles.tar, das alle Dateien im Verzeichnis myfiles enthält:

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

Alle Dateien im aktuellen Verzeichnis auflisten. Sie können das Verzeichnis myfiles und das Archiv allfiles.tar sehen:

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

Sie können ein Archiv mit dem Flag -x entpacken. Also, um allfiles.tar zu entpacken:

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

Sie können dieses Archiv auch mit dem Flag -z komprimieren. Dies würde ein mit gzip komprimiertes Archiv erstellen.

[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

Um ein komprimiertes Archiv zu entpacken, verwenden Sie -z mit dem Flag -x.

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

grep

grep wird verwendet, um nach einem Muster in einer Datei oder einer Reihe von Dateien zu suchen. Es druckt alle Zeilen, die diesem Muster entsprechen. Um beispielsweise nach der Zeile mit „ServerRoot“ in /etc/apache2/apache2.conf zu suchen:

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

Um in allen Dateien in einem Verzeichnis zu suchen, verwenden Sie *. Um die Suche in Unterverzeichnissen einzuschließen, verwenden Sie das Flag -r (rekursiv). Um also in allen Dateien in /etc/apache2 nach allen Zeilen zu suchen, die das Muster „VirtualHost“ enthalten:

[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 ist ein schnelles Befehlszeilentool zum Synchronisieren von Dateien und Verzeichnissen zwischen zwei Standorten. Kann sowohl für das lokale als auch für das Remote-Kopieren verwendet werden und ist schnell, da nur die Unterschiede zwischen den Quelldateien und den vorhandenen Dateien im Ziel gesendet werden.

Es wird häufig für Backups und als verbesserter Kopierbefehl für den täglichen Gebrauch verwendet.

Hier ist ein Beispiel:

So kopieren/synchronisieren Sie alle Dateien aus dem Verzeichnis „myfiles“ in das Verzeichnis „backups“:

[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

Um alle Dateien aus dem Verzeichnis myfiles in das Verzeichnis backups auf einem Remote-Host zu synchronisieren, fügen Sie remote_user @remote_host in den Zielnamen ein. So synchronisieren Sie den Ordner myfiles mit einem Remote-Host mit 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

Der Befehl ss wird verwendet, um Socket-Statistiken auszugeben, ähnlich wie das Legacy-Dienstprogramm netstat. Um TCP-Sockets anzuzeigen, verwenden Sie das Flag -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

Dies würde Sockets, die lauschen, nicht anzeigen. Um sowohl lauschende als auch nicht lauschende Sockets einzuschließen, verwenden Sie die Flags -t und -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                                *:*

Lokalisieren

Der Befehl locate verwendet eine Datenbank, um nach Dateien zu suchen, und kann tatsächlich viel schneller sein als der Befehl find. Sehr einfach zu verwenden, um nach einer Datei zu suchen, sagen wir, apache2.conf:

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

Sie können das Flag -c verwenden, wenn Sie nur die Anzahl der Dateien wünschen, die dem Suchmuster entsprechen.

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

Manchmal müssen Sie möglicherweise die von locate verwendete Datenbank aktualisieren, die mlocate ist. Um die Datenbank zu aktualisieren, verwenden Sie den Befehl updatedb. Dies würde Superuser-Rechte erfordern.

[email protected]:~$ sudo updatedb

finden

Einer der am häufigsten verwendeten Befehle unter Linux. Verwenden Sie es, um nach Dateien basierend auf Dateinamen, Berechtigungen, Benutzer-ID, Gruppen-ID, Größe, Dateityp und anderen Kriterien zu suchen.

Um eine Datei anhand des Namens im aktuellen Verzeichnis zu suchen, verwenden Sie das Flag -name gefolgt vom zu suchenden Dateinamen.:

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

Um nach Verzeichnissen zu suchen, verwenden Sie das Flag -type d:

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

Um nach Dateien nach Größe zu suchen, sagen wir Dateien, die größer als 20 MB sind, verwenden Sie das Flag -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

Nachdem systemd den SysV-Init-Prozess in den meisten Linux-Distributionen ersetzt hat, verwenden Sie den Befehl systemctl, um systemd-Dienste und -Einheiten zu verwalten.

So starten Sie einen Dienst, zum Beispiel Apache2:

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

Sie können das Service-Suffix belassen.

So beenden Sie einen Dienst:

[email protected]:~$ sudo systemctl stop apache2

Um den Dienststatus anzuzeigen, verwenden Sie den Befehl systemctl status. Das folgende Beispiel zeigt den Apache2-Status während der Ausführung:

[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-Befehl

UFW – Uncomplicated Firewall ist ein einfach zu bedienendes Frontend für iptables. Es ist standardmäßig auf Ubuntu-basierten Distributionen verfügbar. Unter CentOS können Sie ufw aus dem EPEL-Repository installieren.

So aktivieren Sie ufw:

$ sudo ufw enable

Überprüfen Sie den Firewall-Status mit ufw status:

$ sudo ufw status
Status: active

Standardmäßige UFW-Richtlinien lassen den gesamten ausgehenden Datenverkehr zu und blockieren den gesamten eingehenden Datenverkehr.

Der folgende Befehl lässt eingehenden Datenverkehr am HTTP-Port zu:

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

Sie können den Datenverkehr an jedem Port ablehnen. Hier ist ein Beispiel zum Blockieren des Datenverkehrs auf Port 21:

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

Journalctl

Verwenden Sie journalctl, um die von systemd gesammelten Protokolle anzuzeigen. systemd sammelt Protokolle an einem zentralen Ort in einem Binärformat. So zeigen Sie diese Protokolle an:

[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
...

Meistens möchten Sie die Protokolle lieber in umgekehrter Reihenfolge sehen, d. h. die neuesten Protokolle zuerst:

[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)
...

Verwenden Sie zum Anzeigen von Protokollen eines bestimmten Dienstes, z. B. mysql, das Flag -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.

töten und töten

Möglicherweise müssen Sie einen außer Kontrolle geratenen Prozess beenden oder einige Systemressourcen freigeben. kill with -l flag zeigt alle Signale, die Sie an einen Prozess senden können.

[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
....

Zwei am häufigsten verwendete Signale sind SIGTERM und SIGKILL. Sie können auch -9 für SIGKILL und -15 für SIGTERM verwenden. SIGTERM lässt zu, dass ein Prozess abgeschlossen wird, bevor er beendet wird, und wird daher als Soft Kill bezeichnet. SIGKILL beendet den Vorgang sofort. Hier ist ein Beispiel:

Alle Apache2-Prozesse auflisten

[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

So beenden Sie den Apache2-Prozess mit der Prozess-ID 45525:

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

Sehen Sie sich erneut die Liste der Apache2-Prozesse an:

[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

Verwenden Sie killall, um ein Programm nach Namen zu beenden. Das bedeutet, dass killall den Kontrollprozess (Elternprozess) und alle untergeordneten Prozesse beendet. So beenden Sie alle Instanzen des Apache2-Prozesses im obigen Beispiel:

[email protected]:~$ sudo killall apache2

Verwenden Sie kill und killall mit Vorsicht. Diese Befehle können das System in einen instabilen Zustand versetzen.

IP

Der ip-Befehl ersetzt ifconfig in den neueren Linux-Distributionen. Verwenden Sie es, um Netzwerkschnittstellen zu konfigurieren und anzuzeigen. Wird auch zum Anzeigen und Ändern von IP-Adressen, Routen und Nachbarobjekten verwendet.

Informationen zu allen Netzwerkschnittstellen anzeigen:

[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

Um eine Schnittstelle nach oben oder unten zu bringen, verwenden Sie ip link set dev gefolgt vom Gerätenamen. Um beispielsweise die Schnittstelle eth0 online zu bringen:

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

Und um es runter zu bringen:

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

Datum

Ein sehr häufig verwendeter Befehl, hier untersuchen wir einige interessante Möglichkeiten, diesen Befehl zu verwenden.

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

So sehen Sie das Datum für nächsten Sonntag:

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

So sehen Sie das Datum vom letzten Sonntag:

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

Sie können auch –date anstelle von -d flag verwenden:

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

Um das Datum vor 6 Tagen zu sehen:

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

Datum in 6 Tagen:

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

Sie können das Datumsausgabeformat einfach steuern. Hier ist ein Beispiel:

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

Zusammenfassung

Sie als Systemadministrator halten die Computerinfrastruktur der Welt am Laufen. Sie müssen Probleme lösen, die Systeme warten und optimal am Laufen halten und gleichzeitig die Sicherheit gewährleisten.

Ich hoffe, diese Befehle sind nützlich und helfen Ihnen, Ihre Arbeit besser zu machen.

Hier sind einige FTP/SFTP-Clients und die besten Vim-Spickzettel für Entwickler und Systemadministratoren.

  So greifen Sie unter Linux auf den klassischen Gnome-Modus zu