Linux是程序员必备技能,我已经工作几天了,目前的工作就是在服务器上部署脚本,但是Linux命令不熟悉,导致我有一些吃力,还是得学习一下,最重要的还是掌握常用命令。
核心概念
命令结构: command [选项] [参数]
- 选项 (Options): 通常以
-或--开头,用于修改命令的行为。例如-l,--all。 - 参数 (Arguments): 命令操作的对象,如文件名、目录名。
提示符: [用户名@主机名 当前目录]$
$表示普通用户,#表示超级用户(root)。
绝对路径与相对路径:
- 绝对路径: 从根目录
/开始的完整路径,如/home/user/file.txt。 - 相对路径: 从当前目录开始的路径,如
./file.txt(当前目录) 或../otherdir(上级目录)。
好习惯
--help: 任何命令后加--help或-h查看内置帮助。 (ls --help)man: 查看命令的详细手册页,是终极权威文档。 (man ls) - 按q退出。- 善用
Tab键: 自动补全命令和文件名,防止拼写错误,提高效率。
命令详解(按功能分类)
1. 文件与目录操作 (最核心)
| 命令 | 功能描述 | 常用示例 | 说明 |
|---|---|---|---|
| pwd | 显示当前工作目录 | pwd | Print Working Directory |
| ls | 列出目录内容 | ls -la | -l 详情,-a 显示隐藏文件 |
| cd | 切换目录 | cd /tmp cd .. cd ~ | .. 上级,~ 家目录,- 上一个目录 |
| mkdir | 创建新目录 | mkdir new_dir mkdir -p a/b/c | -p 创建多级父目录 |
| touch | 创建空文件或更新文件时间戳 | touch file.txt | |
| cp | 复制文件或目录 | cp file1 file2 cp -r dir1 dir2 | -r 递归复制目录 |
| mv | 移动或重命名文件/目录 | mv old.txt new.txt mv file /tmp/ | |
| rm | 删除文件或目录 | rm file.txt rm -rf dir | 小心! -r 递归,-f 强制,无法轻易恢复 |
| rmdir | 删除空目录 | rmdir empty_dir |
2. 文件查看与编辑
| 命令 | 功能描述 | 常用示例 | 说明 |
|---|---|---|---|
| cat | 连接文件并打印到标准输出 | cat file.txt | 查看整个小文件内容 |
| more / less | 分页查看文件内容 | less long_file.log | less 更强大,支持上下翻页 /搜索 |
| head | 显示文件开头部分 | head -n 20 file.log | 查看前20行 |
| tail | 显示文件结尾部分 | tail -n 50 file.log tail -f log.txt | -f 实时追踪日志文件更新 |
| nano / vim | 文本编辑器 | nano file.txt vim file.txt | nano 简单,vim 强大但学习曲线陡峭 |
3. 权限管理(重要!)
Linux权限分为:读(r)、写(w)、执行(x),对应用户(u)、组(g)、其他(o)。
| 命令 | 功能描述 | 常用示例 | 说明 |
|---|---|---|---|
| chmod | 修改文件权限 | chmod +x script.sh chmod 755 file | +x 添加执行权,755 是数字表示法 (rwxr-xr-x) |
| chown | 修改文件所有者 | chown user:group file | 更改属主和属组 |
| sudo | 以超级用户权限执行命令 | sudo apt update | 执行需要root权限的命令 |
4. 系统管理与进程监控
| 命令 | 功能描述 | 常用示例 | 说明 |
|---|---|---|---|
| ps | 查看进程状态 | ps aux ps -ef | grep nginx |
| top / htop | 动态、交互式查看进程(系统资源监控) | top htop | htop 是 top 的增强版,更直观 |
| kill | 终止进程 | kill 1234 kill -9 1234 | -9 发送SIGKILL信号强制杀死 |
| df | 查看磁盘空间使用情况 | df -h | -h 以人类易读格式显示 (G/M) |
| du | 查看文件/目录的磁盘使用情况 | du -sh /home/ | -s 总计,-h 易读格式 |
| free | 显示内存使用情况 | free -h | |
| uname | 显示系统信息 | uname -a | 显示所有信息(内核版本、主机名等) |
| reboot / shutdown | 重启 / 关机 | sudo shutdown now sudo reboot | 需要root权限 |
5. 网络操作
| 命令 | 功能描述 | 常用示例 | 说明 |
|---|---|---|---|
| ping | 测试网络连通性 | ping http://google.com ping -c 4 8.8.8.8 | -c 指定发送包次数 |
| curl / wget | 从网络下载文件 | curl -O http://example.com/file wget http://example.com/file | |
| ssh | 安全远程登录 | ssh user@remote_host | 连接到远程服务器 |
| scp | 安全地跨机复制文件 | scp file.txt user@host:/path/ | 基于ssh的加密传输 |
6. 压缩与解压
| 命令 | 功能描述 | 常用示例 | 说明 |
|---|---|---|---|
| tar | 打包和解包文件 | tar -czvf archive.tar.gz dir/ tar -xzvf archive.tar.gz | -c 创建,-x 解压,-z gzip,-v 显示过程,-f 指定文件名 |
| gzip / gunzip | 压缩/解压 .gz 文件 | gzip file gunzip file.gz |
7. 查找与过滤(威力强大)
| 命令 | 功能描述 | 常用示例 | 说明 |
|---|---|---|---|
| find | 在目录树中查找文件 | find /home -name “*.txt” find . -type f -mtime +7 | 按名称、类型、时间等查找 |
| grep | 在文件中搜索文本模式 | grep “error” log.txt ps aux | grep nginx |
| which | 查找命令的完整路径 | which python | 显示命令所在位置 |
| whereis | 定位命令的二进制、源码和手册页 | whereis ls |
高级技巧与组合拳
输出重定向:
>: 覆盖输出到文件 (ls > list.txt)>>: 追加输出到文件 (echo "new line" >> file.txt)2>: 重定向错误输出 (command 2> error.log)管道
|:将一个命令的输出作为另一个命令的输入。
经典组合:
ps aux | grep nginx(查找nginx进程),cat file.log | grep "error" | head -n 10(查看日志中前10个错误)通配符:
*: 匹配任意数量字符 (rm *.tmp)?: 匹配一个任意字符 (ls file?.txt)[]: 匹配括号内任意一个字符 (ls file[123].txt)
