Linux:文件管理,目录管理,文件系统,链接类型

1,文件管理

用户(标识号:UID):一定资源的使用者,可以创建和管理文件以及访问其他用户文件。可以从属于多个群组。

用户组(标识号:GID):由一定数量的对某些文件具有相同操作权限的用户组成的小组。可以拥有多个用户。

root用户:超级管理员,可以为所欲为。

为何要区分用户和用户组?
答:一种功能相当健全而且好用的安全防护措施

/ect/passwd:所有系统帐号、一般用户以及root的相关信息。

/ect/shadow:密码记录。

/ect/group:用户组名。

权限控制机制:

  • Linux的文件或目录被一个用户拥有时,这个用户称为文件的拥有者(或属主)。
  • 同时文件还被指定的用户组所拥有,这个用户组称为文件所属组;一个用户可以是不同组的成员,可以由管理员控制。
  • 文件的权限由权限标志来决定,权限标志决定了文件的拥有者、文件的所属组、其他用户对文件访问的权限。

1.1,文件创建

touch-a:更改由 File 变量指定的文件的访问时间文件名
-c:修改时间,如果文件不存在,则不要进行创建
-m:更改 File 的修改时间

-t:Time使用指定时间而不是当前时间。Time 变量以十进制形式 [YYMMDDhhmm]指定

 → YY  指定年份的后两位数字

 → MM 指定一年的哪一月(从 01 到 12)

 → DD 指定一月的哪一天(从 01 到 31)

 → hh 指定一天中的哪一小时(从 00 到 23)  

 → mm指定一小时的哪一分钟(从 00 到 59)

1.2,文件属性

-rw-r--r--.1rootroot2Nov 28 20:11yan.txt
文件类型权限连接数用户拥有者文件所属的用户组文件大小,默认单位是Bytes文件最后被修改的时间文件名

第1个字符:

d:目录

-:文件

l:连接文件

b:块设备文件

c:设备文件中串行端口设备(鼠标,键盘)

2~4个字符:拥有者的权限

r:可读

w:可写

x:可执行

5~7个字符:用户组的权限

8~10个字符:其他用户权限

表示有多少个文件名会连接到相同的inode号码
r(读权限)表示可以列出存储在该目录下的文件,即读目录内容。
w(写权限)

建立新的文件与目录 。

删除已经存在的文件与目录(不管该文件是属于谁的)。

重命名已经存在的文件或目录。

移动该目录内的文件、目录位置。

x(执行权限)表示允许你在目录中查找,并能用cd命令将工作目录切换到该目录,执行。

1.3,默认权限和隐藏权限

默认权限(umask):建立的新文件的默认权限。

命令umaskumask -S
结果0002u=rwx,g=rx,o=rx
解释

第一位:特殊权限

第二位:拥有者剔除的权限

第三位:用户组剔除的权限

第四位:其他用户剔除的权限

用户权限

用户组权限

其他用户权限

类型最大权限计算(当前umask=022)
文件用户建立的文件默认是没有(x)权限的,只有rw权限,也就是最大为666(-rw-rw-rw-)(-rw-rw-rw-) - (-----w--w-) = (-rw-r--r--)
目录由于x与是否进入此目录有关,因此默认为所有权限均开放(drwxrwxrwx)(drwrrwxrwx) - (-----w--w-) = (drwxr--xr-x)
umask 022    //直接修改

隐藏权限(chattr、lsattr):文件的隐藏属性

chattr(配置文件隐藏属性)+
-
=
A:若你在存取此文件时,它的存取时间atime将不会被修改。
S:一般文件是异步写入磁盘,添加该属性,则同步写入磁盘。
a:这个文件只能增加数据,而不能删除也不能修改数据,只有root才能设置。
c:存储时自动压缩,读取时将自动解压。
i:让一个文件不能被删除、修改、设置连接、无法写入,只有root才能设置。
s:被删除时将会被从硬盘完全删除,无法恢复。
u:与s相反,如果被删除了,磁盘上还存在,可被恢复。
lsattr(显示文件隐藏属性)-a:将隐藏文件的属性也显示出来文件或目录
-d:如果接的是目录,仅列出目录本身的属性而非目录内的文件名
-R:连同子目录也一并列出来

1.4,特殊权限

权限简写数字表示解释
SUIDs4

仅对二进制程序有效

执行者对该程序有x的可执行权限

本权限仅在执行该程序过程中有效

执行者将具有该程序拥有者的权限

SGIDg2

仅对二进制程序有用

程序执行者对于该程序来说,具备x的权限

执行者在执行过程中会获得该程序用户组的支持

对目录来说:

用户对于此目录具有r与x的权限时,该用户能够进入此目录

用户在此目录下的有效用户组将会变成该目录的用户组

若用户拥有w的权限,则用户所建立的新文件,该新文件的用户组与此目录的用户组相同

SBITt1

仅对目录有效

当用户对于此目录有w,x权限,即具有写入的权限

当用户在该目录下建立文件或目录时,仅有自己与root才有权利删除该文件

//授权,第一位4便是特殊权限的数字
chmod 4777 test
4--SUID
2--SGID
1--STID
//或
chmod u+s,g+s,o+t test

1.5,查看文件属性

ls正常文件和文件夹
ls -l  正常文件和文件夹(详细信息)

ls -a正常文件和文件夹,隐藏文件。
ls -alls -a+ls -l:正常文件和文件夹,隐藏文件(详细信息)。
ls -d列出目录本身属性

1.6,修改文件权限

改变文件权限-字符法

chmodu(user:文件拥有者)

+(加入)

-(除去)

=(设定)

r(读)

w(写)

x(执行)

文件名chmod a+r text.txt
g(group:文件所属组)chmod g+rwx text.txt
o(others:其他用户)chmod a-w text.txt
a(u+g+o:所有用户)chmod a=x text.txt

改变文件权限-数字法:二进制,有点二进制基础都知道不会产生重复。

r:读4
w:写2
x:执行1
rwx7
-w-2
r-x5
r--4
-wx3
-w-2
--x1
---0
直接赋值权限
chmod 777 text.txt

修改文件拥有者

chown-R

用户

用户:组

文件名或目录
只有文件主和超级用户才可以使用该命令递归修改,连同子目录下的所有文件都修改。同时改变文件主和文件所属的组时,用户名和用户组名由冒号分开
chown shao12138 text.txt

修改文件所属用户组

chgrp-R组名文件名或目录
只有文件主和超级用户才可以使用该命令递归修改,连同子目录下的所有文件都修改。只具有改变所属组的功能

1.7,文件内容查看

直接查看文件内容cat:concatenate-A:相当于-vET的整合选项文件名
-b:列出行号,仅针对非空白行做行号显示,空白行不做行号
-E:结尾的换行符$显示出来
-n:打印行号,连同空白行也有行号
-T:将tab键以^I显示出来
-v:列出一些看不出来的特殊字符
tac:反向列示同上
nl:添加行号打印

-b a:表示是否空行,也同样列出行号,同cat -n;

-b t:如果有空行,空的不显示行号(默认值)

-n ln:行号在屏幕的最左方
-n rn:行号在自己栏位的最右方显示,且不加0;
-n rz:行号在自己栏位的最右方显示,且加0;
-w:行号栏位的占用的字符数

可翻页查看more:一页一页翻动文件名空格键:代表向下翻一行
Enter:代表向下翻一行
/字符串:代表在这个显示内容中,向下查找字符串这个关键词
:f:立刻显示出文件名以及目前显示的行数
q:代表立刻离开more,不再显示该文件内容
b或ctrl-b:代表往回翻页,不过只对文件有效,对管道无效。
less:一页一页翻动文件名空格键:代表向下翻一行

pagedown:向下翻动一页

pageup:向上翻动一页

x:代表立刻离开more,不再显示该文件内容

/字符串:向下查找字符串

?字符串:向上查找字符串

g:前进到这个数据的第一行

G:前进到这个数据的最后一行

非纯文本文件od-t a:利用默认的字符来输出文件名
-t c:使用ASCII字符流来输出
-t d size:利用十进制来输出,每个整数占size Bytes
-t f size:利用浮点数值来输出,每个整数占size Bytes
-t o size:利用八进制来输出,每个整数占size Bytes
-t x size:利用十六进制来输出,每个整数占size Bytes
数据截取head:取出前面几行-n+数字:表示截取的行数文件名
tail:取出后面几行-n+数字:表示截取的行数
-f:持续刷新后面所接文件中的内容

