面试总结-3-Linux

1、Linux文件描述符764含义

rwa  4--2--1   可读---可写---可操作

 第一个  -   代表文件夹还是文件

第二个rw-  代表  当前用户可读+可写==6

第三个r--    代表  属组其他用户可读==4

第四个r--    代表  其他组可读==4

chmod -R 777 ./index.php

 2、Crontab 设置时间的顺序  */分   */时    */日    */月    */周

 一般使用 echo 重定向输出   >  覆盖   >> 追加

不想被覆盖,提前设置好

set -o noclobber

 

 

 

 

 

 

 

4、log文件如何检索关键字?

 

 

0 6-12/3 * 12 * /usr/bin/backup

在12月内,每天早上6-12点,每隔3个小时0分钟执行一次

0 17 * * 1-5 echo 'hello'

每星期一到星期五的下午5点执行一次,输出hello

cat /etc/passwd | cut -f 1 -d : | xargs -I {} crontab -l -u {}

查看所有用户的定时任务

 

一次性定时任务 

Linux 常用命令

 1、top 查看cpu占用情况,常看哪几个参数?

Linux中TOP命令参数详解_whl826661099的博客-CSDN博客_linuxtop命令参数详解

%CPU   显示CPU占用情况

%MEM  显示内存占用情况

快捷键

c     显示详细信息/取消显示

shift  +  p    显示CPU降序排序

shift  +  m   显示内存降序排序

shift  +  n    显示pid降序排列

x      关注列高亮/取消

2、进程ID是由操作系统内核进行分配和管理,而端口号是由通讯协议内核分配并进行管理的。

Linux 查看进程号、端口号

ps  -ef  |   grep   进程名称

ps  -aux  | grep   程序名称

lsof -i:6379

netstat -ntulp | grep 6379

-t (tcp)   仅显示tcp相关选项

-u(udp)  仅显示udp相关选项

-l            仅列出Listen(监听)的服务状态

-p           显示建立相关链接的程序名

-n           拒绝显示别名,能显示数字的全部转化为数字

netstat  -anp  |  grep  6379

netstat -anop | grep pid     根据进程号查询正在运行的程序的port(端口号)

ll  /proc/PID    根据PID查询进程名称

kill -9 PID  杀死进程

top -u 【用户名】

ps u PID  查看进程所属用户

linux查看进程号、端口号_yy谷莠子的博客-CSDN博客_linux查看进程端口

各种平滑重启?

tcp和udp协议区别?具体实现?

网络层级?

七层:

应用层----->表示层----->会话层----->传输层------>网络层----->数据链路层----->物理层

TCP/IP 模型将 OSI 模型由七层简化为四层,传输层和网络层被完整保留,因此网络中最核心的技术就是传输层和网络层技术

TCP/IP 模型将 OSI 模型由七层简化为四层,传输层和网络层被完整保留,因此网络中最核心的技术就是传输层和网络层技术。

TCP/IP 协议中每层技术举例:

网络访问层:ARP、RARP

互联网层:ICMP、IP

传输层:TCP、UDP

应用层:DNS、FTP、HTTP、SMTP、TELNET、IRC、WHOIS

三次握手,四次挥手?

1、先从tcp原理讲起

 

 面试官问我TCP三次握手和四次挥手,我真的是 - 掘金

udp http sed  awk

awk重点

1)
awk -F " " '{print $1}' test.csv
打印文件第一列 按照空格分割 分隔符号为空格
-F 指定

2)
一般的开发语言,数组下标都是以0开始的,但awk的列$是以1开始的,而0指的是原始字符串

 

乍一看,好吓人的命令,但是很简单。awk和我们通常的程序不太一样,它分为四个部分。

1、BEGIN 开头部分,可选的。用来设置一些参数,输出一些表头,定义一些变量等。上面的命令仅打印了一行信息而已。

2、END 结尾部分,可选的。用来计算一些汇总逻辑,或者输出这些内容。上面的命令,使用简单的for循环,输出了数组rt中的内容。

3、Pattern 匹配部分,依然可选。用来匹配一些需要处理的行。上面的命令,只匹配tcp开头的行,其他的不进入处理。

4、Action 模块。主要逻辑体,按行处理,统计打印,都可以。

https://blog.csdn.net/weixin_58279299/article/details/124344404

awk -F ":" 'NR==10{print $0}' /etc/passwd

查询第10行,$0显示正好   $NF显示最后一列   NR代表多少行

 2.txt文件内  2个数字  第一列  11 第二列 12

awk命令初级、高级篇(详细)_i鲸落i的博客-CSDN博客_awk

 

grep、 sed   和 awk  实战

 1、

 

 

 正则表达式

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 2、使用sed工具

2-1)自动处理文件

2-2)分析日志文件

2-3)修改配置文件

如何进行文本处理?

