您的位置:首页 > 运维架构 > Linux

linux根文件系统

2015-12-18 14:55 381 查看
可执行文件类型:

windows下:PE
linux下:ELF

2.FMS:linux目录结构标准,常见的目录如下:
/boot:存放启动相关的文件,如initrd,vmlinux(系统内核)以及grub等
/dev: 存放设备文件

设备文件分为:

块设备:可随机访问设备(硬盘等)

字符设备:线性访问设备(如鼠标,显示器)

注:设备文件是一种特殊文件,只包含元数据(也就是文件的属性,如大小等等)并不包含真正的数据,如果我们用长格式ls显示会发现,大小那个字段变成了两个数字,这两个数字是主设备号(major)和次设备号(minor)
ls -l /dev/console

crw------- 1 root root 5, 1 Dec 17 01:38 console
/home:用户的家目录,通常是/home/USERNAME

注:root用户的家目录比较特殊,就在根下,名字就叫root 。 /root
/etc:系统相关的配置文件
/lib:库文件
动态库:以.so结尾的文件(shared object)

静态库:以.a结尾的文件
/lib/module:系统内核文件
动态库和静态库的区别:

所谓的库就是含有一些特性功能的程序,它不可以直接执行,但是可以被程序调用执 行。动态库是多个程序可以共同使用这个库,这样当一个库加载到内存的时候,程序a执行 完,而程序c恰好需要这个库所提供的功能,这个时候程序c可以直接调用这个库,而不必 再次把库导入到内存中,这样大大节约了不同程序共同占用内存的空间。而静态库是跟程 序直接关联的,这样便于程序的管理。当一个程序在另外一台机器执行时,如果使用共享 库,则另一台机器必须含有共享库文件。而使用静态库则不必。

/media:默认是移动设备的挂载点

/mnt:挂载点目录,额外的临时文件系统
/opt:可选目录,第三方程序的安装目录(现在默认是/usr/local)
/proc:伪文件系统,内核相关映射文件
/sys:伪文件系统,跟硬件相关的属性映射文件
/tmp/:临时文件,系统会定期清理这个文件夹里面的东西,另一个目录是/var/tmp
/var:可变化的文件

/bin:用户命令
/sbin:管理命令
/usr:user share read-only 这个目录里的bin、sbin和根目录里的bin、sbin,大概区别是根目录的命令是系统运行所必备的,而/usr则是系统完善功能才提供的(不是很准确。。)

3.linux的文件命名规则
<1>不能超过255个字节
<2>不能是用/符号
<3>严格区分大小写

4.linux文件管理常用命令
mkdir:创建目录

创建目录时,叶子节点前面所对应的路径必须存在

比如我们在/root下创建x/y/z,如果x和y不存在,z就不能被穿件

-p参数可以直接创建不存在的目录,比如上例,这是个递归过程,要创建z发现y不存在,于是先创建y,发现x不存在,于是先创建x,加上-v参数(verbose很多命令都有这个参数)可以看到这个过程。

示例:
mkdir -pv /root/x/y/z

[root@logstach ~]# mkdir -pv /root/x/y/z
mkdir: created directory `/root/x'
mkdir: created directory `/root/x/y'
mkdir: created directory `/root/x/y/z'

mkdir一个经典题目:
请在/tmp/下用一条命令创建a_d,a_c,b_d,b_c

答:这个题目关键点就在于数学公式(a+b)(d+c)=ad+ac+bd+bc

mkdir -pv /tmp/{a,b}_{b,c}

这个就是linux的花括号展开,还有一个~展开,就是cd ~=cd 自己的家目录

tree:查看目录树
示例:
tree /home

[root@logstach ~]# tree /home
/home
├── backup20150814
│ ├── apconfbk.tar.gz
│ ├── mysqldatdbk_var.tar.gz
│ ├── mysqlsql
│ │ ├── Database.sql
│ │ ├── information_schema.sql
│ │ ├── mysql.sql
│ │ ├── test.sql
│ │ └── zhcpdb.sql
│ └── ngconfbk.tar.gz
├── biao

touch:修改文件的时间戳

touch 命令默认会把文件的时间戳(atime,mtime,ctime)属性改成当前时间,也可以单独改atime和mtime,但是ctime不能单独改。这是因为时间戳也是文件的属性之一,所以当时间戳改变了ctime也会随之改变。当文件不存在的时候,这个命令会默认生成一个文件,所以也可以当成创建文件用。

stat:查看文件属性
这个命令可以查看文件的各自属性,大小、时间戳等等

示例:
stat /etc/passwd

[root@logstach ~]# stat /etc/passwd
File: `/etc/passwd'
Size: 1449 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 916933 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2015-12-19 10:37:29.459998671 +0800
Modify: 2015-12-03 14:15:16.414999817 +0800
Change: 2015-12-03 14:15:16.416999863 +0800

文本编辑器:vi和nano
文本处理器:只含有纯粹的文本数据(nano,nopad++)

字处理器:包含文字的各种属性,如大小,字体等等。(word,记事本。。)

小问题:为什么会有ASCII这类标准?
答:假设我们的英文字符加上标点符号和大小写、特殊字符,总共有128个。那么我们就需要7个2进制位来表示,如果我们不采用一种标准的话,那么我们的二进制码就可以随意表示任何字符,比如0000 0111 可以代表a,也可以代表b或者其他,这样的话,势必会造成沟通上的不便,同一窜二进制会造成不同翻译结果,所以这个时候就需要一种标准。(我国的常用汉字有几万字,所以需要2个字节,也就是16个2进制位(65536)来表示,常见的标准有:GB18030、GBK等。Unicode编码把全球所有语言做成了统一标准)

本文出自 “单季稻” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: