1. 为什么你需要学习Linux命令行?
作为一个在Linux环境下摸爬滚打多年的老鸟,我必须告诉你一个残酷的事实:图形界面(GUI)只是Linux的"面子",命令行(CLI)才是它的"里子"。我见过太多新手在Linux图形界面里折腾半天找不到设置项,而老手们用几行命令就能搞定一切。
你可能不知道,全球超过90%的服务器运行在Linux系统上,而这些服务器几乎全部通过命令行管理。就连Windows现在也内置了Linux子系统(WSL),这足以说明命令行的不可替代性。
提示:不要被命令行吓到,它就像学骑自行车——刚开始会摔几次,但一旦掌握就再也忘不了。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 终端基础:你的第一个命令行界面
2.1 如何打开终端?
不同Linux发行版打开终端的方式略有不同:
- Ubuntu/CentOS: Ctrl+Alt+T快捷键
- 深度Deepin: 在启动器中搜索"终端"
- 通过tty切换: Ctrl+Alt+F1~F6 (F7返回图形界面)
我第一次接触Linux时,导师让我记住一个真理:"终端就是你和Linux系统对话的窗口"。这个黑色(或白色)的窗口看似简单,却能完成图形界面难以想象的任务。
2.2 理解命令提示符
当你打开终端,通常会看到这样的提示符:
code复制user@hostname:~$
它的组成很有讲究:
- user: 当前登录用户名
- hostname: 计算机名
- ~: 当前所在目录(~代表用户主目录)
- $: 普通用户提示符(#表示root超级用户)
我经常看到新手直接复制网上的命令却不注意当前目录,结果把文件下载到了错误位置。记住:时刻关注你的命令提示符!
3. 文件系统导航:像老手一样浏览Linux
3.1 基础导航命令
-
pwd(Print Working Directory): 显示当前目录bash复制$ pwd /home/yourname -
ls(List): 列出目录内容bash复制$ ls Documents Downloads Music Pictures进阶用法:
bash复制ls -l # 详细列表 ls -a # 显示隐藏文件(以.开头) ls -lh # 人类可读的文件大小 -
cd(Change Directory): 切换目录bash复制cd Documents # 进入Documents目录 cd .. # 返回上级目录 cd ~ # 返回用户主目录 cd /usr/local/bin # 绝对路径跳转
我在教学时发现,90%的新手会在路径问题上犯错。记住:Linux使用正斜杠(/)而不是Windows的反斜杠(),而且路径区分大小写!
3.2 文件操作基础
-
cp(Copy): 复制文件bash复制cp file1 file2 # 复制file1到file2 cp -r dir1 dir2 # 递归复制目录 -
mv(Move): 移动/重命名文件bash复制mv oldname newname # 重命名 mv file1 /tmp/ # 移动文件 -
rm(Remove): 删除文件bash复制rm file1 # 删除文件 rm -r dir1 # 递归删除目录警告:Linux没有回收站!rm删除的文件极难恢复。我建议新手先用
trash-cli代替rm。 -
mkdir(Make Directory): 创建目录bash复制mkdir newdir mkdir -p path/to/newdir # 创建多级目录 -
touch: 创建空文件或更新文件时间戳bash复制touch newfile.txt
4. 文本处理:Linux的看家本领
4.1 查看文件内容
-
cat: 连接并显示文件内容bash复制cat file.txt -
less: 分页查看(支持上下翻页)bash复制
less longfile.log操作键:
- 空格: 向下翻页
- b: 向上翻页
- q: 退出
-
head/tail: 查看文件开头/结尾bash复制head -n 10 file.log # 显示前10行 tail -f access.log # 实时追踪日志(-f参数)
4.2 文本搜索与处理
-
grep: 强大的文本搜索工具bash复制grep "error" logfile.txt # 搜索包含error的行 grep -i "warning" *.log # 忽略大小写搜索 grep -r "function" /project # 递归搜索目录 -
find: 查找文件bash复制find /home -name "*.txt" # 按名称查找 find . -size +10M # 查找大于10MB的文件 find /var/log -mtime -7 # 查找7天内修改过的文件 -
awk: 文本处理瑞士军刀bash复制awk '{print $1}' data.txt # 打印第一列 awk -F: '{print $1}' /etc/passwd # 以:为分隔符 -
sed: 流编辑器bash复制sed 's/foo/bar/g' file.txt # 替换foo为bar sed -i.bak 's/old/new/' file # 直接修改文件(保留备份)
5. 系统信息与管理
5.1 进程管理
-
ps: 查看进程bash复制ps aux # 查看所有进程 ps -ef | grep nginx # 查找特定进程 -
top/htop: 动态查看系统资源bash复制top # 基本版 htop # 增强版(需安装)操作键:
- q: 退出
- M: 按内存排序
- P: 按CPU排序
-
kill: 终止进程bash复制kill -9 1234 # 强制终止PID为1234的进程
5.2 系统信息
-
uname: 显示系统信息bash复制uname -a # 显示所有信息 -
df/du: 磁盘空间bash复制df -h # 查看磁盘使用情况(人类可读) du -sh * # 查看当前目录各文件/目录大小 -
free: 内存使用bash复制free -h # 人类可读格式 -
uptime: 系统运行时间bash复制uptime # 显示运行时间和负载
6. 权限管理:Linux的安全基石
6.1 理解权限系统
使用ls -l可以看到类似这样的输出:
code复制-rw-r--r-- 1 user group 1024 Jun 1 10:00 file.txt
drwxr-xr-x 2 user group 4096 Jun 1 10:01 directory
解释:
- 第一个字符:文件类型(-普通文件,d目录)
- 接下来9个字符:权限(r读,w写,x执行),分三组(所有者/组/其他用户)
- 数字:链接数
- user/group:所有者/组
- 大小和修改时间
6.2 修改权限
-
chmod: 修改权限bash复制chmod 755 script.sh # rwxr-xr-x chmod +x file # 添加执行权限 chmod -R 644 /webroot # 递归修改 -
chown: 修改所有者bash复制chown user:group file # 修改所有者和组 chown -R www:www /var/www # 递归修改
7. 实用技巧与常见问题
7.1 命令行快捷键
- Ctrl+C: 终止当前命令
- Ctrl+D: 发送EOF(退出终端)
- Ctrl+Z: 暂停进程(用fg恢复)
- Ctrl+R: 反向搜索历史命令
- !!: 重复上一条命令
- !$: 上一条命令的最后一个参数
7.2 常见问题解决
问题1:命令找不到(command not found)
- 检查拼写错误
- 确认命令是否安装(which command)
- 检查PATH变量(echo $PATH)
问题2:权限被拒绝(Permission denied)
- 使用sudo临时获取root权限
- 修改文件权限(chmod)
- 修改文件所有者(chown)
问题3:磁盘空间不足
bash复制df -h # 查看磁盘使用
du -sh /* | sort -h # 查找大文件
7.3 我的私藏命令
这些是我多年积累的实用命令,教科书上很少提到:
bash复制# 查看最耗内存的10个进程
ps aux | sort -nk +4 | tail -10
# 快速创建测试文件
dd if=/dev/zero of=testfile bs=1M count=100
# 查看文件的详细属性
stat filename
# 计算文件行数/词数/字符数
wc -l file.txt
# 查看二进制文件中的字符串
strings /bin/ls | less
# 比较两个文件的差异
diff -u file1 file2
# 监控目录变化
watch -n 1 'ls -l'
# 生成随机密码
openssl rand -base64 12
# 查看命令的执行时间
time ls -R /
记住,Linux命令行就像一门语言,需要不断练习。我建议你每天花15分钟在终端里探索,三个月后你会惊讶于自己的进步。遇到问题时,别忘了Linux最强大的工具——man命令,它能告诉你几乎所有命令的详细用法。
