Linux常用操作命令详解
文章目录
- 一、文件与目录操作
- 1.1.总览
- 1.2.详解
- 1.2.1.ls - 列出目录内容
- 1.2.2.cp
- 1.2.3.rm
 
 
- 二、文件查看/编辑
- 2.1.总览
- 2.2.详解
- 2.2.1.grep
- 2.2.2. find
 
 
- 三、文件权限与所有权
- 3.1.总览
- 3.2.详解
- 3.2.1.chmod
- 3.2.2.chown
 
 
- 四、系统管理与进程管理
- 4.1.总览
- 4.2.详解
- 4.2.1.ps
- 4.2.2.systemctl
 
 
- 五、压缩/解压
- 5.1.总览
- 5.2.详解
- 5.2.1.tar
 
 
- 六、网络
- 6.1.总览
- 6.2.详解
- 6.2.1.ss
- 6.2.2.curl
- 6.2.3.ssh
- 6.2.4.文件传输
- 6.2.5.SFTP
 
 
- 七、用户/组
- 7.1.总览
- 7.2.详解
- 7.2.1.sudo
 
 
- 八、其他
- 8.1.总览
- 8.2.详解
- 8.2.1.man
- 8.2.2.管道 | 和重定向
 
- 8.2.3.CPU 信息查看
- 8.2.4.内存信息查看(free -h)
- 8.2.5.硬盘信息查看(df -h/lsblk)
 
 
一、文件与目录操作
1.1.总览
| 命令 | 功能描述 | 常用示例 | 
|---|---|---|
| ls | 列出目录内容 | ls -l (详细信息), ls -a (显示隐藏文件) | 
| pwd | 显示当前工作目录 | pwd | 
| cd | 切换目录 | cd /home, cd … (上一级), cd ~ (回家目录) | 
| mkdir | 创建目录 | mkdir new_dir, mkdir -p a/b/c (创建多级目录) | 
| rmdir | 删除空目录 | rmdir empty_dir | 
| cp | 复制文件或目录 | cp file1 file2, cp -r dir1 dir2 (递归复制目录) | 
| mv | 移动或重命名文件/目录 | mv old.txt new.txt, mv file1 /tmp/ | 
| rm | 删除文件或目录 | rm file1, rm -r dir1 (递归删除), rm -rf (强制递归删除,慎用!) | 
| touch | 创建空文件或更新文件时间戳 | touch new_file.txt | 
| cat | 查看文件全部内容 | cat file.txt | 
| more / less | 分页查看文件内容 | less file.log (推荐 less, 可上下滚动) | 
| head | 显示文件开头部分 | head -n 20 file.log (显示前20行) | 
| tail | 显示文件末尾部分 | tail -n 10 file.log, tail -f file.log (实时追踪文件更新) | 
| find | 查找文件 | find /home -name “*.txt”, find . -type f -size +10M | 
1.2.详解
1.2.1.ls - 列出目录内容
核心功能:显示目录中的文件和子目录信息。
 详细用法:
ls [选项] [目录或文件]
常用选项:
-l:长格式显示,包含权限、所有者、大小、修改时间等详细信息。
-a:显示所有文件,包括隐藏文件(以 . 开头的文件)。
-h:与 -l 一起使用,以人类易读的格式显示文件大小(如 K, M, G)。
-t:按修改时间排序,最新的在前。
-r:反向排序。
-R:递归列出所有子目录内容。
示例:
ls -la /home    # 详细列出 /home 目录的所有文件(包括隐藏文件)
ls -lh *.log    # 以易读格式列出当前目录下所有 .log 文件
ls -ltr /var/log # 按时间反向排序(最旧的在前),方便查看最早的文件
1.2.2.cp
核心功能:复制文件或目录。
 详细用法:
cp [选项] 源文件 目标文件
cp [选项] 源文件... 目标目录
常用选项:
-r 或 -R:递归复制目录及其所有内容。
-i:覆盖前提示确认。
-p:保留原始文件的属性(如权限、时间戳)。
-v:显示复制过程的详细信息。
示例:
cp file1.txt file2.txt          # 复制 file1.txt 为 file2.txt
cp -r my_dir /backup/           # 递归复制整个 my_dir 目录到 /backup/
cp -v *.jpg /home/user/photos/  # 复制所有 jpg 文件并显示过程
1.2.3.rm
核心功能:删除文件或目录。
 详细用法:
