【学习笔记】Linux命令
服务
以下均以api.service
服务为例演示,在对服务进行操作时,结尾的.service
可以省略。
启停、重载、状态
作用 | 命令 |
---|---|
启动服务 | systemctl start api.service |
停止服务 | systemctl stop api.service |
重启服务 | systemctl restart api.service |
重新加载配置文件 | systemctl reload api.service |
查看服务状态 | systemctl status api.service |
自启动
作用 | 命令 |
---|---|
开机自启动 | systemctl enable api.service |
开机不自启动 | systemctl disable api.service |
查看是否开机自启动 | systemctl is-enabled api.service |
查看各个级别服务的自启情况 | systemctl list-unit-files --type=service |
常用系统工作命令
Linux命令格式为命令名称 [命令参数] [命令对象]
命令对象一般指要处理的文件、目录、用户等资源;命令参数可以用长格式(完整的选项名称),也可以用短格式(单个字母的缩写),两者分别用–与-作为前缀,段格式与短格式之间可以进行合并,合并后仅保留一个-(减号)即可。
echo命令
用于输出字符串或变量提取后的值到终端。格式为echo [字符串|$变量名]

date命令
显示或设置系统时间。格式为date [选项] [+指定的格式]
选项
- -s, –set=STRING:根据字符串设置系统时间。
- -d, –date=STRING:通过字符串显示时间格式。
指定的格式如下:
1 | %% 输出字符 % |

示例
+指定格式
1 | root@wq3stone:~# date |
当您不希望出现无意义的 0 时(比如说 1999/03/07),则可以在标记中插入 - 符号,比如说 date ‘+%-H:%-M:%-S’ 会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04 会变为 8:9:4。
-d参数
1 | root@wq3stone:~# date +%Y%m%d # 显示年月日 |
-s参数
1 | date -s # 设置当前时间,只有root权限才能设置,其他只能查看 |
只有取得权限者(比如说 root)才能设定系统时间。当您以 root 身分更改了系统时间之后,请记得以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续保持最新的正确值。
reboot命令
重启系统,默认只有root用户有此权限
poweroff命令
关闭系统,默认只有root用户有此权限
wget命令
用于在终端中下载网络文件,格式为wget [参数选项] 下载地址
下载控制选项
选项 | 说明 | 示例 |
---|---|---|
-O <文件名> |
指定保存文件名 | wget -O myfile.zip https://example.com/file.zip |
-P <目录> |
指定下载目录 | wget -P ~/downloads https://example.com/file.zip |
-c |
断点续传 | wget -c https://example.com/bigfile.iso |
-b |
后台下载 | wget -b https://example.com/largefile.mp4 |
连接设置选项
选项 | 说明 | 示例 |
---|---|---|
--limit-rate=<速度> |
限速下载 | wget --limit-rate=200k https://example.com/file.iso |
-t <次数> |
设置重试次数 | wget -t 5 https://example.com/unstable.file |
--timeout=<秒> |
设置超时时间 | wget --timeout=30 https://example.com/slow.file |
递归下载选项
选项 | 说明 | 示例 |
---|---|---|
-r |
递归下载 | wget -r https://example.com/directory/ |
-l <深度> |
设置递归深度 | wget -r -l 2 https://example.com/ |
-np |
不追溯至父目录 | wget -r -np https://example.com/path/ |
实用示例与应用场景
示例 1:下载单个文件并重命名
wget -O linux_distro.iso https://example.com/ubuntu-22.04.iso
说明:
- 从指定 URL 下载 Ubuntu 22.04 镜像
- 使用
-O
选项将文件保存为自定义名称linux_distro.iso
示例 2:限速下载大文件
wget --limit-rate=500k -c https://example.com/large_video.mp4
说明:
--limit-rate=500k
将下载速度限制在 500KB/s-c
支持断点续传,网络中断后可继续下载
示例 3:递归下载整个网站
wget -r -l 5 --convert-links --wait=2 https://example-site.com
说明:
-r
启用递归下载-l 5
设置最大递归深度为 5 层--convert-links
转换链接适合本地浏览--wait=2
每次下载间隔 2 秒,减轻服务器负担
高级技巧与注意事项
1. 批量下载文件
创建一个包含多个 URL 的文本文件 urls.txt
,然后使用:
wget -i urls.txt
2. 下载 FTP 资源
wget ftp://username:password@ftp.example.com/file.zip
注意:密码会显示在命令历史中,建议使用
--ftp-user
和 --ftp-password
选项分开设置。
3. 常见问题解决
问题 1:证书错误
wget --no-check-certificate https://example.com
问题 2:下载被拒绝(403 Forbidden)
wget --user-agent="Mozilla/5.0" https://example.com
ps命令
ps命令用于查看进程状态。格式为ps [参数]
参数
- a:显示所有进程(包括其他用户的进程)
- u:用户以及其他详细信息
- x:显示没有控制终端的进程
输出各字段的含义如下:
- USER: 进程的拥有者
- PID: 进程的 ID
- %CPU: 占用的 CPU 使用率
- %MEM: 占用的内存使用率
- VSZ: 占用的虚拟内存大小
- RSS: 占用的物理内存大小
- TTY: 终端的次要设备号
- STAT: 进程的状态(如 R 表示运行,S 表示睡眠,Z 表示僵尸进程等)
- START: 进程的启动时间
- TIME: 进程的累计 CPU 时间
- COMMAND: 启动进程的命令
常用示例
1 | ps -ef | grep node |
显示包含node的详细信息
top命令
动态监视进程活动与系统负载等信息,相当于任务管理器。
参数
-d <秒数>
:指定 top 命令的刷新时间间隔,单位为秒。-n <次数>
:指定 top 命令运行的次数后自动退出。-p <进程ID>
:仅显示指定进程ID的信息。-u <用户名>
:仅显示指定用户名的进程信息。

