Linux 命令详解与进阶指南
Linux 是一种广泛使用的开源操作系统,掌握 Linux 命令是开发者和系统管理员的必备技能。本文将详细介绍 Linux 的常用命令,并涵盖一些高级进阶技巧,帮助你更高效地使用 Linux。
目录
- 基础命令
- 文件与目录操作
- 文本处理
- 系统信息
- 权限管理
- 进阶命令
- 进程管理
- 网络操作
- 磁盘管理
- Shell 脚本
- 高级技巧
- 管道与重定向
- 正则表达式
- 任务调度
- 性能监控
- 案例实战
- 日志分析
- 自动化部署
- 服务器监控
基础命令
文件与目录操作
1. ls
- 列出目录内容
ls # 列出当前目录内容
ls -l # 以长格式列出
ls -a # 列出所有文件(包括隐藏文件)
ls -lh # 以易读格式显示文件大小
2. cd
- 切换目录
cd /home # 切换到 /home 目录
cd .. # 返回上一级目录
cd ~ # 切换到用户主目录
3. mkdir
- 创建目录
mkdir dir1 # 创建目录 dir1
mkdir -p dir1/dir2 # 递归创建目录
4. rm
- 删除文件或目录
rm file.txt # 删除文件
rm -r dir1 # 递归删除目录
rm -f file.txt # 强制删除文件
5. cp
- 复制文件或目录
cp file1 file2 # 复制文件
cp -r dir1 dir2 # 递归复制目录
6. mv
- 移动或重命名文件
mv file1 file2 # 重命名文件
mv file1 dir1/ # 移动文件到目录
7. touch
- 创建空文件或更新文件时间戳
touch file.txt # 创建空文件
文本处理
1. cat
- 查看文件内容
cat file.txt # 查看文件内容
cat file1 file2 # 合并多个文件
2. more
和 less
- 分页查看文件
more file.txt # 分页查看文件
less file.txt # 支持上下滚动查看
3. head
和 tail
- 查看文件开头或结尾
head file.txt # 查看文件前 10 行
tail file.txt # 查看文件后 10 行
tail -f file.txt # 实时查看文件新增内容
4. grep
- 文本搜索
grep "pattern" file.txt # 搜索包含 pattern 的行
grep -i "pattern" file.txt # 忽略大小写搜索
grep -r "pattern" dir1/ # 递归搜索目录
5. sed
- 流编辑器
sed 's/old/new/' file.txt # 替换文件中的文本
sed -i 's/old/new/' file.txt # 直接修改文件
6. awk
- 文本处理工具
awk '{print $1}' file.txt # 打印文件的第一列
awk -F: '{print $1}' /etc/passwd # 以冒号为分隔符打印第一列
系统信息
1. uname
- 显示系统信息
uname -a # 显示所有系统信息
2. df
- 显示磁盘使用情况
df -h # 以易读格式显示磁盘使用情况
3. free
- 显示内存使用情况
free -h # 以易读格式显示内存使用情况
4. top
- 实时显示系统进程
top # 显示系统进程和资源使用情况
权限管理
1. chmod
- 修改文件权限
chmod 755 file.txt # 设置文件权限为 rwxr-xr-x
chmod +x script.sh # 添加可执行权限
2. chown
- 修改文件所有者
chown user:group file.txt # 修改文件所有者和所属组
3. sudo
- 以超级用户权限执行命令
sudo apt update # 以超级用户权限更新软件包
进阶命令
进程管理
1. ps
- 显示进程状态
ps aux # 显示所有进程
2. kill
- 终止进程
kill 1234 # 终止进程 ID 为 1234 的进程
kill -9 1234 # 强制终止进程
3. nohup
- 后台运行进程
nohup command & # 后台运行命令,忽略挂断信号
网络操作
1. ping
- 测试网络连接
ping google.com # 测试与 google.com 的连接
2. ifconfig
- 显示网络接口信息
ifconfig # 显示网络接口信息
3. netstat
- 显示网络状态
netstat -tuln # 显示所有监听端口
4. ssh
- 远程登录
ssh user@host # 远程登录到主机
磁盘管理
1. fdisk
- 磁盘分区工具
sudo fdisk -l # 列出磁盘分区
2. mount
- 挂载文件系统
sudo mount /dev/sdb1 /mnt # 挂载设备到目录
3. du
- 显示目录磁盘使用情况
du -sh dir1/ # 显示目录的磁盘使用情况
Shell 脚本
1. 编写 Shell 脚本
#!/bin/bash
echo "Hello, World!"
2. 执行 Shell 脚本
chmod +x script.sh
./script.sh
高级技巧
管道与重定向
1. 管道 (|
)
cat file.txt | grep "pattern" # 将 cat 的输出作为 grep 的输入
2. 重定向 (>
和 >>
)
echo "Hello" > file.txt # 将输出重定向到文件(覆盖)
echo "World" >> file.txt # 将输出追加到文件
正则表达式
1. 基本正则表达式
grep "^start" file.txt # 匹配以 start 开头的行
grep "end$" file.txt # 匹配以 end 结尾的行
2. 扩展正则表达式
grep -E "pattern1|pattern2" file.txt # 匹配 pattern1 或 pattern2
任务调度
1. cron
- 定时任务
crontab -e # 编辑定时任务
* * * * * command # 每分钟执行一次命令
2. at
- 一次性任务
at now + 5 minutes # 5 分钟后执行任务
性能监控
1. vmstat
- 显示系统性能
vmstat 1 # 每秒显示一次系统性能
2. iostat
- 显示磁盘 I/O 性能
iostat 1 # 每秒显示一次磁盘 I/O 性能
案例实战
日志分析
1. 查找错误日志
grep "ERROR" /var/log/syslog
2. 统计日志行数
grep "ERROR" /var/log/syslog | wc -l
自动化部署
1. 编写部署脚本
#!/bin/bash
git pull origin master
npm install
pm2 restart app
2. 设置定时任务
crontab -e
0 * * * * /path/to/deploy.sh
服务器监控
1. 监控 CPU 使用率
top -b -n 1 | grep "Cpu(s)"
2. 监控内存使用率
free -m | grep "Mem:"
通过本文,你应该掌握了 Linux 的基础命令、进阶技巧以及一些高级应用场景。继续实践和探索,你将能够更高效地使用 Linux!