标签:没有 bcf sel 补充 使用方法 组合 rescue 个数 win
sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式:
sort [-bcfMnrtk][源文件][-o 输出文件]
补充说明:sort可针对文本文件的内容,以行为单位来排序。
参 数:
-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-f 排序时,忽略大小写字母。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-o<输出文件> 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-t<分隔字符> 指定排序时所用的栏位分隔字符。
-k 选择以哪个区间进行排序。
列子
进行/boot目录,根据文件大小的顺序输出,从大到小的顺序输出
ls -lA |grep ^- |sort -t ‘ ‘ -nrk 5
ls -lA |grep ^- |sort -nrk 5
-rw-r--r--. 1 root root 43566364 5月 29 2016 initramfs-0-rescue-394ad4829688457ab9375559e4997ede.img
-rw-r--r--. 1 root root 19813159 5月 29 2016 initramfs-3.10.0-327.el7.x86_64.img
-rw-r--r--. 1 root root 17740790 5月 29 2016 initramfs-3.10.0-327.el7.x86_64kdump.img
-rwxr-xr-x. 1 root root 5156528 5月 29 2016 vmlinuz-0-rescue-394ad4829688457ab9375559e4997ede
-rwxr-xr-x. 1 root root 5156528 11月 20 2015 vmlinuz-3.10.0-327.el7.x86_64
-rw-------. 1 root root 2963044 11月 20 2015 System.map-3.10.0-327.el7.x86_64
-rw-r--r--. 1 root root 602631 5月 29 2016 initrd-plymouth.img
-rw-r--r--. 1 root root 252612 11月 20 2015 symvers-3.10.0-327.el7.x86_64.gz
-rw-r--r--. 1 root root 126426 11月 20 2015 config-3.10.0-327.el7.x86_64
-rw-r--r--. 1 root root 166 11月 20 2015 .vmlinuz-3.10.0-327.el7.x86_64.hmac
ps -aux命令可以看到系统中所有运行的进程信息
找出3个占用cpu百分比最多的进程名,最后将进程名输出
ps -aux|sed ‘1d‘ |sort -nrk 3 |head -n 3
找出3个占用内存百分比最多的进程名,最后将进程名输出
ps -aux|sed ‘1d‘ |sort -nrk 4|head -n 3
df命令是查看系统磁盘的使用情况的,通过上网或者--help的方法查询df命令的使用
只输出最大的磁盘名
df -m|sort -nrk 2|head -n 1 |awk ‘{print $1}‘
输出使用磁盘百分比最大的挂载点
df -h|sort -nrk 5 |head -n 1|awk ‘{print $NF}‘
输出可用空间最大的磁盘的挂载点
df -m|sort -nrk 4 |head -n 1|awk ‘{print $NF}‘
awk
1、去重,有多行一样的只显示一行
sort 1.txt | uniq
2、输出行重复的次数,按重复次数从大到小的顺序输出
cat 1.txt |sort |uniq -c //显示每一项重复的次数
cat 1.txt |sort |uniq -c |sort -rnk 1
3、输出独一无二的行,即没有重复的行
cat test.txt |sort |uniq -u
windows:
1、excel、word
linux:
、
通过uniq --help或者上网去学习uniq命令的使用
##################################################################################
unix2dos //从linux转换到windows 原理:在换行符前面加上回车符^M
dos2unix //从windows转换到linux 原理:去掉每一行的回车符^M
grep ‘模式‘ 文件
grep [选项] ‘模式‘ 文件
选项
-n 显示被匹配到的内容所在的行号
-o 只显示被匹配到的内容
-v 取反,取匹配到行之外的外,
模式可以使用单引号,也可以使用双引号
一般我们就使用单引号
模式
1、可以一个明确的字符或者字符串
如:grep ‘root‘ file //会将含有root的行全部输出
grep -n ‘root‘ file //将含有root行输出,并打印行号
基本正则表达式,
元字符
^ 行起始标记 如^root匹配以root开头的行
$ 行尾标记 如root$匹配以root结尾的行
. 任意一个字符 如wor.d能够匹配world,worad、worbd等,因为.能够匹配任意一个字符
[] 匹配包含在[字符]之中任意一个字符 如a[ab]c能够匹配aac或abc
[^] 匹配[^字符]里面字符之外的任意一个字符 如a[^ac]c,能够匹配a.c,但是.不能够是a或者c, 能匹配 a1c 、a2c 、 afc等只要中间不是a或者c都可以
\ 转义字符 可以将上面的无字字符进行转义,如‘\$‘可以忽略$的特殊意义
* 匹配之前的项0次或者多次 如ft* 可以匹配f ft ftt fttt fttttttttttttttttt
【.* 任意个字符,0个或者多个】
安装httpd,将它的主配置文件,复制到/opt目录
练习:
1、只查看文件中含有Listen的行
2、只查看文件中以Listen开头的行
3、只查看以数字结尾的行
4、查看以<开头并且以>结尾的行
5、查看文件中含有if或者If的行 ##grep ‘[Ii]f‘ file.txt
6、不显示文件中以#号开头的所有内容 ##grep ‘^#‘ -v
7、不显示文件里的空白行 ##grep ‘^$‘ -v
8、使用ifconfig命令结合grep命令的方式,输出系统中所有的网卡
9、使用date命令结合grep的方式,输出系统中的时间 ##date |grep ‘[0-9][0-9]:[0-9][0-9]:[0-9][0-9]‘ -o
扩展的正则元字符
(要使用扩展正则表达式,3种方式,
1、使用egrep命令
2、使用grep -E
3、使用grep命令,但是遇到元字符的时候、就要加上转义
? 匹配之前的项0次或者1次
+ 匹配之前的项1次或者多次
{n} 匹配之前的项n次
{n,m} 匹配之前的项n到m次,包括n或者m
{n,} 匹配之前的项n任意次
() "组"字符串,如(ab)*,代表0个或者多个ab的组合
| 或者,即匹配|两边的任意一项
<> <内容>中的内容必须以单词出现,<和>都需要加上转义字符
练习:
1、查看文件中,以2个数字结尾的行
2、显示/etc/passwd文中的两位数或者三位数
3、通过shell脚本,让用户输入,判断用户输入的是否是一个合格的纯数字
a-z == [:lower:]
A-Z == [:upper:]
a-zA-Z == [:alpha:]
0-9 == [:digit:]
特殊符 == [:punct:]
\s 表示空白符
1、过滤下面文本的ip地址
aoot:x:0:0:Root:/aoot:$/bin/bash
root:x:0:0:root:/root:/bin/bash
x:0:0:root:/root:/bin/bash/root
root:0:0:root:/root:/bin/bash/root
ftp:x:14:50:FTP ^User:/var/ftp:/sbin/nologin
fap:x:14:50:FTP 256.258.1.2 U$ser:/var/ftp:/sbin/nologin
192.168.100.140 252130613a1
0.0.0.127 13608001910
172.16.299.1 00.00.00.00:00:00
169.169.1.2
aabc$
[第一段].[第二段].[第三段].[第四段]
1位数:0-9
2位数:10-99
3位数:1xx 200-249 250-255
tr的作用
1、替换,只能替换单个字符
echo abc | tr ‘a-z‘ ‘A-Z‘
a--->A
b--->B
cat file | tr ‘a-z‘ ‘A-Z‘ 将文本里的全部小写转换成大小
cat file | tr ‘A-Z‘ ‘a-z‘ 将文本里的全部小写转换成大小
2、删除作用,也只是删除单个字符
tr -d ‘参数‘
tr -d ‘a-z‘ 删除全部的小写字母
tr -d ‘0-9‘ 删除全部的数字
3、压缩后再替换
tr -s ‘\n‘ ‘,‘ #先将多个连续的\n换行符压缩,压缩之后再进行替换
. 任意单个字符
* 匹配前面的项0次到多次
[] 匹配[]内的任意单个字符
[^] 排除[]内的任意单个字符
^ 以什么开头
$ 以什么结尾
() 可以加入元字符,串组
? 匹配前面的项0次到1次
+ 匹配前面的项1次到多次
{n,m} 匹配前面的项n次到m次
<>
grep匹配的原则:采用贪婪模式,会进行最长的匹配
-B n 将匹配内容所有的行的前面n行也进行输出
-A n 将匹配内容所有的行的后面n行也进行输出
-C n 将匹配内容所有的行的前后n行也进行输出
-v 将匹配内容所有行之外的行输出
-E 启动扩展正则支持
-i 忽略大小写
-n 将匹配的模式所有的行号也进行输出
-o 仅显示被匹配到的内容
-c 统计被匹配到的内容一共有多少
-f file 使用指定的文件里的模式,如果有项,写到多行,最终进行或关系的查询
-H 输出每一个被匹配到的行前面加上它所在的文件名
-l 仅仅输出匹配到的模式所在的文件名,只输出文件名
-L ~~~~~~~~~~~~~~~~
-w 当后面的模式为一个单词,才算匹配到
文本处理
grep vim
cat
tac
head -n a ##输出前面a行
tail -n a ##输出后面a行
sed命令
sed [选项] ‘command‘ ......
动作:
p 打印输出
d 删除操作
a 在指定的行后面添加一行内容
i 在指定的行前面添加一行内容
1、查看操作
sed -n ‘5p‘ file //只查看文件的第5行
sed -n ‘3,5p‘ file //查看文件的第3到第5行
sed -n ‘5,$ p‘ file //打印第5到最后一行
2、删除操作
sed ‘3 d‘ 1.txt //删除文件的第3行 ,然后将内容进行输出,不是直接操作的文件,
sed ‘3,5 d‘ 1.txt
sed ‘3,$ d‘ 1.txt
sed在操作文件,只有加上-i选项才是直接操作
3、添加操作
sed ‘2a word‘ file //在第二行后面添加一行,内容为word ,即添加的内容为第三行
sed ‘3i word‘ file //在第三行前面添加一行,内容为word ,即添加的内容为第三行
思考:怎么在指定行后面添加2行内容
3、查找操作
sed -n ‘/root/p‘ file //只输出root关键字的行
sed ‘/root/d‘ file //将含有root的行删除,然后输出,,加上-i可以操作原文件
4、替换操作
sed ‘s/root/new/‘ file //将文件中的root替换成new,每行只替换一次,加上-i可以操作原文件
sed ‘s/root/new/g‘ file //将每行的所有root全部替换成new
sed ‘3,4s/root/new/g‘ 1.txt //只替换第3到第4行的root为new
练习:
1、selinux配置文件的SELINUX默认的值为enforcing,使用sed将其修改为permissive
将/etc/passwd复制到/opt目录进行操作
2、使用sed命令输出/etc/passwd的第5到第7行的内容
4、将passwd文件中第2到第3行的所有d替换成DD
5、只输出passwd文件的第6段内容
cat /etc/passwd|grep ‘/.*‘ -o |sed ‘s/:.*//‘
cat /etc/passwd | cut -d ‘:‘ -f 6
了解一下cut命令的使用方法
思考:
1.将/etc/passwd最后一段全部改成/bin/bash
cat /etc/passwd|sed ‘s/\(.*:\)\(.*\)/\1\/bin\/bash/‘
cat /etc/passwd|grep ‘\(.*:\)‘ -o |sed ‘s/$/\/bin\/bash/‘
\1 代表前面第一个小括号中匹配的内容
\2 代表前面第二个小括号中匹配的内容
& 代表所有匹配的内容
2.将/etc/passwd每行前面的用户名,添加到最后一段
如:root:x:0:0:root:/root:/bin/bash
处理后应该为
root:x:0:0:root:/root:/bin/bash:root
3.一文本内容如下:
192.168.100.2
172.16.5.4
10.101.2.5
133.37.25.21
通过命令将其处理成如下效果(转换到一行,通过逗号隔开,每行内容用单引号引起来):
‘192.168.100.2‘,‘172.16.5.4‘,‘10.101.2.5‘,‘133.37.25.21‘
cut命令,以指定分隔符分隔的段输出
cat /etc/passwd |cut -d ‘:‘ -f 7 //只看第7段的内容
cat /etc/passwd |cut -d ‘:‘ -f 1,3,5 //只看第1段、第3段、第5段
cut -d ‘:‘ -f 1-5 //第一到第5段
cut -c 1-5 //输出每行前面的第1到第5个字符
cut -c 3- //输出第3个字符到最后一个字符
tac cat反向输出
标签:没有 bcf sel 补充 使用方法 组合 rescue 个数 win
原文地址:http://www.cnblogs.com/hywhyme/p/6230636.html