本章内容:
- 命令的基本格式
- 目录操作命令
- 文件操作命令
- 目录和文件都能操作命令
- 基本权限管理
- 帮助命令
一、命令的基本格式
- 命令的提示符
- [ ]:这是提示符的分隔符,没有特殊含义。
- root:显示的是当前的登录用户,现在使用的是root用户登录。
- @:分隔符号,没有特殊的含义。
- localhost:当前系统的简写主机名(完整主机名是localhost.localdomain)
5.~:代表用户当前所在的目录,此例中用户当前所在的目录是家目录。
6.#:命令提示符。
超级用户是:#;
普通用户是:$。
2.命令的基本格式
- (命令 [ 选项 ] [ 参数 ])
- 选项:用于调整命令的功能
- 参数:是命令的操作对象,如果省略参数,是因为有默认参数
二、目录操作命令
- ls命令
1.ls是最常见的目录操作命令,主要作用是显示目录下面的内容。
- 命令名称:ls。
- 所在路劲:/bin/ls。
- 执行权限:所有用户。
- 功能描述:显示目录下的内容。
ls格式(ls [ 选项 ] [ 文件名和目录名 ])
- 选项
-a:显示所有文件
--clolr=when:支持颜色输出,when的值默认是always(总是显示颜色),也可以是never(从不显示颜色)和auto(自动)
-d:显示目录信息,而不是目录下的文件
-h:人性化显示,按照我们的习惯单位显示文件大小
-i:显示文件的i节点号
-l:长格式显示
详细介绍
# 权限 引用计数 所有者 所属组 大小 文件修改时间 文件名
2.cd命令
1.cd是切换所在目录的命令,这个命令的基本信息如下:
1.命令名称:cd
2.所在路径:Shell内置命令
3.执行权限:所有用户
4.功能描述:切换所在目录
2.cd命令的简化用法
特殊符号 | 作用 |
~ | 代表用户的家目录 |
- | 代表上次所在目录 |
. | 代表当前目录 |
.. | 代表上级目录 |
3.绝对路径和相对路径
- 绝对路径:以根目录为参照物,从根目录开始,一级一级进入目录
- 相对路径:以当前目录作为参照物,进行目录查找
3.mkdir命令
mkdir是创建目录的命令,其基本信息如下。
1.命令名称:mkdir
2.所在路劲:/bin/mkdir
3.执行权限:所有用户
4.功能描述:创建空目录
命令格式:mkdir [ 选项 ] 目录名
选项:
-p:递归建立所需目录
4.rmdir命令
rmdir是删除目录的命令,其基本信息如下。
1.命令名称:rmdir
2.所在路劲:/bin/rmdir
3.执行权限:所有用户
4.功能描述:删除空目录
命令格式:rmdir [ 选项 ] 目录名
选项:
-p:递归删除目录
rmdir命令的作用十分有限,因为只能删除空目录,所以一旦目录中有内容,就会报错。
这个命令比较笨,一般不常用,删除目录一般会使用rm命令进行删除
三、文件操作命令
1.touch命令
touch是创建空文件或修改文件时间,其基本信息如下。
1.命令名称:touch
2.所在路劲:/bin/touch
3.执行权限:所有用户
4.功能描述:修改文件的时间戳
2.stat命令
stat是查看文件详细信息的命令,而且可以看到文件的这三个时间,其基本信息如下:
1.命令名称:stat
2.所在路劲:/usr/bin/stat
3.执行权限:所有用户
3.cat命令
cat是用来查看文件内容,其基本信息如下:
1.命令名称:cat
2.所在路劲:/bin/cat
3.执行权限:所有用户
功能描述:合并文件并打印输出到标准输出
命令格式:cat [ 选项 ] 文件名
选项:
-A:相当于-vET选项的整合,用于列出所有隐藏符号
-E:列出每行结尾的回车符$
-n:显示行号
-T:把Tab键用^I显示出来
-v:列出特殊字符
4.more命令
more是分屏显示文件的命令,其基本信息如下。
1.命令名称:more
2.所在路径:/bin/more
3.执行权限:所有用户
4.功能描述:分屏显示文件内容
more命令比较简单,一般不用什么选项,命令会打开一个交互界面,可以识别一下交互命令。常用的交互命令如下:
空格键:向下翻页
b:向上翻页
回车键:向下滚一行
/字符串:搜索指定的字符串
q:退出
5.less命令
less命令和more命令类似,只是more是分屏显示命令,而less是分行显示命令,其基本信息如下。
1.命令名称:less
2.所在路径:/usr/bin/less
3.执行权限:所有用户
4.功能描述:分行显示文件内容
6.head命令
head是显示文件开头的命令,其基本信息如下。
1.命令名称:head
2.所以路径:/usr/bin/head
3.执行权限:所有用户
4.功能描述:显示文件开头的内容
7.tail命令
tail是显示文件结尾的命令,其基本信息如下。
1.命令名称:tail
2.所在路径:/usr/bin/tail
3.执行权限:所有用户
4.功能描述:显示文件结尾的内容
命令格式:tail [ 选项 ] 文件名
选项:
-n 行数:从文件结尾开始,显示指定行数
-f:监听文件的新增内容
8.ln命令
ln命令是建立链接的命令,其基本信息如下。
1.命令名称:ln
2.所在路径:/bin/ln
3.执行权限:所有用户
4.功能描述:在文件之间建立链接
命令格式:ln [ 选项 ] 源文件 目标文件
选项:
-s:建立软链接文件。如果不加“-s”选项,则建立硬链接文件
创建硬链接:
创建软链接:
-f:强制。如果目标文件已经存在,则删除目标文件后再建立链接文件
硬链接和软链接的特征
硬链接的特征:
1.源文件和硬链接文件拥有相同的Inode和Black
2.修改任意一个文件,另一个都改变
3.删除任意一个文件,另一个都能使用
4.硬链接标记不清楚,很难确认硬链接文件位置,不建议使用
5.硬链接不能链接目录
6.硬链接不能跨分区
软链接的特征:
1.软链接和源文件拥有不同的Inode和Block
2.两个文件修改任意一个,另外一个都改变
3.删除软链接,源文件不受影响;删除源文件,软链接不能使用
4.软链接没有实际数据,只保存源文件的inode,不论源文件多大,软链接大榭不变
5.软链接权限是最大权限,但是由于没有实际数据,最终访问是需要参考源文件权限
6.软链接可以链接目录
7.软链接可以跨分区
8.软链接必须要写绝对路径
9.软链接特征明显,建议使用软链接
四、目录和文件都能操作命令
1.rm命令
rm是强大的删除命令,不仅可以删除文件,也可以删除目录,其基本信息如下。
1.命令名称:rm
2.所在路径:/bin/rm
3.执行权限:所有用户
4.功能描述:删除文件或目录
命令格式:rm [ 选项 ] 文件和目录
选项:
-f:强制删除(force)
-i:交互删除,在删除之前会询问用户
-r:递归伤处,可以删除目录(recursive)
2.cp命令
cp是用于复制的命令,其基本信息如下。
1.命令名称:cp
2.所在路径:/bin/cp
3.执行权限:所有用户
4.功能描述:复制文件和目录
命令格式:cp [ 源文件 ] 源文件 目标文件
选项:
-a:相当于-dpr选项的集合,这几个选项我们一一介绍
-d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接
-i:询问,如果目标文件已经存在,则会询问是否覆盖
-p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间)
-r:递归复制,用于复制目录
3.mv命令
mv是用来剪切的命令,其基本信息如下。
1.命令名称:mv
2.所在路径:/bin/mv
3.执行权限:所有用户
4.功能描述:移动文件或改名
命令格式:mv [ 选项 ] 源文件 目标文件
选项:
-f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖
-i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项)
-v:显示详细信息
五、基本权限管理
1.权限的介绍
权限位的含义
# 权限 引用计数 所有者 所属组 大小 文件修改时间 文件名
第一列权限位的含义:
第①位:文件类型。Linux是使用权限位的第一位表示文件类型,详细情况可以使用“info ls”命令查看。
“-”:普通文件
“b”:块设备文件。这是一种特殊的设备文件,存储设备都是这种文件,如分区文件/dev/sda1就是这种文件
“c”:字符设备文件。这也是特殊设备文件,输入设备一般都是这种文件,如鼠标、键盘等
“d”:目录文件。Linux中一切皆文件,所以目录也是文件的一种
“l”:软链接文件。
“p”:管道符文件。这是一种少见的特殊设备文件
“s”:套接字文件。这也是一种特殊设备文件,一些服务支持Socket访问,就会产生这样的文件
第②~④位:代表文件所有者的权限。
r:代表read,是读取权限
w:代表write,是写权限
x:代表execute,是执行权限
如果有字母,则代表拥有对应的权限;如果是“-”,则代表没有对应的权限。
第⑤~⑦位:代表文件所属组的权限,同意拥有“rwx”权限。
第⑧~⑩位:代表其他人的权限,同意拥有“rwx”权限。
“ . ”:代表该文件收SLinux协会保护。
2.基本权限命令
1.chmod命令
chmod是修改权限命令,其基本信息如下。
1.命令名称:chmod
2.所在路径:/bin/chmod
3.执行权限:所有用户
4.功能描述:修改文件的权限模式
命令格式:chmod [ 选项 ] 权限模式 文件名
选项:
-R:递归设置权限,也就是给目录中的所有文件设定权限
权限模式:
chmod命令的权限模式的格式是“[ ugoa ] [ [ +-= ] [ perms ] ]”,也就是“[ 用户身份 ] [ [ 赋予方式 ] [ 权限 ] ]”的格式,其详细基本如下。
用户身份:
u:代表所有者(user)
g:代表所属组(group)
o:代表其他人(other)
a:代表全部身份(all)
赋予方式:
+:加入权限
-:减去权限
=:设置权限
权限:
r:读取权限(read)
w:写入权限(write)
x:执行权限(execute)
数字权限:
数字权限的赋予方式是最简单的,但是不如之前的字母权限好记、直观。其基本信息如下。
4:代表“r”权限
2:代表“w”权限
1:代表“x”权限
常用权限:
数字权限的赋予方式更加简单,但是需要用户对着几个数字更加熟悉。其基本信息如下。
644:这是文件的基本权限,代表所有者拥有读写权限,而所属组和其他人拥有只读权限。
755:这是文件的执行权限和目录的基本权限,代表所有者拥有读、写和执行权限,而所属组和其他人拥有读和执行权限。
777:这是最大权限,在实际中,要尽量避免给文件和目录赋予这样的权限,这会造成一定的安全隐患。
3.基本权限的作用
权限含义解释
首先是读、写、执行权限对文件和目录的作用是不同的。
权限对文件的作用:
读(r):对文件有读(r)权限,代表可以读取文件中的数据。如果把权限对应到命令上,那么一旦对文件有读(r)权限,就可以兑文件执行cat、more、less、head、tail等问查看命令。
写(w):对文件有些(w)权限,代表可以修改文件中的数据,如果把权限对应到命令上,那么一旦对文件有写(w)权限,就可以对文件执行vim、echo等修改文件数据的命令。注意:对文件有写权限,是不能删除文件本身的,只能修改文件中的数据。如果想要删除文件,则需要对文件的上级目录拥有写权限。
执行(x):对文件有执行(x)权限,代表文件拥有了执行权限,可以运行。在Linux中,只要文件有执行(x)权限,这个文件就是执行文件了。只是这个文件到底能不能正确执行,不仅需要执行(x)权限,还要看文件中的代码是不是正确的语言代码。对文件来说,执行(x)权限是最高权限。
权限对目录的作用:
读(r):对目录有读(r)权限,代表可以查看目录下的内容,也就是可以查看目录下有哪些子文件和子目录。如果把权限对应到命令上,那么一旦对目录拥有了读(r)权限,就可以在目录下执行ls命令,查看目录下的内容了。
写(w):对目录有写(w)权限,代表可以修改目录下的数据,也就是可以在目录中新建、删除、复制、剪切子文件或子目录。如果把权限对应到命令上,那么一旦对目录拥有了写(w)权限,就可以在目录下执行touch、rm、cp、mv命令。对目录来说,写(w)权限是最高权限。
执行(x):目录是不能运行的,那么对目录拥有执行(x)权限,代表可以进入目录。如果把权限对应到命令上,那么一旦对目录拥有了执行(x)权限,就可以对目录执行cd命令,进入目录
目录的可用权限
目录的可用权限其实只要以下几个:
0:任何权限都不赋予
5:基本的目录浏览和进入权限
7:完全权限
4.所有者和所属组命令
1.chown命令
chown是修改文件和目录的所有者和所属组的命令,其基本信息如下。
1.命令名称:chown
2.所在路劲:/bin/chown
3.执行权限:所有用户
4.功能描述:修改文件和目录的所有者和所属组
命令格式:chown [ 选项 ] 所有者:所属组 文件或目录
选项:
-R:递归设置权限,也就是给子目录的所有文件设置权限
普通用户不能修改文件所有者,哪怕自己是这个文件的所有者也不行。
普通用户可以修改所有者是自己的文件的权限
2.chgrp命令
chgrp是修改文件和目录的所属组的命令,其基本信息如下。
1.命令名称:chgrp
2.所在路劲:/bin/chgrp
3.执行权限:所以用户
4.功能描述:修改文件和目录的所属组
5.umask默认权限
1.查看系统的umask权限
2.umask权限的计算方法
我们需要先了解一下新建文件和目录的默认最大权限。
1.对于文件来讲,新建文件的默认最大权限是666,没有执行(x)权限。这是因为执行权限对文件来讲比较危险,不能再新建文件的时候默认赋予,而必须通过用户手工赋予。
2.对于目录来讲,新建目录的默认最大权限是777。这是因为对目录而言,执行(x)权限仅仅代表进入目录,所以即使建立新文件是直接默认赋予,也没有什么危险。
按照官方的标准算法,umask默认权限需要使用二进制进行逻辑与和逻辑非联合运算才可以得到正确的新建文件和目录的默认权限。这种方法既不会计算,也不好理解,不推荐。
我们在这里还是按照权限字母来讲解umask权限的计算方法,我们就按照默认的umask值是022来分别计算一下新建文件和目录的默认权限吧。
文件的默认权限最大只能是666,而umask的值是022
“-rw-rw-rw-”减去“-----w--w-”等于“-rw-r--r--”
目录的默认权限最大可以是777,而umask的值是022
“drwxrwxrwx”减去“d----w--w-”等于“drwxr-xr-x”
注意:umask默认权限的计算绝不是数字直接相减。
例如:umask是033呢?
文件的默认权限最大只能是666,而umask的值是033
“-rw-rw-rw-”减去“-----w--w-”等于“-rw-r--r--”
六、帮助命令
1.man命令
man命令是最常见的帮助命令,也是Linux最主要的帮助命令,其基本信息如下。
1.命令名称:man
2.所在路径:/usr/bin/man
3.执行权限:所有用户
4.功能描述:显示联机帮助手册
命令格式:man [ 选项 ] 命令
选项:
-f:查看命令拥有那个级别的帮助
-k:查看和命令相关的所有帮助
man命令的快键键
快键键 | 作用 |
上箭头 | 向上移动一行 |
下箭头 | 向下移动一行 |
PgUp | 向上翻一页 |
PgDn | 向下翻一页 |
g | 移动到第一页 |
G | 移动到最后一页 |
q | 退出 |
/字符串 | 从当前页向下搜索字符串 |
?字符串 | 从当前页向上搜索字符串 |
n | 当搜索字符串时,可以使用n键找到下一个字符串 |
N | 当搜索字符串时,使用N键反向查询字符串。也就是说,如果使用“/字符串”方式搜索,则N键表示向上搜索字符串;如果使用“?字符串”方式搜索,则N键表示向下搜索字符串 |
man命令的帮助级别
级别 | 作用 |
1 | 普通用户可以执行的系统命令和可执行文件帮助 |
2 | 内核可以调用的函数和工具的帮助 |
3 | C语言函数的帮助 |
4 | 设备和特殊文件的帮助 |
5 | 配置文件的帮助 |
6 | 游戏的帮助(个人版的Linux中是有游戏的) |
7 | 杂项的帮助 |
8 | 超级用户可以执行的系统命令的帮助 |
9 | 内核的帮助 |
2.info命令
info命令的帮助信息是一套完整的资料,每个单独命令的帮助信息只是这套完整资料中的某一个小章节。
快键键 | 作用 |
上箭头 | 向上移动一行 |
下箭头 | 向下移动一行 |
PgUp | 向上翻一页 |
PgDn | 向下翻一页 |
Tab | 在有“*”符号的节点间进行切换 |
回车 | 进入有“*”符号的子页面,查看详细帮助信息 |
u | 进入上一层信息(回车是进入下一层信息) |
n | 进入下一小节信息 |
p | 进入上一小节信息 |
? | 查看帮助信息 |
q | 退出info信息 |
3.help命令
help只能获取Shell内置命令的帮助,其基本信息如下。
1.命令名称:help
2.所在路径:Shell内置命令
3.执行权限:所有用户
4.功能描述:显示Shell内置命令的帮助,可以使用type命令来区分内置命令与外部命令
Shell是Linux的命令解释器
4.--help选项
绝大多数命令都可以使用“--help”选项来查看帮助,这也是一种获取帮助的方法。例如:
这种方法非常简单,输出的帮助信息基本上是man命令的信息简要版。
对于以上4中常见的获取帮助的方法,可以按照自己的习惯任意使用。