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占用情况,常看哪几个参数?
%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 查看进程所属用户
各种平滑重启?
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原理讲起
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
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 直接能搜索出对应的课程,本文主要是自己总结一下面试过程中,可能会问到的一些问题,不做任何商业盈利行为,特此标注,感谢原创对我学习的帮助!