目录
4、目录与路径:cd、pwd、mkdir、rmdir、$PATH
6、档案内容查阅:cat、tac、nl、more、less、head、tail、od、touch
7、档案与目录的默认权限与隐藏权限:umask、chattr、lsattr、SUID、SGID、SBIT、权限设定、file
8、指令与档案的搜寻:which、whereis、locate、find
1、相对路径和绝对路径
(1)绝对路径:路径的写法【一定由根目录 / 写起】,例如: /usr/share/doc 这个目录。
(2)相对路径:路径的写法【不是由 / 写起】,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: 【cd ../man】这就是相对路径的写法啦!相对路径意指【相对于目前工作目录的路径!】
特殊的目录表示:
. 代表此层目录
.. 代表上一曾目录
- 代表前一个工作目录
~ 代表【目前用户身份】所在的家目录
~ account 代表account 这个用户的家目录(accout)是个账号名称注意:根目录(/)的上一层(..)与根目录自己(.)是同一个目录
2、时间显示:date、cal、bc
(1)date 时间日期
(2)cal 日历(caldener)
(3)bc 基本计算(basic calculator)
3、档案权限:chgrp、chown、chmod
需要了解下面的含义:
(1)符号表示法使用以下符号:
u:文件或目录的所有者(user)
g:文件或目录的所属组(group)
o:其他用户(others)
a:所有用户(all),等同于 ugo
(2)操作符:
+:添加权限
-:移除权限
=:设置权限(覆盖原有权限)
(3)权限类型:
r:读取权限(read)
w:写入权限(write)
x:执行权限(execute)
(4)每个权限类型(读、写、执行)对应一个八进制值:
读(r):4
写(w):2
执行(x):1
(1)chgrp 改变档案所属群组
命令格式:chgrp [选项]... 组文件 或 chgrp [选项]... --reference=RFILE文件...
常用选项:
- -R:递归地更改指定目录及其内部文件和子目录的组所有权。
- --reference=RFILE:将文件的组所有权更改为与参考文件RFILE相同的组。
- -c:当发生改变时,输出调试信息。
- -f:取消除用法消息以外的所有错误消息。
- -v:运行时显示详细操作信息,描述对每个文件采取的操作或不操作。
- -H:如果命令行参数是目录的软链接,则遍历该链接(与-R选项一起使用时)。
- -L:遍历每一个软链接到遇到的目录(与-R选项一起使用时)。
- -P:不遍历任何软链接(默认行为,与-R选项一起使用时)。
使用示例:
// bash
//1、更改文件的组所有权
chgrp -R Ivy temp.txt
//2、递归更改文件夹及其所有内容的组所有权
chgrp -R Ivy GFG
//3、使用参考文件的组名更改另一个文件或文件夹的组
chgrp -R --reference=abc.txt GFG
(2)chown 改变档案拥有者
命令格式:chmod [选项] 文件名
使用示例:
// bash
/// 1、字母法示例
(1)增加文件所有用户组可执行权限
chmod a+x 文件名
该命令为文件的所有用户(all),都执行(x)权限。
(2)同时修改不同用户权限
chmod ug+w,o-x 文件名
该命令为文件的所有者(u)和所属组(g)增加了写(w)权限,同时删除了其他用户(o)的执行(x)权限。
(3)删除文件权限
chmod a-x 文件名
该命令删除了所有用户的执行(x)权限。
(4)使用“=”设置权限
chmod u=r 文件名
该命令撤销了文件原来的所有权限,然后为所有者(u)设置了读(r)权限。
(5)对一个目录及其子目录所有文件添加权限
chmod -R u+x 目录名
该命令递归地给指定目录下所有文件和子目录的所有者(u)分配执行(x)权限。
/// 2、数字法示例
数字法基于字母法,用数字表示不同的权限。其中,r(读权限)对应数字4,w(写权限)对应数字2,x(执行权限)对应数字1。权限值通过将这三种权限对应的数字相加得到,顺序是所有者(u)、所属组(g)、其他用户(o)。
(1)设置文件权限为读、写、执行
chmod 777 文件名
该命令为文件的所有者(u)、所属组(g)和其他用户(o)都设置了读(r)、写(w)、执行(x)权限。数字7是通过4(r)+2(w)+1(x)得到的。
(3)chmod 改变档案的权限
命令格式:chmod [选项] 模式 文件/目录
常用选项 -R 或 --recursive:递归地更改目录及其内容的权限。
1、符号表示法:
// 为所有者可以读、写、执行,所属组可以读、执行,其他用户可以读。
chmod u+rwx,g+rx,o+r myfile.txt
2、八进制表示法
//权限设置为 rwxr-xr-x,即所有者可以读、写、执行,所属组和其他用户可以读、执行。
chmod 755 myfile.txt
3、常用选项
//将 mydirectory 及其所有子目录和文件的权限设置为 rwxr-xr-x。
chmod -R 755 mydirectory
4、目录与路径:cd、pwd、mkdir、rmdir、$PATH
(1)cd 变换工作目录(change directory)
命令格式:cd [选项] [目录路径]
常用选项:
-L:如果目标目录是符号链接,则切换到链接所指向的目录(默认行为)。
-P:如果目标目录是符号链接,则切换到链接所指向的实际物理目录。
//切换到当前目录的上一级目录
cd ..
//连续切换多个目录(虽然不常见,但可以通过空格分隔实现)
cd /usr/local/bin
//返回上次访问的目录
cd -
//切换到带有空格的目录
cd "my directory"
cd 'my directory'
cd my\ directory
(2)pwd 显示目前所在目录(print working directory)
命令格式:pwd [选项]
常用选项:
-L:显示逻辑路径,即包含符号链接(软链接)的路径。这是pwd命令的默认行为。
-P:显示物理路径,即实际文件或目录的路径,不解析符号链接。
--help:显示pwd命令的帮助信息,包括如何使用和可用的选项。
--version:显示pwd命令的版本信息。
//返回了当前工作目录的逻辑路径,即包含符号链接的路径(如果有的话)
$ pwd
/home/user/documents
//假设/home/user是一个符号链接,它指向/mnt/storage/user。
//在此,pwd -P 命令返回了当前工作目录的物理路径,即不解析符号链接的实际路径。
$ pwd -P
/mnt/storage/user/documents
//在Shell脚本中,可以使用pwd命令来确定脚本运行时所在的工作目录
#!/bin/bash
current_dir=$(pwd)
echo "当前脚本的工作目录是: $current_dir"
注意事项:
A、pwd命令返回的是当前工作目录的绝对路径,而不是相对路径。
B、当使用符号链接时,pwd命令的默认行为是显示逻辑路径。如果需要显示物理路径,可以使用-P选项。
(3)mkdir 建立新目录
命令格式:mkdir [选项] 目录名称
常用选项:
- -p:递归地创建目录。如果指定的目录的上级目录不存在,则会递归地创建它们。这对于创建多级目录结构非常有用。
- -m 或 --mode:设置新创建目录的权限(八进制数)。这允许用户手动配置目录的权限,而不是使用默认的权限。
- -v 或 --verbose:显示创建的目录的详细信息。这包括每个创建的目录的权限、所有者和群组等信息。
- -Z:为新创建的目录设置SELinux上下文。这对于需要SELinux支持的程序或服务来说是有用的。
- --parents:与-p选项类似,用于递归地创建目录,但不会设置新目录的权限(默认为777)。这个选项通常与-m选项一起使用。
- --no-clobber:如果指定的目录已经存在,则不覆盖它并显示错误消息。默认情况下,如果目录已经存在,mkdir会覆盖它并显示警告消息(但实际上,mkdir命令在尝试创建已存在的目录时会直接报错,而不会覆盖已存在的目录)。
//创建单个目录
mkdir newdir
//创建多个目录
mkdir dir1 dir2 dir3
//创建多级目录
mkdir -p dir1/dir2/dir3
//设置目录权限
mkdir -m 755 mydir
//显示详细信息
mkdir -v mydir
(4)rmdir 删除空的目录
命令格式:rmdir [选项] 目录名
常用选项:
- -p 或 --parents:递归地删除目录及其上级空目录。如果删除后目录的上级目录也为空,则继续删除上级目录,直到遇到非空目录为止。
- -v 或 --verbose:显示删除的目录名称。在删除每个目录时,rmdir会输出一条消息,确认该目录已被成功删除。
- --ignore-fail-on-non-empty:在尝试删除非空目录时,此选项会使rmdir不报错并继续执行。但请注意,这并不会实际删除非空目录,只是忽略了删除非空目录时的错误消息。
//删除单个空目录
rmdir newdir