mv命令
mv是用来移动文件的命令,其基本信息如下:
- 命令名称:mv
- 英文原意:move (rename) files
- 所在路径:/usr/bin/mv
- 执行权限:所有用户
- 功能描述:移动文件或改名
[root@localhoat~]# mv [选项] 源文件 目标文件 选项: -f: 强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖 -i: 交互移动,询问是否覆盖 -n: 如果目标文件已经存在,则不会覆盖移动,而且不询问用户 -v: 显示详细信息
权限管理命令
权限位的含义
[root@localhost ~]# ll drwxr-xr-x. 2 root root 6 Jul 11 08:38 Desktop
权限位如果不计算最后的.(这个点表示该文件收SELinux保护),那么就只有10位
第一位代表文件类型
Linux不像Windows使用后缀名来标识文件类型,而是使用权限位的第一位表示文件类型,详细文件名可以使用info ls来查看
- -:普通文件
- b:块设备文件,这是一种特殊设备文件,存贮设备都是这种文件,如分区文件/dev/sda1就是这种文件
- c:字符设备文件,这也是一种特殊设备文件,输入设备一般都是这种文件,如鼠标、键盘等。
- d:目录文件,linux中一切皆文件,所以目录也是一种文件
- l:软连接文件
- p:管道符文件,这是一种极少见的特殊设备文件
- s:套接字文件,这也是一种特殊设备文件,一些服务支持Socket访问,就会产生这样的文件。
第2-4位代表文件所有者的权限
- r:代表read,是读取权限
- w:代表write,是写权限
- x:代表execute,是执行权限
如果有字母,则代表拥有对应的权限;如果是“-”,则代表没有对应的权限
第5-7位代表文件所属组的权限
- r:代表read,是读取权限
- w:代表write,是写权限
- x:代表execute,是执行权限
如果有字母,则代表拥有对应的权限;如果是“-”,则代表没有对应的权限
第8-10位代表其他人的权限
- r:代表read,是读取权限
- w:代表write,是写权限
- x:代表execute,是执行权限
如果有字母,则代表拥有对应的权限;如果是“-”,则代表没有对应的权限
基本权限的命令
chmod命令
修改权限信息的命令,其基本信息如下:
- 命令名称:chomd
- 英文原意:change file mode bits
- 所在路径:/usr/bin/chmod
- 执行权限:所有用户
- 功能描述:修改文件的权限模式
[root@localhost~]# chmod [选项] 权限模式 文件名 选项: -R: 递归设置权限,也就是给予目录中的所有文件设定权限
普通用户可以修改所有者是自己的文件的权限
普通用户不能修改文件的所有者,哪怕文件是属于自己的。只有root才能修改文件所有者。
权限模式
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:这是最大权限,要尽力避免给文件或目录赋予这种权限,会存在安全隐患
基本权限的含义
首先,读,写,执行权限对文件和目录的作用是不同的
权限对文件的作用
- 读(r):对文件有读的权限,代表可以读取文件的数据。如果把权限对应到命令上,那么一旦对文件有读的权限,就可以对文件执行cat、more、less、head、tail等命令查看文件内容
- 写(w):对文件有写的权限,代表可以修改文件的数据,如果把权限对应到命令上,那么一旦对文件有写的权限,就可以对文件执行vim、echo等修改文件数据的命令。但是对文件有写的权限并不能删除文件,要对文件的上级目录有写的权限
- 执行(x):对文件有执行权限,代表文件拥有执行权限,可以运行。在linux中,只要文件有执行权限,这个文件就是执行文件了。只是这个文件到底能不能正确执行,不仅需要x权限,还要看文件中的代码是不是正确的语言代码。对文件来说,执行权限是最高权限。
权限对目录的作用
- 读(r):对目录有读的权限,代表可以看看目录下的内容,也就是可以查看目录下有哪些子目录和子文件。如果把权限对应到命令上,那么一旦对目录拥有了读权限,就可以在目录下执行ls命令,查看目录下的内容
- 写(w):对目录有写权限,代表可以修改目录下的数据,也就是可以在目录中新建、复制、剪切子文件或子目录。如果把权限对应到命令上,那么一旦对目录拥有了写权限,就可以在目录下执行 touch、rm、cp、mv 命令。对目录来说,写权限是最高权限。
- 执行(x):目录是不能运行的,对目录有了执行权限,代表可以进入目录。如果把权限对应到命令上,那么一旦对目录拥有了执行,就可以对目录cd,进入目录
执行权限对于目录来说是必需的,所以目录的权限只有0、5、7三种
所有者和所属组命令
chown
chown可以修改文件和目录的所有者和所属组,其基本信息如下:
- 命令名称:chown
- 英文原意:change file owner and group
- 所在路径:/usr/bin/chown
- 执行权限:所有用户
- 功能描述:修改文件和目录的所有者和所属组
[root@local~]# chown [选项] 所有者:所属组 文件或目录 选项 -R: 递归设置权限,也就是给子目录中的所有文件设置权限
普通用户可以修改所有者是自己的文件的权限。
但是普通用户不能修改文件的所有者,哪怕自己是这个文件的所有者也不行。
chgrp
chgrp是修改文件和目录的所属组的命令,其基本信息如下:
- 命令名称:chgrp
- 英文原意:change group ownership
- 所在路径:/usr/bin/chown
- 执行权限:所有用户
- 功能描述:修改文件和目录的所属组
[root@local~]# chgrp user file #将文件file的所属组改为user
umask默认权限
默认八进制显示; -S 用字母表示;
先了解一下新建文件和目录的默认最大权限。
- 对文件来讲,新建文件的默认最大权限是666,没有执行权限。这是因为执行权限对文件来讲比较危险,不能在新建文件的时候默认赋予,而必须通过用户手工赋予。
- 对目录来讲,新建目录的默认最大权限是777。这是因为对目录而言,执行权限仅仅代表进入目录,所以即使建立新文件时直接默认赋予,也没有什么危险
按照官方的标准算法,umask默认权限需要使用二进制进行逻辑与和逻辑非联合运算才可以得到正确的新建文件和目录的默认权限。这种方法既不好计算,也不好理解
这里还是按照权限字母来讲解umask权限的计算方法。超级用户的umask值为002,我们就按照普通用户默认的umask值是022来分别计算一下新建文件和目录的默认权限吧:
- 文件的默认权限最大只能是666,而umask的值是022
-rw-rw-rw- 减去 -----w–w- 等于-rw-r–r–
- 目录的默认权限最大可以是777,而umask的值是022
drwxrwxrwx 减去 d----w–w- 等于 drwx-r-xr-x
注意:umask默认权限的计算绝不是数字直接相减。
例如umask是033呢?
文件的默认权限最大只能是666,而umask的值是033
如果直接数字加减,那么权限是633,而3不可能出现在权限数字里
-rw-rw-rw-减去-----wx-wx等于-rw-r–r—
帮助命令
man命令
man是最常见的帮助命令,也是Linux最主要的帮助命令,其基本信息如下:
- 命令名称:man
- 英文原意:format anddisplay the on-line manual pages
- 所在路径:/usr/bin/man
- 执行权限:所有用户
- 功能描述:显示联机帮助手册
[root@localhost~]# man [选项] 命令 选项: -f:查看命令拥有哪个级别的帮助 -k:查看和命令相关的所有帮助
快捷键 | 作用 |
上箭头 | 向上移动一行 |
下箭头 | 向下移动一行 |
PgUp | 向上翻一页 |
PgDn | 向下翻一页 |
g | 移动到第一页 |
G | 移动到最后一页 |
q | 退出 |
/字符串 | 从当前页向下搜索字符串 |
?字符串 | 从当前页向上搜索字符串 |
n | 当搜索字符串时,可以使用n键找到下一个字符串 |
N | 当搜索字符串时,使用N键反向查询字符串,就是/为向上搜索,?为向下搜索 |
man命令帮助的级别
级别 | 作用 |
1 | 普通用户可以执行的系统命令和可执行文件的帮助 |
2 | 内核可以调用的函数和工具的帮助 |
3 | C语言函数的帮助 |
4 | 设备和特殊文件的帮助 |
5 | 配置文件的帮助 |
6 | 游戏的帮助 |
7 | 杂项的帮助 |
8 | 超级用户可以执行的系统命令的帮助 |
9 | 内核的帮助 |
info命令
info命令也可以获得命令的帮助,但是info帮助的信息是一套完整的资料,每个单独命令的帮助信息只是这套完整资料中的某一个小章节
快捷键 | 作用 |
上箭头 | 向上移动一行 |
下箭头 | 向下移动一行 |
PgUp | 向上翻一页 |
PgDn | 向下翻一页 |
Tab | 再有*符号的节点间进行切换 |
Enter | 进入有*符号的子页面,查看详细帮助信息 |
u | 进入上一层信息,(回车是进入下一层信息) |
n | 进入下一小节信息 |
p | 进入上一小节信息 |
? | 查看帮助信息 |
q | 退出 |
help命令
help只能获取shell内置命令的帮助,其基本信息如下:
- 命令名称:help
- 英文原意:help
- 所在路径:shell内置命令
- 执行权限:所有用户
- 功能描述:显示shell内置命令的帮助
[root@localhost~]# help 内置命令
可以用type区分内置命令与外部命令
–help命令
绝大多数命令都可以使用“–help”选项来查看帮助,这也是一种获取帮助的方法。
输出的帮助信息基本上是man命令的信息简要版
搜索命令
whereis命令
是搜索系统命令的命令,也就是说whereis不能搜索普通文件,而只能搜索系统命令,其基本信息如下:
- 命令名称:whereis
- 英文原意:locate the binary, source, and manual page files for a command
- 所在路径:/usr/bin/whereis
- 执行权限:所有用户
- 功能描述:查找二进制命令,源文件和帮助文档的命令
[root@localhost~]# where [选项] 命令 选项: -b:只查找二进制命令 -m:只查找帮助文档