20 poleceń systemu Linux dla administratora systemu

Linux oferuje niezliczone polecenia i narzędzia, które pomagają szybko i wydajnie wykonywać zadania administracyjne.

Twoja praca jako administratora systemu obejmuje instalowanie i uruchamianie oprogramowania, kontrolowanie dostępu, monitorowanie, zapewnianie dostępności, tworzenie kopii zapasowych, przywracanie kopii zapasowych i oczywiście gaszenie pożarów.

W tym artykule przyjrzymy się niektórym z poleceń często używanych przez administratorów systemu Linux w ich codziennej pracy.

unname

Użyj polecenia uname z opcją -a, aby wyświetlić informacje o systemie. To polecenie pokaże nazwę jądra, wydanie jądra, wersję jądra, nazwę hosta, typ procesora i informacje o platformie sprzętowej.

[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

Oto, co to oznacza:

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

Użyj polecenia df, aby zweryfikować rozmiar systemu plików i dostępne miejsce. To polecenie używane samodzielnie pokazuje dane wyjściowe w blokach 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% /
....

Opcja -h pokazuje dane wyjściowe w formacie czytelnym dla człowieka, czyli w MB i 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 

Aby zignorować dowolny system plików, na przykład tmpfs, czyli czystsze wyjście, użyj flagi -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

Aby wyświetlić tylko określony typ systemu plików, użyj flagi -t. na przykład, aby wyświetlić tylko system plików 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

Użycie flagi sumy spowoduje dodanie linii pokazującej sumy końcowe:

[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

Aby sprawdzić wykorzystanie miejsca na dysku w katalogu, użyj polecenia du. Na przykład, aby zobaczyć wykorzystanie miejsca na dysku w katalogu /var/log. Użyj flagi -h dla formatu czytelnego dla człowieka.

[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

Aby zobaczyć tylko całkowite użycie, użyj tylko flagi -s (podsumowanie).

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

darmowy

Użyj darmowego polecenia, aby zobaczyć całkowitą, używaną i wolną pamięć systemową. Użyj flagi -h dla formatu czytelnego dla człowieka.

[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

Użyj ps, aby wyświetlić informacje o stanie procesów uruchomionych w systemie. Aby zobaczyć wszystkie procesy należące do użytkownika ubuntu, użyj flagi -u z nazwą użytkownika:

[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

Aby wyświetlić wszystkie procesy uruchom ps z flagami 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]
....

gdzie

Nagłówek
Oznaczający
PID
Numer identyfikacyjny procesu
%PROCESOR
Procent czasu procesora używanego przez proces
%MEM
Procent wykorzystania pamięci RAM
VSZ
Pamięć wirtualna używana w KB
RSS
Pamięć fizyczna, z której korzysta proces, w KB
TTY
Terminal związany z procesem
STATYSTYKA
R – W biegu lub gotowy do pracy, S – Uśpiony, I – Bezczynny, T – Zatrzymany, Z – Zombie, D – Oczekiwanie na wejście/wyjście dysku, X – Martwy, W – Zamieniony, N – Proces o niskim priorytecie, < – Proces o wysokim priorytecie

Top

Podczas gdy polecenie ps pokazuje migawkę stanu procesów w dowolnym momencie, top pokazuje stale aktualizowaną (domyślnie co trzy sekundy) listę procesów systemowych w kolejności aktywności procesu.

Dane wyjściowe polecenia top składają się z dwóch głównych części: podsumowania systemu u góry oraz tabeli procesów posortowanych według aktywności procesora.

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

Niektóre pola w podsumowaniu systemu to:

w górę
Czas pracy. Czas od ostatniego uruchomienia komputera.
średnie obciążenie
Średnia obciążenia odnosi się do liczby procesów oczekujących na uruchomienie, wartość mniejsza niż 1,0 oznacza, że ​​maszyna nie jest zajęta. Istnieją 3 wartości. Pierwsza to średnia z ostatnich 60 sekund, druga to średnia z ostatnich 5 minut, a trzecia to średnia z ostatnich 15 minut.
% procesorów

Ten wiersz opisuje działania procesora.
0,3 nas, użytkownik
0,3% procesora jest wykorzystywane do procesów użytkownika.
0.0 sy, system
0,0% procesora jest wykorzystywane do procesów systemowych.
0.0 ni, fajnie
0,0% CPU jest używane przez procesy o niskim priorytecie (ładne)
99,7 identyfikatora, bezczynność
99,7% procesor jest bezczynny
0,0 wa, IO-czekaj
0.0% CPU czeka na I/O
0.0 cześć
czas spędzony na przerwaniach sprzętowych
0.0 si
czas spędzony na przerwaniach programowych
0.0 st
kamień czasu z tej maszyny wirtualnej przez hipernadzorcę

Pola tabeli procesów są następujące:

PID
Numer identyfikacyjny procesu
UŻYTKOWNIK
Właściciel procesu
PR
Priorytet
NI
Dobra wartość!
VIRT
Pamięć wirtualna używana przez proces (KB)
OZE
Pamięć fizyczna wykorzystywana przez proces
SHR
Pamięć współdzielona używana przez proces
S
Stan procesu. R – bieganie, S – spanie, I – bezczynność, T – zatrzymanie, Z – zombie, D – oczekiwanie na dyskowe I/O, W- zamienione, X – martwe
%PROCESOR
Proces czasu procesora jest używany w procentach
%MEM
Używany jest proces pamięci fizycznej
CZAS[+]
Całkowity czas procesora używany przez proces
KOMENDA
Nazwa programu

Gdy top jest uruchomiony, możesz wydać kilka poleceń. Naciśnij h lub ? aby zobaczyć polecenia, które można uruchomić, gdy top jest uruchomiony. Naciśnij k, aby zabić proces. Naciśnij q, aby wyjść z góry.

kopać

dig to świetne narzędzie do zapytań DNS. Jest używany w następujący sposób:

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

gdzie

  • to nazwa serwera DNS, o który chcesz zapytać
  • to nazwa domeny, o którą chcesz zapytać
  • to nazwa rekordu, który chcesz poznać — A, MX, NS SOA itp.

Aby pominąć pełne wyjście, użyj +krótkiej flagi.

Aby wyświetlić rekord A dla google.com, użyj:

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

Aby zobaczyć rekordy MX dla 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.

Jeśli chcesz wyszukiwać rekordy DNS w Internecie, możesz użyć narzędzia wyszukiwania DNS.

kto i kto

który pokazuje zalogowanych użytkownikó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 pokazuje aktualnie zalogowanych użytkowników i ich procesy. Nagłówek pokazuje aktualny czas, czas pracy systemu, liczbę zalogowanych użytkowników i średnie obciążenie systemu.

[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

Następna część pokazuje nazwy użytkowników, terminal i zdalny adres IP, z którego są zalogowani, czas logowania, czas bezczynności, JCPU, PCPU i program, z którego korzystają. JCPU to czas używany przez wszystkie procesy podłączone do tty, podczas gdy PCPU to czas używany przez bieżący proces.

smoła

Dzięki GNU tar możesz archiwizować wiele plików w jednym pliku.

Jako przykład utwórz katalog myfiles i trzy pliki a.txt, b.txt, c.txt w katalogu myfiles:

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

Teraz utwórz archiwum o nazwie allfiles.tar zawierające wszystkie pliki w katalogu myfiles:

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

Wyświetl wszystkie pliki w bieżącym katalogu. Możesz zobaczyć katalog myfiles i archiwum allfiles.tar:

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

Możesz rozpakować archiwum z flagą -x. Tak więc, aby rozpakować allfiles.tar:

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

Możesz także skompresować to archiwum za pomocą flagi -z. Spowoduje to utworzenie archiwum skompresowanego gzipem.

[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

Aby rozpakować skompresowane archiwum użyj opcji -z z opcją -x.

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

grep

grep służy do wyszukiwania wzorca w pliku lub zestawie plików. Wypisuje wszystkie linie pasujące do tego wzoru. Na przykład, aby wyszukać wiersz zawierający „ServerRoot” w /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"

Aby przeszukać wszystkie pliki w katalogu, użyj *. Aby uwzględnić wyszukiwanie w podkatalogach, użyj flagi -r (rekursywne). Tak więc, aby wyszukać wszystkie wiersze zawierające wzorzec „VirtualHost” we wszystkich plikach w /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 to szybkie narzędzie wiersza poleceń do synchronizowania plików i katalogów między dwiema lokalizacjami. Może być używany zarówno do lokalnego, jak i zdalnego kopiowania i jest szybki, ponieważ przesyła tylko różnice między plikami źródłowymi a istniejącymi plikami w miejscu docelowym.

Jest szeroko stosowany do tworzenia kopii zapasowych i jako ulepszone polecenie kopiowania do codziennego użytku.

Oto przykład:

Aby skopiować/rsynchronizować wszystkie pliki z katalogu myfiles do katalogu kopii zapasowych:

[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

Aby zsynchronizować wszystkie pliki z katalogu myfiles z katalogiem kopii zapasowych na zdalnym hoście, należy w nazwie docelowej wpisać użytkownik_zdalny @host_zdalny. Tak więc, aby rsync folder myfiles ze zdalnym hostem o adresie 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

Polecenie ss służy do zrzutu statystyk gniazda, podobnie jak w starszym narzędziu netstat. Aby wyświetlić gniazda TCP, użyj flagi -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

Nie spowoduje to wyświetlenia gniazd, które nasłuchują. Aby uwzględnić zarówno gniazda nasłuchujące, jak i nienasłuchujące, użyj flag -t i -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                                *:*

Znajdź

Polecenie locate używa bazy danych do wyszukiwania plików i faktycznie może być znacznie szybsze niż polecenie find. Bardzo prosty w użyciu, aby wyszukać plik, powiedzmy apache2.conf:

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

Możesz użyć flagi -c, jeśli chcesz tylko liczbę plików pasujących do wzorca wyszukiwania.

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

Czasami może być konieczne odświeżenie bazy danych używanej przez local, czyli mlocate. Aby zaktualizować bazę danych użyj polecenia updatedb. Wymagałoby to uprawnień superużytkownika.

[email protected]:~$ sudo updatedb

odnaleźć

Jedno z najczęściej używanych poleceń w systemie Linux. Użyj go do wyszukiwania plików na podstawie nazw plików, uprawnień, identyfikatora użytkownika, identyfikatora grupy, rozmiaru, typu pliku, oprócz innych kryteriów.

Aby wyszukać plik według nazwy w bieżącym katalogu, użyj flagi -name, po której następuje nazwa pliku do przeszukania.:

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

Aby wyszukać katalogi, użyj flagi -type d:

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

Aby wyszukać pliki według rozmiaru, powiedzmy pliki większe niż 20 MB, użyj flagi -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

systemowy

Teraz, gdy systemd zastąpił proces init SysV w większości dystrybucji Linuksa, użyj polecenia systemctl do zarządzania usługami i jednostkami systemd.

Aby uruchomić usługę, na przykład apache2:

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

Możesz zostawić sufiks usługi.

Aby zatrzymać usługę:

[email protected]:~$ sudo systemctl stop apache2

Aby zobaczyć status usługi, użyj polecenia systemctl status. Poniższy przykład pokazuje stan Apache2 podczas jego działania:

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

polecenie ufw

UFW – nieskomplikowany firewall to łatwy w użyciu frontend dla iptables. Jest on domyślnie dostępny w dystrybucjach opartych na Ubuntu. W CentOS możesz zainstalować ufw z repozytorium EPEL.

Aby włączyć ufw:

$ sudo ufw enable

Sprawdź stan zapory ze statusem ufw:

$ sudo ufw status
Status: active

Domyślne zasady UFW zezwalają na cały ruch wychodzący i blokują cały ruch przychodzący.

Następujące polecenie zezwala na ruch przychodzący na porcie HTTP:

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

Możesz zablokować ruch na dowolnym porcie. Oto przykład blokowania ruchu na porcie 21:

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

dziennika

Użyj journalctl, aby wyświetlić dzienniki zebrane przez systemd. systemd zbiera dziennik w centralnej lokalizacji w formacie binarnym. Aby wyświetlić te dzienniki:

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

Przeważnie wolisz widzieć logi w odwrotnej kolejności, czyli najpierw najnowsze logi:

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

Aby wyświetlić logi konkretnej usługi, na przykład mysql użyj flagi -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.

zabić i zabić wszystkich

Może być konieczne zabicie niekontrolowanego procesu lub zwolnienie niektórych zasobów systemowych. kill with -l flaga pokazuje wszystkie sygnały, które możesz wysłać do procesu.

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

Dwa najczęściej używane sygnały to SIGTERM I SIGKILL. Możesz również użyć -9 dla SIGKILL i -15 dla SIGTERM. SIGTERM umożliwia zakończenie procesu przed jego zakończeniem i dlatego nazywa się soft kill. SIGKILL natychmiast kończy proces. Oto przykład:

Wymień wszystkie procesy 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

Aby zabić proces Apache2 z identyfikatorem procesu 45525:

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

Ponownie przejrzyj listę procesów 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

Użyj killall, aby zabić program według nazwy. Oznacza to, że killall zabija proces control(rodzica) i wszystkie procesy potomne. Aby zabić wszystkie instancje procesu Apache2 w powyższym przykładzie:

[email protected]:~$ sudo killall apache2

Używaj kill i killall z rozwagą. Te polecenia mogą pozostawić system w stanie niestabilnym.

IP

Polecenie ip zastępuje ifconfig w nowszych dystrybucjach Linuksa. Użyj go do konfiguracji i wyświetlania interfejsów sieciowych. Służy również do wyświetlania i modyfikowania adresów IP, tras i sąsiednich obiektów.

Wyświetl informacje o wszystkich interfejsach sieciowych:

[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

Aby podnieść lub wyłączyć interfejs, użyj ip link set dev, a następnie nazwę urządzenia. Na przykład, aby udostępnić interfejs eth0 w trybie online:

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

I aby to obniżyć:

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

data

Bardzo często używane polecenie, tutaj odkrywamy kilka interesujących sposobów korzystania z tego polecenia.

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

Aby zobaczyć datę w następną niedzielę:

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

Aby zobaczyć datę zeszłej niedzieli:

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

Możesz również użyć opcji –date zamiast flagi -d:

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

Aby zobaczyć datę sprzed 6 dni:

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

Data za 6 dni od teraz:

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

Możesz łatwo kontrolować format wyjściowy daty. Oto przykład:

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

Streszczenie

Jako administrator systemu dbasz o działanie światowej infrastruktury komputerowej. Musisz rozwiązywać problemy, utrzymywać i utrzymywać systemy w optymalnym działaniu przy jednoczesnym zapewnieniu bezpieczeństwa.

Mam nadzieję, że te polecenia przydadzą się i pomogą lepiej wykonywać swoją pracę.

Oto kilka klientów FTP/SFTP i najlepsze arkusze do ściągania Vima dla programistów i administratora systemu.