20个Linux命令供系统管理员使用

Linux提供了无数的命令和实用程序,帮助您快速高效地执行系统管理任务。

您作为system admin的工作包括安装和运行软件,控制访问权限,监控,确保可用性,备份,恢复备份,当然还有灭火。 😜

在本文中,我们将回顾一些在Linux系统管理员的日常工作中经常使用的命令。

uname

使用uname命令与-a标志一起打印系统信息。此命令将显示内核名称,内核发布,内核版本,主机名,处理器类型和硬件平台信息。

ubuntu@ubuntu18:~$ 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

这是什么意思:

内核名称: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

df

使用df命令验证文件系统的大小和可用空间。该命令单独使用时以1K块显示输出。

ubuntu@ubuntu18:~$ 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以人类可读的格式显示输出,即以MBGB为单位。

ubuntu@ubuntu18:~$ 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,以获得更干净的输出,请使用标志-x

ubuntu@ubuntu18:~$ 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文件系统:

ubuntu@ubuntu18:~$ 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

使用total标志将添加一行显示总计:

ubuntu@ubuntu18:~$ 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
total            33G  2.3G   31G   8% -

du

要检查目录中的磁盘空间使用情况,请使用du命令。例如,要查看/var/log目录中的磁盘空间使用情况,请使用-h标志以获取人类可读格式。

ubuntu@ubuntu18:~$ 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(摘要)标志。

ubuntu@ubuntu18:~$ sudo du -hs /var/log
204M	/var/log

free

使用free命令查看系统的总内存、已使用内存和可用内存。使用-h选项以人类可读的格式显示。

ubuntu@ubuntu18:~$ free -h
              总计        已用        空闲      共享  缓存/缓冲    可用
内存:           889M        272M        100M        712K        517M        443M
交换区:            0B          0B          0B
总计 - 安装的总内存(内存总数 + 交换区总数)
已用 - 已使用的内存
空闲 - 未使用的内存(可用内存 + 可交换内存)
缓冲区 - 内核缓冲区使用的内存
缓存 - 页面缓存使用的内存
缓存/缓冲 - 缓冲区和缓存的总和
可用 - 估计的可用于启动新应用程序的内存,不包括交换

ps

使用ps命令显示系统上正在运行的进程的状态信息。要查看用户ubuntu拥有的所有进程,请使用-u选项和用户名:

ubuntu@ubuntu18:~$ 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

要查看所有进程,请使用aux选项运行ps:

ubuntu@ubuntu18:~$ 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 进程使用的CPU时间百分比
%MEM 进程使用的RAM百分比
VSZ 使用的虚拟内存(以KB为单位)
RSS 进程使用的物理内存(以KB为单位)
TTY 与进程关联的终端
STAT R – 运行或准备运行,S – 睡眠,I – 空闲,T – 停止,Z – 僵尸,D – 等待磁盘I/O,X – 死亡,W – 被交换出,N – 低优先级进程,< – 高优先级进程

top

虽然ps命令可以显示任意时刻进程的状态快照,但top命令会连续更新(默认每三秒)按进程活动排序的系统进程列表。

top命令输出由两个主要部分组成:顶部的系统摘要和按CPU活动排序的进程表。

top - 14:25:32 运行 44 天, 11:37,  1 个用户,  平均负载:0.00, 0.00, 0.00
任务:共 114 个,  1 个正在运行,  59 个睡眠,  0 个停止,  0 个僵尸
%Cpu(s):  0.3 用户进程,  0.0 系统进程,  0.0 低优先级进程, 99.7 空闲,  0.0 等待磁盘I/O,  0.0 硬件中断,  0.0 软件中断,  0.0 虚拟机超载
内存:  910992 KB 总共,  101208 KB 空闲,  274712 KB 已使用,  535072 KB 缓存

   进程ID 用户      优先级  低优先级  虚拟内存  物理内存  共享内存 状态 %CPU %内存      时间+ 命令    
 50497 ubuntu    20   0   44528   3944   3368 运行  0.7  0.4   0:00.15 top        
     1 root      20   0  160076   7020   4400 睡眠  0.0  0.8   0:34.85 systemd    
     2 root      20   0       0      0      0 睡眠  0.0  0.0   0:00.08 kthreadd   
     3 root       0 -20       0      0      0 空闲  0.0  0.0   0:00.00 rcu_gp     
     4 root       0 -20       0      0      0 空闲  0.0  0.0   0:00.00 rcu_par_gp 
     6 root       0 -20       0      0      0 空闲  0.0  0.0   0:00.00 kworker/0:+
     9 root       0 -20       0      0      0 空闲  0.0  0.0   0:00.00 mm_percpu_+

系统概要中的一些字段如下:

