2022/10/29
文本排序统计
cut命令
[root@localhost ~]# cut -d : -f 1 /etc/passwd 字段
[root@localhost ~]# cut -c 1-3 /etc/passwd 字符
cut -d 指定分隔符
-f 字段
-c 字符
--output-delimiter=
sort 用于对文本内容进行再排序
-n 数值排序 升序
-rn 数值排序 降序
[root@localhost ~]# head /etc/passwd > bbb
[root@localhost ~]# cat bbb
[root@localhost ~]# sort -rn -t : -k 3 bbb
-f 忽略大小写
-b 忽略缩进与空格
-n 以数值型排序
-r 反向排序
-u 去除重复行
-t 指定间隔符
-k 设置字段范围
uniq uniq命令用于去除文本中连续的重复行
#sort aaa | uniq
-c 显示重复次数
-d 只显示重复行,查看文件重复行(只显示一个)
-D 显示重复行 (全显示)
history 显示所有命令
tr set1 set2
-c, --complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换
-d, --delete:删除指令字符
-s, --squeeze-repeats:缩减连续重复的字符成指定的单个字符
-t, --truncate-set1:削减 SET1 指定范围,使之与 SET2 设定长度相等
--help:显示程序用法信息
--version:显示程序本身的版本信息
[root@localhost ~]# echo helloworld | tr -t hld ab
aebboworbd
history | tr -s " " " " | cut -d " " -f 3-
[root@localhost ~]# history | tr -s " " " " | cut -d " " -f 3- | sort | uniq -c | sort -n | tail -3 | tr -s " " |cut -d " " -f 3-
wc命令 用于统计指定文本文件的行数、字数或字节数 (一个中文3个字节)
-l 只显示行数
-w 只显示单词数
-c 只显示字节数
查找文件的路径
whereis 命令
which
[root@localhost ~]# echo $PATH (查找环境变量)
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# which $PATH 可执行文件
[root@localhost ~]# chmod +x /usr/bin/abc
[root@localhost ~]# which abc
/usr/bin/abc
whereis
[root@localhost ~]# touch /usr/bin/bcd
[root@localhost ~]# whereis bcd
bcd: /usr/bin/bcd
which 和 whereis 的区别
locate 命令全局搜索
[root@localhost ~]# updatedb (更新数据库)
find查找
find [查找路径] 寻找条件 操作
访问时间 cat
修改时间 文件内容修改
改变时间 文件的元数据(除文件名文件属性)修改
-mtime -n +n 匹配修改内容的时间(-4指小于等于4天内的文件名;+4,大于等于5天前的文件名;4指前4~5那一天的文件)
+4代表大于等于5天前的档名: find /var -mtime +4
-4代表小于等于4天内的文件档名:find /var -mtime -4
4则是代表4-5那一天的文件档名: find /var -mtime 4
find / -mtime -30 30天以内的所有文件
find . -newer f1 ! newer f2
-mtime -n +n 匹配修改内容的时间(-4指小于等于4天内的文件名;+4,大于等于5天前的文件
名;4指前4~5那一天的文件)
-atime -n +n 匹配访问文件的时间
-ctime -n +n 匹配修改文件权限的时间
-newer f1 ! newer f2 匹配比文件f1新但比f2旧的文件
-size (字节) 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)
-user 匹配所有者
-group 匹配所有组
-name 匹配名称 inum 通过索引节点号搜索
- inum
- perm r w x
- prune - path - print
-ok
-exec 按照换行符传递
find / -name abc
/usr/bin/abc
find / -name abc -exec rm -f {} \;
|xargs 按照参数传递
压缩和解压缩
一、常见压缩档
zip: 既归档又压缩的工具,可以压缩目录。
gzip和gunzip命令
tar归档命令
tar [选项] 打包文件名 被打包的源文件或目录列表
tar [选项] 打包文件名 [-C 目标文件夹]
c 创建.tar格式的包文件
x 释放.tar格式的包文件
t 查看包中的文件列表
v 表示在命令执行时显示详细的提示信息
f 包文件名 用于指定包文件名。当与-c选项一起使用时,创建的tar包文件使用该选项指定的文件名;当与-x选项一起使用时,则释放该选项指定的tar包文件。
p 打包时保留文件及目录的权限。
z 调用gzip程序,以gzip格式压缩或解压缩文件。
j 调用bzip2程序,以bzip2格式压缩或解压缩文件。
J 使用xz压缩(.tar.xz)。xz的压缩率通常比bzip2更高。
C 目录路径名 释放包时指定释放的目标的位置。
文件查找
1> 在当前目录及子目录中,查找大写字母开头的txt文件
#find . -maxdepth 2 -name '[A-Z]*txt'
2> 在/etc及其子目录中,查找host开头的文件
#find /etc -maxdepth 2 -name host*
3> 在$HOME目录及其子目录中,查找所有文件
#find $HOME -maxdepth 2 -name*
4> 在当前目录及子目录中,查找不是out开头的txt文
#find . -maxdepth -not -name out*.txt
5> 忽略文件名大小写查找a.txt
#find / -iname a.txt
2、查找文件 /etc/yum.repos.d/redhat.repo中包含字符串 re 的所有行。将所有这些行的副本按原始顺序放在文件/root/files 中。
#grep re /etc/yum.repos.d/redhat.repo > /root/files
3.用户配置文件将3,4 字段分别截取出来写入文件UID和文件GIU但是要使这两个文件中的信息是以数值由大到小的形式显示;
#cut -d : -f 3 /etc/passwd > UID
#cut -d : -f 4 /etc/passwd > GIU
4.通过一句话在当前终端显示当前系统一共有多少用户;
#echo 当前系统一共有 `wc -1 /etc/passwd | cut -d " " -f 1`用户
man
--help
内置命令
外置命令
[root@localhost ~]# time cd
real 0m0.000s
user 0m0.000s
sys 0m0.000s
[root@localhost ~]# time touch file
real 0m0.002s
user 0m0.000s
sys 0m0.001s
命令别名
[root@localhost ~]# alias userfile='cat /etc/passwd' (仅在当前终端)