文章目录
一、必会的文件操作命令(面试官超爱问)
1. ls命令的隐藏玩法
ls -l
这个命令你肯定用过(显示详细信息),但加上 -h
参数才是真香!比如 ls -lh
会把文件大小自动转成KB/MB(再也不用心算字节数了)!!!
试试这个组合技:
ls -alh /var/log # 显示所有文件(包括隐藏文件)的易读格式
(面试官内心OS:这小子居然知道-a参数,看来不是背题选手)
2. 文件权限的两种改法
数字表示法(755)和符号表示法(u+x)必须都会!举个例子:
chmod 755 script.sh # 常用在可执行脚本
chmod +x *.py # 批量给Python文件加执行权限
(紧急情况小技巧:chmod 777
虽然能快速解决问题,但会被运维追杀!!!)
二、进程管理实战场景
3. 查进程的三种姿势
ps aux | grep nginx
→ 精准定位top
→ 实时监控(按P按CPU排序)pstree -p
→ 看进程树(适合查父子进程)
4. 杀进程的正确姿势
kill -9 1234 # 强制终止(慎用!可能产生僵尸进程)
kill -15 1234 # 优雅终止(给进程清理资源的机会)
(血泪教训:千万别在服务器上 kill -9
数据库进程!)
三、日志查看神操作
5. tail命令的妙用
tail -f /var/log/syslog # 实时追踪日志(Ctrl+C退出)
tail -n 100 app.log # 只看最后100行
搭配grep更香:
tail -f access.log | grep "404" # 实时监控404错误
四、Shell脚本高频考点
6. 变量使用的坑
name="Linux"
echo $name # 正确
echo name # 输出name(新手常犯错误!!!)
数组操作(面试加分项):
files=(*.txt)
echo "第一个文件:${files[0]}"
7. 条件判断的雷区
if [ $num -eq 10 ]; then # 注意空格!
if [[ "$str" == "error" ]]; then # 双中括号更安全
(常见面试题:[ ]
和 [[ ]]
的区别)
五、软件包管理必杀技
8. apt和yum的区别
命令 | Debian系 | RedHat系 |
---|---|---|
安装软件 | apt install | yum install |
更新源 | apt update | yum makecache |
搜索包 | apt search | yum search |
(面试陷阱题:Ubuntu突然无法apt update怎么办?先ping外网!)
六、网络配置实战
9. 查看IP的三种方法
ip addr show # 新潮方式
ifconfig # 传家宝命令
hostname -I # 快速获取本机IP
10. 端口检测命令
netstat -tuln | grep 80 # 查看80端口监听
lsof -i :8080 # 查占用8080端口的进程
telnet 192.168.1.1 22 # 测试端口连通性(比ping更准)
七、环境变量配置技巧
(超级重点)PATH的永久生效方法:
# 用户级配置
echo 'export PATH="$PATH:/myapps"' >> ~/.bashrc
# 系统级配置
sudo nano /etc/environment
(千万注意:错误配置可能导致系统命令失效!!!)
八、SSH密钥登录配置
安全加固步骤:
- 生成密钥对:
ssh-keygen -t rsa
(回车到底) - 上传公钥:
ssh-copy-id user@server
- 禁用密码登录(修改sshd_config):
PasswordAuthentication no
九、性能监控三板斧
- 内存监控:
free -h # 易读格式
vmstat 2 # 每2秒刷新
- CPU监控:
mpstat -P ALL # 看所有CPU核心
sar -u 1 3 # 每秒1次,共3次
- 磁盘监控:
iostat -x 1 # 看IO吞吐
df -h | grep /data # 查看指定目录磁盘使用
十、高频面试场景题
Q:如何统计当前目录下的文件数量?
ls | wc -l # 简单版(不包含隐藏文件)
find . -maxdepth 1 -type f | wc -l # 精确版
Q:如何快速清空一个大文件?
: > bigfile.log # 瞬间完成(比rm+create更快)
(面试加分技巧:解释不同清空方式的原理差异)
避坑指南(血泪经验)
- 慎用
rm -rf /
(你懂的) - 修改关键配置前先备份:
cp httpd.conf httpd.conf.bak
- 批量操作先用echo测试:
echo *.log # 先看会匹配哪些文件
学习资源推荐
- 在线练习:https://overthewire.org/wargames/bandit/
- 命令速查:
man hier
查看Linux目录结构 - 推荐书籍:《Linux命令行与Shell脚本编程大全》
(小贴士:每天用vimtutor
练习15分钟,一个月后你会感谢我!)