Linux命令指南:从入门到精通
掌握这些命令,让你的工作效率提升10倍
前言
Linux 命令行是程序员和系统管理员的必备技能。无论是服务器管理、开发环境搭建,还是日常文件操作,熟练使用 Linux 命令都能让你事半功倍。本文将带你从基础命令开始,逐步掌握最实用的 Linux 技能。
一、基础命令
1. 文件和目录操作
# 查看当前目录pwd# 列出文件和目录ls # 简单列表ls -l # 详细信息ls -la # 显示隐藏文件ls -lh # 人类可读的文件大小# 切换目录cd /home # 进入指定目录cd .. # 返回上级目录cd ~ # 返回用户主目录cd - # 返回上次所在目录# 创建目录mkdir myfoldermkdir -p path/to/nested/folder # 递归创建# 创建文件touch file.txt# 复制文件/目录cp file.txt backup.txtcp -r folder/ backup/ # 递归复制目录# 移动/重命名mv oldname.txt newname.txtmv file.txt /destination/path/# 删除rm file.txtrm -r folder/ # 递归删除目录rm -rf folder/ # 强制删除(慎用!)
2. 查看文件内容
# 查看文件内容cat file.txt # 显示全部内容less file.txt # 分页查看(可上下滚动)more file.txt # 分页查看(只能向下)head file.txt # 查看前10行head -n 20 file.txt # 查看前20行tail file.txt # 查看后10行tail -f log.txt # 实时查看日志
3. 文件搜索
# 查找文件find . -name "*.txt" # 按名称查找find . -type f -size +100M # 查找大于100M的文件find . -mtime -7 # 查找7天内修改过的文件# 在文件内容中搜索grep "keyword" file.txtgrep -r "keyword" folder/ # 递归搜索grep -i "keyword" file.txt # 忽略大小写grep -n "keyword" file.txt # 显示行号
二、系统管理命令
1. 进程管理
# 查看进程ps aux # 查看所有进程top # 实时进程监控htop # 更友好的进程查看器(需安装)# 查找特定进程ps aux | grep nginx# 结束进程kill PID # 正常终止kill -9 PID # 强制终止killall process_name # 按名称结束
2. 磁盘和内存
# 磁盘使用情况df -h # 查看磁盘空间# 目录大小du -sh folder/ # 查看目录总大小du -h --max-depth=1 # 查看当前目录下各子目录大小# 内存使用free -h # 查看内存使用情况
3. 网络相关
# 查看网络配置ip addr # 查看IP地址ifconfig # 传统方式(部分系统需安装)# 网络连通性测试ping google.comcurl -I https://example.com # 查看HTTP响应头wget https://example.com/file # 下载文件# 查看网络连接netstat -tuln # 查看监听端口ss -tuln # 新版netstat替代lsof -i :8080 # 查看占用端口的进程
三、权限管理
1. 文件权限基础
Linux 文件权限分为三类用户:
- 所有者 (owner/u):文件的所有者
- 所属组 (group/g):文件所属的用户组
- 其他用户 (others/o):系统中的其他用户
每种用户有三种权限:
- r (4):读取权限
- w (2):写入权限
- x (1):执行权限
2. 权限相关命令
# 查看文件权限ls -l file.txt# 输出示例:-rw-r--r-- 1 user group 1234 Jan 1 12:00 file.txt# 修改权限(数字方式)chmod 755 script.sh # rwxr-xr-xchmod 644 file.txt # rw-r--r--chmod 600 secret.txt # rw-------(仅自己可读写)# 修改权限(符号方式)chmod u+x script.sh # 给所有者添加执行权限chmod go-w file.txt # 移除组和其他人的写入权限chmod a+r file.txt # 给所有人添加读取权限# 修改所有者chown user:group file.txtchown -R user:group folder/ # 递归修改# 修改所属组chgrp groupname file.txt
四、实用技巧
1. 管道和重定向
# 管道:将一个命令的输出作为另一个命令的输入cat file.txt | grep "error" | wc -l# 重定向输出command > output.txt # 覆盖写入command >> output.txt # 追加写入command 2> error.log # 重定向错误输出command &> all.log # 重定向所有输出# 重定向输入command < input.txt
2. 快捷键
Ctrl + C # 终止当前命令Ctrl + Z # 暂停当前命令(放入后台)Ctrl + D # 退出终端Ctrl + L # 清屏(同 clear)Ctrl + A # 光标移到行首Ctrl + E # 光标移到行尾Ctrl + U # 删除光标前所有内容Ctrl + K # 删除光标后所有内容Ctrl + R # 搜索历史命令Tab # 自动补全
3. 常用组合命令
# 统计文件行数、字数、字节数wc -l file.txt # 行数wc -w file.txt # 单词数wc -c file.txt # 字节数# 排序和去重sort file.txt # 排序sort -r file.txt # 倒序sort -u file.txt # 排序并去重uniq file.txt # 去重(需先排序)# 文本处理awk '{print $1}' file.txt # 打印第一列sed 's/old/new/g' file.txt # 替换文本cut -d',' -f1 file.csv # 按分隔符提取字段五、进阶命令
1. 压缩和解压
# tar 归档tar -cvf archive.tar folder/ # 创建归档tar -xvf archive.tar # 解压归档tar -czvf archive.tar.gz folder/ # 创建gzip压缩归档tar -xzvf archive.tar.gz # 解压gzip归档# zipzip -r archive.zip folder/ # 创建zipunzip archive.zip # 解压zip
2. 远程操作
# SSH 连接ssh user@hostnamessh -p 2222 user@hostname # 指定端口# 文件传输scp file.txt user@host:/path/ # 上传文件scp user@host:/path/file.txt . # 下载文件scp -r folder/ user@host:/path/ # 传输目录# rsync 同步(推荐)rsync -avz folder/ user@host:/path/rsync -avz --delete folder/ user@host:/path/ # 删除目标端多余文件
3. 定时任务
# 编辑定时任务crontab -e# 查看定时任务crontab -l# 定时任务格式:分 时 日 月 周 命令# 示例:0 2 * * * /path/to/backup.sh # 每天凌晨2点执行备份*/5 * * * * /path/to/check.sh # 每5分钟执行一次
六、实用场景示例
场景1:查找并删除大文件
# 查找大于100MB的文件并排序du -h /path | grep '[0-9]00M\|G' | sort -rh | head -20# 安全删除(先确认)find /path -type f -size +100M -exec ls -lh {} \;场景2:批量重命名文件
# 将所有 .txt 文件改为 .bakfor file in *.txt; do mv "$file" "${file%.txt}.bak"; done# 使用 rename 命令(部分系统)rename 's/.txt/.bak/' *.txt场景3:监控日志文件
# 实时查看日志并过滤关键词tail -f /var/log/nginx/access.log | grep "404"# 查看最近的错误journalctl -u nginx -f # systemd 服务日志
场景4:一键备份脚本
#!/bin/bash# backup.shDATE=$(date +%Y%m%d)BACKUP_DIR="/backup/$DATE"mkdir -p $BACKUP_DIRtar -czvf $BACKUP_DIR/home.tar.gz /home/user/Documentsrsync -avz $BACKUP_DIR remote-server:/backups/echo "备份完成: $BACKUP_DIR"
结语
掌握 Linux 命令不是一蹴而就的,需要多加练习。建议:
- 多动手:在实际项目中使用这些命令
- 看帮助:遇到不熟悉的命令,使用
man 命令名 或 命令 --help 查看文档 - 做笔记:记录常用的命令组合,形成自己的命令库
- 写脚本:将重复的操作写成脚本,提升效率
希望这篇指南能帮助你更好地使用 Linux!如有疑问,欢迎留言交流。
推荐阅读:
- 《鸟哥的Linux私房菜》
- Linux man pages:
man intro - 在线练习:Linux Command Line Basics
本文首发于公众号,转载请注明出处。