20 Linux-kommandon för systemadministratörer

Linux erbjuder otaliga kommandon och verktyg som hjälper dig att utföra dina systemadministrationsuppgifter snabbt och effektivt.

Ditt arbete som systemadministratör inkluderar att installera och köra mjukvara, kontrollera åtkomst, övervakning, säkerställa tillgänglighet, säkerhetskopiering, återställa säkerhetskopior och naturligtvis brandbekämpning. 😜

I den här artikeln granskar vi några av de kommandon som ofta används av Linux-systemadministratörer i deras dagliga arbete.

du namnger

Använd kommandot uname med flaggan -a för att skriva ut systeminformation. Det här kommandot visar dig kärnnamnet, kärnversionen, kärnversionen, värdnamnet, processortypen och din hårdvaruplattformsinformation.

[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

Här är vad detta betyder:

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

Använd kommandot df för att verifiera storleken på filsystemet och tillgängligt utrymme. Detta kommando som används i sig visar utdata i 1K-block.

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

Alternativ -h visar utdata i ett läsbart format, det vill säga i MB och 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 

För att ignorera alla filsystem, till exempel tmpfs, det vill säga för en renare utdata, använd flaggan -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

För att bara lista en specifik filsystemstyp, använd -t flagga. till exempel för att bara visa ext4 filsystem:

[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

Om du använder totalflaggan läggs en rad till som visar totalsummor:

[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

För att kontrollera diskutrymmesanvändningen i en katalog, använd kommandot du. Till exempel för att se användningen av diskutrymme i katalogen /var/log. Använd -h-flaggan för läsbart 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

För att bara se den totala användningen använd endast flaggan -s (sammanfattning).

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

fri

Använd kommandot ledigt för att se totalt, använt och ledigt systemminne. Använd -h-flaggan för läsbart format.

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

Använd ps för att visa statusinformation om processer som körs på systemet. För att se alla processer som ägs av användaren ubuntu, använd flaggan -u med användarnamnet:

[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

För att se alla processer kör ps med aux-flaggor:

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

var

Rubrik
Menande
PID
Processidentifikationsnummer
%CPU
Procent av CPU-tid som processen använder
%MEM
Procent av RAM-processen som används
VSZ
Virtuellt minne som används i KB
RSS
Fysiskt minne som processen använder i KB
TTY
Terminal associerad med processen
STATISTIK
R – Igång eller redo att köra, S – Vila, I – Idle, T – Stoppad, Z – Zombie, D – Väntar på disk I/O, X – Död, W – Byt ut, N – Process med låg prioritet, < – Högprioriterad process

topp

Medan ps-kommandot visar en ögonblicksbild av processernas tillstånd när som helst, visar toppen en kontinuerligt uppdaterad (var tredje sekund, som standard) lista över systemprocesser i ordning efter processaktivitet.

Den översta kommandoutgången består av två huvuddelar: Systemsammanfattningen överst och tabellen över processer sorterade efter CPU-aktivitet.

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

Några av fälten i systemsammanfattningen är följande:

upp
Upptid. Tid sedan maskinen startades senast.
genomsnittlig belastning
Belastningsgenomsnitt hänvisar till antalet processer som väntar på att köras, värde mindre än 1,0 betyder att maskinen inte är upptagen. Det finns 3 värden. Först är medelvärdet av de senaste 60 sekunderna, andra är medelvärdet av de senaste 5 minuterna och det tredje visar medelvärdet av de senaste 15 minuterna.
%Cpu(s)

Den här raden beskriver processorns aktiviteter.
0,3 oss, användare
0,3 % CPU används för användarprocesser.
0,0 sy, system
0,0 % CPU används för systemprocesser.
0,0 ni, bra
0,0% CPU används av lågprioriterade (snälla) processer
99,7 id, tomgång
99,7 % CPU är inaktiv
0,0 wa, IO-vänta
0,0 % CPU väntar på I/O
0,0 hej
tid som ägnas åt hårdvaruavbrott
0,0 si
tid som ägnas åt programavbrott
0,0 st
tidssten från denna virtuella dator av hypervisorn

Processtabellfält är följande:

PID
Processidentifikationsnummer
ANVÄNDARE
Processägare
PR
Prioritet
NI
Bra värde
VIRT
Virtuellt minne som används av processen (KB)
RES
Fysiskt minne som används av processen
SHR
Delat minne som används av processen
S
Processstatus. R – Kör, S – sover, I – Idle, T – stoppad, Z – zombie, D – väntar på disk I/O, W- bytte ut, X – död
%CPU
CPU-tidprocessen används i procent
%MEM
Den fysiska minnesprocessen använder
TID[+]
Total CPU-tid som används av processen
KOMMANDO
Namn på programmet

Medan top körs kan du utfärda ett antal kommandon. Tryck på h eller ? för att se kommandon som kan köras medan top körs. Tryck på k för att avsluta en process. Tryck på q för att avsluta toppen.

gräv

dig är ett utmärkt verktyg för DNS-frågor. Den används enligt följande:

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

var

  • är DNS-servernamnet du vill fråga
  • är domännamnet du vill fråga om
  • är namnet på posten du vill veta – A, MX, NS SOA, etc.

För att undertrycka utförlig utdata, använd +kort flagga.

För att visa A record for google.com använd:

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

För att se MX-poster för google.com använd:

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

Om du behöver fråga efter DNS-poster på Internet kan du använda DNS-sökningsverktyget.

vem och w

som visar användare som är inloggade.

[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 visar användare som för närvarande är inloggade och deras processer. Rubriken visar aktuell tid, systemupptid, antal inloggade användare och medelvärden för systembelastning.

[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

Nästa del visar användarnamnen, terminalen och fjärr-IP från vilken de är inloggade, inloggningstid, vilotid, JCPU, PCPU och programmet de kör. JCPU är den tid som används av alla processer kopplade till tty medan PCPU är den tid som används av den aktuella processen.

tjära

Med GNU tar kan du arkivera flera filer till en enda fil.

Som ett exempel skapa en katalog myfiles och tre filer a.txt, b.txt, c.txt i myfiles-katalogen:

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

Nu för att skapa ett arkiv med namnet allfiles.tar som innehåller alla filer i myfiles-katalogen:

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

Lista alla filer i den aktuella katalogen. Du kan se myfiles-katalogen och allfiles.tar-arkivet:

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

Du kan packa upp ett arkiv med flaggan -x. Så, för att packa upp allfiles.tar:

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

Du kan också komprimera detta arkiv med -z-flaggan. Detta skulle skapa ett arkiv komprimerat med 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

För att packa upp ett komprimerat arkiv använd -z med -x-flagga.

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

grep

grep används för att söka efter ett mönster i en fil, eller en uppsättning filer. Den skriver ut alla linjer som matchar det mönstret. Till exempel, för att söka efter raden som innehåller ”ServerRoot” i /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"

För att söka i alla filer i en katalog använd *. Använd -r (rekursiv) flagga för att inkludera sökning i underkataloger. Så för att söka efter alla rader som innehåller mönstret ”VirtualHost” i alla filer i /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 är ett snabbt kommandoradsverktyg för att synkronisera filer och kataloger mellan två platser. Kan användas för både lokal och fjärrkopiering och är snabb eftersom den bara skickar skillnaderna mellan källfilerna och de befintliga filerna på destinationen.

Det används ofta för säkerhetskopiering och som ett förbättrat kopieringskommando för dagligt bruk.

Här är ett exempel:

Så här kopierar/rsynkar du alla filer från myfiles-katalogen till säkerhetskopieringskatalogen:

[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

För att rsynkronisera alla filer från myfiles-katalogen till säkerhetskopieringskatalogen på en fjärrvärd, inkludera remote_user @remote_host i destinationsnamnet. Så, för att rsync myfiles-mappen till en fjärrvärd med 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

ss-kommandot används för att dumpa socketstatistik, liknande det äldre verktyget netstat. För att visa TCP-sockets använd -t-flaggan.

[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

Detta skulle inte visa uttag som lyssnar. För att inkludera både lyssnande och icke-lyssnande sockets använd -t och -a flaggor.

[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                                *:*

lokalisera

Kommandot locate använder en databas för att söka efter filer och kan faktiskt vara mycket snabbare än find-kommandot. Mycket enkel att använda, för att söka efter en fil, säg apache2.conf:

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

Du kan använda -c-flaggan om du bara vill ha antalet filer som matchar sökmönstret.

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

Ibland kan du behöva uppdatera databasen som används av locate, som är mlocate. För att uppdatera databasen använd updatedb kommando. Detta skulle behöva superanvändarprivilegier.

[email protected]:~$ sudo updatedb

hitta

Ett av de mest använda kommandona på Linux. Använd den för att söka efter filer baserat på filnamn, behörigheter, användar-id, groupid, storlek, filtyp, förutom andra kriterier.

För att söka efter en fil med namn i den aktuella katalogen, använd flaggan -name följt av filnamnet för att söka.:

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

För att söka efter kataloger, använd -typ d flagga:

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

För att söka efter filer efter storlek, säg filer som är större än 20 MB, använd flaggan -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

Nu när systemd har ersatt SysV init-processen i de flesta Linux-distributioner, använd systemctl-kommandot för att hantera systemtjänster och -enheter.

För att starta en tjänst, till exempel apache2:

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

Du kan lämna tjänstens suffix.

Så här stoppar du en tjänst:

[email protected]:~$ sudo systemctl stop apache2

För att se tjänstens status, använd systemctl statuskommandot. Följande exempel visar apache2-status medan den körs:

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

UFW – okomplicerad brandvägg är en lättanvänd frontend för iptables. Den är tillgänglig som standard på Ubuntu-baserade distributioner. På CentOS kan du installera ufw från EPEL-förvaret.

För att aktivera ufw:

$ sudo ufw enable

Kontrollera brandväggsstatus med ufw-status:

$ sudo ufw status
Status: active

Standard UFW-policyer tillåter all utgående trafik och blockerar all inkommande trafik.

Följande kommando tillåter inkommande trafik på HTTP-porten:

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

Du kan neka trafik på vilken hamn som helst. Här är ett exempel för att blockera trafik på port 21:

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

journalctl

Använd journalctl för att se loggar som samlats in av systemd. systemd samlar in logg på en central plats i binärt format. Så här visar du dessa loggar:

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

Oftast föredrar du att se loggarna i omvänd ordning, det vill säga de senaste loggarna först:

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

För att visa loggar för en specifik tjänst, till exempel mysql, använd -u-flaggan:

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

döda och döda

Du kan behöva döda en skenande process eller när du behöver frigöra några systemresurser. döda med -l flaggan visar alla signaler du kan skicka till en process.

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

De två vanligaste signalerna är SIGTERM OCH SIGKILL. Du kan också använda -9 för SIGKILL och -15 för SIGTERM. SIGTERM låter en process slutföras innan den avslutas och kallas därför soft kill. SIGKILL avslutar processen omedelbart. Här är ett exempel:

Lista alla apache2-processer

[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

För att döda apache2-processen med process-id 45525:

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

Se listan över apache2-processer igen:

[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

Använd killall för att döda ett program med namn. Vilket betyder att killall dödar kontroll(förälder)processen och alla underordnade processer. För att döda alla instanser av apache2-processen i exemplet ovan:

[email protected]:~$ sudo killall apache2

Använd kill and killall med försiktighet. Dessa kommandon kan lämna systemet i ett instabilt tillstånd.

IP

ip-kommandot ersätter ifconfig i de nyare Linux-distributionerna. Använd den för att konfigurera och visa nätverksgränssnitt. Används även för att visa och ändra IP-adresser, rutter och grannobjekt.

Visa information om alla nätverksgränssnitt:

[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

För att få upp eller ner ett gränssnitt använd ip-länkset dev följt av enhetsnamnet. Till exempel, för att få gränssnittet eth0 online:

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

Och för att få ner det:

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

datum

Ett mycket vanligt använt kommando, här utforskar vi några intressanta sätt att använda detta kommando.

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

För att se nästa söndags datum:

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

För att se förra söndagens datum:

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

Du kan också använda –date istället för –d flagga:

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

För att se datum för 6 dagar sedan:

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

Datum om 6 dagar:

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

Du kan enkelt kontrollera datumutdataformatet. Här är ett exempel:

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

Sammanfattning

Du som systemadministratör håller världens datorinfrastruktur igång. Du behöver lösa problem, underhålla och hålla systemen igång optimalt samtidigt som du säkerställer säkerheten.

Hoppas dessa kommandon kommer till användning och hjälper dig att göra ditt jobb bättre.

Här är några FTP/SFTP-klienter och de bästa Vim-fuskbladen för utvecklare och Sysadmin.