sed基本操作命令 ----{  1、文本行处理(增、删、替)  2、字符串替换(取用)

sed高级操作命令

sed是流处理编辑器

sed---流处理编辑器

1、文本或管道输入

2、读入一行到模式空间-------->即为临时缓冲区

3、sed命令行

4、输出到屏幕

sed 一次处理一行内容

sed 不改变文件内容(除非重定向)

使用sed----格式

1、命令行格式

       sed [options] 'command' file(s)

        options: -e -n

        command: 行定位(正则)+ sed命令(操作)

        命令行格式举例

        sed -n '/root/p'

        sed -e '10,20d' -e 's/false/true/g'

2、脚本格式

        sed -f scriptfile file(s)

命令实战:

1、sed -n 'p' passwd   不加-n  打印出2次,跟原理有关

 加上-n  只打印相关的行

2、sed -n '10p' passwd       operator:x:11:0:operator:/root:/sbin/nologin

3、nl   passwd   打印出来行号

4、nl passwd | sed -n '10p'

   10    operator:x:11:0:operator:/root:/sbin/nologin

5、nl passwd | sed -n '10,20p'

打印出10行    到      20行

6、nl passwd | sed -n '/games/,/ntp/p'

范围界定

7、p  前面加上!  取反    不选择某一行   或者   不选择某个范围的行

8、nl passwd  | sed -n '1~2p'

跳跃行  1   代表  从  第一行开始    2  是   步长

sed 操作命令

基本操作命令(2)

-a 新增行 / i (插入行)

-c (替代行)

-d (删除行)

解析:

nl passwd | sed '1,15a ==============='

a   放在改行    或者   一个范围的行    之后  加入  =======

i  同上   放在一行的前面

c  替换   替换一行或一个范围内的行   为   一次替换内容

nl passwd | sed '1,6d'

删除1-6行显示内容    对    源文件    不做修改

sed '/^$/d' passwd

删除空行

sed 's/false/true/' passwd

替换

sed 's/:/___/g' passwd

全局替换

sed  案例实战

sed   核心  替换命令

ifconfig eth0 | sed -n '/inet /p' | sed 's/inet//' | sed 's/netmask.*$//'

大括号,同时操作多个命令

nl passwd | sed '{1,6d;s/false/true/}'

sed 's/^[a-zA-Z_-]\+/&    /' passwd

在开头单词后   加上   空格

\u  \l  \U   \L   转换为大写/小写字符

u---->   首字母   U ----->  单词

l------> 有长度的字符转换

ls *.txt | sed 's/^\w\+/\U&/'

把.txt结尾文件中的  以数字、字母、下划线开头的文本名称  转化为  全部字母大写的名称  展示出来

sed 's/\(^[a-z_-]\w\+\):x:\([0-9]\+\):\([0-9]\+\):.*$/\1      \2   \3/' passwd

取出passwd里面的用户名    UID    GID

ifconfig eth0 | sed -n '/inet /p' | sed 's/inet \([0-9.]\+\) .*$/ \1  /'

也是可以取出ip

 r    不改变源文件

w     改变源文件

q      退出sed

nl passwd  | sed '/true/q'

上面命令  当遇到true   第一次遇到   就退出命令

 awk    可以进行编程    文本处理工具   非常强大   功能更强   而且     这是重点

1、awk  处理方式

2、awk  与格式

 

 

awk -F ':' '{print "User1:"$1"\t ""UID:"$3 }' passwd

awk -F ':' '{if ($3>100) print "Line:  "NR,"User:  "$1}' passwd 

if判断  加条件   展示

awk '/emerg/{print $1}' error.log

 awk -F ':' '$3>100{print $1,$3}' passwd

 有条件输出  筛选第三列大于100的行

BEGIN  END   之前   之后   不参与循环

ls -l | awk 'BEGIN{size=0}{size+=$5}END{print "size is " size}'

可以计算出  第五列累加的值

awk -F ':' 'BEGIN{count=0}$1!~/^$/{count++}END{print "count is "count}' passwd

初始化变量count 为 0   匹配  第一列的值不为空  做一个累加  最后打印输出count

总共有多少行

awk -F ':' 'BEGIN{count=0}{if($3 > 100) name[count++]=$1 }END{for(i=0;i<count;i++)print i,name[i]}' passwd

第三列大于100 添加进入数组 下标从0开始 END后面开始循环 输出i  以及 name[i]

netstat -anp | awk '$6~/CONNECTED|LISTEN/{sum[$6]++}END{for (i in sum) print i,sum[i]}'

匹配到第六列  把元素名称当成键   累加的数值当成值   打印输出

LISTEN 27
CONNECTED 112

 

重点标注:本次学习,跟随慕课网的视频学习,免费的视频教学,大家喜欢看视频学习,可以去慕课网搜索一下awk  直接能搜索出对应的课程,本文主要是自己总结一下面试过程中,可能会问到的一些问题,不做任何商业盈利行为,特此标注,感谢原创对我学习的帮助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柔情柴少

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值