Linux目录和文件的浏览管理及维护
Posted 17mark
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux目录和文件的浏览管理及维护相关的知识,希望对你有一定的参考价值。
title: Linux目录和文件的浏览、管理及维护
date: \'2019-08-22 18:15:54\'
updated: \'2019-08-22 21:01:59\'
tags: [Linux系列]
permalink: /articles/2019/08/22/1566468954080.html
3.1、Linux文件系统的层次结构。
在Linux中,所有的文件和目录都被组织成一个根节点开始的倒置的树状结构。
文件系统的顶层是由根目录开始的,系统使用“/”来表示根目录。在根目录之下的既可以是目录,也可以是文件,而每一个目录中又可以包含(子)目录或文件。如此反复就可以构成一个庞大的文件系统。
3.2、Linux系统中一些重要的目录
为了方便管理维护,Linux系统采用了文件系统层次标准FHS的文件结构。FHS定义了两层规范。
第一层为要目录下的各个目录应该存放哪些类型的文件(或子目录),如:
------/bin和/sbin目录中存放的应该是可执行文件;
第二层是针对/usr和/var这两个目录的子目录定义的,如:
--------在 /usr/share目录中存放的应该是共享数据。
Linux文件系统中另一个重要的目录,就是家目录。
--------家目录用来存放用户自己的文件或目录,每当用户登录Linux系统时就自动进入家目录。
--------其中,超级用户root的家目录是/root
Linux中还有另一个重要的目录,那就是挂载点。当Linux系统监测到可移除式硬件被加入到文件系统中时,就会自动产生一个挂载点(目录)。通常这些可移除式硬件会被挂载在
--------/media或/CDRom之下。
指点迷津:
在不同版本的Linux操作系统中,其文件系统结构(包括目录和文件)会略有不同,但是都会包括那些重要的目录和文件。
另一些常用目录如:
/etc: 系统的一些主要配置文件几乎全部放在这个目录下,如口令文件passwd。在这个目录下的文件基本都是ASCII码的正文文件,普通用户一般可以查看在这个目录下的文件,但是只有root用户可以修改这些文件。
/tmp: 普通用户或程序可以将临时文件存入这一目录以方便与其它用户或程序交互信息。该目录是任何用户都可以访问的,因此重要的信息是不应该存放在此目录中的。
/boot: 存放Linux操作系统的内核和系统启动时所使用的文件。其中,以vmlinuz开头的就是Linux的内核。如果引导程序(loader)选择了grub,在该目录中还会有一个grub的子目录(/boot/grub)
/dev: 存放在的是这台计算机中所有的设备。在UNIX或Linux系统中所有的东西都被看成文件,其中也包括硬件。
/usr: 存放系统的应用程序和与命令相关的系统数据,其中包括系统的一些函数库及图形界面所需的文件等。有些类似Windows的C:\\Program Files文件夹。需要指出的是,usr为unixsystem resources的缩写,而不是像其它书上说的那样----user的缩写。
/var: 存放的是系统运行过程中经常变化的文件,如log文件和mail文件。
/srv: 存放的是所有与服务器相关的服务,即一些服务器动之后,这些服务需要访问的目录。
/proc: 是一个虚拟的文件系统,它是常住在内存中的,不占用任何磁盘空间。在该目录下存放了系统运行所需要的信息,这些信息反映了内核的环境。在该目录中存放了内存中所有的信息,它有些类似Oracle系统中以v$开头的数据字典。
/libs、/usr/lib、/usr/local/lib: 存放的是libraries,即系统使用的函数库。许多程序在运行的过程中都会从这些函数库中调用一些共享的库函数,如/lib/modules目录下包括了内核的相关模块。
Lost+Found: 当系统异常关机、崩溃或出现错误时,系统会将一些遗失的片段存放在该目录中,这个目录会在需要时由系统自动产生。
3.3、目录和文件的命名以及绝对和相对路径
与其它系统相比,Linux系统的目录以及文件命名相对宽松很多,在Linux中目录和文件的命名原则如下:
1.除了字符“/”之外,所有的字符都可以使用。但是在目录名或文件名中使用某些特殊字符并不是明智之举。例如,应该避免使用<、>、?、*和非打印字符等。如果一个文件名中包含了特殊字符,如空格,那么在访问这个文件时就需要使用引号将文件名括起来。
2.目录名或文件名的长度不能超过255个字符。
3.目录名或文件名是区分大小写的。如DOG、dog、Dog和DOg是不同的目录名或文件名。全用字符大小写来区分不同的文件或目录也是不明智之举。
4.\\文件的扩展名对Linux操作系统没有特殊的含义,这与Windows操作系统不一样。如dog.exe只是一个文件,其扩展名.exe并不代表可执行文件。
一个绝对路径必须以一个正斜线(/)开始。绝对路径包括从文件系统的根节点开始到要查找的对象,所必须遍历的每一个目录的名字,它是文件位置的完整路标,因此在任何情况下都可以使用绝对路径来找到所需的文件。
相对路径不是以正斜线开始,它可以包含从当前目录到要查找的对象(目录或文件)所必须遍历的每个目录的名字。相对路径一般比绝对路径短,这也是为什么许多用户喜欢用相对路径的原因。
3.4、使用pwd和cd命令来确定和切换目录
命令:pwd(print working directory)
显示当前路径的绝对路径。
命令:cd(change directories)
改变当前路径。
命令:cd /home
当执行完cd以后系统不会有任何显示,这就是Linux的工作方式,它们总是认为用户是专家,用户应该知道自己在做什么。
因此,在学习Linux系统时要养成一个习惯,就是执行完命令之后自大测试一下,看看命令执行的结果是否正确。
命令:cd ..
是返回上一级目录。
命令:cd -
两个目录之间切换。
命令:cd $HOME
回到家目录。
指点迷津
cd命令使读者能够在Linux系统中闲逛,而pwd命令就是帮助您确定当前所在的位置。
3.5、使用ls命令列出目录中的内容
命令:ls -l
显示当前文件夹下所有非隐藏文件的的详细资料
比如
第一行是总占用大小8K, 每行第一个字符为d的说明是文件夹,为“-”的是文件。
第4列是大小,字节,但是不好直接看到。可以用如下命令
命令:ls -lh 加 h如图:
这样就能看到了。
命令: ls -a
显示文件下所有文件包含隐藏文件。如图:
其实所谓的隐藏文件就是以 “.”开头的文件。
命令:ls -d
只显示当前文件夹的属性。如图:
不显示其它文件。
指点迷津
其实,ls命令就是帮肋用户确定了有多少家当。ls是一个使用频率相当高的命令,曾有同学开玩笑说:“会使用ls命令就可以说会使用UNIX系统了”
3.6、使用cp命令复制文件和目录
cp(复制)命令是一个具有破坏性的命令,如果使用不当,可能会导致灾难性后果。
格式: cp [-option(s)] source(s) target
source(源文件或目录):可以是一个或多个文件,也可以是一个或多个目录
target(目的):可以是一个文件或一个目录
-option(选项)为cp命令的选项,其中CP命令常用的选项有以下几种。
(1)-i(interactive ): 交互的)防止不小心覆盖已经存在的文件或目录,在覆盖之前给提示信息。
(2)-r(recursive 递归的): 递归地复制目录。当复制一个目录时,复制该目录中所有的内容,其 中也包括子目录的全部内容。
(3)-p(preserve维持): 保留一些特定的属性,如时间戳等。
(4)-f(forc强制): 其目标文件已存在,系统并不询问而是强制复制,即直接覆盖掉原有文件。
指点迷津:
普通Linux,在使用CP命令遇到覆盖文件时,会默认以 cp -i的形式工作,会默认有提示信息。但在Oracle Linux中默认以cp -f工作,不提示信息,这种方式在进行Oracle数据库系统的文件维护时非常方便。如果是以root方式执行cp命令,这时系统就以cp -i 的方式进行工作。已验证,再此不再贴图。
3.7、mv命令
mv(move)的缩写,既可以在不同的目录之间移动文件和目录,也可以重新命名文件和目录,mv(移动)命令并不影响被移动或改名的文件或目录中的内容。mv(移动)命令的语法模式与cp命令相同,因此在这里不再介绍。
命令:mv 目录或文件名 目标文件名或目录名
1.如果移动目标不存在,系统将把源文件和目录更名为目标文件或目录。
2.如果指定目标已经存在,并且是一个文件,系统将把指定的文件名更名为目标文件的名称并覆盖掉原来的目标文件中的内容。
3.如果指定目标已经存在,并且是一个目录,系统将把指定的文件移动到这个目录中并且文件名与源文件同名。
需要注意:权限问题,非本用户创建的目录是不能mv进去东西的。也不能将非本用户的文件移动。root用户可以任意移动。
3.8、mkdir命令创建目录。
命令 :mkdir 目标目录名称
在当前目录下创建目标目录名称的目录。
命令 :mkdir -p 绝对路径/目录名称
创建此路径中所有不存在的目录。
比如我在/home/dog/dadog/girldog目录。
我如果直接创建的话是不成功的因为我的路径下面也没有dadog目录。所有需要加上-P 试一下。
是不是成功了呢。
3.9、使用touch命令创建文件
命令:touch 文件1 文件2 文件3
可同时创建单个和多个文件如图:
假如touch的文件已存在会如何呢?
这里我做了实验,假如touch的文件存在,继续touch系统是不会给出提示的,但是会修改文件的时间戳。文件里内容是不会改变的。
3.10、使用rm命令删除文件
rm 与 CP类似是一个极具破坏性的命令,因rm删除后,如果没有备份,将无法恢复。
-i: 防止不小心删除,在删除前给出提示信息。
-r: 递归地删除目录。当删除一个目录时,删除该目录中所有的内容,其中也包括子目录中的全部内容。
-f: 系统并不询问而是强制删除,即直接删除原有的文件。
指点迷津:
rm命令同CP命令累似,其它Linux系统在删除文件时默认以rm -i运行,但Oracle Linux默认以 -f 运行。这种方式在进行 Oracle数据库系统的文件维护时非常方便 。但是如果以root用户执行rm命令,这时系统就以rm -i方式工作了。
3.11、使用rmdir或rm -r命令删除目录
命令 :rmdir
可删除空目录。但目录下有其它文件或目录是不能进行删除的。
命令 :rm -r
递归删除目录下的所有文件或目录。先删除目录下的文件,再删除此目录。
3.13您应该掌握的内容
在学习第4章之前,请检查一下您是否已经掌握了以下内容:
1.什么是Linux文件系统的层次结构?
2.文件系统层次标准(Fiesystem Hierarchy Standard,FHS)
3.Linux系统中有哪些重要的目录?
4.目录和文件的命名原则
5.目录和文件的绝对和相对路径。
6.怎样确定当前目录?
7.使用不同的方法进行目录切换。
8.怎样利用ls命令列出目录中的内容?
9.ls命令中一些常用选项的用法。
10.cp命令中一些常用选项的用法。
11.怎样使用mv命令移动文件和目录?
12.怎样使用mv命令重新命名文件和目录?
13.怎样使用mkdir命令创建目录?
14.touch命令的用法。
15.怎样使用rm命令删除文件?
16.怎样使用rm命令删除目录?
17.怎样使用rmdir命令删除目录?
以上是关于Linux目录和文件的浏览管理及维护的主要内容,如果未能解决你的问题,请参考以下文章