Linux_系统维护命令
- scp 跨服务器文件复制(两台 Linux 机器传输文件)
🌰 环境示例机器 A:192.168.80.128;机器 B:192.168.80.129
- 把本机文件推送到另一台机器
#本机aa.txt发送到129机器/home目录 scp ./aa.txt root@192.168.80.129:/home - 把远程机器文件拉取到本机
#把129机器/home/bb.txt下载到本机/home目录 scp root@192.168.80.129:/home/bb.txt /home如果传文件夹,加参数
-r:scp -r 文件夹 root@ip:/目标路径
- df 磁盘查看
df #按KB显示磁盘
df -h #人类可读单位GB MB显示磁盘(最常用)
字段解释:
- Filesystem:磁盘分区设备
- 1K-blocks:说明下面的数字单位是1KB,可利用-h或-m来改变单位大小,也可以用-B来设置。
- Used:已经使用的空间大小。
- Available:剩余的空间大小。
- Use%:磁盘使用率。
- Mounted on:磁盘挂载的目录,即该磁盘挂载到了哪个目录下面。
磁盘使用率超过 90% 要警惕,磁盘满会导致程序报错。
- top 动态查看系统进程(动态刷新)
- top
- top -d 3 #设置3秒刷新一次
- 第一行【
top - 03:25:40 up 57 min, 3 users, load average: 0.00, 0.01, 0.00】03:25:40:当前系统时间57 min:系统已经运行时间(在这期间没有重启过)3 users:当前有3个用户登录系统load average: 0.00, 0.01, 0.00:load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
- 第二行【
Tasks: 136 total, 1 running, 135 sleeping, 0 stopped, 0 zombie】:任务(进程)共有136个进程,运行中的有1个,135个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。 - 第三行【
Cpu(s): 0.0%us, 0.4%sy, 0.0%ni, 99.6%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st】:cpu状态0.0%us:用户空间占用CPU的百分比。0.4%sy: 内核空间占用CPU的百分比。- `改变过优先级的进程占用CPU的百分比
99.6%id:空闲CPU百分比0.0% wa:IO等待占用CPU的百分比0.0%hi:硬中断(Hardware IRQ)占用CPU的百分比0.0%si: 软中断(Software Interrupts)占用CPU的百分比
- 第四行【
Mem: 1030464k total, 995036k used, 35428k free, 28088k buffers】:内存状态1030464k total:物理内存总量995036k used:使用中的内存总量35428k free: 空闲内存总量28088k buffers: 缓存的内存量
- 第五行【
Swap: 1048568k total, 0k used, 1048568k free, 768460k cached】:swap交换分区total:交换区总量used:使用的交换区总量free:空闲交换区总量cached:缓冲的交换区总量
- 第六行:空行
- 第七行以下:各进程(任务)的状态监控
PID:进程idUSER:进程所有者PR:进程优先级NI:nice值。负值表示高优先级,正值表示低优先级VIRT:进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RESRES:进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATASHR:共享内存大小,单位kbS:进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程%CPU:上次更新到现在的CPU时间占用百分比%MEM:进程使用的物理内存百分比TIME+:进程使用的CPU时间总计,单位1/100秒COMMAND:进程名称(命令名/命令行)- 退出:
crtl+z|c
- 设置间隔时间查看动态进程:
top -d 秒数
重点看:
- load average:1 分钟、5 分钟、15 分钟系统负载;负载高代表 CPU 压力大
- % id:空闲 CPU,id 越低 CPU 越忙
- PID 进程 ID;% CPU 进程占用 CPU;% MEM 占用内存;COMMAND 进程名字
- S 进程状态:R 运行,S 休眠,Z 僵尸进程
- free 查看内存
Men:内存的使用情况Swap:交换空间的使用情况;硬盘虚拟内存,大量使用 swap 代表物理内存不足。total:总内存used:已经使用的内存free:空闲shared:共享内存(主要被tmpfs使用的内存)buff/cache:buff和cache的和available:启动新进程时可用的内存
- ps 进程查看
- 查看所有用户的进程:
ps -auxUSER:该进程属于那个使用者账号。PID:该进程的进程ID号。%CPU:该进程使用掉的 CPU 资源百分比;%MEM:该进程所占用的物理内存百分比;VSZ:该进程使用掉的虚拟内存量 (Kbytes)RSS:该进程占用的固定的内存量 (Kbytes)TTY:该进程是在那个终端机上面运作,若与终端机无关,则显示 ?。另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。STAT:该程序目前的状态,主要的状态有:R:该程序目前正在运作,或者是可被运作;S:该程序目前正在睡眠当中,但可被某些讯号(signal) 唤醒。T:该程序目前正在侦测或者是停止了;Z:该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
START:该进程被触发启动的时间;TIME:该进程实际使用 CPU 运作的时间。COMMAND:该程序的实际指令。
- 查看某个服务的进程:
ps -ef|grep 服务进程
- kill 杀死进程
kill -9 进程PID#强制杀死进程,慎用,直接杀掉不做资源释放- 尽量优先 kill PID;kill‑9 是强制暴力杀掉,容易丢数据。
- 其他常用小命令
-
查看当前在线用户:
who -
查看当前操作用户:
whoami -
查看端口是否被占用:
lsof -i:端口号 -
查看主机名称:
hostname -
查看内核系统位数:
getconf LONG_BIT【32/64位】 -
查看当前目录的大小:
du -sh
- 查看某个文档/目录的大小:
du -sh 文档/目录
- 查看历史记录【输入的命令记录】:history
清除命令:history -c
- 设置别名:
alias 简写名称=全称
- 取消别名:unalias 别名
-
显示多少行,详细信息也显示:
nl 文档名 -
查看所有开启的端口:
netstat -nltp
- 查看端口是否被占用:
netstat -nltp|grep 端口号
- ln 链接:软链接 & 硬链接
inode:Linux 文件的索引编号,文件真正的身份编号。
✅软链接(符号链接≈Windows 快捷方式) ln -s 源文件 新文件
-
源文件和软链接 inode 号不一样;
-
删除源文件,软链接失效;
-
可以对文件夹做软链接。
-
查看inode号一致:
ls -i 文档名
✅硬链接 ln 源文件 新文件
- 多个文件名对应同一个 inode;源文件、硬链接 inode 号完全一样;
- 删除其中一个文件名,真实数据还在,只要还有硬链接,文件就不会丢;
- 不能给目录创建硬链接,只能文件。
查看 inode 编号:
ls -i aa.txt
区分记忆:
ln -s→软链接;不带‑s 就是硬链接。
硬链接
- 多个文件名指向同一个 inode 节点,共享磁盘数据
- 只能针对文件,不支持目录
- 不能跨分区、跨文件系统
- 删除源文件,只是删除一个文件名,数据还在,所有硬链接依旧可用;全部链接删除,数据才真正释放
ls -l看到链接计数会 + 1,文件类型-普通文件
软链接(符号链接)
- 相当于 Windows 快捷方式,独立文件,保存源文件路径
- 支持文件、也支持目录
- 可以跨分区、跨文件系统
- 源文件删除 / 移动,软链接直接失效(悬空链接,ls 显示红色)
- 文件类型
l,权限是链接本身权限,不起实际控制作用,真正权限看源文件- 创建建议尽量用绝对路径,移动软链接文件不容易失效
注意:
- 删除目录软链接:
rm -rf link_dir,千万不要加斜杠rm -rf link_dir/,会把原目录内部全部删掉!- 相对路径创建软链接,移动链接位置就会失效,优先绝对路径。
硬链接是同一个文件多个名字,inode 相同,不能链接目录,不能跨分区,删源文件链接还能用;
软链接类似快捷方式,独立 inode,可以链接目录、跨分区,源文件删掉软链接就失效。
- 扩展
- 管道符
|:把前一个命令输出交给后一个命令处理,如ps -aux | grep java,过滤 java 进程。 grep:文本过滤,grep "关键词" 文件,在文件中找包含关键词行。- 权限概念:root 超级用户几乎不受权限限制;普通用户很多目录读写受限。
- Ctrl+C:中断正在执行的命令;Ctrl+Z 放到后台(初学者不建议用,容易遗留进程)。
- 通配符
*:代表任意字符,rm *.txt删除所有 txt 文件。

浙公网安备 33010602011771号