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
以人类可读的格式显示输出,即以MB
和GB
为单位。
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的活动情况。
|
进程表字段如下:
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日
总结
作为系统管理员,您保持着世界的运转。您需要解决问题,维护和确保系统的最佳运行状态,同时确保安全性。
希望这些命令能对您有所帮助,帮助您更好地完成工作。
这里有一些链接和链接。