目录分类
/usr 系统软件资源目录
/bin /usr/bin 系统命令,所有用户可执行
/sbin /usr/sbin 系统命令,仅root可执行
/boot 系统启动数据
/etc 系统默认配置文件
/dev 硬件设备文件
/lib 系统功能函数库,so文件
/sys /proc 内存挂载点,直接写入内存,不能动
/var 系统可变文档目录
目录操作
1 | cd # 等同于 cd ~ 回家 |
链接文件
硬链接
文件索引表中拥有相同的inode号和存储block块,看做同一个文件
创建后文件引用计数加1
不能跨分区创建硬链接;目录不能创建硬链接.
有限制,易混淆,平时不建议用软链接
有自己的inode号和block块,但数据块中只保存原文件的文件名和inode号
类似win快捷方式,删除原文件,软链接不可用
block中文件名(路径)和inode号都符合才找得到
软链接文件权限都为rwxrwxrwx,是否可以访问要看原文件的权限
1 | ln -s src dis # link -s 软链接 src要写绝对路径!除非src和dst在同一目录 |
文件搜索
locate 文件名
速度快,在数据库(索引)中按文件名查找文件,数据库在/var/lib/mlocate
一般一天一更新,updatedb
立即更新.
搜索时的排除项(不搜索的内容)配置在/etc/updatedb.conf
,如
1 | PRUNE_BIND_MOUNTS="yes" |
whereis 命令名
搜索(外部)命令,配置及其帮助文档所在位置,-b仅可执行文件,-m仅帮助文档.
有些命令找不到,如cd,因为它是shell的内置命令.
1 | whereis ls |
which 命令名
类似whereis,搜索(外部)命令所在位置及其别名.
echo $PATH
PATH环境变量定义的是系统搜索路径.
find [范围] [选项]
功能非常强大,可能较慢.find / -name 文件名
文件名需完全匹配,部分匹配用通配符:
符号 | 意义 |
---|---|
* | 匹配任意字符 |
? | 匹配任意一个字符 |
[ ] | 匹配任意一个中括号内的字符 |
find / -iname 文件名
不区分大小写find / -user 用户名
查找某用户的文件find / -nouser
查找没有所有者的文件,比如内核创建的文件,外来文件等find /var/log/ -mtime +10
查找10天前修改的文件,一般是日志文件.单位也支持分钟.
参数 | 说明 | 参数 | 说明 |
---|---|---|---|
-atime | 文件访问时间 | -10 | 10天内 |
-ctime | 文件属性修改时间 | 10 | 第10天 |
-mtime | 文件修改时间 | +10 | 10天前 |
find . -size 25k
查找当前目录下大小为25k的文件
注意大小写:
参数 | 说明 | 参数 | 说明 |
---|---|---|---|
-25k | 小于25kb | -4M | 小于4Mb |
25k | 等于25kb | 4M | 等于4Mb |
+25k | 大于25kb | +4M | 大于4Mb |
find /root -inum 25225
查找inode节点为25225的文件
find /etc -size +20k -a -size -50k
多条件查询,在/etc下找大于20kb小于50kb的文件,-a(and) -o(or)
find /etc -size +20k -a -size -50k -exec ls -lh {} \;
显示查找结果的详细信息,多执行了ls -lh
对find结果执行操作:-exec/-ok 增加的命令 {} \ ;
grep [选项] "字符串" 文件名
在文件当中包含匹配符合条件的行,是部分匹配, -i忽略大小写 -v 排除指定字符串