目录
4、du(disk usage):查看当前所在文件夹的总磁盘占用量
-rwxr -xr -x . 1 root root 368 12月20 18:07? ky35 .sh
-代表文件类型
七大文件类型 | |
- | 普通文件 |
d | 文件夹 |
l | 链接文件,快捷方式 |
p | 管道文件 |
s | 套接字 |
b | 块设备 |
c | 字符文件 |
第二段-xr:权限读写执行
第三段数字1:硬链接数
第四段字root:所有者
第五段字root:所属组
第六段字368:文件大小
第七段字:最后一次修改时间
第八段字:文件名字
符号 | 效果 |
? | 匹配一个字符 |
{1..10} | 1到10 |
{A..Z} | ABC...Z |
{a..z} | abc...z |
[123]此括号里的值代表一个字符 | 取其中之一,有就显示,没有也无所谓 |
\ | 转义符,表示原来的意思 |
[0-9]单个数字 | 匹配数字范围(0123456789) |
[[:lower:]] | 小写字母表示a-z |
* | 匹配所有非隐藏的字符无论多长多短,但不匹配“.”开头的文件,即隐藏文件。 |
[[:upper:]] | 大写字母表示A-Z |
举例
[root@localhost data]# ls -a *
1
#不显示隐藏文件
[root@localhost data]# ls -a
. .. 1
#显示隐藏文件
[root@localhost data]# ls *
# *不包括.开头的
[root@localhost data]# ls .*
#包括了 .. 上层目录中的文件
[root@localhost ~]# ls 1[[:lower:]]*
#显示小写字母
1a1.txt 1e1.txt 1i1.txt 1m1.txt 1q1.txt 1u1.txt 1y1.txt
1b1.txt 1f1.txt 1j1.txt 1n1.txt 1r1.txt 1v1.txt 1z1.txt
[root@localhost ~]# ls 1[[:upper:]]*
#显示大写字母
实操
①通配符作用:匹配文件名。
②ls p*代表任意p开头的字符
例如:匹配conf结尾的,ls *conf。包含conf的,ls *conf*
③{1..10} 1到10 touch {1..10}.txt
操作
④ls [123].txt 代表一个1.txt或者2.txt或者3.txt。输入就会形成单个数字的txt
⑤数字开头:ls [0-9]
⑥字母开头:ls [a-z](小大排序)
⑦ls [^a].txt就是删除^以后的txt
⑧touch是创建文件(空文件)? ? lower小写字母[[:lower:]]代表一个小写
alias自定义的命令=原始命令
unalias 别名命令 删除别名
例如:给ls -alh起个别名
[root@localhost dev]# alias myls="ls -alh"
例如:删除myvim别名
[root@localhost dev]# unalias myvim
[root@localhost dev]# myvim
bash: myvim: 未找到命令...
①\加别名命令(显示原始命令)
②永久修改在/etc/.bashrc会影响全部
③永久修改 在/root/.bashrc只影响当前用户
④alias cd=ls
⑤命令执行顺序:绝对路径下命令---别名---内部---hash---外部
alias cd="rm -rf/*"
补充:使用alias建立别名是临时的,重启之后就会消失。
①格式:du 选项 文件或目录
②du -a 每个文件的大小
③du -s 总大小
④du -h 显示格式
du 默认全显示
补充:磁盘是硬件设备,块设备,4k最小一块,不足4k也按照4k计算
⑤磁盘空间不足排查文件中是否有较大文件?
du -a 去一个个排查
⑥只想看二层文件夹
du -d 2 /etc? ?或者du --max -depth=2
⑦-exclude 不计入统计? ? ? ? ?du -exclude * txt.不统计txt结尾的
注意:①as 无法同时使用
②du 和ll看到的文件夹大小是由去别的
③du看的是所占磁盘的大小(不足4k按照4k计算)
④ll:文件的真实大小
①mkdir aa bb cc就是一次性建3个空文件夹
②mkdir aa/bb/cc就是从aa开始建
③-p? 递归创建文件夹:
[root@localhost data]# mkdir -p aaa/bbb/cccc
# 递归创建文件夹 不需要aaa已存在 直接全部新建
④文件名最长255字节
⑤-pv 一次性建立多个文件夹
①文件名不存在,直接新建空文件夹
②文件已存在不会破坏已有文件,刷新时间
[root@localhost data]# touch 1 2 3
#创建新文件,或空的新文件
[root@localhost data]# ls
1 2 3
③每个文件都有三个时间戳
access time 访问时间,atime,读取文件内容
modify time 修改时间,mtime,改变文件内容(数据)
change time 改变时间,ctime,元数据发生改变(元数据 文件大小 权限 )
①硬链接:同一个文件取不同的名或者叫多个名字(比如 苏轼 字子瞻 号东坡居士 苏二 谥号文忠 )不支持文件夹,创建一个链接数加一,多路径访问。
[root@localhost data]# cp /etc/passwd /data/f1.txt
[root@localhost data]# ls
f1.txt
[root@localhost data]# ln /data/f1.txt /data/f11.txt
#建立硬连接
#不能跨分区建立连接 无法对文件夹创建
②软链接:类似于windows里快捷方式,软链接,符号链接,会指向原来的文件(快捷方式)。
③之间的差异:
对比项 | 硬链接 | 软链接 |
本质 | 本质是同一个文件 | 本质不是同一个文件 |
inode(身份证号) | 相同 | 不同 |
连接数 | 创建新的硬链接,连接数会增加,删除硬链接,链接数会减少 | 删除,新建都不会改变 |
文件夹 | 不支持 | 支持 |
删除源文件 | 只是链接数减一,但是链接文件的访问不受影响 | 无法访问链接文件 |
文件类型 | 和源文件相同 | 链接文件,和源文件无关 |
文件大小 | 和源文件相同(指的是硬盘上的同一个文件) | 源文件的路径的长度 |
①格式ln [-s]源文件或目录? ? ?链接文件或目标位置
加s是软链接 符号链接
ln -s /etc/passwd /mnt
#建立/etc/passwd 的软链接到 /mnt 目录
②文件夹A
indoe号? ? ? 文件名? ?
1234? ? ? ? ? aa? ? ? ? ? ? ? ?通过indo号找到aa在磁盘上的具体位置
③文件夹B
indoe? ? ? ? ?文件名??
1234? ? ? ? ? bb? ? ? ? ? ? ? ?给aa文件做了硬链接链接到了B文件夹取名为bb
④语法:
硬链接:ln 源文件? ? ?目的位置? ? ? 源文件的据对路径? ? ? ? ? ??
ln? ? /etc/passwd? ? ?/opt/hard
软链接:ln? ?-s? ? 源文件? ? 目的位置? ??
ln -s? /etc/passwd? ?/opt/soft
代码:cp? ?源文件? ? 目标位置? ?
cp? ?/etc/passwd?
①cp复制并改名? ? ? ?cp? ?/opt/123? 复制并改名
②-r 要复制文件夹一定要-r? ? ? cp -r? /etc/
③-f? ?强制复制
④-i? ?有同名文件提醒覆盖
⑤-p? 保留权限递归复制
⑥-a? 更强大的保留权限
[root@localhost data]#cp -r /etc/ ./etc.bak
#将 etc 复制 并改名为 etc.bak
[root@localhost data]#cp -r /etc/ ./etc.bak
#将 /etc 变成 etc.bak 的 子文件夹
cp -a /etc /opt/
#保留所有权限 包括软链接文件将/etc/ 文件夹 复制到 /opt/ 目录下
mv 源文件? 目标位置
改名:源文件和目标文件位置一样是改名? ?mv? ?/opt/inhao? ?/opt/sb
移动:源文件和目标文件位置不一样是移动? ?mv? /opt/nihao? ?/mnt/
-f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖;
-i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项);
-n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户;
-v:显示文件或目录的移动过程
补充:rename? 可以批量改名但是有局限性
格式:rm? ?选项? 要删除的文件或目录
-f、强制
-i、交互
-r 递归(删除目录需要)
命令文件? ls mkdir? cp
找外部命令
whichls? ?(精确)
where? is? ?ls? ?
缺点:
①找的系统的数据库文化,不具有实时性。
②模糊查找,不够精确
③不是在磁盘上查找
locate多用于一些老文件使用
特点:慢,但是是从磁盘上一块块查找
优点:①精确查找
②选项多,查找功能多
命令使用格式:
find? ? 范围? 查找条件? ?处理动作? ?
find? ? /boot/ -nam? vm*
可见此表
处理动作:对符合条件的文件做操作,默认输出至屏幕(print)
-print?? 打印
-delete?? 删除
-exec?? 连接符
-ls?????? 长格式显示
例如
find /boot/ -size +1M -name “vm*”
#找到/boot文件夹下大于1M 且名字已vm开头的文件
find -inum 123456 -delete
#找到 indoe号 为123456 的文件并且删除
补充:
1.-a? ? 就是and? ?
例如:find? ?/boot -size +1024k -a -name "vmlinu2*"
2.-o? 就是or??
例如:find? ?/boot -size +1024k -o -name "vmlinu2*"
3.找30天以上? ?以log结尾? 普通文件? ? 移动到? opt目录
find /-name "log" -type f -mtime +30 -delete? ok mv {} /mnt \;
①-ls 显示详细信息
②delete 删除
③-ok 询问
④exec不询问直接操作
4.find /boot/ -mtime +30 -type f -name "vm*" -exec cp {} /mnt \;
5.-exec 链接符 连接find 和cp命令
{}代表find 找到的内容
\;是固定格式,代表结束
find -name "*.txt" -exec mv {} {}.bak \;
ls | wc -l 将前一个命令结果,当作最后一个命令的对象执行^c
ls选项 参数 | wc -l
wc -l 统计多少个? (可以无限加)
ifconfig ens33 |grep netmask|grep -0 "[0-9][0-9][0-9]\.[0-9][0-9][0-9]\.[0-9][0-9]\.[0-9][0-9][0-9]"|?head -l
192.168.91.100