一、目录层次
1、/(根目录)
一级目录 | 功能 | |||||||
/bin | 存放系统命令,普通用户和root都能使用 | |||||||
/boot | 存放系统启动文件 | |||||||
/dev | 存放设备文件 | |||||||
/etc | 存放配置文件 | |||||||
/home | 普通用户家目录 | |||||||
/lib | 系统调用的函数库保存位置 | |||||||
/media | 挂载目录,可移动设备 | |||||||
/mnt | 默认挂载目录 | |||||||
/opt | 第三方软件安装保存位置 | |||||||
/proc | 保存系统内核,进程,外部设备状态,网络状态 | |||||||
/root | 超级用户的家目录 | |||||||
/run | 系统正在运行的文件 | |||||||
/sbin | 只有root可以使用的系统命令 | |||||||
/var | 存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。 | |||||||
/usr | 全称为 Unix Software Resource,所有系统默认的软件都存储在 /usr 目录下 |
2、文件类型
- d 目录文件directory
- b 块设备文件block 块设备文件,就是保存大块数据的设备,比如最常见的硬盘。
- c 字符设备character 这些文件通常隐藏在 /dev/ 目录下,当进行设备读取或外设交互时才会被使用; 一个字符一个字符读取 /dev/zero (/dev/null)
- l 符号链接文件link
- p 管道文件pipe 主要用于进程间通信单向传输, 一个只读、另一个只写 ,其主要作用是解决多个程序同时存取一个文件所造成的错误。
- s 套接字文件socket 套接字文件一般隐藏在 /var/run/ 目录下,用于进程间的网络通信。(可以双向)
- -普通文件 普通文件,包括纯文本文件、二进制文件、各种压缩文件等
二、文件查看
1、cat
作用:查看文件内容,一次显示整个文件内容
语法:cat [选项] 文件名...
-n 显示文件行号
-A 显示隐藏字符
-b 跳过空行不编号
tac 从最后向前显示
例:cat特殊用法,合并文件
2、more
作用:以分页的形式显示文件内容
语法:more + 文件名
注:按回车翻一行,按空格翻一页,输入q退出,more不支持后退,文件看完自动退出
3、less
作用:以分页形式显示文件内容
语法:less + 文件名
注:支持前后翻滚,pageup(向上翻页),pagedown(向下翻页),回车键向下翻一行,空格向下翻一页,上下方向键可以上下翻一行,文件看完不会自动退出,按q键退出
4、head
作用:显示文件开头的内容,默认显示前10行
语法:head [选项] 文件名
-n 查看文件开始头n的行数
5、tail
作用:显示文件尾部的内容,默认显示文件末尾10行
语法:tail [选项] 文件名
选项
-f 动态显示数据,常用来查看日志
-n 显示文件尾部n行的内容
-f 动态显示数据,常用来查看日志
例:查看/etc/passwd文件的第3行和倒数第7行
查看第三行:head -n 3 /etc/passwd | tail -n +3
查看倒数第7行:tail -n 7 /etc/passwd | head -n -6
三、文件查找
1、which,whereis
作用:which:查看可执行命令的位置
whereis:查看可执行命令的位置及相关文件
注:只能用来查命令
2、locate
作用:配合数据库缓存,快速查看文件位置
locate和find -name命令作用差不多,但是要比find快的多,因为find查找具体目录文件,而locate搜索数据库/var/lib/mlocate/mlocate.db,这个数据库存有本地所有的文件信息,是Linux自动创建并且每天自动更新。相关信息在/etc/updatedb.conf,查看定时任务信息在/etc/cron.daily/mlocate
注:locate是模糊查询,并且刚创建的文件查找不到,需要updatedb,手动更新数据库后才能查找。
3、grep
作用:过滤,可以使用正则表达式搜索文本,并把结果打印出来
语法:grep [选项]...PATTERN [file]...
pattern正则表达式
. 单个任意字符
^$ 空行
^# 以#开头
#$ 以#结尾
选项
-i 忽略大小写
-n 显示行号
-r 递归过滤目录中的所有文件
-o 只过滤你想要的
-w 只匹配完整的单词
-c 显示找到具体的行数
-A(after)显示包含要找信息所在行的后面n行
-B(before)显示包含要找信息所在行的前面n行
-C(context)显示包含要找信息所在行的前后n行
-v 取反
-i 忽略大小写
-n 显示行号
-r 递归过滤目录中的所有文件
-o 只过滤你要的
例:如何在一个拥有大量文件的文件夹中过滤出你想要的信息?在/data中
找出root
例:找出/etc/passwd中包含root和sbin的行
-w 只匹配完整的单词
-c 显示找到具体的行数
-A(after)显示包含要找信息所在行的后面n行
-B(before)显示包含要找信息所在行的前面n行
-C(context)显示包含要找信息所在行的前后n行
4、find
作用:查找文件
语法:find [查找范围] [查找条件] [print]
find是实时精确查找,默认递归查找,在全部硬盘查找
-name按文件名查找
-size按文件大小查找
-user按文件属主查找
-group按属组查找
-type按文件类型查找
-inum按文件inode号查找
-maxdepth level -mindepth level按目录层级查找
-mtime -n / +n 按文件更改时间查找
-n 文件更改时间距现在n天以内
+n 文件更改时间距现在n天之前
-exec 对匹配出的参数执行其他Linux命令,命令格式: 命令 {} \; 注:{}代表前面查找到的内容。
找到当前文件夹以.bsck结尾的文件并以长格式显示
-name按文件名查找
找到当前文件夹下以.txt结尾的文件
-size按文件大小查找
查找root目录下大于1M的文件
-user按文件的属主查找
查找/目录下属主为zhangsan的文件
-type按文件类型查找
查找/dev目录下文件类型为b的文件
-inum按inode号查找
查找inode号为68849366的文件
-mtime按文件更改时间查找
查找/etc下一天内更改过的文件
-maxdepth level -mindepth level按目录层级查找
查找/opt下第二层文件
-group按属组查找
查找/opt目录下属组为root的文件
5、wc
作用:统计文件中的信息
-l 显示文件行数
-w 单词数
-c 字节数(空格,tab,回车都占字节)