一、通配符
1.1、简介
其实就是一些有特殊含义的符号,这些符号,统称为通配符
常见的通配符
>
>>
|
1.2、命令输出重定向
默认情况下,命令的输出位置是:终端
将命令的执行结果输出/显示到终端上,这种输出,称之为:标准输出
将本来要显示在终端上的输出结果,保存到一个文件中,这种操作称之为:输出重定向
输出重定向有两种
> 将文件中原有内容全部删除,然后进行写入
>> 在文件原有内容后,追加新的内容
使用格式
命令 > 文件
命令 >> 文件
1.3、echo命令
作用:打印输出一个信息
选项:
-n:输出不换行
-e:控制字符,让后面的特殊字符生效
\n:换行符
\t:水平制表符
\v:垂直制表符
开头:\033[xxm,这里xx的值是不同的
31m:设置为红色
32m:设置为绿色
33m:设置为黄色
34m:设置为蓝色
35m:设置为紫色
5m:设置字体闪烁
结尾:\033[0m
例如:
echo -e '\033[35m 35m alsifj \033[0m'
echo -e "zhe \nshi \nzifuchuan"
echo -e "abc \tdef \thaha"
echo -e "abc \tdef \thaha"
echo -e "abc \t \vdef \thaha"
案例:
1、将ls命令的执行结果,保存到/home/a.txt
ls >/home/a.txt
2、将ls命令的执行结果,保存到/home/a.txt,要求保留原有内容
ls >>/home/a.txt
3、用echo在终端上输出一个123
echo "123"
4、将文件/home/a.txt中的内容清空
方法1:echo "" > /home/a.txt方法2:cat /dev/null >/home/a.txt
特殊的文件:
/dev/null:这个文件是黑洞文件
执行命令,执行结果有两种情况
1、 执行成功,执行成功的输出,标准正确输出
- >
- >>
2、执行失败,执行失败的输出,标准错误输出
- 2>
- 2>>
补充:将命令的正确和错误输出结果都定向到一个文件中,写法有两种
写法1:ls /home/ >a.txt 2>a.txt
写法2:ls /home/ &>a.txt
&表示即包括正确的,也包括错误的
1.4、管道符
管道符也就是键盘上的那个 |
作用:是用于链接两个或者多个命令,将前面命令的执行结果,传递给后面的命令,让后面的命令再处理一次
1.5、wc命令
Word Count【字符统计】
作用:用于统计一个文件中,有多少行,多少个单词、多少个字符
格式:wc 选项 文件名
选项:
-l: 统计行数
-w:统计单词数
-c: 统计字符数
二、基础命令进阶
2.1、grep
作用:就是对文件的内容进行逐行截取
格式:grep 【选项】 “过滤的目标” 文件名
选项:
-v:反向显示(取反),显示不能匹配到的行
-i:不区分大小写
-E:支持扩展表达式
-o:仅显示匹配到的字符串,不显示整行
-n:显示匹配到的行号
案例:
1、从a.txt中过滤出,包含ok的行
grep "ok" a.txt
2、从a.txt中过滤出,不包含ok的行
grep -v "ok" a.txt
2.2、awk
作用:就是对文件的内容进行逐行截取格式:awk -F "分隔符" '{print $数字}' 文件名
1、截取passwd文件的第一 四 最后一列 并且显示行号,以冒号为分隔符awk -F ":" '{print NR,$1,$4,$NF}' passwdNR 用来显示行号$NF 表示最后一行2、查看当前CPU空闲率top -b -n 1 | grep Cpu | awk -F ',' '{print $4}' | awk '{print $1}'top是查看内存的使用率的-b:让top命令在批处理模式下运行-n:指定top命令执行的次数3、查看当前内存使用率free -m | awk '/Mem:/{print int($3/$2*100)"%"}'free:查看内容的详细使用情况awk默认使用空格为分隔符、
4、截取passwd文件的第2行到最后一行的第一列,并且显示行号,以冒号为分隔符
awk -F ":" 'NR>=2{print $1}' passwd
2.3 sed
sed是一个流文本处理器,默认情况会将用户操作的文件在内存中生成一个副本,默认不修改源文件只是修改副本中的内容。
作用:对文件的内容进行修改
格式:
sed 'start,stop 选项' 文件名
sed s/原始内容/替换内容/g 文件名
选项:-n:静默模式,不会输出源文件的数据-e:直接在命令行进行sed操作编辑- i:不仅修改副本中的内容,还将修改后的结果存储到源文件中单行模式空间a:在行后插入i :在行前插入c:整行更改d:删除p:打印s:查找替换
案例:
1、查看/etc/passwd前三行的内容sed ‘1,3p’ /etc/passwd -n2、删除2-4行的内容sed ‘2,4d’ /etc/passwd3、在文件的第5-7行后面追加一行内容 使用选项a 进行追加。appendsed ‘5,7a append’ /etc/passwd4、将2-3行内容的sbin,替换为aaased '2,3s/sbin/aaa/g' /etc/passwd5、更改第5行内容为 xxxsed ‘5c xxx’ /etc/passwd
6、修改文件中games为GAMES,并显示9-12行的内容sed -n -e 's/games/GAMES/g' -e '9,12p' /etc/passwd
7、删除空白行和以#开头的行,并更改源文件中的内容sed -e '/^$/d' -e '/^#/d' /etc/passwd -i
2.4 find
作用:查找Linux操作系统当中的文件
格式:find 在那个路径下查找 选项
选项:
-name 文件名称: 查找指定的文件名
-iname 文件名称: 查找指定的文件名,不区分大小写
-path 路径: 查询某个文件或者目录的完整路径,不仅仅查询文件名
-exec 命令: 对查找到的文件执行指定的命令
-mtime 时间: 按照文件的修改时间查找
-size [+|-]: 基于文件大小查询文件
-user username: 根据文件的属主查询指定的文件
-group groupname:根据指定的属组名查询文件
-perm 权限: 基于文件权限查找
-uid userid: 查询指定 uid 的文件
-gid gid: 查询指定gid的文件
-nouser: 查找没有所有者的文件
-nogroup: 查找没有对应组的文件
-print : 输出执行结果
-type 文件类型: 基于文件类型来查询文件
f:普通文件
d:目录文件
l:符号链接文件
s:套接字文件
根据文件的时间戳查找文件的内容
-mtime [+-]n:文件的创建(单位是天)
-ctime [+-]n:文件修改时间(单位是天)
-atime [+-]n:文件的访问时间(单位是天)
说明
n:单位是天
-mtime 5:表示5天之前的那一天所创建的文件
-n:
-mtime -5:表示5天之内所创建的文件
-n:
-mtime +5:表示5天之前所创建的文件
-mmin [+-]n:单位是分钟
-cmin [+-]n:单位是分钟
-amin [+-]n:单位是分钟
案例:
1、查询/tmp下面所有文件名位4个字符的文件
find /tmp -name '????'
2、查询/tmp下 文件名为a.sh的文件,并且父目录为abc
find /tep -path '*/abc/a.sh'
3、找到当前目录及其子目录下所有最近一周内被修改过的
.txt
文件find . -name "*.txt" -mtime -7
4、查询/tmp下 以a开头的目录文件
find /tmp -type d -name "a*"
5、查询/tmp下大于1K的文件
find /tmp -size +1K
6、查询/tmp下 属主是tom 属组是admin的文件
find /tmp -user tom -group admin
7、查询/tmp下 文件权限是777的文件find /tmp -perm 777
8、查询 属主不是root 也不是tom的文件find -not \( -user root -o -user tom\)
-not 表示非
-o 表示或
-a 表示与
9、查询 777权限的文件 将权限改为644find -type f -perm 0777 -print -exec chmod 644 {} \;
{} 表示前面执行的命令结果
10、查询txt结尾的文件,并将其全部删除
find /tmp -name "*.txt" -exec rm -rf {} \;
2.5 ln
作用:创建文件或目录的链接
- 硬链接:它允许多个文件名与同一文件关联,这些文件名可以位于同一文件系统中的任何位置。硬链接不能跨文件系统创建,且不允许目录有硬链接
- 软链接:也称为符号链接,类似于Windows系统中的快捷方式,可以跨文件系统创建,并且可以链接到文件或目录。软链接实际上是一个特殊的文件,它包含了指向目标文件或目录的路径信息。
格式1:ln 【选项】 目标文件 链接文件
格式2:ln -s 【选项】目标文件 链接文件:这种形式创建一个软链接。
选项:
-f:强制创建链接,即使链接文件已经存在
-n:类似于 -f ,但如果链接文件是一个目录,则删除该目录及其内容
-s:指定创建符号链接
-v:显示每个链接创建的详细信息。
2.6 history
作用:查看历史命令 默认最多存储1000条
-c:清空历史命令
-d #:删除指定位置的命令
-w: 保存历史命令到一个文件当中