Linux 常用命令入门:从文件、权限到进程与日志排查
学习 Linux,不需要一开始就记住几百个命令。先建立一张清晰的地图:文件放在哪里、权限如何决定能不能读写、进程在如何运行、出了问题去哪里看日志。掌握下面这些常用命令,就能独立完成日常操作和初步排查。
一、先认识终端和目录结构
打开终端后,首先要知道自己在哪里。pwd 显示当前目录,ls 列出当前目录的内容,cd 切换目录。
pwd
ls -la
cd /etc
cd ..
cd ~
ls -la 中的 -l 表示长格式,-a 表示显示隐藏文件。.. 表示上一级目录,~ 表示当前用户的主目录。Linux 的目录是有分工的:/etc 放配置文件,/var/log 放日志,/home 放普通用户的数据,/usr 放系统程序,/tmp 放临时文件。知道分工,找文件就不会漫无目的。
二、文件和目录的基本操作
新建、复制、移动、删除是最常见的四类操作:
touch notes.txt
mkdir -p project/docs
cp notes.txt notes-backup.txt
cp -r project project-backup
mv notes.txt docs/
mv old-name.txt new-name.txt
rm notes-backup.txt
rm -r project-backup
需要特别提醒的是删除命令。rm -r 会递归删除目录,rm -rf 会强制删除且不提示,输错路径可能造成难以恢复的损失。新手建议先用 ls 确认路径,只在确定无用时再删除,重要文件先备份。
三、查看文件内容
查看文件要按需选择工具。小文件直接看,大文件分页看,日志文件看尾部:
cat notes.txt
less /var/log/syslog
head -n 20 notes.txt
tail -n 50 notes.txt
tail -f /var/log/syslog
cat 适合看短文件,less 适合翻页查看并支持搜索,head 看开头,tail 看结尾。tail -f 会持续输出新写入的内容,是观察服务运行状态的常用方法,退出时按 Ctrl+C。
四、搜索与筛选:grep、find、管道
命令的组合能力比单个命令更重要。管道 | 把前一个命令的输出交给下一个命令处理:
grep -n "error" notes.txt
ps aux | grep nginx
find /etc -name "*.conf" | head
ls -lh | grep ".log"
grep 用于在文本中搜索关键词,-n 显示行号,-i 忽略大小写。find 用于按名字、类型或时间查找文件。把命令连起来,就能从大量输出中快速定位关键信息。
五、读懂权限:rwx 与 chmod
用 ls -l 查看文件时,第一列就是权限,例如 -rw-r--r--。第一位表示类型,- 是普通文件,d 是目录;后面九位分成三组,依次是所有者、所属组、其他人的权限,r 读、w 写、x 执行。
ls -l notes.txt
chmod +x script.sh
chmod 644 notes.txt
chmod 755 script.sh
chmod +x 给文件加上可执行权限。数字方式中,4 是读,2 是写,1 是执行,三者相加得到每一组的权限值。644 表示所有者可读写,其他人只读;755 表示所有者可读写执行,其他人可读执行。修改权限前先想清楚:是否真的需要让所有人写入?权限越小,误操作和安全风险越小。
六、进程管理:ps、top、kill
程序运行起来就是进程。卡住、占用过高、反复重启的服务,都要先看进程:
ps aux | grep nginx
top
kill 1234
kill -9 1234
systemctl status nginx
ps aux 列出进程,top 实时查看 CPU 和内存占用。kill 后面跟的是进程号 PID,默认是温和地请进程退出;kill -9 是强制结束,只在进程确实无法正常退出时使用。现代系统服务多由 systemd 管理,systemctl status 可以查看服务是否在运行,systemctl restart 可以重启服务。
七、磁盘、内存与网络状态
空间满了、内存不足、端口被占用,都会表现为服务异常。先看资源,再下结论:
df -h
du -sh project
free -h
ss -tlnp
ping -c 4 example.com
curl -I https://example.com
df -h 看磁盘剩余空间,du -sh 看某个目录占了多大,free -h 看内存使用,ss -tlnp 看正在监听的端口。ping 检查网络是否可达,curl -I 检查网站是否返回正常的响应头。把这些结果放在一起,问题范围会迅速缩小。
八、日志排查的通用思路
遇到报错不要只凭感觉改配置,建议按这个顺序排查:
- 复现问题,记下准确的报错文字和发生时间。
- 用
systemctl status和journalctl看服务日志。 - 到
/var/log找对应应用的日志,用tail和grep定位报错前后几行。 - 检查最近改过什么:配置文件、权限、磁盘空间、端口占用。
- 一次只改一个地方,改完验证,确认有效再继续。
systemctl status nginx
journalctl -u nginx --since "1 hour ago"
tail -n 100 /var/log/nginx/error.log
journalctl -u 服务名 查看指定服务的系统日志,--since 可以限定时间范围。日志里的第一条错误往往比最后一条更接近真正原因,读日志时要注意时间顺序和上下文。
九、新手容易踩的坑
- 在根目录或不熟悉的目录使用
rm -rf,删除前没有确认路径。 - 用 root 账号做所有事,权限问题被掩盖,风险也被放大。
- 命令只复制不理解,参数含义不清就直接执行。
- 改了配置文件不备份,出问题无法快速回退。
- 只看报错的最后一行,忽略了前面的关键提示。
养成三个习惯可以避开大多数问题:重要操作前备份,关键命令先用 man 命令名 或 命令 --help 查用法,生产环境先在测试环境验证。
十、每天练习的最小清单
- 用
pwd、ls、cd在目录之间移动,并用ls -la观察权限。 - 新建一个练习目录,完成新建、复制、移动、删除全流程。
- 用
grep和管道从一段文本中找出关键词。 - 用
ps、top、df -h、free -h看一次系统状态。 - 找一个服务日志,用
tail和journalctl练习定位信息。
Linux 命令的学习曲线并不陡,关键是把命令放进真实的操作流程里:先定位,再查看,再判断,最后动手。把这篇文章里的命令逐条练一遍,下次遇到文件、权限、进程或日志问题时,你就已经有了一套可复用的排查方法。
- 点赞
- 收藏
- 关注作者
评论(0)