用户相关
whoami命令 - 打印当前登录用户
当你不知道当前登录系统的是谁,可以看控制台的,也可以使用whoami命令:
whoami
sudo命令 - 以管理员身份执行命令
当我们登录的用户不是root权限,并且想要使用root权限执行命令,可以使用sudo命令
sudo vim file.txt # 以管理员身份编辑file.txt文件
su命令 - 切换用户
su [参数] 用户名
su root # 切换到root用户
参数 | 说明 |
---|---|
-l 或--login | 改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname,此外,也会变更PATH变量 |
-m ,-p 或--preserve-environment | 变更身份时,不要变更环境变量 |
-s 或--shell | 指定要执行的shell |
passwd命令 – 修改用户账户密码
passwd # 修改当前用户密码
sudo passwd root # 修改root密码
passwd -l crazyjialin # 锁定用户crazyjialin,不允许修改密码
passwd -u crazyjialin # 解锁锁定的用户,允许修改密码
参数 | 说明 |
---|---|
-l | 锁定用户密码,无法被用户自行修改 |
-u | 解开已锁定用户密码,允许用户自行修改 |
-d | 删除密码,会 造成很大的安全问题,不推荐使用 |
ssh 远程连接其他服务器
ssh -p 22 root@192.168.0.1 # 使用root用户,22端口连接到192.168.0.1
参数 | 说明 |
---|---|
-l <登录名> | 指定连接远程服务器的登录用户名,也可以使用 user@ip 方式制定登录用户 |
-p <端口> | 指定远程服务器上的端口 |
-q | 静默模式,所有的警告和诊断信息被禁止输出 |
-1 | 强制使用ssh协议版本1 |
-2 | 强制使用ssh协议版本2 |
-4 | 强制使用IPv4地址 |
-6 | 强制使用IPv6地址 |
配置免密快捷登录(键入ssh <快捷登录名>
即可连接)
- 客户端生成密钥
生成密钥过程中,建议采用默认值,只需要按三次回车之后,就会在ssh-keygen -t rsa
~/.ssh
目录下生成密钥文件,其中,id_rsa为私钥,id_rsa.pub为公钥。 - 将客户端生成密钥上传到服务端
服务器的~/.ssh/authorized_keys
文件保存可快速连接的客户端的公钥。只需把客户端生成的id_rsa.pub文件的内容拷贝到authorized_keys文件的末尾。
配置完成后,就可以实现免密登录了,直接ssh到指定的服务器,不用输入密码即可登录 - 客户端配置快捷登录
为了减少每次连接是需要输入ip和用户名的操作,我们可以配置快捷登录。在客户端的~/.ssh/config
(如果没有就创建一个config文件)配置服务器的相关参数简化登录命令,具体配置方式如下:
配置完成后,我们就可以使用以下快捷命令连接uat的服务器:Host uat Hostname 192.168.1.1 Port 22 User root
ssh uat
系统相关
查看系统版本号
cat /etc/redhat-release
# CentOS Linux release 7.8.2003 (Core)
cat /etc/issue
# Ubuntu 20.04 LTS \n \l
lsb_release -a
# No LSB modules are available.
# Distributor ID: Ubuntu
# Description: Ubuntu 20.04 LTS
# Release: 20.04
# Codename: focal
查看linux内核版本号
cat /proc/version
# Linux version 4.4.0-19041-Microsoft (Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) ) #1237-Microsoft Sat Sep 11 14:32:00 PST 2021
uname -a
# Linux CJL-PC 4.4.0-19041-Microsoft #1237-Microsoft Sat Sep 11 14:32:00 PST 2021 x86_64 x86_64 x86_64 GNU/Linux
getconf命令 - 查看系统配置
getconf LONG_BIT # 查看系统位数
文件相关
cd命令 - 切换目录
cd是‘change directory’缩写,译为切换目录;cd后直接跟目的路径即可,可以是相对路径,也可以是绝对路径;
/
:系统根路径;
~
:当前用户工作目录;
/mnt
: mount - 挂载,代表一些挂接存储设备路径。如果是按照文章顶端方式,在win10系统安装的Ubuntu,/mnt
代表的就是我们windows磁盘的根路径
写路径时可以写出前一部分路径名,按一下tab
键自动补全,如果不是唯一,按两下tab
键打印出所有匹配项;
cd ../ # 切换到上一级
cd / # 切换到根路径
cd ~ # 切换到当前用户工作目录
ls命令 - 显示目录内容
ls是’list’的缩写,用于显示指定目录下的内容及属性
ls [参数] [目录]
ls -a # 查看当前目录下所有内容,包括隐藏的文件和目录
ls -l # 查看当前目录下内容及属性,同ll命令
参数 | 说明 |
---|---|
-a | 显示所有文件及目录 (包括以“.”开头的隐藏文件) |
-l | 使用长格式列出文件及目录信息 |
-r | 将文件以相反次序显示(默认依英文字母次序) |
-t | 根据最后的修改时间排序 |
-A | 同 -a ,但不列出 “.” (当前目录) 及 “…” (父目录) |
-S | 根据文件大小排序 |
-R | 递归列出所有子目录 |
ll命令 - 列出目录内容的详细信息
ll是ls -l
的别名,用于查看目录中内容的详细信息
ll [参数] [目录]
参数 | 说明 |
---|---|
-a | 列出目录下的所有文件,包括以 . 开头的隐含文件 |
-A | 显示除 “.”和“…”外的所有文件 |
-k | 以 k 字节的形式表示文件的大小 |
-s | 在每个文件名后输出该文件的大小 |
-N | 不限制文件长度 |
-t | 以时间排序 |
-u | 以文件上次被访问的时间排序 |
输出结果:
第一列:
- 第一个字符表示文件的类型:
-
表示普通文件,d
表示目录,l
表示链接文件;- 剩下的9个字符,三个为一组分为三组,分别代表文件所有者对该文件的权限、文件所有者所在组的其他用户对该文件的权限、其他用户对该文件的权限;
r
(Read,读取权限),w
(Write,写入权限),x
(eXecute,执行权限);第二列:表示目录内一级子目录的个数(注意此处看到的值要减2才等于该目录下的子目录的实际个数,因为每个目录下都有一个
./
和一个../
),如果是文件或者链接则为1;
第三列:文件所有者,Linux/Unix 属于多用户多任务操作系统,所有的文件皆有拥有者;
第四列:文件所有者所在的组;
第五列: 文件大小,如果是目录,则表示该目录符所占的大小,并不表示该目录下所有文件的大小(一般目录为4096);
第六七八列:修改日期;
第九列:文件名称;
chmod命令 - 更改文件或目录权限 (重要)
chmod命令的英文原意是“change the permissions mode of a file”,我们简称为“change mode”。
前边讲了ll命令可以查看文件的权限,9位字符分别代表文件所有者,所有者所在组内成员,其他人员的 r读 w写 x可执行权限,chmod命令就是用来修改这些权限的。
分别有以下两种模式:
- 模式一:采用权限字母和操作符方式
u
表示user(owner) - 文件所有者、g
表示group - 文件所有者所在组、o
表示other - 其他用户、a
表示all -三者全部。可以搭配使用,如ug
表示文件所有者及其所在组;+
表示添加权限,-
表示删除权限
chmod u+r file.txt # 给file.txt文件的所有者添加 r读权限
chmod g-w file.txt # 给file.txt文件所有者所在群组内其他成员去掉 w写权限
chmod o+x shell1 # 给shell1文件除所有者所在组外其他成员添加 x可执行操作权限
- 模式二:采用数字方式修改权限
rwx三个值分别代表读写执行的权限,我们将用三位二级制数来表示对应权限,1代表有,0代表无,如下图:
chmod 777 file.txt # 将file.txt文件的权限修改为rwxrwxrwx,即所有用户都有读写执行的权限
chmod -R 764 dir # 将dir目录及目录内所有内容的权限修改为rwxrw-r--
参数 | 说明 |
---|---|
-R | 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更) |
-v | 显示权限变更的详细资料 |
chown命令 - 改变文件或目录所属用户和用户组
chown 命令可以将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID,组可以是组名或者组ID,文件是以空格分开的要改变权限的文件列表,支持通配符。一般来说,这个指令仅限系统管理者(root)所使用,普通用户没有权限改变文件所属者及所属组。
chown crazyjialin test.txt # 修改test.txt文件的所有者为crazyjialin
chown -R crazy:crazy dir # 修改dir目录及其内容的所有者及用户组为crazy
参数 | 说明 |
---|---|
-R | 对目前目录下的所有文件与子目录进行相同的拥有者变更 |
-c | 若该文件拥有者确实已经更改,才显示其更改动作 |
-f | 若该文件拥有者无法被更改也不要显示错误讯息 |
-h | 只对于连结(link)进行变更,而非该 link 真正指向的文件 |
-v | 显示拥有者变更的详细资料 |
touch命令 - 创建文件
touch file.txt #创建file.txt文件
touch file{1..5}.txt # 批量创建文件(file1.txt file2.txt file3.txt file4.txt file5.txt)
mkdir命令 - 创建目录
mkdir dir # 创建子目录dir
mkdir dir1 dir2 dir3 # 创建多个子目录
mkdir -m 700 dir # 创建dir目录,并且设置文件属主有读、写和执行权限,其他人无权访问
参数 | 说明 |
---|---|
-p | 递归创建多级目录 |
-m | 建立目录的同时设置目录的权限 |
rm命令 - 移出文件或目录
linux是没有回收站的,所以删除文件或者目录时一定要保持清醒的头脑!
rm -rf * # 递归删除当前目录下所有文件
参数 | 说明 |
---|---|
-f | 忽略不存在的文件,不会出现警告信息 |
-i | 删除前会询问用户是否操作 |
-r/R | 递归删除 |
-v | 显示指令的详细执行过程 |
cat命令 - 查看文件内容 (重要)
Linux系统中有很多个用于查看文件内容的命令,每个命令又都有自己的特点,比如这个cat命令就是用于查看内容较少的纯文本文件的。
当文件内容较大时,文本内容会在屏幕上快速闪动(滚屏),用户往往看不清所显示的具体内容。因此对于较长文件内容可以按Ctrl+S键,停止滚屏;以及Ctrl+Q键可以恢复滚屏;而按Ctrl+C(中断)键则可以终止该命令的执行。
cat filename.txt # 查看文件内容
cat -n filename.txt # 查看文件内容,并且显示行数编号
# 查看文件的内容,并添加行数编号后输出到另外一个文件中
cat -n linuxcool.log > linuxprobe.log
参数 | 说明 |
---|---|
-n | 显示行数(空行也编号) |
-s | 显示行数(多个空行算一个编号) |
-b | 显示行数(空行不编号) |
-E | 每行结束处显示$符号 |
tail命令 – 查看文件尾部内容 (重要)
tail用于显示文件尾部的内容,默认在屏幕上显示指定文件的末尾10行,适用于查看log之类的文件。
tail file #查看file文件的最后10行
tail -n 20 file # 查看file文件的最后20行
tail +20 file # 显示文件file的内容,从第20行至文件末尾
tail -f 10 file # 一直变化的文件总是显示后10行
参数 | 说明 |
---|---|
-n <N>或--line=<N> | 输出文件的尾部N(N位数字)行内容 |
-f <name/descriptor> | --follow<nameldescript> :显示文件最新追加的内容 |
--retry | 即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用 |
vi/vim命令 - 文本编辑器 (重要)
vi命令是linux系统字符界面下的最常用的文本编辑器,vim是vi的升级版。
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)
- 命令模式
用户刚刚启动 vi/vim,便进入了命令模式,此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i
,并不会输入一个字符,而是被当作了一个命令。
以下是常用的几个命令:令 功能 i
/insert
切换到输入模式 :
切换到底线命令模式 u
撤销(Undo) ctrl + r
重做(Redo),即撤销的撤销 dd
删除当前行 yy
拷贝当前行 p
在当前光标后粘贴,如果之前使用了yy命令来复制一行,那么就在当前行的下一行粘贴 - 底线命令模式
在命令模式下按下:
即可进入底线命令模式。
以下是常用的几个命令:命令 功能 :q
/退出vim程序 :q!
放弃所有更改,强制退出vim :w
保存文件 :wq
保存所有修改并退出 :e
重新加载当前文档 :e!
放弃所有更改,并重新加载文档 :saveas [文件名]
另存为 :split [文件名]
以上下并排方式打开另外一个文件,期间键入 ctrl + w
切换窗口:vsplit [文件名]
以左右并排方式打开另外一个文件,期间键入 ctrl + w
切换窗口 - 输入模式
在命令模式下按下i
或者insert
即可进入输入模式,输入模式可以对文件内容进行修改;按下esc
退出输入模式,进入命令模式。
cp命令
cp是copy的缩写,可以复制文件或目录。
cp [参数] [源文件] [目标]
参数 | 说明 |
---|---|
-f | 若目标文件已存在,则会直接覆盖原文件 |
-i | 若目标文件已存在,则会询问是否覆盖 |
-p | 保留源文件或目录的所有属性 |
-r | 递归复制文件和目录 |
-d | 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录 |
-l | 对源文件建立硬连接,而非复制文件 |
-s | 对源文件建立符号连接,而非复制文件 |
-b | 覆盖已存在的文件目标前将目标文件备份 |
-v | 详细显示cp命令执行的操作过程 |
-a | 等价于“dpr”选项 |
scp命令 - 远程拷贝文件
scp是 secure copy的缩写,可以在不同linux服务器之间进行安全的文件拷贝。
# 从远程赋值文件到本地目录
scp root@192.168.10.10:/opt/soft/rhel-server-7.3-x86_64.tar.gz /opt/soft/
# 从远程复制目录到本地
scp -r root@10.10.10.10:/opt/soft/mysql /opt/soft/
# 上传本地文件到远程机器指定目录
scp /opt/soft/rhel-server-7.3-x86_64.tar.gz root@192.168.10.10:/opt/soft/scptest
# 上传本地目录到远程机器指定目录
scp -r /opt/soft/mysql root@192.168.10.10:/opt/soft/scptest
# 保留文件的最后修改时间,最后访问时间和权限模式
scp -p /root/install.log root@192.168.10.10:/tmp
参数 | 说明 |
---|---|
-C | 使用压缩 |
-r | 以递归方式复制 |
-o | 指定使用的ssh选项 |
-P | 指定远程主机的端口号 |
-p | 保留文件的最后修改时间,最后访问时间和权限模式 |
-l | 指定宽带限制 |
-1 | 强制使用ssh协议版本1 |
-2 | 强制使用ssh协议版本2 |
-4 | 强制使用IPv4地址 |
-6 | 强制使用IPv6地址 |
find命令 - 查找和搜索文件 (重要)
find命令可以根据给定的路径和表达式查找的文件或目录。
find如不加任何参数,表示查找当前路径下的所有文件和目录,如果服务器负载比较高尽量不要在高峰期使用find命令,find命令模糊搜索还是比较消耗系统资源的。
find [路径] [参数] [参数值]
find /etc -name "*.conf" # 使用-name参数查看/etc目录下面所有的.conf结尾的配置文件
find /home ! -name "*.txt" # 找出/home下不是以.txt结尾的文件
find /etc -size +1M # 使用-size参数查看/etc目录下面大于1M的文件
find /var/log -iname "*.log" # 在/var/log目录下忽略大小写查找以.log结尾的文件名
find . -type f -atime +7 # 搜索超过七天内被访问过的所有文件
find . -type f -amin +10 # 搜索访问时间超过10分钟的所有文件
find ~ -type d ! -empty # 检索用户主目录下所有的非空目录
find ~ -type d -empty -delete # 删除用户主目录下所有空目录
find / -maxdepth 3 # 搜索时向下递归的层数最大为 3
参数 | 说明 |
---|---|
-name | 按名称查找,名称中可以使用? 表示任意单个字符,* 表示任意数量的任意字符 |
-size | 按大小查找,c : 字节、k :KB、M :MB、G :GB,可以用+ 或- 表示大于和小于 |
-type | 按类型查找, f :文件,d :目录,l :符号链接 |
-iname | 忽略大小写 |
-empty | 查找空的文件或者目录 |
-user / -group | 根据文件所有者或所有者所在组进行查询 |
-maxdepth | 限制递归层数 |
-delete | 删除搜索到的文件和目录 |
-mtime | modification time,文件内容最后一次有过更改的时间点,可以用+ 或- 表示大于和小于 |
-atime | access time,最后一次文件有被读取过的时间点 |
-ctime | change time,最后一次文件有被变更过的时间点(如内容被修改,或权限等 metadata 被修改) |
在所有参数+值前可以加逻辑判断符,即
!
表示反义匹配,使用方式见示例
-mtime 2
:该文件 2 天前被修改过
-mtime -2
:该文件 2 天以内被修改过
-mtime +2
:该文件距离上次修改已经超过 2 天时间
which命令 - 查找Path中可执行文件 (重要)
which命令的作用是在PATH变量指定的路径中,搜索某个系统命令的位置,我们使用which命令来检查某个系统命令是否存在,或者找出所执行命令所对应的具体位置。
which node # 找到node命令的执行文件所在位置
whereis命令 - 显示命令及相关文件的路径
- whereis命令用来定位命令的二进制程序、源代码文件和man手册页等相关文件的路径。
- 与which不同的是这条命令可以是通过文件索引数据库而非PATH来查找的,所以查找的面比which要广。
- whereis命令查找速度非常快,因为它不是在磁盘中乱找,而是在一个数据库中查询; 数据库是linux系统自动创建的,包含有本地所有文件的信息,并且每天通过自动执行updatedb命令更新一次。正因为这样,whereis命令的搜索结果有时候会不准确,比如刚添加的文件可能搜不到, 原因就是该数据库文件没有被更新。
whereis [参数] [命令名]
whereis node # 查找node命令及说明文件所在位置
whereis -b node # 只查找node命令所在位置
参数 | 说明 |
---|---|
-b | 查找二进制程序或命令 |
-B | 从指定目录下 查找二进制程序或命令 |
-m | 查找man手册文件 |
-M | 从指定目录下 查找man手册文件 |
-s | 只查找源代码文件 |
-S | 从指定目录下 查找源代码文件 |
网络和进程相关
ifconfig命令 - 显示或设置网络设备
ifconfig命令的英文全称是“network interfaces configuring”,即用于配置和显示Linux内核中网络接口的网络参数。
ifconfig # 查看本机网络设备信息
ifconfig eth0 down # 关闭eht0网卡
ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255 # 配置IP地址
参数 | 说明 |
---|---|
add<地址> | 设置网络设备IPv6的IP地址 |
del<地址> | 删除网络设备IPv6的IP地址 |
down | 关闭指定的网络设备 |
up | 启动指定的网络设备 |
IP地址 | 指定网络设备的IP地址 |
ping命令 - 测试主机间网络连通性
ping命令主要用来测试主机之间网络的连通性
ping [参数] [主机地址/域名]
ping -c 4 -i 3 www.jd.com # 连续 ping www.jd.com 4次,时间间隔为3秒
参数 | 说明 |
---|---|
-c | 指定发送报文的次数 |
-i | 指定收发信息的间隔时间 |
telnet命令 - 远程登录主机或测试端口连通性
telnet命令用于登录远程主机,对远程主机进行管理。telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了。但是我们可以使用telnet命令来测试目的主机的某个端口是否开放。
telnet 172.16.48.184 1980 # 测试172.16.48.184主机的1980端口是否开放
netstat命令 - 显示网络命令
netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
netstat -tnlp # 查看监听状态的tcp相关的进程情况 (常用)
输出结果表头含义:
- Proto: 协议
- Recv-Q: 接收队列
- Send-Q: 发送队列
- Local Address: 内网地址
- Foreign Address: 外网地址
- State: 状态
- PID/Program name: 进程id和程序名称
参数 | 说明 |
---|---|
-t | (tcp)仅显示tcp相关选项 |
-u | (udp)仅显示udp相关选项 |
-n | 拒绝显示别名,能显示数字的全部转化为数字 |
-l | 仅列出在Listen(监听)的服务状态 |
-p | 显示建立相关链接的程序名 |
-i | 显示网络界面信息表单 |
-s | 显示网络工作信息统计表 |
-a | 显示所有连线中的Socket |
ps命令 - 显示进程状态
ps命令是“process status”的缩写,ps命令用于显示当前系统的进程状态。可以搭配kill
指令随时中断、删除不必要的程序。
ps -aux # 查看系统中所有进程
ps -el # 查看进程详细信息,包括父进程id和进程优先级
输出结果表头含义:
- USER :该进程是由哪个用户产生的。
- PID:进程的 ID。
- %CPU:该进程占用 CPU 资源的百分比,占用的百分比越高,进程越耗费资源。
- %MEM:该进程占用物理内存的百分比,占用的百分比越高,进程越耗费资源。
- VSZ:该进程占用虚拟内存的大小,单位为 KB。
- RSS:该进程占用实际物理内存的大小,单位为 KB。
- TTY:该进程是在哪个终端运行的。其中,tty1 ~ tty7 代表本地控制台终端(可以通过 Alt+F1 ~ F7 快捷键切换不同的终端),tty1~tty6 是本地的字符界面终端,tty7 是图形终端。pts/0 ~ 255 代表虚拟终端,一般是远程连接的终端,第一个远程连接占用 pts/0,第二个远程连接占用 pts/1,依次増长。
- STAT:进程状态。常见的状态有以下几种:
-D:不可被唤醒的睡眠状态,通常用于 I/O 情况。
-R:该进程正在运行。
-S:该进程处于睡眠状态,可被唤醒。
-T:停止状态,可能是在后台暂停或进程处于除错状态。
-W:内存交互状态(从 2.6 内核开始无效)。
-X:死掉的进程(应该不会出现)。
-Z:僵尸进程。进程已经中止,但是部分程序还在内存当中。
-<:高优先级(以下状态在 BSD 格式中出现)。
-N:低优先级。
-L:被锁入内存。
-s:包含子进程。
-l:多线程(小写 L)。
-+:位于后台。- START:该进程的启动时间。
- TIME:该进程占用 CPU 的运算时间,注意不是系统时间。
- COMMAND:产生此进程的命令名。
输出结果表头含义:
- F 进程标志,说明进程的权限,常见的标志有两个:
1:进程可以被复制,但是不能被执行;
4:进程使用超级用户权限;- S 进程状态。具体的状态和"psaux"命令中的 STAT 状态一致;
- UID 运行此进程的用户的 ID;
- PID 进程的 ID;
- PPID 父进程的 ID;
- C 该进程的 CPU 使用率,单位是百分比;
- PRI 进程的优先级,数值越小,该进程的优先级越高,越早被 CPU 执行;
- NI 进程的优先级,数值越小,该进程越早被执行;
- ADDR 该进程在内存的哪个位置;
- SZ 该进程占用多大内存;
- WCHAN 该进程是否运行。"-"代表正在运行;
- TTY 该进程由哪个终端产生;
- TIME 该进程占用 CPU 的运算时间,注意不是系统时间;
- CMD 产生此进程的命令名;
参数 | 说明 |
---|---|
a | 显示一个终端的所有进程,除会话引线外 |
u | 显示进程的归属用户及内存的使用情况 |
x | 显示没有控制终端的进程 |
-l | 长格式显示更加详细的信息 |
-e | 显示所有进程 |
kill命令 - 杀死进程
kill命令用来删除执行中的程序或工作。
kill [参数] [进程号]
kill 104 # 正常结束id为104的进程(默认值是-15)
kill -9 104 # 强制结束id为104的进程
参数 | 说明 |
---|---|
-l <信息编号> | 若不加<信息编号>选项,列出系统支持的信号 |
-s <信息名称或编号> | 指定向进程发送的信号 |
-a | 处理当前进程时不限制命令名和进程号的对应关系 |
-p | 指定kill命令只打印相关进程的进程号,而不发送任何信号 |
-u | 指定用户 |
常用信号:
- HUP 1 终端断线
- INT 2 中断(同 Ctrl + C)
- QUIT 3 退出(同 Ctrl + \)
- TERM 15 终止
- KILL 9 强制终止
- CONT 18 继续(与STOP相反, fg/bg命令)
- STOP 19 暂停(同 Ctrl + Z)