up 系统运行时间,从上次启动机器开始计算。
平均负载 平均负载是指等待运行的进程数量,小于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, 空闲 99.7% CPU空闲
0.0 wa, 等待I/O 0.0% CPU等待I/O
0.0 hi 硬件中断占用的时间
0.0 si 软件中断占用的时间
0.0 st 虚拟机超载导致的时间

进程表字段如下:

PID 进程标识号
USER 进程所有者
PR 优先级
NI 优先级值
VIRT 进程使用的虚拟内存(KB)
RES 进程使用的物理内存
SHR 进程使用的共享内存
S 进程状态。R – 运行,S – 睡眠,I – 空闲,T – 停止,Z – 僵尸,D – 等待磁盘I/O,W – 换出,X – 死亡
%CPU 进程使用的CPU时间百分比
%MEM 进程正在使用的物理内存
TIME[+] 进程使用的总CPU时间
COMMAND 程序名称

top正在运行时,您可以发出许多命令。按下h?以查看在top运行时可以执行的命令。按下k以终止进程。按下q以退出top

dig

dig是一个用于DNS查询的很棒的工具。使用方法如下:

dig   

其中

  • 是您希望查询的DNS服务器名称
  • 是您希望查询的域名
  • 是您希望了解的记录名称 – A、MX、NS SOA等

要抑制详细输出,请使用+short标志。

要查看google.com的A记录,请使用:

ubuntu@ubuntu18:~$ dig google.com +short
172.217.164.174

要查看google.com的MX记录,请使用:

ubuntu@ubuntu18:~$ 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 lookup tool

who和w

who显示已登录的用户。

ubuntu@ubuntu18:~$ 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显示当前已登录的用户及其进程。标题显示当前时间、系统运行时间、已登录用户数和系统负载平均值。

ubuntu@ubuntu18:~$ w
 18:07:33 up 46 days, 15:19,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   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是当前进程使用的时间。

tar

使用GNU tar可以将多个文件归档到一个单独的文件中。

例如,创建一个名为myfiles的目录和三个文件a.txt、b.txt、c.txt在myfiles目录中:

ubuntu@ubuntu18:~$ mkdir myfiles ; touch myfiles/{a.txt,b.txt,c.txt}

现在,为了创建一个名为allfiles.tar的归档文件,其中包含myfiles目录中的所有文件:

ubuntu@ubuntu18:~$ tar -cvf allfiles.tar myfiles
myfiles/
myfiles/c.txt
myfiles/a.txt
myfiles/b.txt

列出当前目录中的所有文件。您可以看到myfiles目录和allfiles.tar归档:

ubuntu@ubuntu18:~$ ls
allfiles.tar  myfiles

您可以使用-x标志解包归档文件。因此,要解包allfiles.tar:

ubuntu@ubuntu18:~$ tar -xvf allfiles.tar
myfiles/
myfiles/c.txt
myfiles/a.txt
myfiles/b.txt

您还可以使用-z标志对该归档文件进行压缩。这将创建一个使用gzip压缩的归档文件。

ubuntu@ubuntu18:~$ tar -zcvf allfiles.tar.gz myfiles
myfiles/
myfiles/c.txt
myfiles/a.txt
myfiles/b.txt
ubuntu@ubuntu18:~$ ls
allfiles.tar.gz  myfiles

要解压缩已压缩的归档文件,请使用-z标志与-x标志。

ubuntu@ubuntu18:~$ tar -zxvf allfiles.tar.gz 
myfiles/
myfiles/c.txt
myfiles/a.txt
myfiles/b.txt

grep

grep用于在文件或一组文件中搜索模式。它打印所有匹配该模式的行。例如,要在/etc/apache2/apache2.conf中搜索包含“ServerRoot”的行:

ubuntu@ubuntu18:~$ grep ServerRoot /etc/apache2/apache2.conf 
# ServerRoot: The top of the directory tree under which the server's
#ServerRoot "/etc/apache2"

要在目录中的所有文件中搜索,使用*。要在子目录中搜索,使用-r(递归)标志。因此,要在/etc/apache2中的所有文件中搜索包含模式“VirtualHost”的所有行:

ubuntu@ubuntu18:~$ cd /etc/apache2
ubuntu@ubuntu18:/etc/apache2$ grep -r VirtualHost *
apache2.conf:#如果您在中不指定ErrorLog指令
apache2.conf:#在此处记录。如果您*确实*为定义错误日志文件
conf-available/localized-error-pages.conf:#即使在每个VirtualHost上也是如此。如果在全局服务器中包含别名
conf-available/other-vhosts-access-log.conf:#为未定义自己的日志文件的VirtualHost定义访问日志
ports.conf:#必须更改VirtualHost语句
sites-available/000-default.conf:
...

