菜鸟科技网

Linux面试高频命令有哪些?

在Linux运维、开发等岗位的面试中,Linux命令的掌握程度是考察的核心能力之一,它不仅反映了候选人的实际操作经验,也体现了对系统底层逻辑的理解深度,以下从常用命令分类、高级技巧、面试高频考点及注意事项等方面展开详细说明。

Linux面试高频命令有哪些?-图1
(图片来源网络,侵删)

文件与目录管理命令

文件操作是Linux最基础的功能,相关命令是面试的必考内容。

  • ls:列出目录内容,常用选项包括-l(长格式显示,包含权限、所有者、大小等)、-a(显示隐藏文件)、-h(以人类可读格式显示大小,如KM)。ls -lah可查看当前目录下所有文件(含隐藏)的详细信息,并按易读格式排序。
  • cd:切换目录,cd -返回上一次目录,cd ~进入当前用户家目录,cd ..返回上级目录。
  • pwd:显示当前所在工作目录的完整路径,常与cd配合使用。
  • mkdir:创建目录,-p选项可递归创建多级目录(如mkdir -p /tmp/a/b/c)。
  • rm:删除文件或目录,-r递归删除目录,-f强制删除(不提示),需谨慎使用,尤其是rm -rf /*(危险操作,会导致系统文件被误删)。
  • cp:复制文件或目录,-r复制目录,-p保留文件属性(如权限、时间戳)。cp -r /home/user1 /backup/user1整个目录复制到backup
  • mv:移动文件或目录,也可用于重命名(如mv old.txt new.txt)。

面试考点rm -rf的风险及规避方法(如先ls确认路径、使用alias rm='rm -i'添加确认提示);cpmv在跨文件系统时的差异(cp会复制数据,mv在同文件系统下仅修改inode,跨文件系统则等同于复制+删除)。

文本处理命令

文本处理能力是Linux运维的核心技能,尤其在大数据日志分析、配置文件修改中高频使用。

  • cat:查看文件内容,适合小文件(如cat /etc/passwd);-n显示行号,-A显示所有字符(含隐藏字符)。
  • more/less:分页查看文件,less支持前后翻页(空格下翻,b上翻)、搜索(),适合大文件。
  • grep:文本搜索,-i忽略大小写,-v反向匹配(如grep -v "root" /etc/passwd),-n显示行号,-E支持扩展正则(如grep -E "^[0-9]" file匹配以数字开头的行)。
  • sed:流编辑器,用于文本替换、删除、插入等。
    • sed 's/old/new/g' file(全局替换oldnew);
    • sed -i 's/^#//g' /etc/fstab(取消fstab中所有注释行的,-i直接修改文件)。
  • awk:列处理工具,基于字段和模式操作。awk -F: '{print $1, $NF}' /etc/passwd(以为分隔符,打印每行的第1和最后1个字段);awk '$3>=1000 {print $1}' /etc/passwd(打印UID大于等于1000的用户名)。

面试考点grepegrep的区别(egrep等价于grep -E,支持、等扩展正则);sedi(插入)、a(追加)、d(删除)命令用法(如sed '2a test' file在第2行后追加test);awkBEGINEND块(BEGIN{FS=":"} {print $1} END{print "done"})。

Linux面试高频命令有哪些?-图2
(图片来源网络,侵删)

系统监控与管理命令

系统性能监控是运维日常工作,相关命令能帮助快速定位问题。

  • top:实时显示进程状态,-u指定用户(如top -u mysql),-p指定进程ID(如top -p 1234);交互命令包括M按内存排序、P按CPU排序、q退出。
  • ps:查看静态进程状态,-ef显示所有进程(完整格式),-aux显示所有进程并包含CPU/内存占用(BSD格式)。ps -ef | grep nginx查看nginx相关进程。
  • df:查看磁盘空间使用情况,-h以人类可读格式显示(如df -h),-T显示文件系统类型。
  • du:查看目录大小,-sh显示总大小(如du -sh /var/log),--max-depth=1限制递归深度(如du -h --max-depth=1 /home)。
  • free:查看内存使用情况,-hM/G为单位,-mMB为单位(如free -h)。

面试考点top%CPU%MEM的含义;df -hdu -sh的区别(前者是磁盘分区总容量,后者是目录实际占用空间);ps auxSTAT字段的状态码(如R运行、S睡眠、Z僵尸进程)。

网络相关命令

网络故障排查是Linux运维的常见场景,需熟练掌握网络工具。

  • ifconfig/ip:查看/配置网络接口,ifconfig eth0 up/down启用/禁用网卡,ip addr show查看IP地址(现代Linux推荐ip命令)。
  • ping:测试网络连通性,-c指定发送包数量(如ping -c 4 8.8.8.8),-i设置间隔时间。
  • netstat/ss:查看网络连接状态,-tuln显示监听端口(如netstat -tuln | grep 80),-a显示所有连接,-p显示进程ID(ssnetstat的替代品,性能更优)。
  • curl/wget:下载文件或发起HTTP请求,curl -I www.baidu.com查看HTTP响应头,wget -c file.zip支持断点续传。
  • ssh:远程登录,-p指定端口(如ssh -p 2222 user@192.168.1.100),-i指定私钥文件。

面试考点netstat -tulnss -tuln的区别;curl-X POST发送POST请求、-d携带数据的用法(如curl -X POST -d "name=test" http://example.com/api);ssh密钥登录配置(生成密钥对ssh-keygen,拷贝公钥ssh-copy-id)。

Linux面试高频命令有哪些?-图3
(图片来源网络,侵删)

权限与用户管理命令

Linux是多用户系统,权限管理是安全的基础。

  • chmod:修改文件权限,rwx分别对应4/2/1,添加权限、移除权限(如chmod 755 script.sh,或chmod u+x script.sh给用户添加执行权限)。
  • chown:修改文件所有者,-R递归修改目录(如chown -R user1:group1 /data)。
  • useradd/usermod:创建/修改用户,-m创建家目录(如useradd -m testuser),-s指定默认shell(如usermod -s /sbin/nologin testuser禁用登录)。
  • passwd:修改用户密码,-l锁定用户,-u解锁(如passwd -l testuser)。
  • sudo:以其他用户身份执行命令,需配置/etc/sudoers文件(如testuser ALL=(ALL) /usr/bin/apt授权testuser使用apt命令)。

面试考点chmod 755的含义(所有者rwx,组用户和其他用户r-x);chownchmod的区别(前者改所有者,后者改权限);sudo配置中的NOPASSWD选项(如testuser ALL=(ALL) NOPASSWD: /bin/systemctl restart nginx免密码执行)。

打包与压缩命令

Linux中常用.tar.gz.zip等格式,需掌握对应命令。

  • tar:打包/解包,-c创建包,-x解包,-v显示过程,-f指定文件名,-z处理gzip格式,-j处理bzip2格式。
    • tar -czvf backup.tar.gz /home(打包/home并gzip压缩);
    • tar -xzvf backup.tar.gz -C /tmp(解压到/tmp)。
  • zip/unzip:处理.zip文件,zip -r archive.zip dir/递归压缩目录,unzip archive.zip -d /tmp解压到指定目录。

面试考点tarczvfxzvf区别(前者是gzip压缩,后者是bzip2压缩);tar解压时是否需要保留原文件(解包默认保留,压缩时-c会创建新文件)。

面试高频考点与注意事项

  1. 命令组合与管道
    面试常考察命令组合能力,如“查看nginx进程的CPU占用率并排序”:ps aux | grep nginx | grep -v grep | awk '{print $3, $11}' | sort -nr,需注意管道符将前一个命令的输出作为后一个命令的输入,grep -v grep可过滤掉自身进程。

  2. 正则表达式
    grepsedawk均依赖正则表达式,需掌握基础正则(任意字符、重复0次或多次、^行首、行尾)和扩展正则(1次或多次、或、分组)。“过滤/var/log/messages中包含errorERROR的行”:grep -iE "error" /var/log/messages

  3. 生产场景问题排查

    • “磁盘空间不足如何排查?”:先用df -h查看分区占用,再用du -sh /*逐级定位大目录,最后用find /var -type f -size +100M查找大文件。
    • “CPU占用100%如何处理?”:用top找到高CPU进程,若为java进程,则jstack <pid> > jstack.log分析线程堆栈;若为httpd,则ps -efL | grep httpd查看线程状态。
  4. 注意事项

    • 避免使用危险命令(如rm -rf> /dev/null)时未确认路径;
    • 熟悉alias(命令别名)和$PATH(环境变量)的作用,如alias ll='ls -la'仅对当前终端生效,export PATH=$PATH:/new/path可添加临时路径。

相关问答FAQs

Q1:Linux中&&和的区别是什么?举例说明。
A:&&表示“与”,前一条命令执行成功(返回0)时才执行后一条命令;表示“或”,前一条命令执行失败(返回非0)时才执行后一条命令。

  • mkdir /tmp/test && cd /tmp/test(创建目录成功后进入,失败则不执行cd);
  • rm file.txt || echo "file not found"(删除文件失败时输出提示)。

Q2:如何查看Linux系统负载?load average三个数值分别代表什么?
A:使用uptimetop命令可查看系统负载,例如uptime输出load average: 0.10, 0.20, 0.15,这三个数值分别代表1分钟、5分钟、15分钟内的平均负载值,数值越低越好,一般不超过CPU核心数(如4核CPU负载超过4表示过载),若负载过高,需结合mpstat查看CPU使用率、pidstat分析进程占用情况。

分享:
扫描分享到社交APP
上一篇
下一篇