
Linux 基础实战课 ①
常用命令速查:文件 / 权限 / 进程一本通
Linux基础 实战课
Linux 基础实战课 · 第1篇
💬 去年带实习生做 VDI 桌面云的部署,让他查一下 /var/log 里有没有报错,他直接在根目录 ls,结果整个终端刷了半屏——他说「老师,我找不到/var 在哪」。
这件事让我意识到:很多时候「看不懂报错」「服务起不来」「权限不够」,根子不在软件复杂,而是 Linux 基本命令没摸熟。所以这个系列不追高深,先把地基打牢。
第一课从最日常的三件事开始:怎么找文件、怎么改权限、怎么看进程。命令我都是从自己踩过的坑里挑出来的,每个都是真实用得上的。
一、先学会「看路」:pwd、ls、cd
操作文件之前,先要知道「我在哪」。这三个命令是 Linux 的导航三件套。
pwd — 我在哪?
查看当前所在目录
# 显示当前绝对路径
pwd
# 输出示例:/home/student
💡 新手最容易迷路,随时 pwd 确认当前位置,是个好习惯。
ls — 看看目录里有什么
常用参数组合
ls# 列出当前目录文件(不含隐藏文件)
ls -l# 详细列表(权限、大小、时间)
ls -la# 详细列表 + 隐藏文件(以 . 开头的文件)
ls -lh# 详细列表 + 文件大小用人性化单位(K/M/G)
ls /etc# 列出指定目录的内容
参数 | 含义 |
-l | 长格式,显示权限、所有者、大小、修改时间 |
-a | 显示所有文件,包括隐藏文件 |
-h | 文件大小用 K/M/G 显示,更易读 |
-t | 按修改时间排序,最新的在前面 |
-r | 倒序排列 |
-R | 递归列出子目录内容 |
cd — 切换目录
切换目录示例
cd /home/student# 切换到绝对路径
cd documents# 切换到当前目录下的 documents(相对路径)
cd ..# 回到上一级目录
cd ~# 回到当前用户的家目录
cd -# 回到上一次所在的目录(超实用!)
✅ cd - 是老手最爱用的命令之一,在两个目录之间来回切的时候特别方便。
二、文件操作:新建、复制、移动、删除
这组命令我每天都会用到。特别要说一句:rm 命令一定要养成加 -i 的习惯,不然删错了哭都来不及。
touch — 新建空文件
创建文件
touch readme.txt# 新建一个空文件
touch a.txt b.txt c.txt# 一次创建多个文件
💡 touch 还有一个用途:更新已有文件的「最后修改时间」,不改变内容。
mkdir — 新建目录
创建目录
mkdir projects# 新建一个目录
mkdir -p a/b/c# 递归创建,父目录不存在也一起创建(常用!)
cp — 复制文件/目录
复制示例
cp file.txt file.bak.txt# 复制文件
cp file.txt /tmp/# 复制到指定目录
cp -r dir1/ dir2/# 递归复制目录(必须加 -r)
cp -i file.txt /tmp/# 目标存在时提示是否覆盖(推荐加 -i)
mv — 移动(或重命名)
移动和重命名
mv old.txt new.txt# 重命名文件
mv file.txt /tmp/# 移动文件到 /tmp
mv dir1/ /home/student/# 移动目录
💡 Linux 里「重命名」和「移动」是同一个命令,不需要额外的 rename 命令。
rm — 删除文件/目录(高危!)
删除示例
rm file.txt# 删除文件(会提示确认)
rm -f file.txt# 强制删除,不提示(慎用!)
rm -r dir/# 递归删除目录
rm -rf dir/# 强制递归删除(极其危险,不要用!)
⚠️ rm -rf / 或 rm -rf * 会删光整个系统!新手建议用 rm -i 替代,每次删除前确认。
💡 安全替代方案:用 trash-cli 工具(trash-put 代替 rm),文件进了回收站还能恢复。
三、查看文件内容:cat、less、head、tail
文件创建好了,怎么看内容?不同场景用不同命令。
命令 | 适合场景 | 特点 |
cat file.txt | 文件内容较少 | 一次性全部输出,适合小文件 |
less file.txt | 文件内容很多 | 可翻页、搜索,按 q 退出 |
head -n 20 file.txt | 只看开头 | 默认显示前 10 行,-n 指定行数 |
tail -n 20 file.txt | 只看结尾 | 查看日志文件最后一页 |
tail -f app.log | 实时追踪文件变化 | 监控日志神器,Ctrl+C 退出 |
实用组合示例
# 只看日志最后 50 行,并实时追踪
tail -n 50 -f /var/log/nginx/access.log
# 在第 10 行到第 20 行之间查找错误
head -n 20 file.txt | tail -n 11
# 用 less 打开大文件,输入 /关键词 可以搜索
less /var/log/messages
四、文件权限:chmod、chown、sudo
Linux 是多用户系统,权限管理是核心。刚学的时候我觉得这块最难——rwx 数字怎么算、sudo 什么时候用,搞不清就会频繁踩坑。下面把我自己踩过的坑一次性说明白。
权限是什么?
用 ls -l 看到的文件列表,最左边那一串就是权限:
ls -l 输出示例
-rwxr-xr--1 student student1024Jun 13 10:00 myscript.sh
权限串 -rwxr-xr-- 含义:
• 第 1 位:- 是文件,d 是目录
• 第 2-4 位(rwx):文件所有者(owner)的权限
• 第 5-7 位(r-x):所属组(group)的权限
• 第 8-10 位(r--):其他用户(others)的权限
符号 | 含义 | 数字 |
r(read) | 可读,查看文件内容 | 4 |
w(write) | 可写,修改文件内容 | 2 |
x(execute) | 可执行,运行脚本或进入目录 | 1 |
- | 无此权限 | 0 |
💡 记住 4/2/1 这组数字,chmod 用数字模式比符号模式快得多。
chmod — 修改权限(数字模式,推荐)
常用权限数字
chmod 644 file.txt# 所有者读写(6),其他人只读(44) —— 普通文件标配
chmod 755 script.sh# 所有者读写执行(7),其他人读执行(55) —— 可执行脚本标配
chmod 700 private/# 只有所有者能进,其他人完全不能访问 —— 私密目录
chmod -R 755 dir/# 递归修改目录及里面所有文件的权限
数字 | 等价符号 | 含义 |
644 | rw-r--r-- | 普通文件,所有人可读,只有所有者可写 |
755 | rwxr-xr-x | 可执行文件/目录,所有人可运行和读取 |
600 | rw------- | 私密文件,只有所有者可读写 |
777 | rwxrwxrwx | 所有人可读写执行(不安全,慎用!) |
⚠️ chmod 777 是偷懒做法,等于告诉系统「所有人都能动这个文件」。生产环境严禁使用。
chown — 修改所有者和所属组
修改所有者
sudo chown student file.txt# 修改文件所有者为 student
sudo chown student:student file.txt# 同时修改所有者和所属组
sudo chown -R www-data:www-data /var/www/# 递归修改网站目录归属
💡 修改所有者需要 root 权限,所以要加 sudo。如果还没配置 sudo,先切到 root(su -)再操作。
sudo — 以超级用户身份执行命令
普通用户默认不能修改系统文件。sudo 让你临时获得 root 权限:
sudo 常用场景
sudo apt install nginx# 安装软件(Ubuntu/Debian)
sudo yum install nginx# 安装软件(CentOS/RHEL)
sudo systemctl restart nginx# 重启系统服务
sudo !!# 用 sudo 重新执行上一条命令(超实用!)
💡 sudo !! 是老手常用的技巧:刚才忘了加 sudo,直接敲 sudo !! 就行,不用重新输入整条命令。
五、进程管理:ps、top、kill
程序跑起来就是进程。服务器上最怕的是「有个进程把 CPU 吃满了我没发现」——top 命令就是专门用来盯着这个的。
ps — 查看进程快照
常用组合
ps# 当前终端的进程(信息少)
ps aux# 查看系统所有进程(最常用!)
ps aux | grep nginx# 过滤出 nginx 相关进程
ps aux 输出各列含义:
列名 | 含义 |
USER | 进程所属用户 |
PID | 进程 ID,杀进程时用 |
%CPU | CPU 占用百分比 |
%MEM | 内存占用百分比 |
STAT | 进程状态(R=运行,S=睡眠,Z=僵尸) |
COMMAND | 启动进程的命令 |
top — 实时监控进程(动态)
top 类似 Windows 任务管理器,实时刷新:
top 交互命令(在 top 界面里按)
top# 启动实时监控(默认 3 秒刷新一次)
# 在 top 界面中按以下键:
P# 按 CPU 占用排序(找出最占 CPU 的进程)
M# 按内存占用排序
k# 输入 PID 杀死进程
q# 退出 top
💡 top 退出后,也可以用 htop(需要安装),界面更友好,支持鼠标操作。
kill — 终止进程
杀进程示例
kill 12345# 温柔地终止 PID 为 12345 的进程
kill -9 12345# 强制杀死(杀不掉的时候用这个)
pkill nginx# 按名字杀进程,不用查 PID
killall nginx# 杀死所有名为 nginx 的进程
信号 | 含义 | 使用场景 |
kill(默认 15) | SIGTERM,温柔终止 | 首选,让进程有机会清理资源 |
kill -9 | SIGKILL,强制杀死 | 进程无响应时用,但不保证资源清理 |
kill -2 | SIGINT,类似 Ctrl+C | 终端中中断程序 |
⚠️ kill -9 是最后手段。能用 kill(默认 15)就不要用 -9,否则可能造成数据丢失或资源泄漏。
后台运行与 nohup
SSH 断开后,前台运行的程序会跟着退出。要让程序在后台持续运行:
后台运行示例
python3 app.py &# 在后台运行(& 符号)
nohup python3 app.py &# 忽略挂断信号,SSH 断开也继续运行
nohup python3 app.py > out.log 2>&1 &# 同时重定向输出到日志文件
# 查看后台任务
jobs# 查看当前终端的后台任务
fg %1# 把后台任务 1 调回前台
六、管道与重定向:把命令连起来
这是 Linux 最强大的特性之一:把多个简单命令组合成复杂操作。
管道 | — 把前一个命令的输出给后一个
管道示例
ps aux | grep nginx# 找出所有 nginx 进程
cat access.log | grep 404# 在日志里找 404 错误
ps aux | sort -k 3 -rn | head -10# CPU 占用 Top 10
重定向 > 和 >> — 把输出写到文件
重定向示例
ls > filelist.txt# 把 ls 输出写入文件(覆盖)
echo 'hello' >> note.txt# 追加写入(不覆盖原内容)
command 2> error.log# 把错误信息重定向到文件
command > out.log 2>&1# 标准输出和错误都写入同一个文件
💡 > 是覆盖,>> 是追加。新手常犯的错误:用 > 覆盖了重要文件,内容全没了。
七、新手最常踩的 5 个坑
• 1. rm 之前不确认路径 —— 用 rm -i 或在测试目录先试一遍
• 2. chmod 777 解决一切权限问题 —— 应该找到真正需要的权限,而不是全开
• 3. 用 root 账号做日常操作 —— 日常用普通账号,需要时用 sudo
• 4. 不知道自己在哪个目录就操作 —— 养成随时 pwd 的习惯
• 5. 管道和重定向搞混 —— | 是命令间传递,> 是写到文件,两个不一样
八、常用命令速查表(建议收藏)
场景 | 命令 |
查看当前路径 | pwd |
列出文件 | ls -lha |
切换目录 | cd 路径 / cd ~ / cd - |
新建文件 | touch 文件名 |
新建目录 | mkdir -p 目录名 |
复制 | cp -i 源 目标 / cp -r 源 目标 |
移动/重命名 | mv 源 目标 |
删除文件 | rm -i 文件名 |
删除目录 | rm -r 目录名(慎用!) |
查看文件内容 | cat / less / head / tail |
修改权限 | chmod 644/755 文件名 |
修改所有者 | sudo chown 用户:组 文件名 |
查看进程 | ps aux | grep 关键词 |
实时监控 | top |
杀进程 | kill PID / kill -9 PID |
搜索文件内容 | grep '关键词' 文件名 |
搜索文件名 | find / -name 文件名 2>/dev/null |
总结
• pwd / ls / cd 是导航三件套,随时知道自己「在哪」
• 文件操作:touch 新建、cp 复制、mv 移动、rm 删除,熟记这四个
• 权限 r=4 w=2 x=1,chmod 644/755 是最常用的两个组合
• sudo 提权、ps/top 查进程、kill 终止进程,是服务器运维基础操作
• 管道 | 和重定向 > 是 Linux 的灵魂,学会组合命令效率翻倍
下篇预告:《Linux 基础实战课②|SSH 远程登录与密钥认证》,告别密码登录,让服务器更安全。
💬 你第一次用 Linux 时,最让你「懵圈」的命令是什么?
评论区聊聊,说不定能帮到和你一样的新手
👍 点赞💬 留言🔄 转发给需要的朋友
有问题欢迎评论区留言,看到都会回复