当前位置:首页>Linux>常用的Linux命令看有哪些是你不知道的

常用的Linux命令看有哪些是你不知道的

  • 2026-08-26 11:39:29
常用的Linux命令看有哪些是你不知道的

一、文件操作命令

1. 基础文件操作

# 创建、删除mkdir dirname           # 创建目录mkdir -p a/b/c          # 创建多级目录rmdir dirname           # 删除空目录rm -rf dirname         # 强制递归删除目录及内容# 创建文件touch filename.txt     # 创建空文件> filename.txt         # 创建空文件(清空已有文件)echo "content" > file  # 创建文件并写入内容# 删除文件rm filename           # 删除文件rm -i filename        # 交互式删除(询问)rm -f filename        # 强制删除# 复制、移动、重命名cp source dest        # 复制文件cp -r dir1 dir2      # 递归复制目录mv oldname newname    # 重命名或移动mv file dir/          # 移动文件到目录

2. 查看文件内容

# 查看完整文件cat filename         # 显示整个文件nl filename         # 显示行号的文件内容# 分页查看less filename       # 上下翻页查看(推荐)more filename       # 向下翻页查看# 查看部分内容head -n 20 file     # 查看前20行tail -n 20 file     # 查看后20行tail -f logfile     # 实时跟踪日志更新tail -100f app.log  # 跟踪日志最后100行并实时更新# 其他查看方式tac filename        # 反向显示(从最后一行开始)rev filename        # 每行反向显示

3. 查找文件

# 按名称查找find /home -name "*.log"          # 按文件名查找find . -iname "readme.md"         # 忽略大小写find /var -type f -name "*.log"   # 只查找文件find /tmp -type d -name "temp*"   # 只查找目录# 按时间查找find . -mtime -1                  # 1天内修改的文件find . -mtime +7                  # 7天前修改的文件find . -amin -60                  # 60分钟内访问的文件# 按大小查找find . -size +100M                # 大于100M的文件find . -size -10k                 # 小于10K的文件# 查找并执行操作find . -name "*.tmp" -delete      # 查找并删除find . -name "*.log" -exec ls -lh {} \;  # 对找到的文件执行命令# locate命令(更快但需要更新数据库)locate filename                   # 快速查找文件updatedb                         # 更新locate数据库

4. 文件内容搜索

# grep文本搜索grep "error" logfile             # 搜索包含error的行grep -i "error" logfile          # 忽略大小写grep -r "pattern" dir/           # 递归搜索目录grep -n "error" logfile          # 显示行号grep -v "success" logfile        # 反向搜索(不包含的行)grep -c "error" logfile          # 统计匹配行数grep -A 3 -B 2 "error" logfile   # 显示匹配前后几行grep -E "error|warning" logfile  # 正则表达式搜索# 组合使用示例ps aux | grep nginx              # 查找nginx进程cat logfile | grep error | wc -l # 统计错误次数

二、系统指标监控命令

1. 系统概览

# 查看系统信息uname -a                         # 查看内核/系统信息hostnamectl                     # 查看主机信息cat /etc/os-release             # 查看系统版本lsb_release -a                  # 查看发行版信息# 运行时间和负载uptime                          # 查看运行时间+负载w                               # 查看登录用户及负载who                             # 查看当前登录用户last                            # 查看登录历史

2. CPU监控

# top - 实时监控top                             # 动态查看进程和资源占用top -p PID                      # 监控指定进程top -u username                 # 监控指定用户进程top -d 5                        # 5秒刷新一次top -b -n 1 > cpu.txt           # 输出一次快照到文件# CPU详细信息lscpu                           # 查看CPU架构信息cat /proc/cpuinfo               # 查看CPU详情mpstat -P ALL 2                 # 每2秒查看所有CPU状态# 按CPU排序查看进程ps aux --sort=-%cpu | head -10  # 查看CPU占用前10的进程

3. 内存监控

# 查看内存使用free -h                         # 人性化显示内存(推荐)free -m                         # 以MB显示free -g                         # 以GB显示# 详细内存信息cat /proc/meminfo               # 查看详细内存信息vmstat 2                        # 每2秒显示内存、swap等统计# 查看内存占用进程ps aux --sort=-%mem | head -10  # 查看内存占用前10的进程

4. 进程管理

# 查看进程ps aux                          # 查看所有进程详细信息ps -ef                          # 查看完整格式进程信息ps aux | grep nginx             # 查找特定进程ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -20  # 自定义格式# 实时进程监控htop                            # top的增强版(需安装)htop -u username                # 按用户筛选# 进程树pstree                          # 显示进程树pstree -p                       # 显示进程树包含PID

5. 网络监控