rm [选项] 文件或目录...
常用选项:
-r 或 -R:递归删除目录及其内容。
-f:强制删除,忽略不存在的文件,不提示。
-i:删除前逐一确认。
⚠️ 重要警告:
 rm -rf / 或 rm -rf * 是极其危险的命令,可能导致系统毁灭性损坏。执行前务必双重检查路径。
示例:
rm old_file.txt                 # 删除单个文件
rm -r old_directory/            # 递归删除目录
rm -i *.tmp                     # 交互式删除所有 .tmp 文件,逐个确认
二、文件查看/编辑
2.1.总览
| 命令 | 功能描述 | 常用示例 | 
|---|---|---|
| vim / vi 功能强大的文本编辑器 | vim file.txt (进入后按 i 编辑,按 ESC 后输入 :wq 保存退出) | |
| nano | 简单易用的文本编辑器 | nano file.txt (界面底部有快捷键提示) | 
| grep | 强大的文本搜索工具 | grep “error” file.log, ps aux grep nginx(结合管道) | 
| wc | 统计文件行数、单词数、字节数 | wc -l file.txt (统计行数) | 
| diff | 比较两个文件的差异 | diff file1.txt file2.txt | 
2.2.详解
2.2.1.grep
核心功能:在文件中搜索匹配特定模式的行。
 详细用法:
grep [选项] '模式' 文件...# 基本语法
grep [选项] '模式' 文件名# 上下文控制选项:
-A NUM, --after-context=NUM    # 显示匹配行之后的 NUM 行
-B NUM, --before-context=NUM   # 显示匹配行之前的 NUM 行  
-C NUM, --context=NUM          # 显示匹配行前后的各 NUM 行
常用选项:
-i:忽略大小写。
-r 或 -R:递归搜索目录中的文件。
-n:显示匹配行的行号。
-v:反向选择,显示不包含模式的行。
-l:仅显示包含模式的文件名。
-E:使用扩展正则表达式(等同于 egrep)。
示例:
grep "error" /var/log/syslog          # 在 syslog 中搜索 "error"
grep -r "TODO" /home/user/project/    # 递归在项目目录中搜索 "TODO"
grep -n "function" script.js          # 搜索并显示行号
ps aux | grep nginx                   # 结合管道,查找 nginx 进程
grep -E "[0-9]{3}-[0-9]{4}" file.txt  # 使用正则表达式搜索电话号码模式
# 搜索日志中的错误,并查看错误发生后的情况
grep -A 3 "ERROR" application.log
# 输出:
# 2023-10-20 14:30:15 ERROR Database connection failed
# 2023-10-20 14:30:15 INFO  Retrying connection...
# 2023-10-20 14:30:16 INFO  Connection established
# 2023-10-20 14:30:16 DEBUG Query executed successfully# 查看错误发生前发生了什么
grep -B 2 "crash" system.log
# 输出:
# 2023-10-20 14:25:10 WARNING Memory usage at 95%
# 2023-10-20 14:25:15 CRITICAL Out of memory
# 2023-10-20 14:25:16 ERROR System crash detected# 查看错误上下文(前后各3行)
grep -C 3 "exception" server.log
# 或者等价的:
grep -3 "exception" server.log# 组合使用:显示错误前后各2行,并显示行号
grep -n -C 2 "NullPointerException" error.log
高级正则搜索:
# 基本正则表达式:
grep "^2023" logfile.txt          # 以"2023"开头的行
grep "error$" logfile.txt         # 以"error"结尾的行
grep "[0-9]{3}-[0-9]{4}" file.txt # 搜索电话号码模式# 扩展正则表达式(-E):
grep -E "(error|warning|critical)" logfile.txt  # 搜索多个模式
grep -E "^[A-Za-z]+:" config.txt   # 搜索以单词加冒号开头的行# Perl兼容正则表达式(-P):
grep -P "\d{3}-\d{4}" file.txt     # 使用\d表示数字
递归搜索、文件过滤:
# 在目录中递归搜索
grep -r "TODO" /home/user/project/# 递归搜索时忽略二进制文件
grep -rI "search_term" /path/# 仅在特定类型文件中搜索
grep -r --include="*.java" "public class" src/
grep -r --include="*.{java,py}" "TODO" project/# 排除特定目录或文件
grep -r --exclude-dir=".git" "pattern" project/
grep -r --exclude="*.log" "error" /var/
输出控制选项:
# 仅显示匹配的文件名,不显示匹配内容
grep -l "success" *.log# 显示不匹配的行
grep -v "INFO" logfile.txt        # 排除所有包含INFO的行# 统计匹配行数
grep -c "error" *.log# 显示匹配的字节偏移量
grep -b "pattern" largefile.bin
日志分析组合拳:
# 分析最近一小时的错误,显示上下文
grep -C 2 "ERROR" /var/log/app.log | grep "$(date -d '1 hour ago' '+%Y-%m-%d %H:')"# 统计每种错误类型的出现次数
grep "ERROR" application.log | cut -d' ' -f4- | sort | uniq -c | sort -nr# 实时监控日志中的错误
tail -f /var/log/nginx/access.log | grep -E "(404|500)"
高级grep管道组合:
# 查找包含特定内容的配置文件,显示文件名和行号
grep -rn --include="*.conf" "server_name" /etc/nginx/# 在Java文件中查找未使用的import
grep -r "import" src/ | grep -v "//" | sort | uniq -c | grep "^\s*1"# 分析Web服务器日志
cat access.log | grep -v "127.0.0.1" | cut -d' ' -f1 | sort | uniq -c | sort -nr | head -10
2.2.2. find
核心功能:在目录树中搜索文件,功能极其强大。
 详细用法:
find [路径] [表达式]
常用表达式:
-name “模式”:按文件名搜索(支持通配符)。
-type 类型:按文件类型搜索(f=普通文件,d=目录,l=符号链接)。
-size [±]大小:按文件大小搜索(如 +10M 表示大于10MB)。
-mtime 天数:按修改时间搜索(+7 表示7天前,-7 表示7天内)。
-exec 命令 {} ;:对找到的文件执行命令。
示例:
find /home -name "*.jpg"                  # 在 /home 下查找所有 jpg 文件
find . -type f -size +100M                # 在当前目录查找大于100MB的文件
find /var/log -name "*.log" -mtime -7     # 查找7天内修改过的日志文件
find /tmp -name "*.tmp" -exec rm -f {} \; # 找到并删除所有 .tmp 文件
find . -type f -empty                     # 查找所有空文件
时间相关搜索:
# 基于时间的搜索(非常实用!)
find /var/log -name "*.log" -mtime -1    # 1天内修改的文件
find /home -name "*.txt" -mtime +30      # 30天前修改的文件
find /tmp -atime -1                      # 1天内访问过的文件
find . -cmin -60                         # 60分钟内状态改变的文件# 时间单位说明:
# mtime: 修改时间(内容修改)
# atime: 访问时间(文件被读)
# ctime: 状态改变时间(权限、所有者等)
权限和大小搜索:
# 权限搜索
find /home -perm 644                     # 精确匹配权限644
find /etc -perm -u=s                     # 查找SUID文件
find . -perm /u=w,g=w,o=w                # 查找任何用户可写的文件# 大小搜索
find /var -size +100M                    # 大于100MB的文件
find /home -size +500k -size -10M        # 500KB到10MB之间的文件
find . -empty                            # 空文件和空目录
高级-exec:
# 基本exec
find . -name "*.tmp" -exec rm -f {} \;# 使用+代替\; 更高效(一次性处理多个文件)
find . -name "*.jpg" -exec cp {} /backup/ \;# 结合xargs(处理大量文件时更高效)
find /var/log -name "*.log" -print0 | xargs -0 ls -l# 复杂的exec操作
find /home -name "*.conf" -exec grep -l "debug" {} \;
find . -name "*.java" -exec wc -l {} + | tail -1  # 统计总行数
三、文件权限与所有权
3.1.总览
| 命令 | 功能描述 | 常用示例 | 
|---|---|---|
| chmod | 修改文件权限 | chmod 755 script.sh (数字模式), chmod u+x file (给所有者添加执行权限) | 
| chown | 修改文件所有者 | chown user:group file.txt | 
| chgrp | 修改文件所属组 | chgrp group_name file.txt | 
说明:
r (读=4), w (写=2), x (执行=1)
755: 所有者 rwx, 所属组 r-x, 其他用户 r-x
644: 所有者 rw-, 所属组 r–, 其他用户 r–
3.2.详解
3.2.1.chmod
核心功能:改变文件或目录的访问权限。
 两种模式:
