Linux命令复习
系统命令
free命令
free 命令能够显示系统中物理上的空闲和已用内存,还有交换内存,同时,也能显示被内核使用的缓冲和缓存
param参数:
- -b:以Byte为单位显示内存使用情况;
- -k:以KB为单位显示内存使用情况;
- -m:以MB为单位显示内存使用情况;
- -o:不显示缓冲区调节列;
- -s<间隔秒数>:持续观察内存使用状况;
- -t:显示内存总和列;
- -V:显示版本信息。
total
:表示一共的内存大小
used
:表示已经使用的内存大小
free
:表示剩余空间的内存大小
shared
:表示共享内存大小
buff/cache
:表示系统分配但未被使用的buffers/cache 数量。
- Buffers
- 指的是内核用来暂存写入磁盘数据的内存(写缓存)。当数据需要写入磁盘时,先写入内存中的缓冲区,随后再异步地写入磁盘,以提高写入效率。
- Cached
- 指的是内核用来缓存从磁盘读取的数据(读缓存)。当数据从磁盘读取到内存后,会保留在缓存中,方便后续再次访问时可以直接从缓存中获取,而无需再次读取磁盘。
used - buffers - cached
:真正使用的内存数(-buffers/cache)- 这表示被真正使用的内存(被进程实际占用的内存),不包括 buffers 和 cached 的部分。
- 理由是,虽然
buffers
和cached
占用了一部分内存,但它们随时可以被释放并重新分配给其他进程,因此不算作真正的内存使用量。
free + buffers + cached
:真正未使用的内存数(+buffers/cache)- 这表示真正可以用来分配的内存(系统当前的可用内存),包括 free 的内存和可回收的 buffers 和 cached。
- 因为 buffers 和 cached 的内存并没有被进程锁定,必要时内核会释放这些内存,重新分配给其他进程。
top命令
top
是 Linux 系统中用于实时监视系统性能和运行状态的命令行工具,它提供了系统的 CPU 使用率、内存使用率、任务进程状态 等信息。通过它可以监控系统负载和识别资源占用较高的进程。
选项 | 描述 |
---|---|
-d seconds | 刷新间隔时间(默认是 3 秒)。 |
-n iterations | 设置刷新次数,显示指定次数后退出。 |
-u username | 仅显示指定用户的进程。 |
-p pid | 仅监控指定的进程(通过进程 ID)。 |
-b | 以批处理模式运行(适用于脚本输出,非交互模式)。 |
-i | 忽略空闲进程,不显示占用 0% CPU 的进程。 |
-c | 显示命令的完整路径和参数(再次按 c 可切换回简略显示)。 |
通过ps aux可以查询到进程PID,也可以通过ps aux | grep <进程名>
运行 top
时,可以通过键盘输入来实时调整显示内容或行为。
键 | 功能 |
---|---|
h | 显示帮助信息。 |
q | 退出 top 命令。 |
c | 切换是否显示完整的命令路径。 |
M | 按内存使用排序。 |
P | 按 CPU 使用排序。 |
N | 按 PID 排序。 |
T | 按运行时间排序。 |
k | 杀死进程,需输入 PID。 |
r | 重新调整进程优先级(调整 nice 值)。 |
z | 切换颜色显示。 |
d | 更改刷新间隔时间(以秒为单位)。 |
u | 过滤显示指定用户的进程。 |
top -H -p pid
,查看进程pid下面的子线程
df命令
df
是 Linux 系统中用于显示文件系统的磁盘空间使用情况的命令。它可以查看挂载的文件系统的总空间、已用空间、剩余空间及挂载点等信息。
参数 | 描述 |
---|---|
-h | 以人类可读的格式显示磁盘空间(以 KB、MB、GB 等单位显示)。 |
-H | 以 1000 为单位(而不是 1024)显示人类可读的格式。 |
-k | 以 KB 为单位显示磁盘使用情况(默认单位)。 |
-m | 以 MB 为单位显示磁盘使用情况。 |
-T | 显示文件系统类型(如 ext4、xfs 等)。 |
-i | 显示文件系统的 inode 使用情况,而不是块设备的磁盘使用情况。 |
-P | 使用 POSIX 格式输出结果(便于脚本解析)。 |
--total | 显示所有文件系统使用量的总和。 |
--output | 自定义显示内容(可指定字段,如 size , used , avail , target 等)。 |
-x <type> | 排除指定类型的文件系统。 |
--sync | 在显示之前同步文件系统(刷新数据,确保显示的是最新的数据)。 |
-a | 查看全部的文件系统 |
ps命令
ps
是 Linux 系统中用于查看系统中运行进程的命令。通过 ps
,我们可以显示进程的运行状态、进程 ID、所属用户、CPU 和内存占用等信息,适用于实时监控和问题诊断。
与 top
的实时动态显示不同,ps
显示的是执行命令时刻的静态快照。
参数 | 描述 |
---|---|
-a | 显示所有进程,除了会话首领(即不包括终端相关的进程)。 |
-u | 显示与指定用户相关的进程。 |
-x | 显示没有终端的后台进程。 |
-e 或 -A | 显示系统中所有进程(包括后台和无终端的进程)。 |
-f | 以完整格式显示进程(包含父进程、启动时间等更多信息)。 |
-o | 自定义显示字段,例如:ps -o pid,user,%cpu,command 。 |
-p | 指定进程 ID,显示特定进程的信息。 |
-t | 指定终端,显示属于该终端的进程。 |
--sort | 对进程按指定字段排序,例如:--sort=-%cpu 按 CPU 使用率降序排列。 |
-N | 显示与指定条件相反的进程(与条件取反)。 |
-L | 显示进程的所有线程。 |
-C | 按命令名过滤进程,例如:ps -C nginx 只显示名称为 nginx 的进程。 |
-T | 产看进程下面的子线程 |
# ps命令单独使用的情况
ps -elf tomcat
#结合管道操作和grep命令进行过滤,用于查询某一个进程的信息
ps -elf | grep tomcat
检查时区
date
文件操作
tail命令
tail
命令是Linux系统中用于查看文件末尾内容的常用工具。默认情况下,它显示指定文件的最后10行内容。在不指定文件时,tail
会从标准输入读取数据。
以下是 tail
命令常用参数及其功能的表格:
参数 | 功能说明 |
---|---|
-n [K] | 显示文件的最后 K 行内容。例如,tail -n 20 filename 将显示文件 filename 的最后 20 行。 |
-c [K] | 显示文件的最后 K 个字节。例如,tail -c 100 filename 将显示文件 filename 的最后 100 个字节。 |
-f | 实时追踪文件内容的变化,常用于监控日志文件的更新。例如,tail -f filename 会持续显示文件 filename 的新添加内容。 |
-F | 类似于 -f ,但在文件被重命名或删除后会继续追踪新的文件。例如,tail -F filename 在文件 filename 被替换后仍会继续追踪。 |
-q 或 --quiet 或 --silent | 从不输出给出文件名的首部。在同时查看多个文件时,默认情况下 tail 会在每个文件内容前显示文件名,使用此选项可以取消显示文件名。 |
-v 或 --verbose | 始终显示文件名,即使只处理一个文件。 |
--pid=PID | 与 -f 合用,表示在进程 ID 为 PID 的进程终止后结束 tail 的执行。 |
-s [S] 或 --sleep-interval=[S] | 与 -f 合用,表示在每次反复的间隔休眠 S 秒。例如,tail -f -s 5 filename 会每 5 秒刷新一次文件 filename 的内容。 |
tail -n 50 -f filename
可以显示文件 filename
的最后 50 行,并实时监控其更新。
unzip命令
unzip
命令用于解压缩 .zip
格式的文件,是 Linux 和 Unix 系统中常用的工具。以下是 unzip
命令的常用参数及功能:
-l
:显示压缩文件内所包含的文件列表。-t
:检查压缩文件是否有损坏,但不解压。-o
:在不提示用户的情况下,直接覆盖已存在的文件。-n
:解压时不要覆盖已存在的文件。-q
:执行时不显示任何信息(静默模式)。-d <目录>
:指定解压后的文件存储目录。-x <文件>
:解压时排除指定的文件。-P <密码>
:指定解压密码,用于解压加密的.zip
文件。
网络通信
netstat命令
netstat
(网络统计)命令用于显示各种网络相关信息,如网络连接、路由表、接口状态、伪装连接以及多播成员等。以下是 netstat
命令的常用参数及功能:
-a
:显示所有连接中的套接字,包括监听和非监听的。-t
:仅显示 TCP 协议的连接。-u
:仅显示 UDP 协议的连接。-n
:以数字形式显示地址和端口号,避免主机名解析,提高显示速度。-l
:仅列出处于监听状态的套接字。-p
:显示建立相关连接的程序的 PID 和名称(需要超级用户权限)。-r
:显示路由信息,即路由表。-e
:显示扩展信息,例如每个连接的用户 ID 等。-s
:按各个协议显示网络统计信息。-c
:每隔固定时间持续执行该命令,默认每秒刷新一次。
示例:
-
显示所有活动的网络连接:
netstat -a
-
显示所有处于监听状态的 TCP 端口:
netstat -tl
-
显示所有处于监听状态的 UDP 端口:
netstat -ul
-
显示所有 TCP 连接,禁用主机名解析,并显示对应的程序名称:
sudo netstat -tnp
-
显示路由表信息:
netstat -r
-
按协议显示网络统计信息:
netstat -s
系统管理
uname命令
查看内核版本
ip命令
查看Linux的ip地址:
ip addr
telnet命令
不管在window还是linux系统要校验某台服务器是否可以ping通,都可以使用命令,如果要加上断口的,linux可以使用telnet命令
语法:telnet ip port
telnet 127.0.0.1 8080