rsync

rsync是一种快速的命令行工具,用于在两个位置之间同步文件和目录。可用于本地和远程复制,因为它仅发送源文件与目标中现有文件之间的差异。

它被广泛用于备份和作为每日使用的改进副本命令。

以下是一个示例:

将所有文件从myfiles目录复制/同步到backups目录:

ubuntu@ubuntu18:~$ rsync -avh myfiles/ /backups
发送增量文件列表
./
a.txt
b.txt
c.txt

已发送218字节 接收到76字节 速度为588.00字节/秒
总大小为0  速度为0.00

要将myfiles目录中的所有文件复制/同步到远程主机上的backups目录中,在目标名称中包含remote_user @remote_host。因此,要将myfiles文件夹同步到IP为10.0.0.50的远程主机:

vagrant@ubuntu-xenial:~$ rsync -avh myfiles/ [email protected]:/home/vagrant
[email protected]的密码:
发送增量文件列表
./
a.txt
b.txt
c.txt

已发送230字节 接收到76字节 速度为47.08字节/秒
总大小为0  速度为0.00

ss

ss命令用于转储套接字统计信息,类似于传统的netstat实用程序。要显示TCP套接字,请使用-t标志。

ubuntu@ubuntu18:~$ ss -t 
状态       接收队列(Q)        发送队列(Q)                 本地地址:端口                     对方地址:端口         
已建立      0             0                           10.0.0.4:53852                   168.63.129.16:8037         
已建立      0             0                           10.0.0.4:ssh                    183.83.211.129:64118        
已建立      0             0                           10.0.0.4:33256                 169.254.169.254:http         
已建立      0             1080                        10.0.0.4:ssh                     222.186.30.35:11527        
已建立      0             0                           10.0.0.4:ssh                    183.83.211.129:63049

这不会显示正在侦听的套接字。要包括正在侦听和非侦听的套接字,请使用-t-a标志。

ubuntu@ubuntu18:~$ ss -t -a
State Recv-Q Send-Q Local Address:Port Peer Address:Port
监听 0 128 0.0.0.0:ssh 0.0.0.0:*
监听 0 80 127.0.0.1:mysql 0.0.0.0:*
监听 0 128 127.0.0.53%lo:domain 0.0.0.0:*
已建立 0 0 10.0.0.4:53852 168.63.129.16:8037
已建立 0 0 10.0.0.4:ssh 183.83.211.129:64118
已建立 0 0 10.0.0.4:33256 169.254.169.254:http
已建立 0 1080 10.0.0.4:ssh 222.186.30.35:11527
已建立 0 120 10.0.0.4:ssh 183.83.211.129:63049
监听 0 128 [::]:ssh [::]:*
监听 0 128 *:http *:*

locate

locate命令使用数据库来搜索文件,实际上比find命令快得多。非常简单易用,比如搜索一个文件,比如apache2.conf:

ubuntu@ubuntu18:~$ locate apache2.conf
/etc/apache2/apache2.conf
/var/lib/dpkg/info/apache2.conffiles

如果只想得到与搜索模式匹配的文件数量,可以使用-c标志。

ubuntu@ubuntu18:~$ locate -c apache2.conf
2

有时候,您可能需要刷新locate使用的数据库,这是mlocate。要更新数据库,请使用updatedb命令。这需要超级用户权限。

ubuntu@ubuntu18:~$ sudo updatedb

find

最常用的命令之一。使用它根据文件名、权限、用户ID、组ID、大小、文件类型等标准搜索文件。

要在当前目录中按名称搜索文件,请使用-name标志后跟要搜索的文件名。

ubuntu@ubuntu18:~$ find . -name a.txt
./myfiles/a.txt

要搜索目录,请使用-type d标志。

ubuntu@ubuntu18:~$ find . -type d
.
./.ssh
./myfiles
./.cache
./.gnupg
./.gnupg/private-keys-v1.d
./docker

要按大小搜索文件,例如查找大于20MB的文件,请使用-size标志。

ubuntu@ubuntu18:~$ 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

了解有关find的更多信息。

systemctl

现在,systemd已经取代了大多数Linux发行版中的SysV init进程,使用systemctl命令来管理systemd服务和单元。

要启动一个服务,例如apache2:

ubuntu@ubuntu18:~$ sudo systemctl start apache2.service

可以省略服务后缀。

要停止一个服务:

ubuntu@ubuntu18:~$ sudo systemctl stop apache2

要查看服务状态,请使用systemctl status命令。以下示例显示了正在运行的apache2状态。

