Linux运维工程师面试题(部分)-复习
发布日期:2025-04-10 15:35:17 浏览次数:10 分类:精选文章

本文共 2421 字,大约阅读时间需要 8 分钟。

Linux系统常用命令与操作指南

目录


查看文件数

要查看当前目录(包含子目录)下文件的总数,可以使用以下命令:

sudo ls -lR | grep "^-" -c

或者:

sudo ls -lR | grep "^-" | wc -l

说明:

  • ls -lR:递归查看当前目录下的所有文件和子目录。
  • grep "^-":过滤以“-”开头的文件(通常隐藏文件)。
  • wc -l:统计符合条件的文件数。

如果需要统计目录数,可以将grep中的模式改为"^d"


查看系统连接数

要查看系统中每个IP地址的连接数,可以使用以下命令:

netstat -n | grep "^tcp" | awk '{print $5}' | awk -F : '{print $1}' | sort | uniq -c | sort -rn

或者:

netstat -nt | awk '{print $5}' | awk -F : '{print $1}' | sort | uniq -c | sort -rn

说明:

  • netstat -nt:显示TCP和UDP的连接状态,-n参数显示地址和端口号。
  • awk '{print $5}':提取连接数对应的五个字段。
  • awk -F ::以冒号分隔。
  • sort | uniq -c | sort -rn:排序并去重,最后按连接数从高到低排序。

生成随机密码

要生成一个32位的随机密码,可以使用以下命令:

cat /dev/urandom | head -n1 | md5sum | head -c32 > /tmp/pass

说明:

  • /dev/urandom:生成随机字节。
  • head -n1:取一行内容。
  • md5sum:计算MD5哈希值。
  • head -c32:截取32个字符。
  • 结果保存到/tmp/pass文件。

ps命令解读

ps命令的常用参数

  • ps -l:显示程序的详细信息。
  • ps aux:显示所有进程的状态。

ps状态解读

  • R:运行中。
  • S:睡眠状态,可以唤醒。
  • D:不可中断的等待I/O。
  • T:停止或除错状态。
  • Z:僵尸状态。

其他参数

  • TTY:显示终端位置。
  • VSZ:进程使用的虚拟内存(KB)。
  • RSS:进程使用的固定内存。
  • %MEM:进程占用的内存百分比。

top与ps的区别

  • top:动态显示程序状态,支持按资源(CPU、内存)排序。
  • ps:静态显示某个时间点的程序状态。

shell生成随机数

要生成1-39之间的随机整数,可以使用以下命令:

expr ${RANDOM} % 39 + 1

说明:

  • ${RANDOM}:生成0-32767之间的随机数。
  • %39:取模运算,结果为0-38。
  • +1:转换为1-39的范围。

匹配特定配置文件

要匹配/etc/ssh/sshd_config文件中以“#”开头的注释行,可以使用以下命令:

grep -n "^# \{1,\}[^ ]" /etc/ssh/sshd_config

说明:

  • -n:显示行号。
  • ^#:以“#”开头。
  • \{1,\}:匹配1到多个字符。
  • [^ ]:非空白字符。

批量创建用户和密码

要批量创建多个用户,并保存用户名和密码到文件中,可以使用以下脚本:

#!/bin/bash# 创建组(如果不存在)grep test /etc/shadow > /dev/null || groupadd test# 创建用户for i in `seq -f"%02g" 1 10` do    useradd -s /bin/bash -g test user${i} > /dev/null 2>&1    user_passwd="$(echo ${RANDOM}|md5sum|head -c8)"    echo "${user_passwd}" | passwd --stdin user${i} > /dev/null 2>&1    echo "user${i}:${user_passwd}" >> /home/kim/user_passwd.txtdone

查找特定文件

查找大小超过1M的.log文件

find /var/log -name "*.log" -type f -size +1024k | wc -l

删除10天内未修改的文件

find /tmp !-mtime -10 -exec rm -fr {} ;

删除空文件或目录

find ./ -type d -empty -exec rm -fr {} ;find ./ -type f -size 0c -exec rm -fr {} ;

打包文件

要将当前目录下的所有文件打包为web.tar.gz,排除logtest目录:

tar -czvf web.tar.gz ./* --exclude=./log/ --exclude=./test

查看文件占用情况

查看磁盘使用率

df -h | awk '$5 > 50' # 查看占用率超过50%的分区

查看端口信息

查看某个进程的网络端口

lsof -c process # 根据进程名查看lsof -p pid1,pid2 # 根据进程号查看lsof -u user # 查看用户打开的文件

查看活跃的网络端口

lsof -a -u user -i # 查看用户的所有活跃端口

常用服务端口号

  • HTTP/HTTPS:80
  • FTP:21
  • SSH/SFTP:22
  • SMTP:25/465/993
  • POP3/IMAP:110/995

以上命令和技巧希望能为您提供实用的参考,欢迎在评论区留言交流!

上一篇:Linux运维必备!手把手教你搭建OpenFalcon监控系统
下一篇:Linux运维工程师笔试题第十三套

发表评论

最新留言

不错!
[***.144.177.141]2025年04月30日 04时13分47秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章