Linux自由学习(四)

《鸟哥》

认识学习bash

管道命令

grep:分析一行数据
依次是:获取last中包含reboot的行;获取不包含reboot的行;获取不包含reboot的行的用户名
在这里插入图片描述
梨子:获取/etc/passwd里面包含elyer的那几行:
在这里插入图片描述

排序命令

sort
建议排序前把语系统一:LANG=C

选项与参数:
-f :忽略大小写的差异,例如 A 与 a 视为编码相同;
-b :忽略最前面的空格符部分;
-M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n :使用『纯数字』进行排序(默认是以文字型态来排序的);
-r :反向排序;
-u :就是 uniq ,相同的数据中,仅出现一行代表;
-t :分隔符,默认是用 [tab] 键来分隔;
-k :以那个区间 (field) 来进行排序的意思

写个简单的测试:可以看到sort默认排序是大写在前面,后面才是小写从a-z
在这里插入图片描述
看个栗子:-t是以什么符号进行分隔,-k是以第三块区域进行排序
在这里插入图片描述
还有个梨子:只提取last的账号并排序
在这里插入图片描述
uniq
uniq可以不显示重复的,加上-c选项可以看到重复了多少次
在这里插入图片描述
wc
查看文件有多少字多少行多少字符数

选项与参数:
-l :仅列出行;
-w :仅列出多少字(英文单字);
-m :多少字符;

例子:获取last的登录用户数,首先只有字母开头的行才是,而且wtmp那行不是用户,有了这两个条件就能筛选出了
在这里插入图片描述

双向重导向

tee
这个东东可以把你处理的过程或者说结果显示在屏幕上的同时,还可以存到文件里,双向大概就是这个意思,可以同时输出到两个地方:屏幕和文件
在这里插入图片描述
看个例子就明白了,
在这里插入图片描述

字符转换命令

tr
删除文字或者替换文字
把小写全部改成大写:
在这里插入图片描述
把冒号全部删掉:
在这里插入图片描述
col
tab转成空格
里面的很多^I就是Tab的意思,
在这里插入图片描述
处理完,可以看到Tab都没了:
在这里插入图片描述
join
用来处理两个文件的相同之处
从前三行就可以看出两个文件合并了
在这里插入图片描述

选项与参数:
-t :join 默认以空格符分隔数据,并且比对『第一个字段』的数据,
如果两个文件相同,则将两笔数据联成一行,且第一个字段放在第一个!
-i :忽略大小写的差异;
-1 :这个是数字的 1 ,代表『第一个文件要用那个字段来分析』的意思;
-2 :代表『第二个文件要用那个字段来分析』的意思。

可以看到group的第3列和passwd的第4列有关联,于是把它们整合到一块儿:
在这里插入图片描述
在这里插入图片描述

paste
两行粘贴在一起,中间用Tab隔开
在这里插入图片描述
可以利用管道把group和file1/2合并 且只显示前3行
在这里插入图片描述
expand
Tab键转换成空格
/etc/man.config内行首为 MANPATH 的取出;仅取前三行,发现有很多^I的符号,其实这是Tab键
在这里插入图片描述
那怎么把这些讨厌的符号去掉呢,用6个空格键取代掉,
在这里插入图片描述

分割命令

split
大文件切割成小文件
把passwd以300k的大小分成小文件啦,再利用重定向把小文件都整理在一起,
在这里插入图片描述
在这里插入图片描述
把ls输出的信息,按10行一份整理成文件:
在这里插入图片描述
xargs

看的云里雾里 不知道这家伙的威力,好家伙,看例子:来自这里

可以看到 echo ‘–help’ | cat 该命令输出的是echo的内容,也就是说将echo的内容当作cat处理的文件内容了,实际上就是echo命令的输出通过管道定向到cat的输入了。然后cat从其标准输入中读取待处理的文本内容。这等价于在test.txt文件中有一行字符 ‘–help’ 然后运行 cat test.txt 的效果。
而 echo ‘–help’ | xargs cat 等价于 cat --help 什么意思呢,就是xargs将其接受的字符串 --help 做成cat的一个命令参数来运行cat命令,同样 echo ‘test.c test.cpp’ | xargs cat 等价于 cat test.c test.cpp 此时会将test.c和test.cpp的内容都显示出来。

