linux文件系统及文件类型

linux的文件系统

根文件系统(rootfs:root filesystem

 

FHS: (FileSystem Heirache Standard)

/etc , /usr , /var , /root , /home , /div

/boot: 引导文件存放目录,内核文件(vmlinuz),引导加载器(bootloader,grub)都存放于此目录

/bin: 所有用户使用的基本命令,不能关联至独立分区,OS启动即会用到的程序

/sbin: 管理类的基本命令,不能关联至独立分区,OS启动即会用到的程序

/lib: 基本的共享库文件,以及内核模块文件

/lib64: 专用于x86_64系统上的辅助共享库存放位置(64位系统下,库文件实际的存放位置)

/etc: 配置文件目录(纯文本文件)注:可以使用文件编译器修改大部分配置

/home/USERNAME : 普通用户家目录

/root: 管理员家目录

/media: 便携式移动设备挂载点

/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: 第三方应用程序的安装位置

 

/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 , /uer/local/sbin

源文件:/lib , /lib64 , /usr/lib , /usr/lib64 ,

配置文件:/etc , /etc/DIRECTORY , /usr/local/etc

帮助文件:/usr/share/man , /usr/share/doc , /usr/local/share/man , /usr/local/share/doc

 

Linux下的文件类型

-(f): 普通文件

d: 目录文件

b: 块设备

c: 字符设备

l: 符号链接文件(软链接)

p: 管道文件

s: 套接字文件 socket(用来实现通信 IP+端口号)

 

系统管理类命令:

关机:

halt , poweroff , shutdown , init 0

重启:

reboot , shutdown , init 6

跟用户登录相关:

who , whoami , w

 

关机或重启:

halt  poweroff  reboot

-f: 强制 不调用shutdown

-p: 切断电源

 

shutdown:

shutdown [OPTION]... TIME [MESSAGE]

-r: reboot重启

-h: halt

-c: cancel 取消关机操作

 

TIME:

now: 立刻

+m: 相对时间表示法,从命令提交开始多久之后 例:+3

hh:mm 绝对时间表示,指明具体时间

 

用户登录信息查看命令:

whoami: 显示当前登录有效用户

who: 系统当前所有的登录会话

w: 系统当前所有的登录回话及所做的操作

 

02

bash 的基础特性

(1)命令历史

   history

环境变量:

HISTSIZE: 命令历史记录的条数

HISTFILE: ~/.bash_history

HISTFILESIZE: 命令历史文件记录历史的条数

 

history  -d  OFFSET 清空条数

history  # : 显示历史中最近的#条命令

-a : 手动追加当前会话缓冲区的命令历史至历史文件中

 

调用历史中的命令:

!# :重复执行第#条命令

!! :  重复执行最后一条命令

控制命令历史的记录方式:

环境变量:HISTCONTROL

ignorespace:忽略命令历史中以空格开头的指令

ignoredups:忽略重复的命令,连续且相同为“重复”

ignoreboth: 上述两者

 

修改环境变量值的方式:export 变量名=”值”(只对当前shell进程有效)

变量赋值:把赋值符号后面的数据存储于变量名指向的内存空间

 

(2)命令补全

bash执行命令

内部命令:bshell自带的命令

外部命令:bash根据PATH环境变量定义的路径,自左向右在每个路径受训以给定命令名的文件,第一次找到即为要执行的命令。

 

直接补全:Tab键,用户给定的字符串只有一条唯一对应的命令

当用户给定的字符串为开头的命令不唯一,则再次Tab 则给出列表

 

(3)路径补全

把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以其开头的文件名

如果唯一,则直接补全

否则,再次Tab,给出列表

 

(4)命令行展开

~: 展开围用户的主目录

~USERNAME: 展开围指定用户的主目录

{}: 可承载一个以逗号分隔的列表,并将其展开为多个路径

/tmp{a,b}  =  /tmp/a , /tmp/b

练习:

(1)创建/tmp/x/y1 , /tmp/x/y2 , /tmp/x/y1/a , /tmp/x/y1/b , /tmp/x/y2/a , /tmp/x/y2/b

mkdir  /tmp/x/{y1,y2}/{a,b}

(2)创建 x_m , x_n , y_m , y_n

mkdir  {x,y}_{m,n}

(5)命令的执行结果状态

bash使用特殊变量$? 保存最近一条命令的执行状态结果

成功: 0

失败: 1~255

查看命令执行结果:echo $?

 

程序的执行有两类结果:

程序的返回值

程序的执行状态结果

 

 

目录管理类命令:

mkdir , rmdir

 

mkdir  [options]  /path/to/somewhere  可以一次创建多个目录

-p: 如果文件存在不报错,且可自动创建父目录

-v: 显示详细信息

-m: 创建目录是直接指定权限

 

rmdir  [option]  DIRECTORY

只能删除目录,且目录为空

tree :显示树状结构

-d: 只显示目录

-l level: 指定显示的层及数目

-p pattern: 只显示由指定pattern匹配到的路径

 

文本文件查看类命令:

cat , tac , more , less , tail , head

 

more [options..] FILE

-d: 显示翻页及退出提示

less [options..] FILE

使用man查看帮助文档用的就是less

head tail

-c #: 指定获取前()#个字节

-n #: 指定获取前()#

tail -f:跟踪显示文件新追加的内容(Ctrl+c 退出)

 

文件的时间戳管理工具:

查看文件状态:stat

 

三个时间戳:

access time: 访问时间  简写:atime  读取文件内容

modify time: 修改时间  mtime  改变文件内容(数据)

change time: 改变时间       ctime   元数据发生改变

 

touch命令:修改文件时间或创建新文件

-a: 仅修改访问时间

-c: 仅修改文件的时间,若文件不存在则不创建新文件

-t: 后面可以接欲修改的时间而不用目前的时间,格式为[YYMMDDHhhmm]

 

你可能感兴趣的:(linux文件系统及文件类型)