2.4 目录和文件都能操作的命令
2.4.1 rm命令
rm是强大的删除命令,不仅可以删除文件,也可以删除目录。
命令名称:rm 英文原意:remove files or directories 所在路径:/bin/rm 执行权限:所有用户 功能描述:删除文件或目录
[root@localhost ~]# rm --help
用法:rm [选项]... [文件]...
Remove (unlink) the FILE(s).
-f, --force ignore nonexistent files and arguments, never prompt
-i prompt before every removal
-I prompt once before removing more than three files, or
when removing recursively; less intrusive than -i,
while still giving protection against most mistakes
--interactive[=WHEN] prompt according to WHEN: never, once (-I), or
always (-i); without WHEN, prompt always
--one-file-system 递归删除一个层级时,跳过所有不符合命令行参
数的文件系统上的文件
--no-preserve-root do not treat '/' specially
--preserve-root[=all] do not remove '/' (default);
with 'all', reject any command line argument
on a separate device from its parent
-r, -R, --recursive remove directories and their contents recursively
-d, --dir remove empty directories
-v, --verbose explain what is being done
--help 显示此帮助信息并退出
--version 显示版本信息并退出
默认时,rm 不会删除目录。使用--recursive(-r 或-R)选项可删除每个给定
的目录,以及其下所有的内容。
2.4.2 cp命令
cp是用于复制的命令。
命令名称:cp 英文原意:copy files or directories 所在路径:/bin/cp 执行权限:所有用户 功能描述:复制文件或目录
2.4.3 mv命令
cp是用于剪切的命令。
命令名称:mv 英文原意:move (remove)files 所在路径:/bin/mv 执行权限:所有用户 功能描述:移动文件或者改名
2.5 基本权限管理命令
2.5.1 权限的介绍
在上述ls命令的时候,第一列显示就是文件的权限。例如:
[root@localhost ~]# ls -l
总用量 8
-rw-------. 1 root root 1559 11月 16 16:51 anaconda-ks.cfg
drwxr-xr-x. 2 root root 4096 11月 17 06:56 hqs
第一列的权限位如果不计算最后的"."的话,共有十位,这10位权限位的含义如图所示。
有一张图
「第1位」表示文件类型,这里列举一些常见的文件类型:
“-”:普通文件。 “b”:块设备文件。是一种特殊设备文件,存储设备都是这种文件,如分区文件/dev/sda1。 “c”:字符设备文件。是一种特殊设备文件,输入设备一般都是这种文件,如鼠标,键盘等。 “d”:目录文件。 “l”:软连接文件。 “p”:管道符文件。是一种非常少见的特殊设备文件。 “s”:套接字文件,也是一种特殊的设备文件,一些服务支持Socket访问,就会产生这样的文件。
「第2~4位」代表文件所有者的权限。
“r”:代表read,是读取权限。 “w”:代表write,是写权限。 “x”:代表execute,是执行权限。
「第5~7位」代表文件所属组的权限,同样是“rwx”权限。
「第8~10位」代表其他人的权限,同样拥有“rwx”权限。
2.5.2 基本权限命令
chmod命令
chmod是修改权限命令。
命令名称:chmod 英文原意:change file mode bits 所在路径:/bin/chmod 执行权限:所有用户 功能描述:修改文件的权限模式
[root@localhost ~]# chmod --help
用法:chmod [选项]... 模式[,模式]... 文件...
或:chmod [选项]... 八进制模式 文件...
或:chmod [选项]... --reference=参考文件 文件...
将每个文件的权限模式变更至指定模式。
使用 --reference 选项时,把指定文件的模式设置为与参考文件相同。
-c, --changes like verbose but report only when a change is made
-f, --silent, --quiet suppress most error messages
-v, --verbose output a diagnostic for every file processed
--no-preserve-root do not treat '/' specially (the default)
--preserve-root fail to operate recursively on '/'
--reference=参考文件 使用参考文件的模式而非给定模式的值
-R, --recursive 递归修改文件和目录
--help 显示此帮助信息并退出
--version 显示版本信息并退出
每个模式字符串都应该匹配如下格式:"[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+"。
举例说明,将abc文件所有者权限中添加x权限。
[root@localhost hqs]# ls -l
总用量 36
-rw-r--r--. 1 root root 7 11月 17 06:21 abc
-rw-r--r--. 1 root root 26517 11月 17 06:57 testFileLong.txt
-rw-r--r--. 1 root root 2302 11月 17 06:39 testFile.txt
[root@localhost hqs]# chmod u+x abc
[root@localhost hqs]# ls -l
总用量 36
-rwxr--r--. 1 root root 7 11月 17 06:21 abc
-rw-r--r--. 1 root root 26517 11月 17 06:57 testFileLong.txt
-rw-r--r--. 1 root root 2302 11月 17 06:39 testFile.txt
权限模式
chmod命令的权限模式的格式[ugoa] [[+-=] [perms]],也就是[用户身份] [[赋予方式] [权限]]的格式,其中:
用户身份
u:代表所有者 g:代表所属组 o:代表其他人 a:代表全部身份
+:加入权限 -:减去权限 =:设置权限
r:读取权限,也可用数字4表示 w:写权限,也可用数字2表示 x:执行权限,也可用数字1表示
常用权限组合
数字权限的赋予方式更加简单,下面是几个常用数字权限:
664:文件的基本权限,代表所有者拥有读、写权限,所属组和其他人只有读权限。 755:文件的执行权限和目录的基本权限,代表所有者拥有读、写和执行权限,而所属组合其他人只有读和执行权限。 777:只是最大权限。在实际生产的服务器中,要尽力避免给文件或目录赋予这样的权限,会造成一定的安全隐患。
2.5.3 基本权限的作用
权限含义的解释
读、写、执行权限对文件和目录的作用是不同的。
权限对文件的作用
读(r):对文件有读权限,代表可以读取文件中的数据。此时就可以对文件执行cat、more、less、head、tail等文件查看命令。
写(w):对文件有写权限,代表可以修改文件中的数据。此时就可以对文件执行vim、echo等修改文件数据的命令。「注:对文件有写权限,是不能删除文件本身的,只能修改文件中的数据,如果想要删除文件,则需要对文件的上级目录拥有写权限」。
执行(x):对文件有执行权限,代表文件拥有了执行权,可以运行。一般来说,执行权限是最高权限。
权限对目录的作用
读(r):对目录有读权限,代表可以查看目录下的文件。此时就可以对目录执行ls等文件查看命令。
写(w):对目录有写权限,代表可以修改目录下的数据。此时就可以在目录下执行touch、rm、cp、mv等命令。一般来说,写权限是最高权限
执行(x):目录是不能运行的,对目录有执行权限代表可以进入目录,使用cd命令。
目录的可用权限
目录可用权限有以下几个:
0:任何权限都不赋予 5:基本的目录和进入权限 7:完全权限
2.5.4 所有者和所属组命令
chown命令
chown是修改文件的目录和所有者和所属组的命令。
命令名称:chown 英文原意:change file owner and group 所在路径:/bin/chown 执行权限:所有用户 功能描述:修改文件和目录的所有者和所属组
[root@localhost hqs]# chown --help
用法:chown [选项]... [所有者][:[组]] 文件...
或:chown [选项]... --reference=参考文件 文件...
Change the owner and/or group of each FILE to OWNER and/or GROUP.
With --reference, change the owner and group of each FILE to those of RFILE.
-c, --changes like verbose but report only when a change is made
-f, --silent, --quiet suppress most error messages
-v, --verbose output a diagnostic for every file processed
--dereference affect the referent of each symbolic link (this is
the default), rather than the symbolic link itself
-h, --no-dereference affect symbolic links instead of any referenced file
(useful only on systems that can change the
ownership of a symlink)
--from=当前所有者:当前所属组
只当每个文件的所有者和组符合选项所指定时才更改所
有者和组。其中一个可以省略,这时已省略的属性就不
需要符合原有的属性。
--no-preserve-root do not treat '/' specially (the default)
--preserve-root fail to operate recursively on '/'
--reference=RFILE use RFILE's owner and group rather than
specifying OWNER:GROUP values
-R, --recursive operate on files and directories recursively
The following options modify how a hierarchy is traversed when the -R
option is also specified. If more than one is specified, only the final
one takes effect.
-H if a command line argument is a symbolic link
to a directory, traverse it
-L traverse every symbolic link to a directory
encountered
-P do not traverse any symbolic links (default)
--help 显示此帮助信息并退出
--version 显示版本信息并退出
Owner is unchanged if missing. Group is unchanged if missing, but changed
to login group if implied by a ':' following a symbolic OWNER.
OWNER and GROUP may be numeric as well as symbolic.
示例:
chown root /u 将 /u 的属主更改为"root"。
chown root:staff /u 和上面类似,但同时也将其属组更改为"staff"。
chown -hR root /u 将 /u 及其子目录下所有文件的属主更改为"root"。
普通用户不能修改文件的所有者 ,只有超级用户可以修改。
chagrp命令
chagrp是修改文件和目录的所属组的命令。
命令名称:chgrp 英文原意:change group ownership 所在路径:/bin/chgrp 执行权限:所有用户 功能描述:修改文件和目录的所属组
2.5.5 umask默认权限
查看系统默认权限
[root@localhost hqs]# umask -S
u=rwx,g=rx,o=rx
umask权限是如何计算的呢?
一般来说,新建文件和目录的默认最大权限
对文件来讲,新建文件的默认最大权限是666,没有执行x权限,这是因为执行权限对文件来讲比较危险,不能再新建文件的时候默认赋予,而必须通过用户手工赋予。 对目录来讲,新建目录的默认权限是777.由于目录中的x权限代表进入,故新建时默认直接赋予。
官方的标准算法,umask默认权限需要使用二进制进行逻辑与和逻辑非联合运算才可以达到正确的新建文件和目录默认权限。
2.6 帮助命令
2.6.1 man命令
man是最常见的帮助命令。
命令名称:man 英文原意:format and dispaly the on-line manual pages 所在路径:/usr/bin/man 执行权限:所有用户 功能描述:显示联机帮助手册
2.6.2 info命令
info命令的帮助信息是一套完整的资料,每个单独命令的帮助信息只是这套完整资料中的某一个小章节。
2.6.3 help命令
help只能能获取Shell内置命令的帮助。
命令名称:help 英文原意:help 所在路径:Shell内置命令 执行权限:所有用户 功能描述:显示Shell内置命令的帮助。可以使用type命令来区分内置命令与外部命令。
shell是Linux的命令解释器。
2.6.4 --help选项
绝大多数命令都有 --help选项来查看帮助,例如:
[root@localhost hqs]# mkdir --help
用法:mkdir [选项]... 目录...
Create the DIRECTORY(ies), if they do not already exist.
必选参数对长短选项同时适用。
-m, --mode=MODE set file mode (as in chmod), not a=rwx - umask
-p, --parents no error if existing, make parent directories as needed
-v, --verbose print a message for each created directory
-Z set SELinux security context of each created directory
to the default type
--context[=CTX] like -Z, or if CTX is specified then set the SELinux
or SMACK security context to CTX
--help 显示此帮助信息并退出
--version 显示版本信息并退出
GNU coreutils 在线帮助:<https://www.gnu.org/software/coreutils/>
请向 <http://translationproject.org/team/zh_CN.html> 报告 mkdir 的翻译错误
完整文档请见:<https://www.gnu.org/software/coreutils/mkdir>
或者在本地使用:info '(coreutils) mkdir invocation'