2,目录管理

2.1,基本概念

路径:对文件位置信息的描述机制,是指从树型目录中的某个目录层次到其内某个文件的一条通路;分为相对路径和绝对路径;

  • 绝对路径:从根目录/开始到文件名结束的路径。
  • 相对路径:不是从根目录开始的路径。

工作目录:登入系统后,用户始终处于某个目录中,此目录即为工作目录,或称作当前目录。

根目录:Linux树型目录结构的最顶层目录。

用户“家”目录:也称用户主目录,通常是位于/home目录中跟用户名称相同的一个目录,用户登录系统后默认处于此目录中。

2.2,切换目录

pwd:显示当前工作目录的路径名称。-p:显示出实际路径,而非使用连接的路径。

cd ~shao12138

进入shao12138用户的home目录

cd ~

回到自己的home目录

cd ..

回到上层目录

 cd -

回到刚来的目录

cd shao/shao

到指定目录下-绝对路径

cd ../shao

到指定目录下-相对路径

2.3,创建和删除目录

mkdir-m-p目录名
每个新目录包含标准项 .(点)和 ..(点-点)设置新创建的目录的权限,不管默认权限(umask)如果不存在父级别目录,递归创建。目录名
mkdir testmkdir -m 711 testmkdir -p test/test1/test2
rmdir-p目录名
在可以除去该目录前,它必须为空,并且必须有它的父目录的写权限递归删除父目录,但还是必须为空。目录名
rmdir testmkdir -p test/test1/test2

2.4,复制,删除与移动

cp:复制文件或目录-a:复制目录时使用,保留链接、文件属性、并递归地复制目录源文件目标文件
-d:复制时保留链接
-f:如果指定的目标文件存在,先强行覆盖
-i:覆盖目标文件前需要用户先确认
-l:进行硬链接的连接文件建立,而非文件本身
-s:复制成为符号链接文件,即快捷方式
-p:复制文件,连同文件属性(权限,用户,时间),不使用默认属性
-r:复制目录时可递归复制目录中的内容

rm:删除文件或目录

-f:force,忽略不存在问题,不警告

文件或目录

-i:交互模式,删除前询问

-r:递归模式,目录删除,非常危险

mv:移动并重命名-f:强制直接转移不询问源文件目录
-i:若文件已经存在询问是否覆盖
-u:若文件已经存在,但源文件比较新,则更新。

2.5,文件查找

  • which:通过PATH进行搜索
  • whereis,locate:通过存储系统文件信息的数据库
  • find:直接搜索硬盘

which:在PATH变量指定的路径中搜索指定的系统命令的位置(通过PATH进行搜索),重点是找出可执行文件而已。用echo $PATH可显示当前PATH变量的值。若在后面加上-a选项,则可以列出所有的可以找到的同名执行文件。

whereis:在特定数据库(/usr/share/man下的man page文件,/bin/sbin下的可执行文件,跟几个比较特定的目录)查找符合条件的文件。

whereis-b:只查找二进制文件文件名
-m:只查找说明文件
-s:只找源文件
-u:没有帮助文件的文件

locate:用于在特定数据库(已建立的数据库/var/lib/mlocate/里面的数据)中查找符合条件的文件,查找速度特别快,数据库更新时间根据系统决定,也可以采用updatedb,更新数据库文件。

locate-i:忽略大小写的差异关键字
-c:不输出文件名,仅仅计算文件数量
-l:输出几行,例如-l 5,输出5行
-S:输出locate所使用数据库文件的相关信息
-r:接正则表达式

find:速度慢且影响磁盘性能,在目录结构中搜索文件,并执行指定的操作。

find-name:查找文件名为passwd这个文件关键字
-type:查找特定类型的文件文件类型简写
-perm:查找特定权限的文件/6000:权限数字

3,文件系统和文件类型

3.1,Linux文件系统

Windows系统格式化硬盘时会指定格式FAT或者NTFS,而Linux的文件系统格式为Ext3或者Ext4。早期的Linux使用Ext2格式,目前的Linux都是Ext3格式,而CentOS 6已经使用了Ext4格式。Ext2文件系统虽然高校稳定,但随着Linux系统在关键业务中的应用,Linux文件系统的弱点也逐渐显露出来。因为Ext2文件系统不是日志文件系统,这在关键行业是一个致命的弱点。

Ext3文件系统是直接从Ext2文件系统发展而来的,它带有日志功能,可以跟踪记录文件系统的变化,并将变化内容写入日志。写操作首先是对日志记录文件进行操作,若整个写操作由于某种原因(掉电)而中断,当系统重启时,会根据日志记录来恢复中断前的写操作,而且这个过程费时极短。目前Ext3文件系统已经非常稳定可靠,它完全兼容Ext2文件系统,用户可以平滑地过渡到一个日志功能健全的文件系统。这实际上也是ext3日志文件系统设计的初衷。现在使用的Ext4相较Ext3的最明显特征是Ext4支持最大文件系统容量和单个最大文件大小。

Linux文件系统在Windows中是不能识别的,但在Linux系统中可以挂载Windows文件系统。Linux目前支持MS-DOS、VFAT、FAT、BSD等格式,如果使用的是RedHat或者CentOS,那么无法挂载到NTFS格式的分区的系统。

除了Ext3/Ext4文件系统外,有些Linux发行版(SuSE)默认的文件系统为ReiserFS,其优势在于:它是基于B*Tree快速平衡树,这种高效算法的文件系统。例如,它处理小于1KB的文件时的速度是Ext文件系统的10倍。其次,ReiserFS的空间浪费较小,它不会为一些小文件分配inode,而是打包存放在同一个磁盘块中。Ext是把它们单独存放在不同的块上。例如,块大小为4KB,那么两个100字节的文件会占用两个快,ReiserFS则只占用一个块。当然ReiserFS也有缺点,就是每升级一个版本,都要将磁盘重新格式化一次。

3.2,Linux文件类型

常见文件类型:

  • 普通文件:最常用的一类文件,其特点是不包含文件系统的结构信息。可分为图形文件,数据文件,文档文件,声音文件。这些文件又可细分为文本文件和二进制文件。
  • 目录文件:目录文件是用于存放文件名及其相关信息的文件。它是内核组织文件系统的基本节点。目录文件可以包含下一级目录文件和普通文件。
  • 链接文件:链接文件是一种特殊文件,实际上是指向一个真实存在的文件链接,类似于windows下的快捷方式。可细分为:硬链接和软连接。
  • 设备文件:设备文件是Linux中最特殊的文件,正是由于它的存在,使得Linux系统可以十分方便的访问外部设备。通常Linux系统文件放在/dev下且靠设备文件使用设备的主设备号和次设备号来指定某外部设备。
  • 管道文件:管道文件是一种特殊文件,主要用于不同进程间的信息传递。当两个进程需要进行数据或信息传递时,可以使用管道文件。

文件后缀名:Linux系统中,文件的后缀名没有具体意义,加或者不加都无所谓。但是为了便于区分,我们习惯在定义文件名时加一个后缀名。

3.3,软链接和硬链接

Linux的链接文件:分为硬链接软链接

  • Hard Links:当系统读取一个文件时,先读取inode table,然后再根据inode中的信息到块区域将数据取出来。而硬链接是直接再建立一个inode连接到文件放置的区域,进行硬链接时该文件内容没有任何变化,只是增加了一个指向这个文件的inode。1,硬链接不能跨文件系统。2,不能链接到目录。3,硬链接建立后,即便某一个inode删除了,只要有任何一个inode存在,该文件也不会消失。
  • SymBolic Links(相当于windows的快捷方式): 软链接建立后,相当于建立一个独立的文件,当读取文件时,它会把读取的行为转发到该文件所链接的文件上。例如,现在有一个文件a,我们做了一个软链接b,b指向了a。当读取b时,b就会把读取的动作转发到a上,这样就读取了文件a。当我们删除文件a时,链接文件b不会被删除,但如果再次读取b时,会提示无法打开文件。然而,我们删除b时,a是不会有任何影响的。

由此看来,硬链接比较安全,因为即使某一个inode被删除了,只要有任何一个inode存在,该文件也不会消失。但由于硬链接的限制太多(包括无法做目录的链接),在用途上比较受限。所以软链接使用比较广。

建立链接:

ln -s 来源文件 目标文件
-s可选,选择则是软链接,不选择则是硬链接

删除链接:

rm [-f] 链接名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

燕双嘤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值