本节我们主要学习Linux 的文件组织目录结构相对路径和绝对路径。对文件的移动、复制、重命名、编辑等操作。对文件的属性,touch,file,rm,mv等基本命令有所了解。
1.Linux目录结构:
Linux 是以树形目录结构的形式来构建整个系统的,可以理解为树形目录是一个用户可操作系统的骨架。虽然本质上无论是目录结构还是操作系统内核都是存储在磁盘上的,但从逻辑上来说 Linux 的磁盘是“挂在”(挂载在)目录上的,每一个目录不仅能使用本地磁盘分区的文件系统,也可以使用网络上的文件系统。举例来说,可以利用网络文件系统(Network File System,NFS)服务器载入某特定目录等。
(1).FHS标准:
FHS 定义了两层规范,第一层是,/下面的各个目录应该要放什么文件数据,例如/etc应该放置设置文件,/bin与/sbin则应该放置可执行文件等等。
第二层则是针对/usr及/var这两个目录的子目录来定义。例如/var/log放置系统登录文件,/usr/share放置共享数据等等。
执行如下命令:tree/ 如果提示“command not found”先安装。
sudo apt-get update
sudo spt-get install tree
2.目录路径:
(1).路径:
使用cd命令可以切换目录,在 Linux 里面使用.表示当前目录, . . 表示上一级目录(注意,我们上一节介绍过的,以.开头的文件都是隐藏文件,所以这两个目录必然也是隐藏的,你可以使用ls -a命令查看隐藏文件),-表示上一次所在目录,~通常表示当前用户的home目录。
使用pwd命令可以获取当前所在路径(绝对路径)。
进入上级目录:cd..
进入home目录:cd~
使用pwd获取当前路径:pwd;
(2).绝对路径:以根" / "目录为起点的完整路径,以你所要到的目录为终点,表现形式如:
/usr/local/bin,表示根目录下的usr目录中的local目录中的bin目录。
(3).相对路径:usr/local/bin(这里假设你当前目录为根目录)。表示相对路径实际并没有加上表示当前目录的那个.,而是直接以目录名开头,因为这个usr目录为/目录下的子目录,是可以省略这个 . 的(以后会讲到一个类似不能省略的情况);如果是当前目录的上一级目录,则需要使用 .. ,比如你当前目录为home目录,根目录就应该表示为../../,表示上一级目录(home目录)的上一级目录(/目录)。
进入一个目录,可以使用绝对路径也可以使用相对路径,而不用特意只使用某一种。比如假设我当前在/usr/local/bin目录,我想进入上一级的 local 目录你说是使用cd ..方便还是cd /usr/local方便?而如果要进入的是usr目录,那么cd /usr,就比cd ../..方便一点了。
3.Linux文件的基本操作
(1).新建:
新建空白文件,使用touch命令创建空白文件,关于touch命令,其主要作用是来更改已有文件的时间戳的(比如,最近访问时间,最近修改时间),但其在不加任何参数的情况下,只指定一个文件名,则可以创建一个指定文件名的空白文件(不会覆盖已有同名文件),当然也可以同时指定该文件的时间戳。
(2).复制:
使用cp(copy)命令复制一个文件到指定目录。
将之前创建的“ test ”文件复制到“ /home/shiyanlou/father/son/grandson ”目录中。
(3).复制目录:
如果直接使用cp命令复制一个目录的话,会出现错误。要成功复制目录需要加上-r或者-R参数,表示递归复制。
(4).删除:
删除文件:使用rm(remove files or directories)命令删除一个文件。
删除一些为只读权限的文件,直接使用rm删除会显示一个提示,如下:
你如果想忽略这提示,直接删除文件,可以使用-f参数强制删除。
(5).删除目录
跟复制目录一样,要删除一个目录,也需要加上-r或-R参数。
4.移动文件与文件重命名。
(1).移动文件:
使用mv(move or rename files)命令移动文件(剪切)。将文件“ file1 ”移动到Documents目录,mv 源目录文件目的目录。
(2).重命名文件:
将文件“ file1 ”重命名为“ myfile ”。mv 旧的文件名 新的文件名。
(3).批量重命名:
要实现批量重命名,可以使用命令rename来实现。
5.查看文件:
使用cat,tac,nl命令查看文件。
使用more和less命令分页查看文件。
使用head和tail命令查看文件。
6.查看文件类型:
通常使用file命令查看文件的类型:file/bin/ls
说明这是一个可执行文件,运行在 64 位平台,并使用了动态链接文件(共享库)。
7.编辑文件:
直接使用专门的命令行编辑器比如(emacs,vim,nano),由于涉及 Linux 上的编辑器的内容比较多,且非常重要,故我们有一门单独的基础课专门介绍这中一个编辑器 vim 。