RHCSA
文章目录
前言
RHCSA第四天文本处理命令
cut 文本切割显示
cat /etc/passwd(用户配置文件,记录当前系统有哪些用户)
cut
-d 指定分隔符
-f 指定第几列被切割文件
-c 1-4 指定1到4个字符
指定分隔符时,空格需要用单引号或双引号引起来
[root@ZYBcomputer ~]# cut -d : -f 1-3 /etc/passwd
[root@ZYBcomputer ~]# cut -d : -f 1,3 /etc/passwd
[root@ZYBcomputer ~]# cut -c 1-3 /etc/passwd
将 指定字符(:) 改为(@)输出
[root@ZYBcomputer test]# cut -d : -f 3,4 --output-delimiter=@ /etc/passwd
echo 回声 标准输入输出命令
echo
echo $ 引用变量(变量——可以命名的内存空间)
显示变量的值
显示当前系统环境变量(echo $PATH)
一些特殊用法
“”——弱引用
‘’——强引用
反引号(` ) 或 echo $(命令信息) ——将中间的字符当命令来运行
echo $? 显示退出码
管道符
| 管道符 (将前面的命令输出作为管道后面命令的输入)
| tree T型管道可以将前面的命令的标准输出重定向到指定文本文件并将结果输出
横向输入文件,竖向从终端输出显示
输入/输出重定向
重定向操作符
“>” “>>” “<” “<<”
在Linux中
默认输入设备是键盘
默认的输出设备是屏幕
重定向操作符可以将命令的输入和输出数据流从默认设备重定向到其他位置。
重定向操作符本身不是一条命令,而是命令中附加的可改变命令的输入和输出对象的特殊符号。
“>” “>>” 为输出重定向操作符
“<” “<<”为输入重定向操作符
特殊应用
cat > catfile <<EOF
例子
输出重定向(覆盖)
[root@ZYBcomputer test]# date | > date.txt
输出重定向(追加)
[root@ZYBcomputer test]# date >> date.txt
文本排序显示,去重
sort
命令 | 含义 |
---|---|
-n | 按照数值由大到小排序 |
-r | 逆序排序 |
-f | 忽略字符大小写 |
-u | 去重 |
顺序显示:sort 文件名
按照数值大小显示:sort -n 文件名
排序并去掉重复的:sort -u 文件名
逆序排序:sort -r 文件名
将指定文件中的指定字符逆序排序(按照用户UID数字大小排序显示)
[root@ZYBcomputer test]# sort -t : -k 3 -nr /etc/passwd
uniq 文件名
去掉重复的行,重复的行必须相邻
命令 | 含义 |
---|---|
-d | 只显示重复的行 |
-D | 显示所有重复的行 |
-c | 显示重复行重复的次数 |
文本统计 wc --word count
显示文件行数、单词数、字节数和文件名:wc文件名
字节包括换行符和空格
[root@ZYBcomputer test]# wc file
在UTF-8编码格式中,显示时一个字符占一个字节,一个中文字符占3个字节
wc -w文件名 (只显示单词数)
wc -c 文件名 cut -c(字节数)
wc -l 文件名(行数)
wc -m 文件名(字符数)
wc -L 文件名(最长的一行的字符数)
统计当前系统用户,也就是/etc/passwd有多少行
在UTF-8编码格式中,显示时一个字符占一个字节,一个中文字符占3个字节
tr命令
用于转换或删除文件中的字符
tr指令从标准输入设备读取数据,经过字符串转义后,将结果输出到标准输出设备
tr [-cdst] [–help] [–version]
tr [OPTION] … SET1[SET2]
将文件testfile中的小写字母全部转换成大写字母
将磁盘使用情况中的容量一列显示出来
grep文本过滤显示
根据特定的字符串,对指定文件的每一行进行搜索,如果找到了这个字符串,就将含有这些内容的行输出
grep h文件名 -w -o -i -v ^行首 $行尾
命令 | 详细 |
---|---|
grep -w 文件名 | 匹配整个单词 |
grep ^q 文件名 | 以q开始的行 |
grep q$ 文件名 | 以q结束的行 |
grep ^ [0-9] 文件名 | 以数字开头的行 |
grep ^ [qf] 文件名 | 以q或f开头的行 |
grep ^ [^qf] 文件名 | 不匹配以q或f开头的行 |
grep [^qf]oo 文件名 | 匹配oo前面不是f或g的字符串 |
grep ^# 文件名 | 以#开头的行 |
grep ^$ 文件名 | 过滤空白行 |
grep -i 文件名 | 忽略大小写 |
grep -v 文件名 | 搜索显示没有匹配到的行 |
grep -A 2文件名 | 搜索显示匹配到那一行以及下两行 |
grep -B 2文件名 | 搜索显示匹配到那一行以及上两行 |
grep -C 2文件名 | 搜索显示匹配到那一行以及下下两行 |
[root@ZYBcomputer test]# grep root /etc/passwd
[root@ZYBcomputer test]# grep -o root /etc/passwd
显示指定关键字信息
[root@ZYBcomputer test]# grep -v root /etc/passwd
显示没有指定字的行
grep -i root /etc/passwd 忽略大小写
^$表示空白行
例子
在终端中显示当前系统时间,时间格式为月日时
[root@ZYBcomputer test]# date | cut -d " " -f 2,3,4
截取当前的日期的年月日显示在文件A.txt中
统计/etc/passwd一共有多少行但不显示后面的文件名
作业
1.将用户配置文件的3,4 字段分别截取出来写入文件UID和文件GIU
2…通过查看时间命分别将年月日时分写入A文件,将当前显示为星期几追加写入A文件。或者在屏幕上输出“the day is (星期几)”
3.创建目录/test/sysroot在该目录下创建三个文件a,b,c 之后再将sysroot目录移动到/tmp目录下改名为sys保证目录下三个文件也存在
4.删除 /tmp/sys/a 文件。
5.目录/tmp下创建4个目录,并在这四个目录下分别创建一个test目录
6.创建一个test目录,在该目录下创建一个文件,内容写 nano
7.在/dir下创建目录dir2和文件file1,移动文件file1到上面创建的test目录中,将目录dir2复制到test目录中
总结
1、(按照用户UID数字大小排序显示)
[root@ZYBcomputer test]# sort -t : -k 3 -nr /etc/passwd
2、将 指定字符(:) 改为(@)输出
[root@ZYBcomputer test]# cut -d : -f 3,4 --output-delimiter=@ /etc/passwd
3、df -h 查询磁盘使用情况
4、tr -s 缩减连续重复的字符指定成单个字符