一、Linux的文件系统
Linux的文件系统是根文件系统(root filesystem)
各个文件夹:
- /boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录;
- /bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序;
- /sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序;
- /lib:基本共享库文件,以及内核模块文件(/lib/modules);
- /lib64:专用于x86_64系统上的辅助共享库文件存放位置;
- /etc:配置文件目录(纯文本文件);
- /home/USERNAME:普通用户家目录;
- /root:管理员的家目录;
- /media:便携式移动设备挂载点;
- cdrom
- usb
- /mnt:临时文件系统挂载点;
- /dev:设备文件及特殊文件存储位置;
- b: block device,随机访问
- c: character device,线性访问
- /opt:第三方应用程序的安装位置;
- /srv:系统上运行的服务用到的数据;
- /tmp:临时文件存储位置;
- /usr: universal shared, read-only data;
- bin: 保证系统拥有完整功能而提供的应用程序;
- sbin:
- lib:
- lib64:
- include: C程序的头文件(header files);
- share:结构化独立的数据,例如doc, man等;
- local:第三方应用程序的安装位置;
- bin, sbin, lib, lib64, etc, share
- /var: variable data files
- cache: 应用程序缓存数据目录;
- lib: 应用程序状态信息数据;
- local:专用于为/usr/local下的应用程序存储可变数据;
- lock: 锁文件
- log: 日志目录及文件;
- opt: 专用于为/opt下的应用程序存储可变数据;
- run: 运行中的进程相关的数据;通常用于存储进程的pid文件;
- spool: 应用程序数据池;
- tmp: 保存系统两次重启之间产生的临时数据;
- /proc: 用于输出内核与进程信息相关的虚拟文件系统;
- /sys:用于输出当前系统上硬件设备相关信息的虚拟文件系统;
- /selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置;
Linux上的应用程序的组成部分:
- 二进制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
- 库文件:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
- 配置文件:/etc, /etc/DIRECTORY, /usr/local/etc
- 帮助文件:/usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc
二、文件管理
1、文件类型:
- - (f):普通文件;
- d: 目录文件;
- b: 块设备;
- c: 字符设备;
- l: 符号链接文件;
- p: 管道文件;
- s: 套接字文件;socket;
2、文件时间戳管理工具
1)stat命令
查看文件状态
命令格式:stat /PATH/TO/SOMEFILE # 获取指定文件的元数据,会显示3个时间戳
三个时间戳:
- access time:访问时间,简写为atime,读取文件内容
- modify time: 修改时间, 简写为mtime,改变文件内容(数据)
- change time: 改变时间, 简写为ctime,元数据发生改变
2)touch命令
创建文件和修改文件的时间戳
命令格式:touch [OPTION]... FILE...
选项:
- -a: only atime
- -m: only mtime
- -t STAMP:
- STAMP = [[CC]YY]MMDDhhmm[.ss] # 年月日时分.秒
- -c: 如果文件不存在,不创建
3、各种命令
1)cp命令
命令格式:cp [OPTION]... [-T] SOURCE DEST;cp [OPTION]... SOURCE... DIRECTORY;cp [OPTION]... -t DIRECTORY SOURCE...
a.cp SRC DEST
SRC是文件:
- 如果目标不存在:新建DEST,并将SRC中内容填充至DEST中;
- 如果目录存在:
- 如果DEST是文件:
- 将SRC中的内容覆盖至DEST中(此时建议为cp命令使用-i交互式选项)
- 如果DEST是目录:
- 在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中;
- 如果DEST是文件:
SRC是目录:此时使用-r选项,递归的cp目录
- 如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中;
- 如果DEST存在:
- 如果DEST是文件:报错
- 如果DEST是目录:将SRC目录下的文件,全部copy到DEST目录下
b.cp SRC... DEST # SRC...:多个文件
DEST必须存在,且为目录,其它情形均会出错;
常用选项:
- -i:交互式
- -r, -R: 递归复制目录及内部的所有内容;
- -a: 归档,相当于-dR --preserv=all
- -d:--no-dereference --preserv=links
- --preserv[=ATTR_LIST]
- mode: 权限
- ownership: 属主属组
- timestamp:
- links
- xattr
- context
- all
- -p: --preserv=mode,ownership,timestamp,复制权限,属组,时间戳
- -v: --verbose,显示进度条
- -f: --force,强制复制(不会提示)
2)mv命令
move,移动文件
指令格式:mv [OPTION]... [-T] SOURCE DEST;mv [OPTION]... SOURCE... DIRECTORY;mv [OPTION]... -t DIRECTORY SOURCE...
选项:
- -i: 交互式
- -f: 强制
3)rm命令
remove,删除
指令格式:rm [OPTION]... FILE...
常用选项:
- -i: 交互式
- -f: 强制删除
- -r: 递归
- -rf:可以递归的删除文件夹