热饭面试复习:【linux shell 相关】-3

2022-05-19 17:29:09 浏览数 (1)

Part1前言

linux shell 常见的面试问题,基本是先让你随便说一些,测试一下你掌握的广度,这时候你至少要说上十个才行,但是!不要说太难的,否则很容易掉进自己的坑里,相当于提醒了面试官去问你 : find ,vi编辑器这种会让面试官出一个极复杂的命令。但是之后 面试官仍然会出一些 非常复杂的命令,本小节复习,除了基础中常见的命令之外,还有常见的复杂命令。

Part2基础命令

注意,每个linux命令都包含很多参数,我这里不像网上教程一样全写出来,我只会把常用的或者面试大概率遇到的参数写出来,以免参数太多大家记混。而且参数一般都是相同的意思和概念,大家可以极大的减轻记忆负担,比如 -R 在几乎所有命令中都代表递归的意思;-f一般都是强制或忽略,-i一般是询问;-v 基本都是显示日志版本号等;-a 隐藏;-d目录;大部分命令的参数都可加可不加。

grep 查找和过滤

grep作为过滤命令,在很多命令后都可以加入grep来进行过滤

代码语言:javascript复制
grep test *.c 查找后缀为c 且包含test的文件
grep -r test /etc/ 查找etc目录和子目录下包含update字符串的文件
grep test 文件 #在文件中查找包含test的行
grep -e "正则表达式" 文件 #查找文件内符合该正则的行
-i 不去分大小写
grep -v test 查找不含test的文件,-v表示反向
find . -name '*.c' | xargs grep "test" 查找当前目录下所有后缀为.c的文件并找出其中带test的行。

join 链接俩个文件中相同的行

代码语言:javascript复制
join 文件1 文件2

look 查询单词

代码语言:javascript复制
look L 文件 #查询文件中所有以L开头的行

pico 编辑文字文件

代码语言:javascript复制
pico 参数 文件

sed 利用脚本处理文本文件

代码语言:javascript复制
sed 参数 动作 文件
sed -e 4anewLine 文件 #在文件第四行后添加一行
sed -i '$a 结束文案' #在文末增加一行文案
其中 -e表示后面接动作,
a表示新增
c 取代
d 删除
i 插入
p 打印
s 取代
sed 's/目标文案/新文案/g' #替换文案,

nl 以行为单位执行命令

代码语言:javascript复制
nl 文件 | sed '2,5d' #表示打印所有行,但删除2-5行,sed后的字符必须以单引号包裹
nl 文件 | sed '2a 测试开发干货' #第2行后新增一行文案
nl 文件 | sed '1,3c 测试开发干货' #第1-3行替换成文案
nl 文件 | sed '/test/p' #输出所有行,额外输出包含test的行
nl 文件 | sed '/test/d' #输出所有行,但不包括带test的行
nl 文件 | sed -n '具体命令' # 输出所有行且执行某命令
nl 文件 | sed '3,$d' -e 's/旧/新/g' #输出所有行,删除第3-5行,且替换文案。

sort 排序

代码语言:javascript复制
sort 参数 文件
-r 相反顺序
-b 忽略前空格
-d 只处理英文数字和空格
-f 全部按照大写字母排序
-n 按照数值大小
sort 文件 -k 2 #根据第二列的值进行排序

spell 拼写检查

代码语言:javascript复制
spell 文件

tr 转换和删除文件中的指定字符

代码语言:javascript复制
tr 参数 值
-c 反选
-d 删除
cat 文件 |tr a-z A-Z #把文件中所有小写替换成大写字母并打印
cat 文件 |tr ["lower"] ["upper"]

expr 命令行计数器

代码语言:javascript复制
expr 表达式
如 expr length "测试开发干货" #会输出6
expr substr "测试开发干货" 2 4 #会输出is 开
expr index "测试开发干货" 干 #会打印5
expr 10 2 #会打印12

uniq 行去重

代码语言:javascript复制
uniq 参数 文件
-c 显示重复次数
-d 显示重复行列

wc 计算字数

代码语言:javascript复制
wc 参数 文件
-l 显示行数
-w 显示字数
-c 显示字节数

let 声明变量

代码语言:javascript复制
let a=5 
let b=a 2
echo b
输出 7

好了,本节学习的内容够多了,大家放松放松,准备迎接下一节复习吧~

0 人点赞