ls -al
-rw-r--r-- 1 root root 4096 Sep 4 18:25 install.log
权限 连接 所有者 用户组 文件容量 修改日期 文件名
文件类型与权限
-rw-r--r--
第一个字符代表这个文件是“目录,文件或者链接文件”
[d]目录 [-]文件 [l]链接文件 [b]设备文件里面的可供存储的接口设备 [c]设备文件里面的串行端口设备,如键盘,鼠标
然后每3个字符为一组,分别为文件所有者的权限,同用户组的权限,其他非本用户组的权限
第二列表示有多少文件名连接到此节点i-node
每个文件都会将它的权限与属性记录到文件系统的i-node中,目录树使用文件名记录,因此每个文件名就会连接到一个i-node。这个属性记录有多少不同的文件名连接到相同的一个i-node号码上。
第五列文件的容量,默认单位是B
第六列是这个文件的创建文件日期或最近的修改日期
如:Jan 7 2007 /etc/termcap 时间太久远,显示年份
Sep 4 18:25 install.log 完整时间
第七列为文件名
注意:文件名之前多一个“.”,表示这个文件为“隐藏文件”
目录与文件的权限意义
文件:
r:可读取此文件的实际内容,如读取文本文件的文字内容等。
w:可以编辑,新增或者修改文件的内容(但不含删除该文件)。
x:该文件具有可以被系统执行的权限。
目录:
r:表示具有读取目录结构列表的权限,查询该目录下的文件名数据,可以使用ls显示
w:表示具有更改该目录结构列表的权限,包括:
新建新的文件与目录
删除已经存在的文件与目录(不论该文件的权限为何)
将已存在的文件与目录进行重命名
转移该目录内的文件,目录位置
x:代表用户能否进入该目录成为工作目录的用途,所谓工作目录就是你所在的目录
能不能进入某一个目录,与该目录的x权限有关
改变文件属性与权限
chgrp 改变文件所属用户组change group
注意:要改变的组名必须在/etc/group
chgrp [-R] dirname/filename
-R 进行递归的持续更改,也即连同子目录下的所有文件,目录都更新成为这个用户组,常常用在更改某一目录所有文件情况
chgrp users install.log
chown改变文件所有者change owner
chown [-R] 账号名称 文件或目录
-R 进行递归的持续更改,也即连同子目录下的所有文件都更改
chown bin install.log
将install.log的所有者与用户组改为root
chown root:root install.log
cp复制行为会复制执行者的属性与权限,需要时要更改这个文件的所有者与用户组。
chmod 改变权限
两种方法改变权限:
数字类型改变文件权限
r:4 w:2 x:1
形如:-rwxrwx---
owner=rwx=7 group=rwx=7 others=---=0
chmod [-R] xyz 文件或目录 xyz表示数字类型的权限属性
-R 进行递归的持续更改,也即连同子目录下的所有文件都更改
符号类型改变文件权限
身份表示:u g o a 符号:+ - = 权限:=r w x
chmod 身份表示 符号 权限 文件或目录
chmod u=rwx,go=rx .bashrc
chmod a+w .bashrc
Linux文件种类与扩展名
任何设备在linux下都是文件
文件种类:
1.普通文件 ,字符 - -开头,包括
纯文本文件(ASCII):linux系统最多的一种文件类型,内容为可直接读到的数据,例如字母,数字等。可执行cat ~/.bashrc 就可以看到该文件的内容。
二进制文件(binary):系统其实仅认识且执行二进制文件,linux中的可执行文件(字批处理不算)就是这种格式,cat命令就是二进制文件
数据格式文件(data):有些程序在运行的过程会读取某些特定格式的文件,那些特定格式的文件称为数据文件。例如,linux在用户登录时,都会将登录的数据记录在/var/log/wtmp文件内,该文件就是data file。它能通过last读出来,但cat会出现乱码,因为它属于一种特殊格式的文件。
2.目录[d]
3.连接文件(link)[l]:类似windows系统的快捷方式
4.设备与设备文件
与系统外设及存储等相关的一些文件,通常集中在/dev这个目录,分为两种:
块设备文件[b]:一些存储数据,以提供系统随机访问的接口设备,例如硬盘,软盘等,/dev/sda 第一个属性即为[b]
字符设备文件[c]:一些串行端口的接口设备,例如键盘,鼠标等。特征为一次性读取,不能够截断输出
5.套接字(sockets)
数据接口文件[s],通常用在网络上的数据连接,在/var/run可看到这种文件类型
6.管道(FIFO,pipe)[p]
一种特殊的文件类型,解决多个程序同时访问一个文件所造成的错误问题。first-in-first-out
Linux文件扩展名
一个Linux文件能否执行看权限具有x,与文件名无关,可执行并不代表可执行成功。
以适当扩展名来表示该文件是什么种类
*.sh:脚本或批处理文件,使用shell写成,故得名
*.Z *.tar *.tar.gz *.zip *.tgz:打包的压缩文件
*.html *.php :网页相关文件,分别表示HTML语法与PHP语法的网页文件。.html文件可使用网页浏览器直接开启,.php文件。通过客户端的浏览器来服务端浏览,以得到运算后的网页结果。
文件长度限制
Ext2/Ext3文件系统,文件名长度限制为:
单一文件或目录的最大容许文件名为255个字符
包含完整路径名称及目录(/)的完整文件名为4096个字符
文件名限制
因一些符号有特殊意义,文件命名应避免使用
文字界面 * ?> < ; & ! [ ] | \ ' ` " ( ) { } 命令行界面 . + -
Linux目录配置
Linux目录配置标准 FHS:重点在于规范每个特定目录下应该放置什么样的数据。
FHS一直在改版中。。。
| 可分享的 | 不可分享的 |
不可变的 | /usr(软件放置处) | /etc(配置文件) |
/opt(第三方软件) | /boot(开机与内核文件) | |
可变动的 | /var/mail(用户邮箱) | /var/run(程序相关) |
/var/spool/news(新闻组) | /var/lock(程序相关) |
不可分享的:自己机器上面运行的设备文件或者是与程序有关的socket文件等, 由于仅不自身机器有关,所以当然就不适合分享给其他主机了。
不变的:有些数据是不会经常变动的。 例如函数库、文件说明文件、系统管理员所管理的主机服务配置文件等等;
可变动的:经常改变的数据,例如登录文件等。
根目录(/)含义:
根目录是整个系统最重要的目录,因为不但所有的目录都是由根目录衍生出来的,同时,根目录也与开机、还原、系统修复等操作有关。
FHS建议:根目录所在的分区越小,系统性能就越好,根目录所在的文件系统也较不容易发生问题
下面列出一个表格,总结一些重要目录放置的文件内容:
目录 | 应放置文件内容 |
/bin | 放置一些在单用户维护模式下还能被操作的命令,主要有:cat,chmod,chown,date,mv,mkdir,cp,bash等命令 |
/boot | 放置开机会使用到的文件,包括Linux内核文件以及开机菜单与开机所需配置文件等 |
/dev | 以文件形式存放任何设备与接口设备,比较重要的文件:/dev/null,/dev/zero,/dev/tty,/dev/lp*,/dev/hd*,/dev/sd*等 |
/etc | 系统主要的配置文件几乎都放置在这个目录内。FHS建议:不要将可执行文件放到这个目录,比较重要的文件:/etc/inittab,/etc/init.d,/etc/modprobe.conf,/etc/X11,/etc/sysconfig等 |
/home | 系统默认的用户主文件夹,~代表当前用户主文件夹 |
/lib | 放置在开机时会用到的函数库,以及在/bin或/sbin下面的命令会调用的函数库,/lib/modules这个目录放置的驱动程序文件,尤其重要 |
/media | 此目录下的文件都是可删除的设备,www.linuxidc.com常见文件名:/media/cdrom |
/mnt | 用来暂时挂载某些额外设备 |
/opt | 第三方软件放置的目录 |
/root | 系统管理员的主文件夹,/root应该和根目录放在同一个分区中 |
/srv | 存放网络服务所需取用的数据,如:www服务需要的网页数据就可以放置在/srv/www里面 |
/tmp | 任何人都可以访问这个目录,这是用于暂时放置文件的地方,重要的数据都不可以放到这个目录里面,FHS建议:每次开机时都清空一下这个目录 |
/sbin | 放置了开机过程所需的命令,包括开机、修复、还原系统所需的命令 |
注意:
开机过程中,只要根目录会被挂载,其他分区则是在开机完成后才会持续进行挂载,所以在根目录下与开机相关的目录都不能与根目录放到不同的分区中
从上表可以轻易得出,下列五个目录一定不可与根目录分开:
/etc----配置文件
/bin----重要执行文件
/dev----所需要的设备文件
/lib----执行文件所需要的函数库与内核所需的模块
/sbin----重要的系统执行文件
目录树特性:
目录树的起始点为根目录(/,root)
每个目录不只能使用本地端的文件系统,也可以使用网络上的文件系统。
每个文件在此目录树中的文件名(包含完整路径)都是独一无二的。