系统整体的统计信息
第一行
1 | top - 13:46:29 up 3 days, 30 min, 2 users, load average: 0.00, 0.00, 0.00 |
第二行
1 | Tasks: 110 total, 1 running, 107 sleeping, 2 stopped, 0 zombie |
第三行
1 | Cpu(s): 0.0 us, 3.2 sy, 0.0 ni, 96.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st |
第四行
1 | MiB Mem : 1872.6 total, 341.1 free, 638.1 used, 893.5 buff/cache |
第五行
1 | MiB Swap: 0.0 total, 0.0 free, 0.0 used. 1075.4 avail Mem |
进程信息
1 | PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND |
在此页面还可以输入以下按键执行相应的功能(注意大小写区分的)
参数 | 含义 |
---|---|
? | 显示在top当中可以输入的命令 |
P | 以CPU的使用资源排序显示 |
M | 以内存的使用资源排序显示 |
N | 以pid排序显示 |
T | 由进程使用的时间累计排序显示 |
k | 给某一个pid一个信号,可以用来杀死进程(9) |
r | 给某个pid重新定制一个nice值(即优先级) |
q | 退出top(用Ctrl+C也可以退出top) |
pidof命令
查询某个指定服务进程的PID值,格式为pidof [参数] [服务名称]

kill命令
kill
命令可以发送不同的信号给目标进程,来实现不同的操作,如果不指定信号,默认会发送
TERM 信号(15),即终止。若仍无法终止该程序,可使用
SIGKILL(9)
信息尝试强制删除程序。
语法
1 | kill [options] <PID> |
<PID>
是要终止进程的进程 ID。
最常用的信号是:
SIGKILL
(信号9):立即结束进程,不能被捕获或忽略。SIGTERM
(信号15):正常结束进程,可以被捕获或忽略。SIGSTOP
(信号19):暂停进程,不能被捕获、忽略或结束。SIGCONT
(信号18):继续执行被暂停的进程。SIGINT
(信号2):通常是Ctrl+C产生的信号,可以被进程捕获或忽略。
killall命令
killall命令用于终止某个指定名称的服务对应的全部进程,格式为killall [参数] [进程名称]
常用选项
- -e | –exact:进程名需要完全匹配
- -I | –ignore-case:忽略大小写
- -g | –process-group:终止进程组
- -i | –interactive:终止前询问用户确认
- -l | –list:列出所有信号名称
- -q | –quiet:进程未结束时不输出任何信息
- -r | –regexp:将进程名解释为正则表达式
- -s | –signal:发送指定信号
- -u | –user:终止指定用户的进程
- -v | –verbose:显示详细执行过程
- -w | –wait:等待所有进程结束
- -V | –version:显示版本信息
- –help:显示帮助信息
系统状态检测命令
ifconfig命令
ifconfig用于获取网卡配置与网络状态等信息,格式为ifconfig [网络设备] [参数]

uname命令
uname命令用于查看系统内核与系统版本等信息,格式为uname [-a]
uptime命令
与top命令的第一行数据一样
free命令
free命令用于显示当前系统中内存的使用量
输出信息
- total:总物理内存
- used:已经使用的物理内存
- free:没有使用过的物理内存
- shared:多进程共享内存
- buff/cache:读写缓存内存,这部分内存是当空闲来用的,当free内存不足时,linux内核会将此内存释放
- available:还可以被应用程序使用的物理内存
who命令
查看当前登入主机的用户终端信息

last命令
查看所有系统的登录信息
history命令
查看历史执行过的命令,可以使用!编码数字
来重复执行某一次的命令,若使用-c
参数,会清除所有的历史命令记录。
默认保存近1000条命令,可以修改/etc/profile
中的HISTSIZE
变量值修改保存命令数
历史命令被存储在用户家目录中的.bash_history
文件中,可以使用cat ~/.bash_history
查看