# 网络统计netstat -tunlp                  # 查看所有监听端口(旧版)ss -tunlp                       # 查看所有监听端口(推荐,更快)ss -s                           # 查看socket统计netstat -s                      # 显示网络统计# 实时网络监控iftop                           # 实时监控网络流量(需安装)nethogs                         # 按进程显示网络流量(需安装)iptraf-ng                       # 交互式网络监控(需安装)

三、磁盘管理命令

1. 磁盘空间查看

# 查看磁盘使用情况df -h                           # 人性化显示所有磁盘(推荐)df -i                           # 查看inode使用情况df -T                           # 显示文件系统类型# 查看目录大小du -sh dirname                  # 查看目录总大小du -h --max-depth=1 /home       # 查看一级目录大小du -ah dirname | sort -rh | head -20  # 查看目录下最大文件# 智能磁盘分析ncdu /home                      # 交互式磁盘分析工具(需安装)

2. 磁盘性能测试

# I/O性能测试iostat -x 2                     # 每2秒显示磁盘I/O统计iotop                           # 类似top的I/O监控(需安装)# 磁盘基准测试dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct  # 测试写性能hdparm -Tt /dev/sda            # 测试磁盘缓存和缓冲读取速度

3. 挂载管理

# 查看挂载mount                          # 查看已挂载的文件系统findmnt                        # 显示挂载树cat /proc/mounts              # 查看挂载信息# 挂载操作mount /dev/sdb1 /mnt          # 挂载设备umount /mnt                   # 卸载设备mount -a                      # 挂载/etc/fstab中所有设备# 查看磁盘分区fdisk -l                      # 查看所有磁盘分区lsblk                         # 查看块设备树状图blkid                         # 查看块设备UUID

四、端口与网络命令

1. 端口占用查询

# 查看监听端口lsof -i:8080                  # 查看8080端口被谁占用lsof -i tcp:80               # 查看TCP 80端口lsof -i udp:53               # 查看UDP 53端口lsof -i @192.168.1.1         # 查看指定IP的连接# 网络统计方式ss -tlnp | grep :8080        # 查看8080端口监听进程netstat -tlnp | grep :8080   # 同上(旧版)# 查看所有端口占用lsof -i                      # 查看所有网络连接lsof -i -P -n               # 查看所有连接(不解析服务名和主机名)

2. 网络连接状态

# 查看连接状态ss -tan                       # 查看所有TCP连接ss -uan                       # 查看所有UDP连接ss -s                         # 查看socket统计# 状态筛选ss -tan state established     # 查看已建立连接ss -tan state listening       # 查看监听端口ss -tan state time-wait       # 查看TIME-WAIT连接# 查看指定进程连接ss -tnp | grep nginx          # 查看nginx相关连接

五、用户管理命令

1. 用户操作

# 用户管理useradd username              # 添加用户userdel -r username           # 删除用户及家目录usermod -s /bin/bash username # 修改用户shellchsh -s /bin/bash username    # 修改用户shell# 查看用户信息id username                   # 查看用户ID信息whoami                        # 查看当前用户who                           # 查看登录用户w                             # 查看登录用户及活动lastlog                       # 查看所有用户最后登录时间# 用户组管理groupadd groupname            # 添加用户组groupdel groupname            # 删除用户组usermod -aG groupname username # 将用户添加到附加组groups username               # 查看用户所在组

2. 密码管理

passwd username               # 修改用户密码passwd -l username            # 锁定用户账户passwd -u username            # 解锁用户账户chage -l username             # 查看密码过期信息chage -M 90 username          # 设置密码90天后过期

3. 切换用户

su - username                 # 切换到用户(加载环境变量)su username                   # 切换到用户sudo -i                       # 切换到rootsudo -u username command      # 以指定用户执行命令

六、权限管理命令

1. 权限基础

# 查看权限ls -l                         # 查看文件权限ls -la                        # 查看包括隐藏文件的权限stat filename                 # 查看文件详细信息# 修改权限(数字方式)chmod 755 filename           # rwxr-xr-xchmod 644 filename           # rw-r--r--chmod 777 filename           # rwxrwxrwx# 修改权限(符号方式)chmod u+x filename           # 给所有者添加执行权限chmod g-w filename           # 移除组用户的写权限chmod o=r filename           # 设置其他用户只读chmod a+x filename           # 给所有人添加执行权限

2. 所有权管理

# 修改所有者chown username filename      # 修改文件所有者chown :groupname filename    # 修改文件所属组chown username:groupname filename # 同时修改chown -R username dir/       # 递归修改目录所有权# 修改所属组chgrp groupname filename     # 修改文件所属组chgrp -R groupname dir/      # 递归修改目录所属组

3. 特殊权限

