有些符号不表示原来的意思,它代表了一类字符
" * ":代表任意长度的字符,不能显示隐藏文件
" ? ":代表任意一个字符
去匹配文件的名字。
例如:
匹配以p开头的文件? ? ? ? ? ?---------------------------? ? ? ls? p*
匹配以conf结尾的文件? ? ? ---------------------------? ? ? ls? *conf
匹配包含conf的文件? ? ? ? ? ---------------------------? ? ? ls? *conf*
通配符只能匹配文件的名字
正则表达式可以匹配文章中的内容
定义:通过别名机制简单化常用的、比较长的命令
格式:alias 自定义命名='原始命令'
?图片当中"myvim"是自定义命名,而"vim /etc/sysconfig/network-scripts/ifcfg-ens33"为原始命令。
取消别名:unalias myvim。
注意:
????????使用alias创建的别名只是临时性的,关机或重启之后就不会生效了。
du? 默认递归显示
????????du是文件所占磁盘空间的大小
格式:du? [选项]? [文件或目录]
选项 | 说明 |
-a | 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录 |
-s | 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果 |
-h | 只统计所占空间总的(Summary)大小,而不是统计每个子目录,文件的大小 |
[root@localhost ~]#du -sh /var/log
4.6M?? ?/var/log
使用命令du -sh 显示/var/log的文件所占空间的大小
-a 和-s不能同时使用
[root@localhost ~]#du -as
du: 不能既显示总用量,同时又显示每个项目
Try 'du --help' for more information.
ll和du的区别:
ll看到的是文件的真实大小
du看到的是文件占自盘的多少块(一块的默认值为4k;如果一个文件不足4k按4k算)
(du看到的文件大小一定是4的倍数)
延伸:如果只想看到前两层的文件夹(前两层:不包含本层? 本级的下两层)
du -d 2/etc? ? =? ? ?du --max-depth=2 /etc
mkdir? [选项] 目录位置及名称
mkdir -p? 代表一次性创建嵌套的多层目录(递归显示)
[root@localhost opt]#mkdir aa bb cc
[root@localhost opt]#ls
aa ?bb ?cc ?rh
代表一次性建立三个文件夹aa、bb、cc
?
[root@localhost opt]#mkdir dd
[root@localhost opt]#ls
dd ?rh
单个创建文件夹dd
?
[root@localhost opt]#mkdir -p aa/bb/cc
代表倒序建立aa/bb/cc文件夹
[root@localhost opt]#ls
aa ?rh
查看opt文件夹下(aa为蓝色,代表文件夹)
[root@localhost opt]#ls -R
.:
aa ?rh
?
./aa:
bb
?
./aa/bb:
cc
?
./aa/bb/cc:
?
./rh:
倒序查看opt下的文件
1.新建空文件? ? ?touch? 命令? ?跟着的文件名不存在
2.刷新文件时间? touch? 命令? 跟着的文件名已存在
touch? 文件(如果文件不存在则新建一个大小为0的空文件)
当用户访问aa时,通过inode号在硬盘中找到aa硬盘中的位置,然后加载到内存中使用,给inode号1234做一个硬连接到B文件夹存为bb,此时aa和bb都可以使用inode号为1234的文件。
文件夹不能做硬连接;硬连接的本质是文件有多少种叫法,再深层次理解为有多少种找到文件的方法;做一个硬连接 inode号不会增加?
硬连接语法? ln? ? ? 源文件? 目的位置
软连接语法? ln -s? 源文件? 目的位置
注意:
????????源文件要使用绝对路径。
????????删除软连接文件夹的时候,一定不能加? ??“ / ”
如下图:
将需要复制的文件或目录(源)重建一份,并保存为新的文件或目录。
格式:cp? 源文件或文件夹? 目标位置
注意:cp命令执行后,相同设备上的inode号不会相同,但不同设备上可能会一样
格式:mv 源文件 目标位置
源文件和目标文件路径位置一样,是改名
如果源文件和目标文件路径位置不一样,是移动也可以移动并改名
格式:rm? [选项]? 要删除的文件或目录
选项 | 说明 |
---|---|
-f | 强制 |
-i | 交互 |
-r | 递归 |
格式:shred [OPTION]... FILE...
安全的删除数据
选项 | 说明 |
---|---|
-z | 最后一次覆盖添加0,以隐藏覆盖操作 |
-v | 能够显示操作进度 |
-u | 覆盖后截断并删除文件 |
-n# | 指定覆盖文件内容的次数(默认是3次) |
查找命令/文件存放目录
搜索范围由环境变量PATH决定(echo $ PATH)
格式:
which? 命令/程序名? ?
which? -a? 命令/程序名
查找外部命令:?
which is? 查找得更精准
where is 会在固定的5个文件夹中找
优点和缺点
优点:快
缺点:1.不够精确,模糊查找;
2.找是系统的数据库文件,不具备实时性;
3.不是去磁盘上真的给你找,而是去数据库找;
对于老旧文件查找还是比较好的
采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找
优点:1.精确查找;2.选项多,查找的功能多
缺点:慢
查找类型 | 关键字 | 说明 |
---|---|---|
按名称查找 | -name | 根据目标文件的名称进行查找,使用通配符? ?*? ? |
按文件大小 | -size | 根据目标文件的大小进行查找, 一般使用“ +?”、“ - ”号设置超过或小于指定的大小作为查找条件 常用的容量单位包括kB(k要小写)、MB、GB |
按文件属性主查找 | -user | 根据文件是否属于目标用户进行查找 |
按文件类型查找 | -type | 根据文件的类型进行查找 文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等 |
各表达式之间使用逻辑运算符:
“ -a ”表示 而且(and)
“ -o ”表示 或者(or)
“?not ”非? ?或者!
如:
find /boot -size + 1024k -a -name “vmlinuz*”
find /boot -size + 1024k -o -name “vmlinuz*”
find时间命令延伸?
找到一个30天以上 以log结尾的普通文件
find / -name "*log" -type f -mtime +30
找到一个30天以上 以log结尾的普通文件并删除
find / -name "*log" -type f -mtime +30 -delete
exec 连接符 连接find命令和下一个命令
{}代表find 找到的内容
\; 固定格式 代表结束
处理动作:
-ls? 显示详细信息?
-delete 删除
-ok? 询问是否要操作
-exec 不询问直接操作
延伸:硬盘有一个T,无法再建文件,inode号用完了,解决办法删除空文件(find /opt/ -empty?)
?find? /opt/? -empty
在Linux文件详细信息中,第一个字符为p代表是管道文件
可以将前一个命令的结果 当做最后一个命令的对象执行
如:
ls | wc -l
管道符可以添加多个;将第一个命令的执行结果当做参数传给后一个命令去执行。