《Linux运维工程师基础技能测试简答题》
第一部分:Linux 网络管理(10道)
1.如何查看系统所有网络接口的详细信息(如IP地址、MAC地址、状态)?
ip addr show 或简写 ip a
2.使用 nmcli 命令如何列出所有网络连接配置文件?
nmcli connection show
3.命令netstat -anptu 的作用是什么? 请解释各选项的含义,
该命令用于查看当前系统的网络连接状态,包括监听端口、已建立连接、协议类型、进程信息等。
4.如何查看当前系统的路由表信息?
ip route show 或 ip route
5.如何临时添加一条静态路由,将发往 10.0.0.0/8 网段的流量通过网关 192.168.1.254转发?
sudo ip route add 10.0.0.0/8 via 192.168.1.254 dev eth0
6.请写出使用 ss 命令査看所有监听中的TCP端口的命令。
ss -tln
-t :TCP 协议
-l :仅显示监听状态(LISTEN)
-n :不解析服务名称,直接显示端口号
7.如何查看本机的DNS服务器配置?
cat /etc/resolv.conf
8.如何跟踪数据包从本机到目标主机 www.baidu.com 经过的路由路径?
traceroute www.baidu.com
9.主机A无法访问主机B,如何一步步使用 ping 命令排査网络连通性问题? (请给出排查思路)
1. 检查本地网络接口是否正常
2. 测试网关连通性
3. 测试远程主机IP
4. 跨网段测试公共IP(验证外网可达性)
5. 测试域名解析
10.如何查看某个端口 (例如80端口) 是否被本机监听?
ss -tln | grep ':80$'
-t :TCP
-l :监听
-n :数字显示
-p :显示进程(需权限)
正则 :80$ 匹配以 :80 结尾的端口
第二部分:Linux 系统程序与进程管理(15道)
1.如何查看系统上所有用户的所有进程信息?
ps aux
a :显示所有终端上的进程
u :以用户友好的格式显示(含CPU、内存、用户等)
x :显示无控制终端的进程(如守护进程)
2.ps aux命令中,USER,PID,%CPU,%MEM,COMMAND 这几列的含义是什么?

3.如何实时动态地监控系统进程状态?
top
4.如何根据进程名(例如 nginx)查找其进程ID(PID)?
ps aux | grep nginx | grep -v grep 或 pgrep nginx
5.如何正常终止一个进程(使用 ki11命令)?如何强制终止一个进程?
正常终止(软终止):kill -15 <PID>
强制终止(硬终止):kill -9 <PID>
6.如何使用 systemct] 命令启动、停止、重启一个服务(例如 sshd)?
systemctl start sshd # 启动
systemctl stop sshd # 停止
systemctl restart sshd # 重启
7.如何使用 准systemct] 命令设置一个服务(例如 nginx)在系统启动时自动运行?
systemctl enable nginx
8.如何査看某个服务(例如 nginx)的当前状态和是否开机自启动?
查看运行状态:systemctl status nginx
查看是否开机自启:systemctl is-enabled nginx
9.如何重新加载一个服务的配置文件(例如 sshd )而不中断其运行!
systemctl reload sshd
10.什么是运行级别(Runlevel)?如何查看当前系统的运行级别?
查看当前运行级别:who -r
Runlevel
查看当前目标(systemd):systemctl get-default
systemctl list-units --type=target
11.如何让一条命令在后台运行?如何将后台运行的命令切换到前台?
后台运行:command &
查看后台任务:jobs
将后台任务调至前台:fg %n # n 为任务编号
暂停任务并放入后台
先按 Ctrl+Z 暂停,再执行:bg %1
12.如何査看系统的平均负载(Load Average)?其三个数值分别代表什么时间段的平均值?
使用以下命令查看负载:
uptime
top
W
三个数值分别代表过去:
第一个:1分钟内的平均负载
第二个:5分钟内的平均负载
第三个:15分钟内的平均负载
13.进程和程序的区别是什么?
14.什么是线程?跟进程有什么关系?
线程(Thread) 是进程内的一个执行单元,是 CPU 调度的基本单位。

15.Linux系统中,如何抓取端口号为80的数据包?
使用 tcpdump 抓包:sudo tcpdump -i any port 80
常用选项:
-i any :监听所有接口
-i eth0 :指定接口
-w capture.pcap :保存到文件
-v :详细输出
第三部分:LinuxshelI部分(10道)
1.在Shell脚本中,定义一个变量 name ,其值为"wor1d",请写出赋值语句。之后,如何打印出 "He11o,wor1d"(要求使用该变量)?
name="world"
echo "Hello, $name"
2.如何将一条命令(例如 date )的执行结果赋值给一个变量 current_time?请写出语句。
current_time=$(date)
# 或
current_time=`date`
echo "$current_time"(验证)
3.什么是环境变量(如 PATH,HOME)? 如何査看所有环境变量? 如何在脚本中定义一个新的环境变量,使其在当前脚本及其子进程中有效?
环境变量:
是操作系统中用于存储系统或用户环境信息的变量
被 shell 和子进程继承
常见如: PATH (可执行文件路径)、 HOME (用户主目录)、 USER (用户名)
查看所有环境变量:
printenv
# 或
env
# 或查看特定变量
echo $PATH
定义新的环境变量并导出:export MY_VAR="hello"
4.请解释以下特殊变量代表的含义,并举例说明其用法:$?’’$0’’$@’’ $#

5.单引号(‘)和双引号(“)在定义变量值时有何主要区别? 请用示例说明。

6.如何执行一个Shell脚本(例如 test.sh)? 如果提示 permission denied,该如何解决?
执行方式:./test.sh # 需有执行权限
bash test.sh # 无需执行权限,直接解释执行
source test.sh # 在当前shell中执行(不开启子shell)
. test.sh # 同上
若提示 Permission denied :
解决方法:添加执行权限 chmod +x test.sh
然后执行:./test.sh
7.什么是位置参数(Positional Parameters)? 如何在脚本中获取用户输入的第二个参数?
位置参数 是指在执行脚本时传入的命令行参数,按位置编号。
获取第二个参数:echo "第二个参数是:$2"
8.()与{}执行shell语句,有什么区别?

9.shell变量的书写规范是什么?
Shell变量命名规范如下:
1. 只能包含字母、数字、下划线 _
2. 不能以数字开头
3. 区分大小写( Name 和 name 不同)
4. 避免使用 shell 关键字(如 if , for , test 等)
5. 赋值时等号两边不能有空格
6. 建议使用小写(避免与环境变量冲突)
7. 多个单词用下划线分隔(如 user_name , log_path )