3.3 ls (list) 列出目录/文件的详细属性信息
生产环境中慎重直接使用,文件量过大会直接死机(有的服务器上的文件是千万级别)。生产环境中不能单独使用,需要配合通配符。
命令格式:
ls [选项] [文件或目录… ]
命令选项:
选项 | 说明 |
-l | 以长格式显示文件和目录列表 ll=ls -l |
-a | 显示全部包括隐藏文件 |
-A | 显示全部文件或隐藏文件,但不包括 . 和.. |
-d | 只显示当前目录 |
-h | 友好显示文件大小 |
-R | 递归显示该目录及该目录的子目录下的所有内容 |
--color | 显示颜色 |
-S | 按从大到小排序 |
-i | 显示inode号 |
-t | 根据文件创建时间进行排序,由新到旧,新建的排在前面 |
-tr | 根据文件创建时间进行排序,由旧到新 |
常用搭配:
- ls -alh:以长格式显示目录下的全部文件,包括隐藏文件、. 和.. ,并友好显示文件大小。
- ls -ltr:以长格式显示目录下的文件,根据文件创建时间进行排序,新建的排在后面。
- ls 只能统计文件的大小,针对目录只统计目录本身的大小、而不统计目录里子目录或文件的总大小。
- 目录本身的大小是根据所含目录项计算的,不是目录内文件大小的总和。
示例:
1)显示当前目录的属性信息
[root@localhost ~]# ls -dl //查看当前目录的属性信息 dr-xr-x---. 14 root root 4096 1月 21 10:16 . 复制代码
2)显示当前目录下的所有文件(不包含隐藏文件)
[root@localhost ~]# ls //显示当前目录下的所有文件(不包含隐藏文件) anaconda-ks.cfg initial-setup-ks.cfg xiao1 公共 模板 视频 图片 文档 下载 音乐 桌面 复制代码
3)显示当前目录下的所有文件(包含隐藏文件)
[root@localhost ~]# ls -a //显示当前目录下的所有文件(包含隐藏文件) . .bash_history .bashrc .cshrc .ICEauthority .tcshrc 公共 图片 音乐 .. .bash_logout .cache .dbus initial-setup-ks.cfg .viminfo 模板 文档 桌面 anaconda-ks.cfg .bash_profile .config .esd_auth .local xiao1 视频 下载 复制代码
4)列出长数据串,显示出文件的属性与权限等数据信息,并友好显示文件大小
[root@localhost ~]# ls -lh 总用量 8.0K -rw-------. 1 root root 1.8K 1月 18 17:38 anaconda-ks.cfg -rw-r--r--. 1 root root 1.8K 1月 18 17:40 initial-setup-ks.cfg -rw-r--r--. 1 root root 0 1月 18 11:39 xiao1 drwxr-xr-x. 2 root root 6 1月 18 17:40 公共 drwxr-xr-x. 2 root root 6 1月 18 17:40 模板 drwxr-xr-x. 2 root root 6 1月 18 17:40 视频 drwxr-xr-x. 2 root root 6 1月 18 17:40 图片 drwxr-xr-x. 2 root root 6 1月 18 17:40 文档 drwxr-xr-x. 2 root root 6 1月 18 17:40 下载 drwxr-xr-x. 2 root root 6 1月 18 17:40 音乐 drwxr-xr-x. 2 root root 6 1月 18 17:40 桌面 复制代码
3.4 通配符
去匹配文件名(包括目录)
符号 | 效果 |
? | 匹配一个字符 f?.txt |
* | 匹配所有非隐藏的字符无论多长多短,但不匹配 "." 开头的文件,即隐藏文件 |
{1..10} | 1到10 |
{a..z} | a b c ...z |
{A..Z} | A B C .....Z |
[123] | 包含其中之一就显示,没有也无所谓(此处括号里只表示单个字符) |
[0-9] | 匹配数字范围(0123456789),表示单个数字 |
[a-z] | 范围需要注意 (表示从aA、bB到z,不含Z),表示单个字母 |
[A-Z] | 从A到Z(只含大写)中的任意一个字母 |
\ | 转义符,表示原来的意思 |
[[:lower:]] | 小写字母表示 a-z |
[[:upper:]] | 大写字母表示 A-Z |
[^zhou] | 匹配列表中的所有字符以外的字符 |
[[:digit:]] | 任意数字,相当于0-9 |
示例:
1)*的使用。
[root@localhost data]# ls -a * //不显示隐藏文件 1 [root@localhost data]# ls -a //显示隐藏文件 . .. 1 [root@localhost data]# ls * //*不包括.开头的 ls: 无法访问*: 没有那个文件或目录 [root@localhost data]# ls .* //包括了 .. 上层目录 .: ..: aaa boot dev home lib64 misc net proc run sdb1 sys usr bin data etc lib media mnt opt root sbin srv tmp var 复制代码
2)使用{a..z}和{A..Z},[a-z]和[A-Z]。大小写字母的区别比较。
[root@localhost data]# touch f{a..z}.log [root@localhost data]# touch f{A..Z}.log [root@localhost data]# ls 123456.txt fa.log fe.log fj.log fo.log ft.log fy.log 123.txt f{A.Z}.log ff.log fk.log fp.log fu.log fz.log 1.txt fb.log fg.log fl.log fq.log fv.log rh 2.txt fc.log fh.log fm.log fr.log fw.log test.txt abc.txt fd.log fi.log fn.log fs.log fx.log [root@localhost data]# ls f[zhou].log //包含z、h、o、u四个字母中的任意一个就会显示(只匹配单个字符) fh.log fo.log fu.log fz.log [root@localhost data# ls f[x-z].log //显示xXyYz,不包括Z fx.log fX.log fy.log fY.log fz.log [root@localhost data]# ls f[a-c].log //显示aAbBc,不包括C fa.log fA.log fb.log fB.log fc.log [root@localhost data]# ls f{a..c}.log //显示abc所有小写 fa.log fb.log fc.log [root@localhost data]# 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 data]# ls 1[[:upper:]]* //显示大写字母 [root@localhost data]# ls 1[[:upper:]]* 1A1.txt 1E1.txt 1I1.txt 1M1.txt 1Q1.txt 1U1.txt 1Y1.txt 复制代码
3)使用{1..10}和[0-9],数字的匹配。
[root@localhost data]# touch f{1..9}.txt [root@localhost data]# touch f{10..20}.txt [root@localhost data]# ls f[0-9].txt //[0-9]只能匹配10以下的数字 f1.txt f2.txt f3.txt f4.txt f5.txt f6.txt f7.txt f8.txt f9.txt [root@localhost data]# ls f[0-9][0-9].txt //两个[0-9]可以匹配双数字 f10.txt f11.txt f12.txt f13.txt f14.txt f15.txt f16.txt f17.txt f18.txt f19.txt f20.txt [root@localhost data]# ls f{10..20}.txt //{10..20}可以匹配双数字 f10.txt f11.txt f12.txt f13.txt f14.txt f15.txt f16.txt f17.txt f18.txt f19.txt f20.txt [root@localhost data]# ls f??.txt //两个?号可以匹配两个字符 f10.txt f11.txt f12.txt f13.txt f14.txt f15.txt f16.txt f17.txt f18.txt f19.txt f20.txt [root@localhost data]# ls f*.txt //*可以匹配任意字符 f10.txt f12.txt f14.txt f16.txt f18.txt f1.txt f2.txt f4.txt f6.txt f8.txt f11.txt f13.txt f15.txt f17.txt f19.txt f20.txt f3.txt f5.txt f7.txt f9.txt 复制代码
4)显示隐藏文件
[root@localhost data]# ls /etc/.* //显示隐藏文件也包括..的上层目录 [root@localhost data]# ls /etc/.* -d //如果不想看上层目录 就要加-d 只显示当前目录 /etc/. /etc/.. /etc/.java /etc/.pwd.lock /etc/.updated 复制代码
3.5 alias 别名命令
临时修改(关机或退出终端会自动消失)
- alias 命令别名 = ’命令‘
- unalias 别名命令 删除别名
- \加别名命令 (显示原始命令)
[root@localhost dev]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 [root@localhost dev]# alias myvim='vim /etc/sysconfig/network-scripts/ifcfg-ens33' [root@localhost dev]# alias myls=ls -alh //如果不加引号,无法识别 -bash: alias: -alh: 未找到 [root@localhost dev]# ls [root@localhost dev]# \ls //就想使用原来的命令,在命令前加转义符\ [root@localhost dev]# unalias myvim //删除别名 [root@localhost dev]# myvim bash: myvim: 未找到命令... 复制代码
永久修改(需要修改配置文件)
- 在/etc/.bashrc 会影响全部
- /root/.bashrc只影响当前用户
注意:
- 命令执行顺序:绝对路径下的命令>别名命令>内部命令>hash命令>外部命令。
- 实际项目中需先查看其他人有没有定义别名命令。
3.6 du (disk usage) 统计目录或文件所占磁盘空间大小的命令
命令格式:
du [选项] [文件或目录… ]
选项 | 说明 |
-a | 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录(包括隐藏文件) |
-h | 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果 |
-s | 只统计所占用空间总的(Summary)大小,而不是统计每个子目录、文件的大小 |
--max-depth=n | 最大显示到第n层 (-d n) |
--exclude | 排除某些文件后,显示剩余大小 |
示例:
[root@localhost ~]# du --max-depth=1 //统计当前目录大小,只显示到第二级目录 3800 ./.cache 4 ./.dbus 108 ./.config 0 ./桌面 0 ./下载 0 ./模板 0 ./公共 0 ./文档 0 ./音乐 0 ./图片 0 ./视频 312 ./.local 4272 . 复制代码
注意:
- -a -s无法同时使用。
- du显示的是文件占磁盘大小,不是文件的实际大小。
- 每个磁盘分块,每块(4K)只能存一个文件,当文件不足4K时,du统计也会按4K计算。