# SUID/SGID权限chmod u+s filename           # 设置SUID(以所有者身份运行)chmod g+s dirname            # 设置SGID(目录下新建文件继承组)ls -l /usr/bin/passwd        # 查看SUID示例# 粘滞位(Sticky Bit)chmod +t dirname             # 设置粘滞位(只有所有者能删除)ls -ld /tmp                  # 查看粘滞位示例# 默认权限umask                        # 查看当前umaskumask 022                    # 设置umask(新文件权限=666-umask)

4. ACL权限

# 查看和设置ACLgetfacl filename             # 查看ACL权限setfacl -m u:username:rwx filename # 设置用户ACLsetfacl -m g:groupname:r-x filename # 设置组ACLsetfacl -x u:username filename    # 删除用户ACL条目setfacl -b filename          # 删除所有ACL条目# 递归设置ACLsetfacl -R -m u:username:rwx dir/setfacl -R -d -m u:username:rwx dir/  # 设置默认ACL

七、扩展命令(实用工具)

1. 压缩解压

# tar命令tar -czvf archive.tar.gz dir/    # 压缩为gziptar -xzvf archive.tar.gz         # 解压gziptar -cjvf archive.tar.bz2 dir/   # 压缩为bzip2tar -xjvf archive.tar.bz2        # 解压bzip2tar -cJvf archive.tar.xz dir/    # 压缩为xztar -xJvf archive.tar.xz         # 解压xz# zip/unzipzip -r archive.zip dir/          # 压缩为zipunzip archive.zip                # 解压zipunzip -l archive.zip             # 查看zip内容# gzip/bzip2/xzgzip filename                    # 压缩文件(生成.gz)gunzip filename.gz               # 解压.gzbzip2 filename                   # 压缩文件(生成.bz2)bunzip2 filename.bz2             # 解压.bz2xz filename                      # 压缩文件(生成.xz)unxz filename.xz                 # 解压.xz

2. 文本处理

# 排序去重sort filename                   # 排序文件内容sort -u filename                # 排序并去重sort -n filename                # 按数值排序sort -r filename                # 反向排序uniq filename                   # 去除连续重复行uniq -c filename                # 统计重复次数# 文本转换wc -l filename                  # 统计行数wc -w filename                  # 统计单词数wc -c filename                  # 统计字符数cut -d',' -f1 filename          # 按逗号分隔取第一列awk '{print $1}' filename       # 打印第一列sed 's/old/new/g' filename      # 替换文本tr 'a-z' 'A-Z' < filename       # 转为大写

3. 系统服务

# systemd系统systemctl status servicename    # 查看服务状态systemctl start servicename     # 启动服务systemctl stop servicename      # 停止服务systemctl restart servicename   # 重启服务systemctl enable servicename    # 设置开机启动systemctl disable servicename   # 禁用开机启动systemctl list-units --type=service  # 列出所有服务journalctl -u nginx             # 查看服务日志journalctl -f -u nginx          # 实时查看服务日志# 旧版init系统(如CentOS 6)service servicename statusservice servicename startservice servicename stopchkconfig servicename on        # 开机启动chkconfig servicename off       # 关闭开机启动

4. 时间日期

date                            # 显示当前日期时间date "+%Y-%m-%d%H:%M:%S"       # 格式化显示date -d "2024-01-01" +%s        # 转换为时间戳date -d @1704067200             # 时间戳转日期cal                             # 显示日历cal -3                          # 显示上月、本月、下月日历timedatectl                     # 查看和设置时间(systemd)timedatectl set-time "2024-01-01 12:00:00"

八、实用技巧组合

1. 常用管道组合

# 查看大文件并统计cat access.log | grep "404" | wc -l# 查找并处理文件find /var/log -name "*.log" -mtime +30 -exec rm {} \;# 监控日志变化tail -f app.log | grep --line-buffered "ERROR"# 查看进程内存占用ps aux --sort=-%mem | awk 'NR<=11 {print $0}'# 统计文件类型数量find . -type f | sed 's/.*\.//' | sort | uniq -c | sort -rn

2. 性能问题排查流程

# 快速系统健康检查echo "=== 系统负载 ==="; uptimeecho "=== 内存使用 ==="; free -hecho "=== 磁盘空间 ==="; df -hecho "=== CPU占用前5 ==="; ps aux --sort=-%cpu | head -6echo "=== 内存占用前5 ==="; ps aux --sort=-%mem | head -6# 网络连接统计ss -snetstat -nat | awk '{print $6}' | sort | uniq -c | sort -rn

3. 安全相关

# 查看登录失败lastb                          # 查看失败登录尝试grep "Failed password" /var/log/auth.log  # 查看密码失败# 查看sudo使用cat /var/log/auth.log | grep sudo# 查看历史命令history                       # 查看命令历史history | grep "rm"           # 查找包含rm的历史命令!100                          # 执行历史记录中第100条命令

最新文章

随机文章