在Linux运维或开发岗位的面试中,命令操作是核心考察点,既包括基础命令的熟练度,也涉及场景化问题解决能力,以下从常用命令分类、实际应用场景及进阶技巧展开,帮助系统梳理面试重点。

文件与目录管理是Linux操作的基础。ls
命令是最常用的列表命令,ls -l
显示详细权限(如-rw-r--r--
表示文件所有者可读写,组用户和其他用户只读),ls -a
隐藏文件(如.bashrc
),ls -h
以人类可读格式显示大小(如1K
、M
、G
),创建文件用touch filename
,创建目录用mkdir dir
,多级目录需加-p
(如mkdir -p a/b/c
),复制文件时,cp -r
用于递归复制目录(如cp -r src/ dest/
),cp -p
保留权限、时间戳等属性;移动或重命名文件用mv
,删除文件用rm -f
(强制删除不提示),删除目录需加-r
或-rf
(慎用,直接删除且不提示),查找文件时,find /path -name "filename"
按名称查找(支持通配符,如*.log
),grep "pattern" file
在文件中搜索文本(-i
忽略大小写,-r
递归目录)。
文本处理能力是区分熟练度的重要标准,查看文件内容,cat
适合小文件(如cat config.conf
),more
/less
适合大文件(支持分页和上下滚动,less
可搜索),head -n 10 file
查看前10行,tail -n 10 file
查看后10行,tail -f file
实时监控日志(如tail -f /var/log/nginx/error.log
),编辑文件时,vim
是主流工具:i
进入插入模式,Esc
退出编辑模式,wq
保存退出,q!
强制退出不保存,文本处理三剑客中,awk
适合按列处理(如awk '{print $1, $3}' file
打印第1、3列),sed
用于流编辑(如sed 's/old/new/g' file
全局替换),cut
用于列提取(如cut -d: -f1 /etc/passwd
以冒号为分隔符提取用户名)。
系统监控与进程管理是运维核心,查看系统负载,top
动态显示进程(%Cpu(s)
显示CPU使用率,Mem
显示内存占用),htop
是top
的增强版(支持彩色和交互操作),uptime
显示负载平均值(如load average: 0.1, 0.2, 0.3
分别代表1分钟、5分钟、15分钟),进程管理中,ps -ef
查看所有进程(UID
为用户ID,PID
为进程ID),ps aux
查看详细进程信息(%CPU
和%MEM
分别表示CPU和内存占用率),kill -9 PID
强制杀死进程(-9
为信号码,表示强制终止),nohup command &
让命令在后台运行(如nohup python app.py &
,输出默认写入nohup.out
),磁盘与内存管理方面,df -h
查看磁盘使用情况(Filesystem
为文件系统,Use%
为使用率),du -sh *
查看当前目录下文件/目录大小(-s
汇总,-h
人类可读),free -h
查看内存使用(-h
以M
/G
显示,-m
以MB
显示)。
网络配置与排查是开发运维必备技能,网络配置中,ifconfig
查看/配置网卡(ifconfig eth0 192.168.1.100 netmask 255.255.255.0
),ip addr
是ifconfig
的替代命令(ip addr show eth0
查看网卡信息),route -n
查看路由表,netstat -tuln
查看监听端口(-t
TCP,-u
UDP,-l
只显示监听,-n
不解析域名),ss -tuln
是netstat
的升级版(性能更好),网络排查中,ping www.baidu.com
测试网络连通性,traceroute www.baidu.com
跟踪路由路径(显示经过的每个节点IP),telnet ip port
测试端口是否可达(如telnet 192.168.1.1 80
),curl www.baidu.com
发送HTTP请求(-I
只获取响应头,-v
显示详细过程),wget url
下载文件(-b
后台下载)。

权限管理是Linux安全的核心,文件权限通过chmod
修改,如chmod 755 file
(所有者rwx
,组用户和其他用户r-x
),数字权限中r=4
、w=2
、x=1
;chmod u+x file
给所有者添加执行权限(u
用户,g
组,o
其他,a
所有,添加,删除),文件所有者通过chown
修改,如chown user:group file
(同时修改用户和组),chown -R user dir
递归修改目录所有者,用户管理中,useradd username
创建用户,passwd username
设置密码,userdel username
删除用户(-r
同时删除家目录),groupadd groupname
创建组,gpasswd -a user group
将用户添加到组。
实际面试中,常结合场景提问,如“如何查找大文件并删除?”可用find / -type f -size +100M -exec rm -rf {} \;
(查找大于100M的文件并删除);“如何查看Nginx最近100行错误日志?”用tail -n 100 /var/log/nginx/error.log
;“如何后台运行一个Python脚本并记录日志?”用nohup python script.py > output.log 2>&1 &
(2>&1
将错误输出重定向到标准输出)。
相关问答FAQs
Q1: Linux中grep
、sed
、awk
的区别是什么?
A: grep
主要用于文本搜索(如grep "error" log.txt
过滤包含“error”的行);sed
用于流编辑,支持增删改查(如sed 's/old/new/g' file
替换文本);awk
按列处理,支持复杂逻辑(如awk '{if($1>100) print $2}' file
筛选第一列大于100的第二列数据),简单说,grep
搜文本,sed
改文本,awk
处理列数据。
Q2: 如何用一条命令查看当前目录下所有子目录的大小?
A: 使用du -sh *
命令:-s
汇总每个子目录的大小,-h
以人类可读格式(如K
、M
)显示,匹配当前目录下所有文件和目录,输出可能为1M dir1
、2M dir2
,表示dir1
大小为1M,dir2
为2M。