1、 数字模式(最常用):
 权限用三位八进制数表示:所有者|组|其他用户
r(读)= 4
w(写)= 2
x(执行)= 1
示例:
chmod 755 script.sh    # rwxr-xr-x:所有者有全部权限,其他用户读和执行
chmod 644 config.txt   # rw-r--r--:所有者可读写,其他用户只读
chmod 600 ~/.ssh/id_rsa # 仅所有者可读写,保护私钥文件
2、 符号模式:
u(用户)、g(组)、o(其他)、a(所有)
+(添加)、-(移除)、=(设置精确权限)
r、w、x
示例:
chmod u+x script.sh    # 给所有者添加执行权限
chmod go-w file.txt    # 移除组和其他用户的写权限
chmod a=r file.txt     # 所有用户都只有读权限
3.2.2.chown
核心功能:改变文件的所有者和/或所属组。
 详细用法:
chown [选项] 用户[:组] 文件...
示例:
chown user1 file.txt          # 将文件所有者改为 user1
chown user1:group1 file.txt   # 同时改变所有者和所属组
chown -R www-data:www-data /var/www/html  # 递归改变网站目录所有者
四、系统管理与进程管理
4.1.总览
| 命令 | 功能描述 | 常用示例 | 
|---|---|---|
| ps | 显示当前进程状态 | ps aux (显示所有进程), ps -ef grep java | 
| top / htop | 动态显示进程状态(系统资源监视器) | top (按 q 退出), htop (更友好,需安装) | 
| kill | 终止进程 | kill 1234, kill -9 1234 (强制杀死) | 
| pkill | 根据进程名终止进程 | pkill -f process_name | 
| systemctl | 管理系统服务(Systemd) | systemctl start nginx, systemctl status sshd | 
| shutdown / reboot | 关机 / 重启 | shutdown -h now (立即关机), reboot (重启) | 
| df | 查看磁盘空间使用情况 | df -h (以人类易读方式显示) | 
| du | 查看文件/目录的磁盘使用空间 | du -sh /home (查看 /home 总大小) | 
| free | 显示内存使用情况 | free -h | 
4.2.详解
4.2.1.ps
核心功能:显示当前系统的进程状态。
 常用组合:
ps aux    # 显示所有用户的全部进程(BSD格式)
ps -ef    # 显示所有进程(标准UNIX格式)
输出列说明:
USER:进程所有者
PID:进程ID
%CPU:CPU使用率
%MEM:内存使用率
VSZ:虚拟内存大小
RSS:物理内存大小
TTY:终端
STAT:进程状态
START:启动时间
TIME:累计CPU时间
COMMAND:命令名/命令行
示例:
ps aux | grep java           # 查找所有Java进程
ps -u root                  # 显示root用户的所有进程
4.2.2.systemctl
核心功能:管理和控制systemd系统和服务管理器。
 常用命令:
