Linux
约 1301 字大约 4 分钟
2025-01-19
前言
本篇用于记录 Linux 的常用命令
目录文件
创建、删除目录:mkdir、rmdir
文件:
创建、删除文件:touch、rm
查看文件:cat
移动文件/目录、重命名:mv
# 将 file.txt 移动到 /home/user/Documents/ 目录
mv file.txt /home/user/Documents/
# 将 oldfile.txt 重命名为 newfile.txt
mv oldfile.txt newfile.txt- 复制文件、目录:cp
# 将 file1.txt 复制为 file2.txt
cp file1.txt file2.txt
# 递归复制目录
cp -r dir1/ dir2/查找文件指定行
- tail -n -k 文件名:查找文件的最后k行
- tail -n +k 文件名:查找文件的第k行到最后一行
- head -n k 文件名:查找文件的前k行
- sed -n '6p' a.txt:查看文件的第6行
文件搜索指定文本:grep 指定文本 文件路径
权限
- ls -l:查看文件或目录的详细信息,包括权限信息
ls -l file.txt- chmod:修改文件或目录的权限
# 改变文件权限为 rwxr-xr--
chmod 755 file.txt
# 通过符号方式改变权限
chmod u+x file.txt # 给文件的所有者添加执行权限
chmod g-w file.txt # 给文件的所属组移除写权限
chmod o+r file.txt # 给其他用户添加读取权限- chown:变文件或目录的所有者和/或所属组
chown user:group file.txt # 改变文件的所有者和组
chown user file.txt # 仅改变文件的所有者
chown :group file.txt # 仅改变文件的所属组防火墙
查看防火墙状态:
systemctl status firewalld开启防火墙:
systemctl start firewalld.service关闭防火墙:
systemctl stop firewalld.service开启开机自启动:
systemctl enable firewalld.service关闭开机自启动:
systemctl disable firewalld.service查询开放端口:
firewall-cmd --list-port开放指定端口:
firewall-cmd --zone=public --add-port=5601/tcp --permanent移除指定端口:
firewall-cmd --zone=public --remove-port=80/tcp --permanent重启防火墙:
firewall-cmd --reload端口
lsof (List Open Files) :查看特定端口被哪个进程占用
# 查看 80 端口的占用情况
lsof -i :80kill:杀死指定进程号的进程
# 杀死进程号30000的进程
kill 30000服务器内存占用过高
内存使用情况
使用 free 命令查询
free -h- free:显示系统内存的使用情况
- -h:human-readable,以人类可读的格式显示(自动转换为 KB, MB, GB),而不是单纯显示字节数。
查询结果:
total used free shared buff/cache available
Mem: 7.6G 5.1G 220M 1.0G 2.3G 1.2G
Swap: 2.0G 0B 2.0G解读:
以 "行" 为角度:
- Mem:物理内存(RAM)的使用情况。
- Swap:交换分区(虚拟内存)的使用情况。当物理内存不够用时,系统会把部分数据挪到硬盘上的 Swap 分区。
以 "列" 为角度:
- total:物理总内存(total=used + free + buff/cache)
- used:已用内存。正在被程序(进程)实实在在占用的内存
- free:空闲内存。完全未被使用的内存
- shared:共享内存。多个进程共享使用的内存
- buff/cache:缓冲/缓存
- buff: 存放要写入磁盘的数据
- cache:存放从磁盘读取的数据(文件缓存)
- available:可用内存
内存使用占比
查询命令:
ps aux --sort=-%mem | head -n 11aux
- a:显示所有用户的进程(All)
- u:以用户为主的格式显示详细信息(User-oriented),包括 CPU、内存、启动时间等
- x:显示没有控制终端的进程(通常是后台服务/守护进程,如 MySQL, Java, Nginx)。
--sort=-%mem
- --sort:指定排序
- %mem:按照内存使用率排序
- -:降序排列(从大到小)。如果不加
-,默认是升序(从小到大)
head -n 11
- head:读取文件或输出的开头部分
- -n 11:显示前 11 行
查询结果:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND- USER:启动该进程的用户(如
root,mysql,www) - PID: 进程 ID(Process ID)
- %CPU:CPU 使用率
- %MEM: 物理内存使用率
- VSZ (Virtual Memory Size): 虚拟内存大小。进程申请的内存总量(包含已使用、已申请但未使用、共享库等)
- RSS (Resident Set Size):
- 常驻内存大小。最重要的指标! 它表示进程实际占用的物理内存大小(不包含被交换到 Swap 的部分)
- 单位为 KB,1GB=1024MB,1MB=1024KB,1KB=1024字节
- COMMAND: 启动进程的具体命令和参数
查看磁盘空间
df
df:display free disk space,显示文件系统的磁盘空间使用情况,包括总容量、已用空间、可用空间和挂载点等信息
示例:
显示文件系统的磁盘使用情况统计:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda6 29G 4.2G 23G 16% /
udev 1.5G 4.0K 1.5G 1% /dev
tmpfs 604M 892K 603M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 1.5G 156K 1.5G 1% /run/shmdu
du:disk usage,显示目录或文件的大小
| 参数 | 含义 |
|---|---|
| -h | 以K,M,G为单位,提高信息的可读性 |
| -k | 以1024 bytes为单位 |
| -m | 以1MB为单位 |
| -s | summarize,仅显示指定目录或文件的总大小,而不显示其子目录的大小 |
示例:
# du -h test
608K test/test6
308K test/test4
4.0K test/scf/lib
4.0K test/scf/service/deploy/product
4.0K test/scf/service/deploy/info
12K test/scf/service/deploy
16K test/scf/service
4.0K test/scf/doc
4.0K test/scf/bin
32K test/scf
8.0K test/test3
1.3M test版权所有
版权归属:haipeng-lin