Linux一般将档案可存取的身份分为三个类别(owner/group/others),三种身份各自具有各自的r/w/x权限。
Linux文件类型:
1、普通文件(regular file,符号'-'):
a、纯文本(ASCII):Linux系统中最多的一种文件类型;这类文件内容是我们可以直接读到的数据(eg:数字、字母)。
b、二进制文件(binary file):可执行文件(scripts,文字型批吃力文件除外)就是这种类型。
c、数据格式文件(data file):有些程序在运行的过程中会读取到某些特定格式的档案,这些特定档案可被称为数据文件;一般用cat查看显示出来的为一堆乱码。
2、目录(directory):符号'd';
3、连接文件(link):符号'l';
4、设备和文件(device):
a、块设备文件:存储文件(eg:硬盘、软盘等),符号'b';
b、字符设备文件:串行端口的接口文件(eg:键盘、鼠标),符号'c';
5、套接字(sockets):符号's'; 通常用于网络的数据连接。
6、管道(FIFO,pipe):符号'p',是一种特殊的文件类型,主要目的是解决多个程序同时访问同一个文件所造成的错误问题(first-in-first-out)。
文件的类型介绍完了那么直观的来感受一下Linux中的文件。要查看Linux中的文件,有一个重要的指令——ls(查看档案的指令),使用root身份进入Linux,下达[ls -al]指令,效果如下图:
第三行前十个字符表示的就是档案类型权限,数字表示的是连结数,接下来是档案的拥有者,档案所属的群组,档案的容量,档案最后被修改的时间,档名。下面详细说明前十个字符。
第一个代表的是该文件的文件类型,前面已经介绍过了;然后剩余的九个字符,依次每三个一组,分别为档案拥有者、档案所属群组、其他人的权限。权限总共分为三种,分别为[r]可读(read)、[w]可写(write)、[x]可执行(execute)。这三个权限的位置是固定的不会改变,如果没有该权限则会以'-'替代。下面以[..]档案为例分别介绍
首先、第一个字符为'd'表明该档案为目录文件;
第一组(拥有者权限):该拥有者可读、可写并且可执行;
第二组(通群组权限):可读、可执行但是不可写;
第三组(其他非本群组权限):可读、可执行但不可写。
注意:r/w/x权限对于目录与档案的意义并不相同,这是因为目录与档案所记录的数据内容不相同所至。
权限对档案的重要性:档案是实际含有数据的地方,包括一般文本文件、数据库内容文件、二进制可执行文件(binary program)。因此权限对于档案来说含义如下:
a、[r](read):可取该档案的实际内容;
b、[w](write):可以编辑、新增或者修改该档案的内容(没有删除);
c、[x](execute):该档案可以被系统执行。
权限对于目录的重要性:档案是存放实际数据的“家”,目录主要的内容在记录文件名列表。权限对于目录的意义如下:
a、[r](read contents in directory):表示具有读取目录结构列表的权限,所以当具有(r)权限时,表示可以查询该目录下的文件名数据。
b、[w](modify contents of directory):表示具有异动该目录列表的权限,即就是如下权限:
1、建立新的文件与目录;
2、删除已经存在的档案与目录(不论档案的权限为何);
3、静一静讯在的档案或目录进行重命名;
4、搬移该目录内的档案或目录的位置
c、[x](access directory):目录是不可以被执行的,目录的[x]表示的是用户能否进入该目录为工作目录(work directory)的用途。
Linux档案扩展名:
Linux的档案是没有所谓的扩展名的,一个档案能不能被执行取决于它的第一栏的十个属性,与文件名没有半毛线钱关系。虽然如此,我们仍然希望可以藉由扩展名来了解该档案是什么鬼,所以我们还是需要用适当的扩展名来表示该档案的类型。
Linux档案长度限制:使用预设的Ext2/Ext3文件系统时,针对档案名长度的限制为
a、单一档案或目录的最大容许文件名为255个字符;
b、包含完整路径名及目录(/)的完整档案名为4096个字符。
Linux文件名限制:一般来说在设定文件名时,最好可以避免一些特殊符号:* ? > < ; & ! [] \ + - ' " () {};因为这些符号在文字接口下具有特殊的含义;以'.'开头的档案为隐藏的。
ls指令:
-a:来处目录下的所有文件(包括隐藏文件);
-b:把文件名中不可出现的字符用反斜杠加字符编号的形式列出;
-c:输出文件的i节点的修改时间,并以此排序;
-d:将目录像文件一样的显示,而不是显示旗下的文件;
-f:-U对输出的文件不进行排序;
-i:输出文件的i节点的索引信息;eg:ls -ai 指定文件
-k:以k字节的形式表示文件的大小;eg:ls -alk 指定文件
-l:列出文件的详细信息;
-m:横向输出文件名,并以","作为分隔
-n:用数字的UID,GID代替名称;
-o:显示文件的除组信息外的详细信息;
-F:在每个文件名后面附上一个字符以说明文件的类型,'*'表示可执行的平通文件;'/'表示目录;'@'表示符号链接;'|'表示FIFOs;'='表示套接字;
-q:用?代替不可输出的字符;
-r:对目录反向排序;
-s:在l文件名后输出该文件大小。
-t:以时间排序;
-u:以文件上次被访问的时间排序;
-x:按列输出,横向排列;
-A:显示除'.'、'..'外的所有文件;
-B:不输出以'~'结尾的备份文件;
-C:按列输出,纵向排列;
-G:输出文件组的信息;
-L:列出连接文件名而不是链接到的文件;
-N:不限制文件长度;
-Q:把输出的文件名用”“括起来;
-R:列出所有子目录下的文件;
-S:以文件大小排序;
-X:以文件的扩展名排序;
-1:一行只输出一个文件;
--color=no:不显示彩色文件名;
--help:在标准输出上显示帮助信息;
--version:在标准文件上输出版本信息并退出。
cd命令:用于切换目录
cd ~:进入用户目录;
cd -:返回最近访问目录;
cd ..:返回上级目录;
cd !$:把上个命令的参数作为cd命令的目标参数使用