在这里插入图片描述

-减号的用处
stdinstdout 可以利用减号 “-” 来替代,例如:

[root@www ~]# tar -cvf - /home | tar -xvf -

正则表达式

基础正则

语系的影响

LANG=C 时:0 1 2 3 4 … A B C D … Z a b c d …z
LANG=zh_TW 时:0 1 2 3 4 … a A b B c C d D … z Z

设置LANG=C哦
有些特殊符号的意义要记住:
在这里插入图片描述
grep进阶

选项与参数:
-A :后面可加数字,为 after 的意思,除了列出该行外,后续的 n 行也列出来;
-B :后面可加数字,为 befer 的意思,除了列出该行外,前面的 n 行也列出来;
–color=auto 可将正确的那个撷取数据列出颜色
grep -n 显示出行号:

在这里插入图片描述
注意:== ^ 符号,在字节集合符号(括号[])之内与之外是不同的! 在 [] 内代表『反向选择』,在 [] 之外则代表定位在行首的意义!==
例如:在括号最外面表示行首是小写字母的选出来
在这里插入图片描述
不是英文字母开头的:
在这里插入图片描述
.结束的:
在这里插入图片描述
只有行首和行尾,会给你找出空白行:
在这里插入图片描述
正则里的.*

. (小数点):代表『一定有一个任意字节』的意思;
* (星星号):代表『重复前一个字节, 0 到无穷多次』的意思,为组合形态

grep -n 'ooo*' regular_express.txt会把带两个o的都列出来,‘o*’会把所有东西都列出来,跟o无关
在这里插入图片描述
找出含有任意数字的,这两种用法都可以:
在这里插入图片描述
鸟哥再次强调:『正规表示法的特殊字节』与一般在命令列输入命令的『万用字节』并不相同
来自《鸟哥》的正则字符汇总图:
在这里插入图片描述
sed工具
也是个管道命令,可以分析标准输入,还可以将数据进行取代、删除、新增、提取等功能

选项与参数:
-n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN
的数据一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过
sed 特殊处理的那一行(或者动作)才会被列出来。
-e :直接在命令列模式上进行 sed 的动作编辑;
-f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的
sed 动作;
-r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)
-i :直接修改读取的文件内容,而不是由萤幕输出。
动作说明: [n1[,n2]]function
n1, n2 :不见得会存在,一般代表『选择进行动作的行数』,举例来说,如果我的动作
是需要在 10 到 20 行之间进行的,则『 10,20[动作行为] 』
function 有底下这些咚咚:
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配
正规表示法!例如 1,20s/old/new/g 就是啦!

用来删除某几行
在这里插入图片描述
增加行
在这里插入图片描述
增加多行
在这里插入图片描述
取代功能:
在这里插入图片描述
显示想要的行:(加了-n是安静选项,只会输出一次)
在这里插入图片描述
数据搜索与取代
先提取addr那行,先把前部分删除,再把后部分删除。
在这里插入图片描述
1.grep提取包含MAN的:
在这里插入图片描述
2.有#的都用空格替代:
在这里插入图片描述
3.去掉空格哦
在这里插入图片描述
直接修改文件内容危险操作

在这里插入图片描述
上面的命令看着挺复杂的,趁现在还理解,说一下把:先把框架提取出来s///g是必备的,.就是.的意思,$是最后一个字符的意思,也就是说以.结尾的行,替换成什么呢,就是后面的!,!只是转义罢了,因为!是特殊字符嘛~所以就很好理解咯,把.结尾的行全部改成!结尾。

延伸正则

egrep
利用|直接删掉了#开头或者空白行
在这里插入图片描述
多个范例:
在这里插入图片描述

文件格式化等

printf
类似C语言里面的,让你按固定格式输出,%s是字符,%i是数字,%f是小数
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值