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

码农编程进阶笔记

共 3489字,需浏览 7分钟

 ·

2022-02-22 06:17

点击上方蓝字关注我们

系统
# 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常用命令:
# 打印每一行的第二和第三个字段 
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%10] = $0;} END{for(i=0;i<11;i++){print buffer[i %10]} } ' 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占用
Ps -rf | grep "php-fpm" top | grep "php-fpm"

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


浏览 47
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报