Linux 面试常考题总结大全【建议收藏】

2022-04-08 14:18:26 浏览数 (1)

代码语言:javascript复制
系统
# uname -a   # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本 
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# free -m  # 查看内存使用量和交换区使用量

资源
# df -h    # 查看各分区使用情况
# du -sh <目录名> # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量 
# grep MemFree /proc/meminfo # 查看空闲内存量 
# uptime # 查看系统运行时间、用户数、负载 
# cat /proc/loadavg # 查看系统负载

网络
# ifconfig # 查看所有网络接口的属性
# iptables -L  # 查看防火墙设置
# route -n  # 查看路由表
# netstat -lntp  # 查看所有监听端口
# netstat -antp  # 查看所有已经建立的连接
# netstat -s   # 查看网络统计信息

用户
# w  # 查看活动用户
# id <用户名>  # 查看指定用户信息
# last  # 查看用户登录日志
# cut -d: -f1 /etc/passwd  # 查看系统所有用户 
# cut -d: -f1 /etc/group   # 查看系统所有组
# crontab -l    # 查看当前用户的计划任务

进程
# ps -ef # 查看所有进程
# ps -ef # 查看所有进程 
# top # 实时显示进程状态
来源:公众号【码农编程进阶笔记】

2.其中查看文件信息的命令差别:

stat命令一般用于查看文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详 细。

wc命令一般用于统计文件的信息,比如文本的行数,文件所占的字节数。

du命令一般用于统计文件和目录所占用的空间大小。

ls 命令一般用于查看文件和目录的信息,包括文件和目录权限、拥有者、所对应的组、 文件大小、修改时间、文件对应的路径等等信息。

df命令用于显示包含每个文件名参数的文件系统上可用的磁盘空间量,默认磁盘空间以 1K块为最小单位。

netstat -ntlp | grep 端口号 查看端口被占用情况

lsof filename 查看文件被进程占用情况

3.Find grep 命令区别

grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打 印出来。

Find 从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对 之采取相关的操作 简单是:grep是查找匹配条件的行,find是搜索匹配条件的文件

4.Awk 内置变量

变量

用法

$0

当前记录(这个变量中存放着整个行的内容)

$1~$n

当前记录的第n个字段,字段间由FS分隔

FS

输入字段分隔符 默认是空格或t

NF

当前记录中的字段个数,就是有多少列

NR

已经读出的记录数,就是行号,从1开始,如果有多个文件话,这个值也是不断累加 中。

FNR

当前记录数,与NR不同的是,这个值会是各个文件自己的行号

RS

输入的记录分隔符, 默认为换行符

OFS

输出字段分隔符, 默认也是空格

ORS

输出的记录分隔符,默认为换行符

FILENAME

当前输入文件的名字

5.AWK常用命令:

代码语言:javascript复制
# 打印每一行的第二和第三个字段 
awk '{print $2, $3}' file 

# 统计文件的行数
awk ' END {print NR}' file 

# 对 awk 处理的行做过滤
awk 'NR < 5'  #行号小于5
awk 'NR==1,NR==4 {print}' file  #行号等于1和4的打印出来
awk '/linux/'  #包含linux文本的行(可以用正则表达式来指定,超级强大) awk '!/linux/'  #不包含linux文本的行

# 使用 -F 来设置定界符(默认为空格)
awk -F: '{print $NF}' /etc/passwd

# awk 实现head 命令
awk 'NR<=10{print}' filename

# 实现tail命令
awk '{buffer[NR] = $0;} END{for(i=0;i<11;i  ){print buffer[i ]} } ' filename

 # 查询访问最频繁的100个请求,主要是各种参数都包含了
 grep -v ".php" access.log | awk '{print $7}' | sort |uniq -c |sort -rn | head -n 100

# 查询访问 100 次以上的 ip
awk '{print $1}' access.log | sort -n |uniq -c |awk '{if($1 >100) print $0}'|sort -rn

# 查询指定 ip 访问最多的 100 个页面
grep '112.97.250.255' access.log |awk '{print $7}'|sort |uniq -c |sort -rn |head -n 100

# 查询最近 1000 条请求访问最多的地址
tail -1000 access.log |awk '{print $7}'|sort|uniq -c|sort - nr|less

# 按每秒统计请求数,显示top 100 的时间点 cut是截取 14-21 位,分钟为 14-18 小时为 14-15
 awk '{print $4}' access.log |cut -c 14-21|sort|uniq -c|sort - nr|head -n 100

来源:公众号【码农编程进阶笔记】

6.查看php进程和cpu占用

代码语言:javascript复制
Ps -rf | grep "php-fpm" top | grep "php-fpm"

7. Which 和 whereis 区别 Which 是用来查找系统PATH目录下的可执行文件。说白了就是查找那些我们已经安装好 的可以直接执行的命令,which 是基于 path 目录查找的。 Whereis这个命令可以用来查找二进制(命令)、源文件、man文件。Whereis 是基于 索引数据库的,locate也是基于数据库的,find 是基于硬盘文件的

0 人点赞