ubuntu@ubuntu18:~$ sudo systemctl status apache2
● apache2.service – Apache HTTP服务器
已加载: 已加载 (/lib/systemd/system/apache2.service; 启用; 厂商预设值: 启用)
拟定: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
活动的: 激活 (运行中) since Wed 2020-08-19 11:34:04 UTC; 2s ago
进程: 25346 ExecStop=/usr/sbin/apachectl stop (代码=已退出,状态=0/成功)
进程: 18202 ExecReload=/usr/sbin/apachectl graceful (代码=已退出,状态=0/成功)
进程: 25536 ExecStart=/usr/sbin/apachectl start (代码=已退出,状态=0/成功)
主 PID: 25555 (apache2)
任务: 55 (限制: 1024)
控制组: /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]: 正在启动 Apache HTTP服务器…
Aug 19 11:34:04 ubuntu18 systemd[1]: 已启动 Apache HTTP服务器。

ufw命令

UFW – 简化的防火墙是一个易于使用的iptables前端。它在基于Ubuntu的发行版中默认安装。在CentOS上,您可以从EPEL存储库安装ufw。

要启用ufw:

$ sudo ufw enable

使用ufw status检查防火墙状态:

$ sudo ufw status
状态: 激活

默认的UFW策略允许所有的出站流量,并阻止所有的入站流量。

以下命令允许HTTP端口的入站流量:

$ sudo ufw allow http
已添加规则
已添加规则(v6)

您可以拒绝任何端口上的流量。这里有一个阻止端口21流量的例子:

$ sudo ufw deny 21
已添加规则
已添加规则(v6)

journalctl

使用journalctl查看systemd收集的日志。systemd以二进制格式在一个中心位置收集日志。要查看这些日志:

ubuntu@ubuntu18:~$ 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 (buildd@lcy01-amd64-003) (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
...

通常,您更喜欢以相反的顺序查看日志,即首先查看最新的日志:

ubuntu@ubuntu18:~$ 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标志:

ubuntu@ubuntu18:~$ 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]: 正在启动 MySQL Community Server...
Aug 16 12:30:03 ubuntu18 systemd[1]: 已启动 MySQL Community Server。
Aug 19 15:03:27 ubuntu18 systemd[1]: 正在停止 MySQL Community Server...
Aug 19 15:03:29 ubuntu18 systemd[1]: 已停止 MySQL Community Server。

kill和killall

您可能需要终止一个失控的进程,或者在您需要释放一些系统资源时终止进程。使用-l标志的kill命令可以显示您可以发送给进程的所有信号。

ubuntu@ubuntu18:~$ 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允许进程在被终止之前完成,因此被称为软终止。SIGKILL会立即终止进程。以下是一个示例:

列出所有apache2进程

ubuntu@ubuntu18:~$ 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

使用进程ID 45525终止apache2进程:

ubuntu@ubuntu18:~$ sudo kill -9 45525

再次查看apache2进程列表:

ubuntu@ubuntu18:~$ 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进程的所有实例:

ubuntu@ubuntu18:~$ sudo killall apache2

请谨慎使用kill和killall命令。这些命令可能会使系统处于不稳定状态。

IP

ip命令在较新的Linux发行版中取代了ifconfig。使用它来配置和显示网络接口。还用于显示和修改IP地址、路由和邻居对象。

显示所有网络接口的信息:

ubuntu@ubuntu18:~$ ip a
1: lo:  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:  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:

ubuntu@ubuntu18:~$ ip link set eth0 up

要禁用它:

ubuntu@ubuntu18:~$ ip link set eth0 down

date

这是一个非常常用的命令,下面我们将探索一些有趣的用法。

ubuntu@ubuntu18:~$ date
Tue Aug 11 07:42:49 UTC 2020

查看下个星期日的日期:

ubuntu@ubuntu18:~$ date -d 'next sunday'
Sun Aug 16 00:00:00 UTC 2020

查看上个星期日的日期:

ubuntu@ubuntu18:~$ date -d 'last sunday'
Sun Aug  9 00:00:00 UTC 2020

您还可以使用–date代替-d标志:

ubuntu@ubuntu18:~$ date --date='last sunday'
Sun Aug  9 00:00:00 UTC 2020

查看6天前的日期:

ubuntu@ubuntu18:~$ date --date='6 days ago'
2020年8月5日星期三 08:06:37 UTC

6天后的日期:

ubuntu@ubuntu18:~$ date --date='6 days'
2020年8月17日星期一 08:08:37 UTC

你可以轻松控制日期的输出格式。这是一个例子:

ubuntu@ubuntu18:~$ date '+%Y年%B%d日'
2020年8月11日

总结

作为系统管理员,您保持着世界的运转。您需要解决问题,维护和确保系统的最佳运行状态,同时确保安全性。

希望这些命令能对您有所帮助,帮助您更好地完成工作。

这里有一些链接和链接。

类似文章