Linux 系统基础操作完整指南
一、文件与目录操作
1. 导航与查看
pwd (Print Working Directory)
- 作用:显示当前所在目录的完整路径
- 示例:
pwd
→ 输出/home/user/documents
- 使用场景:当你在多层目录中迷失时快速定位当前位置
ls (List)
- 常用选项:
-l
:长格式显示(包含权限、所有者、大小等信息)-a
:显示所有文件(包括隐藏文件)-h
:人类可读的文件大小(如KB、MB)
- 示例:
ls -lah /home
→ 详细列出/home目录下所有文件
- 常用选项:
cd (Change Directory)
- 特殊路径:
cd ~
:返回用户主目录cd ..
:返回上级目录cd -
:返回上次所在的目录
- 示例:
cd /var/log/nginx
→ 进入nginx日志目录
- 特殊路径:
tree
- 安装:
sudo apt install tree
(Debian/Ubuntu) - 常用选项:
-L
:限制显示层级深度-d
:只显示目录
- 示例:
tree -L 2 /etc
→ 显示/etc目录下两层结构
- 安装:
2. 文件操作
cp (Copy)
- 常用选项:
-r
:递归复制目录-i
:覆盖前提示-v
:显示复制进度
- 示例:
cp -riv source_dir/ dest_dir/
→ 安全复制目录
- 常用选项:
mv (Move)
- 重命名示例:
mv old_filename new_filename
- 移动示例:
mv *.jpg /path/to/images/
- 重命名示例:
rm (Remove)
- 危险操作警告:
rm -rf /
→ 系统毁灭性命令(绝对不要尝试)- 建议使用
-i
选项进行交互式删除
- 安全示例:
rm -i important_file.txt
- 危险操作警告:
文件查看工具对比:
cat
:快速查看小文件内容less
:支持上下翻页查看大文件(推荐)more
:基本分页查看(功能少于less)head/tail
:查看文件开头/结尾部分
3. 文件查找
find 高级用法:
# 查找7天内修改过的.log文件 find /var/log -name "*.log" -mtime -7 # 查找大于10MB的文件 find / -size +10M # 查找并删除旧备份文件 find /backups -name "*.tar.gz" -mtime +30 -delete
grep 文本搜索:
# 递归搜索目录中包含"error"的行 grep -r "error" /var/log/ # 显示匹配行及前后3行内容 grep -A 3 -B 3 "critical" system.log # 使用正则表达式搜索 grep -E "[0-9]{3}-[0-9]{4}" contacts.txt
locate 使用注意:
- 需要先更新数据库:
sudo updatedb
- 查找速度快但不实时(适合查找不变的系统文件)
- 需要先更新数据库:
二、权限与用户管理
1. 权限控制详解
权限表示法:
- 字母表示:
rwx r-x r-x
- 数字表示:
755
(对应rwxr-xr-x) - 特殊权限:
- SUID(4):
chmod u+s file
- SGID(2):
chmod g+s dir
- Sticky(1):
chmod +t /tmp
- SUID(4):
- 字母表示:
chmod 实例:
# 给脚本添加执行权限 chmod +x backup.sh # 设置目录权限(目录通常需要执行权限才能进入) chmod 755 public_dir/ # 递归修改目录下所有文件权限 chmod -R 644 /var/www/html/
chown 高级用法:
# 同时修改所有者和组 chown user:group file.txt # 递归修改目录所有权 chown -R www-data:www-data /var/www/ # 只修改组而不改变所有者 chown :developers project/
2. 用户管理实践
用户创建选项:
# 创建用户并指定主目录 sudo useradd -m -d /home/newuser -s /bin/bash newuser # 创建系统用户(无登录权限) sudo useradd -r -s /usr/sbin/nologin service_user # 设置用户密码策略 sudo passwd -e newuser # 强制下次登录修改密码
用户组管理:
# 创建新组 sudo groupadd developers # 将用户添加到附加组 sudo usermod -aG sudo,developers newuser # 查看用户所属组 groups username
sudo配置:
- 配置文件:
/etc/sudoers
(使用visudo
命令编辑) - 示例配置:
# 允许用户无需密码执行特定命令 username ALL=(ALL) NOPASSWD: /usr/bin/apt update
- 配置文件:
三、进程管理
1. 进程监控工具
ps 输出解读:
USER
:进程所有者PID
:进程ID%CPU
:CPU使用率%MEM
:内存使用率COMMAND
:启动命令
top 使用技巧:
- 交互命令:
M
:按内存排序P
:按CPU排序k
:终止进程q
:退出
- 批处理模式:
top -b -n 1 > processes.txt
- 交互命令:
htop 增强功能:
- 鼠标支持
- 树状视图(F5)
- 进程搜索(F3)
- 自定义显示列(F2)
2. 信号管理
信号编号 | 信号名 | 作用 | 示例 |
---|---|---|---|
1 | SIGHUP | 重新加载配置 | kill -1 1234 |
9 | SIGKILL | 强制终止(不可捕获) | kill -9 1234 |
15 | SIGTERM | 优雅终止(默认信号) | kill 1234 |
19 | SIGSTOP | 暂停进程(不可捕获) | kill -19 1234 |
四、网络操作
1. 网络诊断工具
ping 高级用法:
# 指定次数和间隔 ping -c 5 -i 2 google.com # 测试MTU大小 ping -M do -s 1472 example.com
traceroute 替代方案:
mtr
:实时路由跟踪工具tracepath
:不需要root权限
ss 现代替代netstat:
# 查看所有TCP连接 ss -t # 查看监听端口和进程 ss -tulnp # 显示socket统计 ss -s
2. 安全文件传输
scp 安全复制:
# 指定端口复制 scp -P 2222 file.txt user@remote:/path/ # 保留文件属性 scp -p backup.tar.gz user@backup-server:/backups/
rsync 高效同步:
# 增量备份(排除临时文件) rsync -avz --exclude='tmp/' --delete /data/ user@remote:/backups/ # 带宽限制(100KB/s) rsync --bwlimit=100 -avz large_file user@remote:/destination/ # 远程到本地恢复 rsync -avz user@remote:/backups/ /local/restore/
五、系统管理
1. 磁盘管理进阶
df 实用选项:
# 显示inode使用情况 df -i # 只显示特定文件系统类型 df -t ext4
du 深度分析:
# 找出最大的10个目录 du -h / | sort -rh | head -n 10 # 排除特定目录 du -h --exclude=".cache" /home/user
2. systemd 服务管理
服务状态检查:
# 详细服务状态 systemctl status nginx --no-pager # 验证服务是否启用 systemctl is-enabled nginx # 列出所有失败的服务 systemctl --failed
journalctl 日志查询:
# 跟踪最新日志 journalctl -f -u nginx # 按时间范围查询 journalctl -u mysql --since "2023-01-01" --until "2023-01-02" # 显示内核日志 journalctl -k
六、实用技巧进阶
1. 高效命令行
历史命令:
# 搜索历史命令 history | grep "apt install" # 快速执行历史命令 !123 # 执行第123条历史命令 !ssh # 执行最近的ssh开头的命令
命令组合:
# 统计当前目录文件数 ls | wc -l # 查找并替换多个文件内容 grep -rl "oldtext" . | xargs sed -i 's/oldtext/newtext/g'
2. 环境变量管理
持久化配置:
- 用户级:
~/.bashrc
或~/.bash_profile
- 系统级:
/etc/environment
或/etc/profile.d/
- 用户级:
PATH管理示例:
# 添加多个路径 export PATH=$PATH:/new/path1:/new/path2 # 永久添加到bashrc echo 'export PATH=$PATH:/opt/myapp/bin' >> ~/.bashrc source ~/.bashrc
七、学习路径建议
1. 渐进式学习
基础阶段:
- 每天掌握5个常用命令
- 在虚拟机中练习文件操作
- 记录常用命令到备忘单
中级阶段:
- 学习shell脚本基础
- 理解管道和重定向
- 配置简单的cron任务
高级阶段:
- 编写复杂shell脚本
- 学习sed/awk文本处理
- 理解系统启动过程
2. 推荐资源
在线学习:
- Linux Journey (https://linuxjourney.com/)
- OverTheWire Bandit (实战游戏)
书籍推荐:
- 《Linux命令行与shell脚本编程大全》
- 《鸟哥的Linux私房菜》
社区支持:
- Stack Overflow
- Linux中国论坛
- 官方文档和man pages
Linux 系统基础操作完整指南
一、文件与目录操作
1. 导航与查看
pwd (Print Working Directory)
- 作用:显示当前所在目录的完整路径
- 示例:
pwd
→ 输出/home/user/documents
- 使用场景:当你在多层目录中迷失时快速定位当前位置
ls (List)
- 常用选项:
-l
:长格式显示(包含权限、所有者、大小等信息)-a
:显示所有文件(包括隐藏文件)-h
:人类可读的文件大小(如KB、MB)
- 示例:
ls -lah /home
→ 详细列出/home目录下所有文件
- 常用选项:
cd (Change Directory)
- 特殊路径:
cd ~
:返回用户主目录cd ..
:返回上级目录cd -
:返回上次所在的目录
- 示例:
cd /var/log/nginx
→ 进入nginx日志目录
- 特殊路径:
tree
- 安装:
sudo apt install tree
(Debian/Ubuntu) - 常用选项:
-L
:限制显示层级深度-d
:只显示目录
- 示例:
tree -L 2 /etc
→ 显示/etc目录下两层结构
- 安装:
2. 文件操作
cp (Copy)
- 常用选项:
-r
:递归复制目录-i
:覆盖前提示-v
:显示复制进度
- 示例:
cp -riv source_dir/ dest_dir/
→ 安全复制目录
- 常用选项:
mv (Move)
- 重命名示例:
mv old_filename new_filename
- 移动示例:
mv *.jpg /path/to/images/
- 重命名示例:
rm (Remove)
- 危险操作警告:
rm -rf /
→ 系统毁灭性命令(绝对不要尝试)- 建议使用
-i
选项进行交互式删除
- 安全示例:
rm -i important_file.txt
- 危险操作警告:
文件查看工具对比:
cat
:快速查看小文件内容less
:支持上下翻页查看大文件(推荐)more
:基本分页查看(功能少于less)head/tail
:查看文件开头/结尾部分
3. 文件查找
find 高级用法:
# 查找7天内修改过的.log文件 find /var/log -name "*.log" -mtime -7 # 查找大于10MB的文件 find / -size +10M # 查找并删除旧备份文件 find /backups -name "*.tar.gz" -mtime +30 -delete
grep 文本搜索:
# 递归搜索目录中包含"error"的行 grep -r "error" /var/log/ # 显示匹配行及前后3行内容 grep -A 3 -B 3 "critical" system.log # 使用正则表达式搜索 grep -E "[0-9]{3}-[0-9]{4}" contacts.txt
locate 使用注意:
- 需要先更新数据库:
sudo updatedb
- 查找速度快但不实时(适合查找不变的系统文件)
- 需要先更新数据库:
二、权限与用户管理
1. 权限控制详解
权限表示法:
- 字母表示:
rwx r-x r-x
- 数字表示:
755
(对应rwxr-xr-x) - 特殊权限:
- SUID(4):
chmod u+s file
- SGID(2):
chmod g+s dir
- Sticky(1):
chmod +t /tmp
- SUID(4):
- 字母表示:
chmod 实例:
# 给脚本添加执行权限 chmod +x backup.sh # 设置目录权限(目录通常需要执行权限才能进入) chmod 755 public_dir/ # 递归修改目录下所有文件权限 chmod -R 644 /var/www/html/
chown 高级用法:
# 同时修改所有者和组 chown user:group file.txt # 递归修改目录所有权 chown -R www-data:www-data /var/www/ # 只修改组而不改变所有者 chown :developers project/
2. 用户管理实践
用户创建选项:
# 创建用户并指定主目录 sudo useradd -m -d /home/newuser -s /bin/bash newuser # 创建系统用户(无登录权限) sudo useradd -r -s /usr/sbin/nologin service_user # 设置用户密码策略 sudo passwd -e newuser # 强制下次登录修改密码
用户组管理:
# 创建新组 sudo groupadd developers # 将用户添加到附加组 sudo usermod -aG sudo,developers newuser # 查看用户所属组 groups username
sudo配置:
- 配置文件:
/etc/sudoers
(使用visudo
命令编辑) - 示例配置:
# 允许用户无需密码执行特定命令 username ALL=(ALL) NOPASSWD: /usr/bin/apt update
- 配置文件:
三、进程管理
1. 进程监控工具
ps 输出解读:
USER
:进程所有者PID
:进程ID%CPU
:CPU使用率%MEM
:内存使用率COMMAND
:启动命令
top 使用技巧:
- 交互命令:
M
:按内存排序P
:按CPU排序k
:终止进程q
:退出
- 批处理模式:
top -b -n 1 > processes.txt
- 交互命令:
htop 增强功能:
- 鼠标支持
- 树状视图(F5)
- 进程搜索(F3)
- 自定义显示列(F2)
2. 信号管理
信号编号 | 信号名 | 作用 | 示例 |
---|---|---|---|
1 | SIGHUP | 重新加载配置 | kill -1 1234 |
9 | SIGKILL | 强制终止(不可捕获) | kill -9 1234 |
15 | SIGTERM | 优雅终止(默认信号) | kill 1234 |
19 | SIGSTOP | 暂停进程(不可捕获) | kill -19 1234 |
四、网络操作
1. 网络诊断工具
ping 高级用法:
# 指定次数和间隔 ping -c 5 -i 2 google.com # 测试MTU大小 ping -M do -s 1472 example.com
traceroute 替代方案:
mtr
:实时路由跟踪工具tracepath
:不需要root权限
ss 现代替代netstat:
# 查看所有TCP连接 ss -t # 查看监听端口和进程 ss -tulnp # 显示socket统计 ss -s
2. 安全文件传输
scp 安全复制:
# 指定端口复制 scp -P 2222 file.txt user@remote:/path/ # 保留文件属性 scp -p backup.tar.gz user@backup-server:/backups/
rsync 高效同步:
# 增量备份(排除临时文件) rsync -avz --exclude='tmp/' --delete /data/ user@remote:/backups/ # 带宽限制(100KB/s) rsync --bwlimit=100 -avz large_file user@remote:/destination/ # 远程到本地恢复 rsync -avz user@remote:/backups/ /local/restore/
五、系统管理
1. 磁盘管理进阶
df 实用选项:
# 显示inode使用情况 df -i # 只显示特定文件系统类型 df -t ext4
du 深度分析:
# 找出最大的10个目录 du -h / | sort -rh | head -n 10 # 排除特定目录 du -h --exclude=".cache" /home/user
2. systemd 服务管理
服务状态检查:
# 详细服务状态 systemctl status nginx --no-pager # 验证服务是否启用 systemctl is-enabled nginx # 列出所有失败的服务 systemctl --failed
journalctl 日志查询:
# 跟踪最新日志 journalctl -f -u nginx # 按时间范围查询 journalctl -u mysql --since "2023-01-01" --until "2023-01-02" # 显示内核日志 journalctl -k
六、实用技巧进阶
1. 高效命令行
历史命令:
# 搜索历史命令 history | grep "apt install" # 快速执行历史命令 !123 # 执行第123条历史命令 !ssh # 执行最近的ssh开头的命令
命令组合:
# 统计当前目录文件数 ls | wc -l # 查找并替换多个文件内容 grep -rl "oldtext" . | xargs sed -i 's/oldtext/newtext/g'
2. 环境变量管理
持久化配置:
- 用户级:
~/.bashrc
或~/.bash_profile
- 系统级:
/etc/environment
或/etc/profile.d/
- 用户级:
PATH管理示例:
# 添加多个路径 export PATH=$PATH:/new/path1:/new/path2 # 永久添加到bashrc echo 'export PATH=$PATH:/opt/myapp/bin' >> ~/.bashrc source ~/.bashrc