systemctl start service_name     # 启动服务
systemctl stop service_name      # 停止服务  
systemctl restart service_name   # 重启服务
systemctl reload service_name    # 重新加载配置(不重启)
systemctl status service_name    # 查看服务状态
systemctl enable service_name    # 设置开机自启
systemctl disable service_name   # 禁用开机自启
systemctl list-units --type=service  # 列出所有服务
示例:
systemctl status nginx        # 检查nginx状态
systemctl restart ssh         # 重启SSH服务
systemctl enable docker       # 设置Docker开机自启
五、压缩/解压
5.1.总览
| 命令 | 功能描述 | 常用示例 | 
|---|---|---|
| tar | 打包和解包文件 | tar -czvf archive.tar.gz dir/ (创建.gz压缩包), tar -xzvf archive.tar.gz (解压.gz包) | 
| gzip / gunzip | 压缩/解压 .gz 文件 | gzip file, gunzip file.gz | 
| zip / unzip | 压缩/解压 .zip 文件 | zip -r archive.zip dir/, unzip archive.zip | 
5.2.详解
5.2.1.tar
核心功能:将多个文件打包成一个文件,并可选择压缩。
 常用选项组合:
创建压缩包:tar -czvf 目标文件.tar.gz 源文件...解压压缩包:tar -xzvf 源文件.tar.gz [-C 目标目录]
选项说明:
-c:创建新的归档文件
-x:从归档文件中提取文件
-z:通过gzip过滤归档(处理.gz文件)
-j:通过bzip2过滤归档(处理.bz2文件)
-J:通过xz过滤归档(处理.xz文件)
-v:详细显示处理过程
-f:指定归档文件名
-C:改变到指定目录
示例:
1、创建压缩包:
tar -czvf project_backup.tar.gz /home/user/project/
2、解压到当前目录:
tar -xzvf backup.tar.gz
3、解压到指定目录:
tar -xzvf backup.tar.gz -C /tmp/
4、创建.bz2压缩包:
tar -cjvf backup.tar.bz2 /path/to/dir
5、仅列出压缩包内容,不解压:
tar -tzvf backup.tar.gz
压缩级别和算法:
# 不同的压缩级别(1-9,9最高压缩率)
tar -czvf -1 backup.tar.gz large_dir/    # 快速压缩
tar -czvf -9 backup.tar.gz large_dir/    # 最佳压缩# 不同压缩算法比较
tar -czvf backup.tar.gz dir/             # gzip(平衡)
tar -cjvf backup.tar.bz2 dir/            # bzip2(较高压缩率)
tar -cJvf backup.tar.xz dir/             # xz(最高压缩率,较慢)
增量备份和排除:
# 创建增量备份
tar -g snapshot -czvf full_backup.tar.gz /data
tar -g snapshot -czvf incremental_backup.tar.gz /data# 排除特定文件或目录
tar -czvf backup.tar.gz --exclude="*.tmp" --exclude=".git" project/# 从文件中读取排除列表
tar -czvf backup.tar.gz -X exclude_list.txt /home# 仅备份比某个文件新的文件
tar -czvf backup.tar.gz --newer-than="2023-10-01" /data
六、网络
6.1.总览
| 命令 | 功能描述 | 常用示例 | 
|---|---|---|
| ping | 测试网络连通性 | ping google.com | 
| curl / wget | 从网络下载文件 | curl -O http://example.com/file, wget http://example.com/file | 
| ssh | 安全远程登录 | ssh user@hostname | 
| scp | 安全地跨网络复制文件 | scp file.txt user@remote:/path/ (上传), scp user@remote:/path/file.txt ./ (下载) | 
| netstat / ss | 显示网络状态信息 | ss -tuln (查看监听端口), netstat -tulnp | 
| ifconfig / ip | 查看和配置网络接口 | ip addr show (推荐), ifconfig (较老) | 
6.2.详解
6.2.1.ss
核心功能:显示网络连接、路由表、接口统计等(推荐替代 netstat)。
 详细用法:
ss [选项]
常用选项:
-t:TCP sockets
-u:UDP sockets
-l:仅显示监听中的sockets
-n:不解析服务名称(显示端口号而非服务名)
-p:显示使用socket的进程
-a:显示所有sockets
示例:
ss -tuln                # 显示所有监听中的TCP和UDP端口
ss -tpn                 # 显示所有TCP连接及对应进程
ss -t state established # 显示所有已建立的TCP连接
6.2.2.curl
核心功能:强大的URL传输工具,支持多种协议。
 常用选项:
