1、查看切换显示统计目录
1.1 pwd
[root@localhost ~]# pwd //显示当前路径
/root
[root@localhost bin]# cd /bin
[root@localhost bin]# ll /bin
lrwxrwxrwx. 1 root root 7 8月 6 20:57 /bin -> usr/bin
[root@localhost bin]# pwd -P
/usr/bin
#-P 显示真实路径
1.2 cd
cd 目标位置
| 命令 | 效果 |
|---|---|
| cd cd ~ | 若不指定目标位置,切换到当前用户的宿主目录(家目录) |
| cd - | 到前一次目录 |
| 一个点号“.”开头 | 表示以当前的工作目录作为起点(已点开头的是) |
| 两个点号“..”开头 | 表示以当前目录的上一级目录(父目录)作为起点 |
| “~用户名”形式开头 | 表示以指定用户的宿主目录(家目录)作为起点 |
| "."开头文件 | 表示隐藏文件 |
[root@localhost ~]# cd /etc/
[root@localhost etc]#
[root@localhost ~]# cd
[root@localhost ~]#
[root@localhost ~]# cd ~
[root@localhost ~]#
1.3 ls
ls [选项] [文件或目录… ]
- -l 已长格式显示文件和目录列表 ll=ls -l
- -a 显示全部包括隐藏文件
- -A 显示全部文件或隐藏文件,但不包括 . 和..
- -d 只显示当前目录
- -h 友好显示文件大小
- -R 递归显示该目录及该目录的子目录下的所有内容
- --color 显示颜色
- -S 按从大到小排序
颜色表示的文件类型:
- 黑色数据文件 TXT
- 绿色 可执行文件
- 黄色 块设备文件
- 红色 压缩包
- 蓝色 文件夹
- 天蓝色 连接文件(快捷方式)
[root@localhost ~]# vim /etc/DIR_COLORS#颜色在这里显示
文件类型
-
- 普通文件
- d 目录文件directory
- l 符号链接文件link
- b 块设备block 比如直接读1块 /dev 4k (512*8(扇区)=4096字节=4k)
- c 字符设备character 一个字符一个字符读取 /dev/zero (/dev/null)
- p 管道文件pipe 两个软件联系 A-管道文件-B A 写 B 读 单向的
- s 套接字文件socket 可以双向的 注:file命令可以识别文件类型,文件后缀无法判断文件类型,文件后缀无所谓
[root@localhost data]# ls /run/
autofs.fifo-misc
#管道
gssproxy.sock
#套接字
touch file{A..Z}.txt ls file[zhou].txt
1.4 通配符
| 符号 | 效果 |
|---|---|
| ? | 匹配一个字符 f?.txt |
| * | 匹配所有非隐藏的字符无论多长多短,但不匹配 "." 开头的文件,即隐藏文件 |
| {1..10} | 1到10 |
| {a..z} | a b c ...z |
| {A..Z} | A B C .....Z |
| [123] | 取其中之一有就显示没有也无所谓 |
| [a-z] | 范围需要注意 |
| [0-9] | 匹配数字范围(0123456789) |
| \ | 转义符,表示原来的意思 |
| [[:lower:]] | 小写字母表示 a-z |
| [[:upper:]] | 大写字母表示 A-Z |
| [^zhou] | 匹配列表中的所有字符以外的字符 |
| [[:digit:]] | 任意数字,相当于0-9 |
[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
[root@test1 opt]# touch f{a..z}.log
[root@test1 opt]# touch f{A..Z}.log
[root@test1 opt]# 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@test1 opt]# ls f[zhou].log
#####四个其中的之一有就全显示
fh.log fo.log fu.log fz.log
[root@test1 opt]# ls f[x-z].log
####显示的xXyYz 不包括Z
fx.log fX.log fy.log fY.log fz.log
[root@test1 opt]# ls f[a-c].log
#####显示的A b B c C 不包括a
fa.log fA.log fb.log fB.log fc.log
[root@test1 opt]# ls f{a..c}.log
#显示所有小写
-rw-r--r-- 1 root root 0 Nov 7 09:46 fa
-rw-r--r-- 1 root root 0 Nov 7 09:46 fb
-rw-r--r-- 1 root root 0 Nov 7 09:46 fc
[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:]]*
########################显示大写字母
[root@localhost ~]# ls 1[[:upper:]]*
1A1.txt 1E1.txt 1I1.txt 1M1.txt 1Q1.txt 1U1.txt 1Y1.txt
######[0-9]只能匹配10 以下的
[root@localhost data]# touch f{1..10}.txt
[root@localhost data]# touch f{10..20}.txt
[root@localhost data]# ll f[0-9].txt
-rw-r--r--. 1 root root 0 8月 29 01:50 f1.txt
-rw-r--r--. 1 root root 0 8月 29 01:50 f2.txt
-rw-r--r--. 1 root root 0 8月 29 01:50 f8.txt
-rw-r--r--. 1 root root 0 8月 29 01:50 f9.txt
[root@localhost data]# ll f[0-9][0-9].txt
#两个 [0-9]可以匹配双数字
[root@localhost data]# ll f{1..20}.txt
#{10..20}可以匹配双数字
[root@localhost data]# ll f??.txt
#两个?号可以匹配
[root@localhost data]# ll f*.txt
# *也可以
-rw-r--r--. 1 root root 0 8月 29 01:51 f10.txt
-rw-r--r--. 1 root root 0 8月 29 01:51 f11.txt
-rw-r--r--. 1 root root 0 8月 29 01:51 f12.txt
[root@localhost data]# ls /etc/.*
#显示隐藏文件也包括.. 的上层目录
#如果不想看上层目录 就要加-d 只显示当前目录
[root@localhost data]# ls /etc/.* -d
/etc/. /etc/.. /etc/.java /etc/.pwd.lock /etc/.updated
1.5 alias
临时修改
- alias 命令别名 = ’命令‘
- unalias 别名命令 删除别名
- \加别名命令 (显示原始命令)
du --max-depth=1 /etc/ |sort -nr
du -d 2 /etc/ |sort -nr
a s h
[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>外部命令(先查找别名在查找内部命令,缓存最后外部)
1.6 du
du [选项] [文件或目录… ]
| 选项 | 说明 |
|---|---|
| -a | 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录 |
| -h | 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果 |
| -s | 只统计所占用空间总的(Summary)大小,而不是统计每个子目录、文件的大小 |
| --max-depth=n | 最大显示到第n层 |
| 注:a s无法同时使用 |
1.7-which
搜索范围由环境变量 PATH 决定(echo $PATH)
which+命令/程序名(默认当找到第一个目标后不再继续查找)
which±a+命令/程序名(在所有搜索路径中查找)
总结
- ls在生产环境内慎用,可能会文件量过大会直接死机