命令基本格式
(1)命令提示符
如下是命令行的命令提示符,以此为例,讲解含义。
其中:
root 当前登录用户名
localhost 主机名
~ 当前所在的目录(即家目录,用户登录的初始位置)
# 超级用户的提示符
普通用户提示符为$
注意:在Linux当中管理员账号是root,切记不是administrator
(2)命令格式
Linux下的命令格式为:
命令 [选项] [参数]
注意:个别命令并不遵循此格式
当有多个选项时可以写在一起
下面举个例子,以查询目录中的内容的命令:ls,作为例子说明命令格式的用法。ls的命令如下:
ls [选项] [文件或者文件目录]
ls命令的参数就是“文件或者文件目录”,它的选项可以输入下面的:
-a 显示所有文件,包括隐藏文件
-l 显示详细信息
-d 查看目录属性
-h 人性化显示文件大小
-i 显示inode
比如在实际中输入ls命令,如下图所示,利用l选项显示出详细信息。
下面我们就以一个例子来解释一下详细信息各个部分的含义:
注意:引用计数就是被调用的次数而已
所有者即谁是这个文件的主人
所属组就是这个文件所属的用户组。
(3)Linux中的权限
在Linux中的权限由10位的字段来表示。下面就是一个权限,我们以此来说明一下Linux中的权限知识:
第一位表示文件类型,有共有7中标示,也就是说Linux中共有7种文件类型。下面只介绍三种:
如果第一位为“—”标示,则是一个普通文件
如果第一位是“d”标示,则是一个目录
如果第一位是“l”标示,则是一个软链接文件,即快捷方式
除去第一位,还有9位。后面的9位,每三位为一组,为了方便说明,我们依次叫做第一组,第二组,第三组。
第一组代表所有者的权限。
第二组代表所属组的权限。
第三组代表其他人的权限。
什么意思呢?首先你要知道,在Linux中有用户和用户组的含义,用户组就是把相同权限或者相同身份的用户放在一起的集合。举个例子:在一个班里面,一个老师拥有一台电脑,那么他就是这台电脑的所有者,他对这台电脑的权限就是所有者的权限。然后呢这个班里的所有的女生对这个电脑的使用权一样,那么这些女生就是一个用户组,那么这个电脑在这个组里的权限就是所属组的权限。剩下的这个班里的男生就是其他人的意思,电脑在这些男生中的权限就是其他人的权限。在Linux中,我们用u代表所有者,g代表所属组,o代表其他人。
那么权限都有哪些呢?Linux只有三种权限,即:
r代表读,w代表写,x代表执行
那么在上面的那个例子中,表示这是一个普通文件类型,所有者具有读和写的权限,所属组具有读的权限,其他人也具有读的权限。
建立目录
建立目录的命令如下:
mkdir –p [目录名]
注:-p 递归创建的意思
创建目录也就是创建一个文件夹的含义。
那么什么时候使用“-p”呢?如果我们创建单独目录,只需要使用比如:mkdir fuly.如果我们想创建这样的目录:fuly/japan呢?而且fuly这个目录是没有的。那么此时我们要用“-p”了。使用命令:mkdir –p fuly/japan 即可
切换目录/进入目录
切换目录或者叫进入目录的命令很简单,如下:
cd [目录名]
但是需要说明它的几个特殊用法:
cd ~或者cd 进入(或者叫回到)当前用户的家目录
cd - 进入上次目录
cd .. 进入上一级目录
cd . 进入当前目录(这个命令并无多大意义)
在这里需要说明,相对路径和绝对路径的意思。可以简单的这样理解。绝对路径是从根目录开始的,也就是以“/”开头的。相对路径即从当前目录开始或者上一级目录开始的,即以“.”或者“..“开头的目录。如下两个例子:
cd /usr/share/doc/ 以绝对路径进入目录
cd ../japan/fuly 以相对路径进入目录
注意:初学者建议使用绝对路径切换目录
删除空目录
rmdir [目录名]
删除文件或者目录
rm –rf [文件名或者目录名]
注:rm本身是用来删除文件的。加了选项”-r“才可以删除目录。选项”-f”是强制的意思,因为每次删除都会询问你是否确定删除,加了这个就不会询问。
ll命令
“ll“命令就是命令”ls -l”
复制命令
cp [选项] [原文件或者目录] [目标目录]
选项:
-r 复制目录
-p 连带文件属性一起复制
-d 若原文件是链接文件,则复制链接属性
-a 就等于选项“-pdr”
注:cp就是用来复制文件的,如果需要复制目录,选项中要加“-r”。如果想要复制的东西和原来的东西一模一样,什么都一样(包括最后一次修改的时间等),就使用选项”-a”。对于我们使用而言,如果复制目录,就加“-r”,如果需要复制的东西和原来一模一样,就加”-a“。
剪切或者改名命令
mv [原文件或目录] [目标目录]
注:怎么区分是剪切还是改名呢?其实很简单,原来的文件和目标文件在同一个目录下就是改名(重命名),如果不在,就是剪切,即从一个目录剪切到另一个目录.
Linux常见目录的作用
在学习Linux的过程中,有些常见的目录的作用是必须要了解的,而且这些常见目录也是严格规定的。我们知道根目录是”/”,根目录下面就是一级目录。那么有哪些常见一级目录呢?如下图:
我们打开了根目录,然后列出了它下面所有的文件以及目录。常见目录的作用如下:
bin和sbin都是保存命令的目录,即里面保存的都是Linux的命令。区别是bin保存的任何用户都可使用,而sbin保存的命令只有超级用户才可使用。需要注意的是usr目录下存在bin和sbin目录,这和一级目录bin和sbin的作用是一样的。
boot目录即启动目录,里面保存的是用户启动时的数据,不能随便做操作。
dev目录是特殊文件保存目录,里面保存的有硬件文件,不能随便操作。
etc目录保存的是系统默认的配置文件。
home是普通用户的文件目录。
root是超级用户的文件目录。
lib是Linux的函数库的保存位置。
media是空的,是Linux用来挂载光盘的位置。
misc也是空的,是Linux用来挂载磁带机的位置。
mnt也是空的,是Linux用来挂载U盘的位置。
注:在Linux中所有的存储设备都要挂载后才能使用,挂载就相当于分配盘符。因此挂载只要是空目录就可以,你完全可以自己建立空目录来挂载U盘什么的。比如说在mnt新建目录usb用来挂载U盘。
proc和sys目录不能直接操作,他们保存的是内存的过载点。也就是说它们是内存的盘符,我们当然不能往内存中写数据了。
tmp是临时目录,存放一些临时数据。
usr是系统软件资源目录。
var目录保存的是系统相关文档。
初学者可以在home或者root或者tmp目录下随便放内容来做练习,其他的目录不要随便动了。也不要在根目录下随便操作,比如创建文件等,虽然允许你这么做。
链接命令
ln -s [原文件] [目标文件]
注:该命令用来生成链接文件。选项“-s”为创建软链接。
在这里要十分的强调硬链接和软链接的区别。分开来说。
硬链接
为了说清原理,这要从分区说起。一块分区要想使用,首先要格式化。而格式化是要做两件事的。一件是将分区分成等大小的数据块;另一件就是建立一个分区表,在这个表中会给每个文件建立一行它的相关数据,比如会包括它的i节点号,修改时间,存储的位置等。我们看下面的一张图:
比如我们建立的一个文件,那么当我们想读取这个文件的时候,它不是直接到存储中找。而且先通过i节点号确定到分区表中的位置,然后找到分区表中这个文件的存储位置,然后按照指引到存储中找到这个文件的数据,也就是图中分区里被打红色勾的那些数据块。最后将这个数据块返回即可。
好了,了解到这些东西。那么我们创建出这个文件的硬链接,当我们通过这个硬链接读取文件的时候,它的查找过程是怎么样的呢?如下图:
通过这个硬链接读取文件的查找过程如图中蓝色线条所示。也就是说硬链接和原来的文件的i节点号相同,因此定位到分区表中相同的数据,自然通过相同的指引找到存储中相同的数据块来返回。
那么硬链接和原文件到底是什么关系的,其实就相当于一个文件的两个名字。也就是一份文件,你给它命名了不同的名字而已。或者做一个形象的比喻,就是一间教室的两扇门,无论你推开哪一道门都会进入教室。那么如果你封掉一个门,通过另一道门仍然可以进入教室。对应于如果你删掉原文件,那么通过硬链接仍旧可以读取数据。如果你修改数据,那么无论通过原文件还是硬链接来读取访问,都是生效的。但是不能跨分区创建硬链接,这就好比一间教室的门不可能开在另外一栋楼上。
下面总结一下硬链接的特征:
(1)和原文件拥有相同的i节点和block块,相当于同一个文件。
(2)可通过i节点识别
(3)不能跨分区
(4)不能针对目录使用
软链接
下面说一说软链接,一句话就可以概括,软链接和windows下的快捷方式是一样的。继续看一张图,如下:
在这里,创建的是文件的一个软链接。通过它读取文件的过程如上图粉红色线所示。从图中可以看到软链接的i节点和原文件的i节点不一样,在分区表中它有自己的数据。其实软链接拥有自己的i节点和数据块,在它的数据块中存储的是原文件的文件名和i节点。在通过软链接读取的时候就是先通过软链接的数据块找到原文件的i节点,然后按照指引再最终找到存储中的数据。说白了,这跟windows中的快捷方式是一样的。
那么软链接的特征呢?如下:
(1)类似于windows快捷方式
(2)软链接拥有自己的i节点和block块,但是数据块中只保存原文件的文件名和i节点号,并没有实际的文件数据。
(3)原文件和软链接,修改任意一个,对方都会发生改变
(4)删除了原文件,软链接不可用。