-I 或 --head:仅显示HTTP头信息
-o:将输出写入文件
-O:使用远程文件名保存
-L:跟随重定向
-H:添加HTTP头
-X:指定请求方法
-d:发送POST数据
示例:
curl -I http://example.com              # 检查网站HTTP头
curl -o page.html http://example.com    # 下载网页并保存
curl -L http://example.com              # 自动跟随重定向
curl -X POST -d 'name=value' http://api.example.com  # 发送POST请求
curl -H "Authorization: Bearer token" https://api.example.com  # 带认证头
6.2.3.ssh
基础使用:
# 使用用户名和IP地址连接
ssh username@192.168.1.100
# 使用域名连接
ssh user@example.com
# 使用特定端口(非默认22端口)
ssh -p 2222 username@hostname
# 详细输出连接过程(调试用)
ssh -vvv username@hostname
生成SSH密钥对:
# 生成RSA密钥(默认)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# 生成Ed25519密钥(更安全、更快速)
ssh-keygen -t ed25519 -C "your_email@example.com"
# 生成带密码的密钥
ssh-keygen -t rsa -b 4096 -f ~/.ssh/my_custom_key
配置公钥认证:
# 复制公钥到远程服务器
ssh-copy-id -i ~/.ssh/id_ed25519.pub username@hostname
# 手动复制公钥(如果没有ssh-copy-id)
cat ~/.ssh/id_ed25519.pub | ssh username@hostname "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
# 设置正确的权限
ssh username@hostname "chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys"
使用特定秘钥链接:
# 使用指定密钥文件
ssh -i ~/.ssh/my_custom_key username@hostname
# 使用多个密钥尝试
ssh -o IdentitiesOnly=yes -i ~/.ssh/key1 -i ~/.ssh/key2 username@hostname
远程命令执行:
# 在远程服务器上执行命令并返回结果
ssh username@hostname "ls -la /var/log"
# 执行多条命令
ssh username@hostname "cd /tmp && tar -czf backup.tar.gz /home/user/data"
# 获取远程系统信息
ssh username@hostname "uname -a; free -h; df -h"
# 在远程执行本地脚本
ssh username@hostname "bash -s" < local_script.sh# 监控远程服务器磁盘使用
ssh admin@webserver "df -h | grep -v tmpfs | sort -k5 -hr"
# 备份远程数据库到本地
ssh dba@dbserver "mysqldump -u root -p database_name" > local_backup.sql
# 在多个服务器上执行相同命令
for server in server1 server2 server3; doecho "=== $server ==="ssh admin@$server "uptime; who"
done
6.2.4.文件传输
# 从远程服务器下载文件
scp username@hostname:/remote/path/file.txt /local/path/
# 递归复制整个目录
scp -r local_directory/ username@hostname:/remote/path/
# 使用特定端口和密钥
scp -P 2222 -i ~/.ssh/my_key local_file.txt user@host:/path/
# 保留文件属性和时间戳
scp -p local_file.txt user@host:/path/
6.2.5.SFTP
# 启动SFTP会话
sftp username@hostname# SFTP常用命令
sftp> ls                    # 列出远程文件
sftp> lls                   # 列出本地文件
sftp> put local_file.txt    # 上传文件
sftp> get remote_file.txt   # 下载文件
sftp> mkdir new_dir         # 创建远程目录
sftp> rm file.txt           # 删除远程文件
sftp> exit                  # 退出
七、用户/组
7.1.总览
| 命令 | 功能描述 | 常用示例 | 
|---|---|---|
| sudo | 以超级管理员权限执行命令 | sudo apt update | 
| su | 切换用户 | su - username (- 会切换完整环境) | 
| useradd / adduser | 添加用户 | sudo useradd newuser | 
| usermod | 修改用户属性 | sudo usermod -aG sudo username (将用户加入 sudo 组) | 
| passwd | 修改用户密码 | passwd (修改自己的), sudo passwd username (修改他人的) | 
7.2.详解
7.2.1.sudo
核心功能:以其他用户身份(通常是root)执行命令。
 配置文件:/etc/sudoers
最佳实践:
不要直接编辑 /etc/sudoers,使用:
sudo visudo
常用用法:
sudo command                  # 以root身份执行命令
sudo -u username command     # 以指定用户身份执行
sudo -i                      # 切换到root的交互式shell(加载环境变量)
sudo -s                      # 切换到root的shell
示例:
sudo apt update              # 更新软件包列表(需要root权限)
sudo -u postgres psql        # 以postgres用户身份运行psql
八、其他
8.1.总览
| 命令 | 功能描述 | 常用示例 | 
|---|---|---|
| man | 查看命令的手册页 | man ls (最权威的参考资料) | 
| history | 查看命令历史记录 | history, !100 (执行历史记录中第100条命令) | 
| alias | 创建命令别名 | alias ll=‘ls -alF’ (临时生效,永久需写入 ~/.bashrc) | 
| echo | 输出一行文本 | echo “Hello World”, echo $PATH (输出环境变量) | 
| date | 显示或设置系统时间 | date, date -s “20231020 10:30:00” | 
| which / whereis | 查找命令所在路径 | which python, whereis git | 
8.2.详解
8.2.1.man
核心功能:查看命令的官方文档。
 详细用法:
man [章节] 命令名
手册章节:
1:用户命令
2:系统调用
3:库函数
5:文件格式
8:系统管理命令
示例:
man ls          # 查看ls命令手册
man 5 passwd    # 查看passwd文件格式说明
man -k keyword  # 搜索包含关键词的手册页
8.2.2.管道 | 和重定向
核心概念:
|:管道,将前一个命令的输出作为后一个命令的输入
>:重定向输出(覆盖)
>>:重定向输出(追加)
<:重定向输入
2>:重定向错误输出
示例:
ls -l | grep ".txt" | wc -l          # 统计当前目录txt文件数量
ps aux | sort -nk 4 | tail -5        # 显示内存使用最高的5个进程
echo "new line" >> file.txt          # 向文件追加内容
grep "error" /var/log/syslog > errors.txt 2> /dev/null  # 保存输出,丢弃错误
8.2.3.CPU 信息查看
| 字段 | 意义 | 示例值 | 
|---|---|---|
| Architecture | CPU 架构 | x86_64 | 
| CPU(s) 逻辑 | CPU 核心总数 | 8 | 
| Thread(s) per core | 每个核心的线程数 | 2 | 
| Core(s) per socket | 每个插槽的核心数 | 4 | 
| Socket(s) | CPU 插槽数量 | 1 | 
| Model name | CPU 型号名称 | Intel® Xeon® CPU E5-2680 | 
| CPU MHz | CPU 频率 | 2499.998 | 
| L1/L2/L3 cache | 各级缓存大小 | 32K/256K/20480K | 
8.2.4.内存信息查看(free -h)
| 字段 | 意义 | 示例值 | 
|---|---|---|
| total | 总内存大小 | 15G | 
| used | 已使用内存 | 8.2G | 
| free | 空闲内存 | 1.5G | 
| shared | 共享内存 | 1.2G | 
| buff/cache | 缓冲区/缓存内存 | 5.3G | 
| available | 可用内存(包含可回收缓存) | 6.8G | 
8.2.5.硬盘信息查看(df -h/lsblk)
df -h:
| 字段 | 意义 | 示例值 | 
|---|---|---|
| Filesystem | 文件系统设备 | /dev/sda1 | 
| Size | 总磁盘空间 | 50G | 
| Used | 已用空间 | 25G | 
| Avail | 可用空间 | 23G | 
| Use% | 使用百分比 | 52% | 
| Mounted on | 挂载点 | / | 
lsblk:
| 字段 | 意义 | 示例值 | 
|---|---|---|
| NAME | 设备名称 | sda, sda1 | 
| MAJ:MIN | 主次设备号 | 8:0 | 
| RM | 是否为可移动设备 | 0/1 | 
| SIZE | 设备总大小 | 50G | 
| RO | 是否只读 | 0/1 | 
| TYPE | 设备类型 | disk, part | 
| MOUNTPOINT | 挂载点 | /, /home | 
