pwd:显示当前所在位置
- -L:logical首字母缩写,表示显示逻辑路径,取PWD系统环境变量的值
- -P:physical 显示物理路径时如果当前目录路径是软链接文件,则会显示软链接文件的源文件
cd:切换目录
- 只使用 - 选项时,将会从当前目录切换到系统环境变量 “OLDPWD”对应值的目录路径,即当前用户上一次所在的目录路径
- ~ 只使用~选项时,将会从当前目录切换到系统变量 “HOME”对应值的目录路径,即当前用户的家目录所在的路径
- .. 只使用..时,将会从当前目录切换到当前目录的上一级目录所在的路径
tree:以树形结构显示目录下的内容
- -a 显示所有文件
- -d 只显示目录
- -f 显示每个文件的全路径
- -i 不显示树枝
- -L level 遍历目录的最大层数,level为大于0的正整数
- -F 在执行文件、目录、Socket、符号连接、管道名称等不同类型的文件结尾,各自加上 “*”、"/"、"="、“@”、“|” 号
mkdir 创建目录
mkdir [选项] [目录]
- -p 递归创建目录
- -m 设置新建目录的默认目录对应的权限
- -v 显示创建目录的过程
[root@linuxprobe probuing]# mkdir -pv ./{dir1_1,dir1_2}/{dir2_1,dir2_2}
mkdir: created directory './dir1_1'
mkdir: created directory './dir1_1/dir2_1'
mkdir: created directory './dir1_1/dir2_2'
mkdir: created directory './dir1_2'
mkdir: created directory './dir1_2/dir2_1'
mkdir: created directory './dir1_2/dir2_2'
[root@linuxprobe probuing]# tree -d
.
|-- dir1_1
| |-- dir2_1
| `-- dir2_2
|-- dir1_2
| |-- dir2_1
| `-- dir2_2
`-- test
touch:创建空文件或改变文件的时间属性
touch 选项 文件
- -a 只更改指定文件的最后访问时间
- -d STRING 使用字符串STRING代表的时间作为模板设置指定文件的时间属性
- -m 只更改指定文件的最后修改时间
- -r file 将指定文件的时间属性设置为与模板文件file的时间属性相同
- -t STAMP 使用[[CC]YY]MMDDhhmm[.ss] 格式的时间设置文件的时间属性。世纪、年、月、日、时、分、秒
ls 显示目录下的内容及相关属性信息
ls 选项 文件或目录
- -l 使用长格式列出文件及目录信息
- -a 显示目录下的所有文件
- -t 按修改时间排序
- -r 依相反次序排序
- -F 在条目后加上文件类型的指示符号
- -d 列出目录本身
- -h 以人类可读的信息显示文件或目录大小
- -A 列出所有文件 包括隐藏文件
-
-i 显示文件的inode值
- 第一列 inode索引节点编号
- 第二列 文件类型及权限 (第一个字符为类型 后9个字符为文件权限符号)
- 第三列 硬链接个数
- 第四列 文件或目录所属的用户
- 第五列 文件或目录所属的组
- 第六列 文件或目录的大小
- 第七、八、九列:文件或目录的修改时间
cp:复制文件或目录
cp 选项 源文件 目标文件
- -p 复制文件时保持源文件的所有者、权限信息及时间属性
- -d 保留复制的符号链接所指向的目标文件或目录
- -r 递归复制目录,即复制目录下的所有层级的子目录及文件
- -a 等同于上面的 pdr三个选项功能的总和
- -i 覆盖已有文件前提示用户确认
- -t 可以是 cp -t 目标文件 源文件
mv:移动或重命名文件
mv 选项 源文件 目标文件
- -f 若目标文件已经存在,则不会询问直接覆盖 强制覆盖
- -i 若目标文件存在,则询问是否覆盖
- -n 不覆盖已经存在的文件
- -t 指定mv的目标目录 适用于移动多个源文件到一个目录的情况
- -u 在源文件比目标文件新,或目标文件不存在时才进行移动
rm 删除文件或目录
rm 选项 文件或目录
- -f 强制删除,忽略不存在的文件
- -i 在删除前需要确认
- -l 在删除超过三个文件或者递归前要求确认
- -r 递归删除目录及内容
rmdir 删除空目录
rmdir命令用于删除空目录,当目录不为空时,命令不起作用
rmdir 选项 目录
- -p 递归删除目录,当子目录删除后其父目录也为空时,也一并删除
- -v 显示命令执行过程
ln:硬链接与软链接
ln 创建文件间的链接,包括硬链接和软链接
ln 选项 源文件或目录 目标文件或目录
- 无参数 创建硬链接
- -s 创建软链接(符号链接)
硬链接
硬链接是指通过索引节点来进行链接。多个文件名指向同一个索引节点时正常且允许的,这种情况下的文件就是硬链接。硬链接文件相当于文件的另外一个入口
- 硬链接的节点号inode相同
- 删除硬链接文件或者删除源文件任意之一,文件实体并未被删除
- 只有删除源文件以及源文件所有对应的硬链接文件,文件实体才会被删除
- 当所有的硬链接文件及源文件被删除之后,再存放新的数据时会占用这个文件的空间
- 硬链接文件就是文件的另外一个入口
- 可以通过给文件设置硬链接文件,防止误删
- 当静态文件对应的硬链接数为0时,文件就会被删除
# 创建硬链接并查看硬链接文件内容
[root@linuxprobe lntest]# ln lnfile.txt lnfile_hard_link
[root@linuxprobe lntest]# cat lnfile_hard_link
123
#删除源文件
[root@linuxprobe lntest]# rm -rf lnfile.txt
# 查看硬链接文件 硬链接文件正常
[root@linuxprobe lntest]# cat lnfile_hard_link
123
# 重新链接文件
[root@linuxprobe lntest]# ln lnfile_hard_link a.txt
# 查看源文件
[root@linuxprobe lntest]# cat a.txt
123
软链接
ln -s 源文件 目标文件
- 软链接类似于一个文本文件,里面存储的是源文件的路径,指向源文件实体
- 即使删除了源文件,软链接文件也依然存在。指向失效
- 失效时一般是白字红底闪烁提示
readlink 查看符号链接文件的内容
readlink能够帮助我们查看符号链接文件的内容
readlink [选项] [文件]
find查找目录下的文件
find [选项] [路径] [操作语句]
用-name指定关键字查找
[root@linuxprobe lntest]# find /var/log/ -name '*.log'
xargs 将标准输入转换成命令行参数
xargs命令是向其他命令传递命令行参数的一个过滤器,能够将管道或者标准输入传递的数据转换成xargs命令后跟随的命令的命令行参数
xargs [选项]
- -n 指定每行的最大参数量n
- -d 自定义分隔符
- -i 以{}替代前面的结果
- -I 指定一个符号替代前面的结果
- -p 提示让用户确认是否执行后面的命令
- -0 用null代替空格作为分隔符
[root@linuxprobe lntest]# cat test.txt
123\n234\n345\n456
321
432
543
654 789
[root@linuxprobe lntest]# xargs < test.txt
123n234n345n456 321 432 543 654 78
- -n 指定每行的输出个数
[root@linuxprobe lntest]# xargs -n 3 < test.txt
123n234n345n456 321 432
543 654 789
- -type
- b 块设备文件
- c 字符设备文件
- d 目录
- p 管道文件
- l 符号链接文件
- f 普通文件
- s socket文件
- D door
结合find使用xargs的案例
- 创建文件
[root@linuxprobe tmp]# touch hello\ everyone.txt
- find . -type f -name "*.txt" -print0| xargs -0 rm
rename 重命名文件
rename 通过字符串替换的方式批量修改文件名
语法格式:
rename from to file
- from 代表需要替换或者需要处理的字符
- to 把前面的from代表的内容替换为to代表的内容
- file 待处理的文件
basename 显示文件名或目录名
basename命令用于显示去除路径和文件后缀部分的文件名或目录
语法格式
basename name suffix
- suffix 可选参数 指定要去除文件后缀字符串
[root@linuxprobe ~]# basename /data/dir/file1.txt
file1.tx
dirname 显示文件或目录路径
- 语法格式
dirname [name]
dirname 文件或目录
[root@linuxprobe ~]# dirname /data/dir/file1.txt
/data/dir
[root@linuxprobe ~]# cd /data/dir/
[root@linuxprobe dir]# ls
file1.txt
[root@linuxprobe dir]# dirname file1.txt
.
- dirname后面的参数是相对路径,它也会返回相对路径
chattr 改变文件的扩展属性
chattr用于改变文件的扩展属性,与chmod这个命令相比,chmod只是改变文件的读、写、执行,更底层的属性控制是由chattr来改变的
chattr [选项] [模式] [<文件或目录>]
[root@linuxprobe dir]# chattr +a test 添加追加属性
[root@linuxprobe dir]# lsattr test
-----a-------------- test
[root@linuxprobe dir]# rm -rf test root用户也无法删除,只能追加
rm: cannot remove 'test': Operation not permitted
[root@linuxprobe dir]# echo test >> test
[root@linuxprobe dir]# cat test
test
[root@linuxprobe dir]# echo 222 > test 无法清空文件
-bash: test: Operation not permitted
- -R 递归更改目录属性
- -V 显示命令执行过程
- 增加参数
- 移除参数
- = 更新为指定参数
- A 告诉系统不要修改这个文件的最后访问时间
- a 只能向文件中添加数据,不能删除
- i 设定文件不能被删除、改名、写入或新增,只能是读取
[root@linuxprobe dir]# chattr +i test
[root@linuxprobe dir]# lsattr test
----i--------------- test
[root@linuxprobe dir]# vim test
lsattr 查看文件扩展属性
lsattr 选项 文件或目录
- -R 递归查看目录的扩展属性
- -a 显示所有文件包括隐藏文件的扩展属性
- -d 显示目录的扩展属性
file显示文件的类型
file显示文件的类型
- -b 输出信息使用精简格式,不输出文件名
[root@linuxprobe data]# file dir/file1.txt
dir/file1.txt: empty
[root@linuxprobe data]# file dir/test
dir/test: ASCII text
md5sum 计算和校验文件的MD5值
md5sum命令用于计算和校验文件的MD5值。
md5sum 选项 文件
[root@linuxprobe data]# md5sum dir/test
d8e8fca2dc0f896fd7cb4cb0031ba249 dir/test
chown 改变文件或目录的用户和用户组
chown [选项] [用户:用户组] [<文件或目录>]
- -R 递归更改目录的用户和用户组
[root@linuxprobe dir]# ll
total 4
-rw-r--r--. 1 root root 0 Dec 19 08:51 file1.txt
-rw-r--r--. 1 root root 5 Dec 19 09:00 test
[root@linuxprobe dir]# chown linuxcool:linuxcool file1.txt
[root@linuxprobe dir]# ll
total 4
-rw-r--r--. 1 linuxcool linuxcool 0 Dec 19 08:51 file1.txt
-rw-r--r--. 1 root root 5 Dec 19 09:00 tes
chmod改变文件或目录权限
chmod命令是用来改变文件或目录权限的命令,只有文件的属主和超级用户root才能够执行该命令
chmod [选项] [模式] [<文件或目录>]
-
-R 递归处理指定目录以及其子目录下的所有文件
权限位 | 全称 | 含义 | 对应数字 |
---|---|---|---|
r | read | 可读 | 4 |
w | write | 可写 | 2 |
x | execute | 可执行 | 1 |
- | 没有任何权限 | 0 | |
备注 | 一些特殊权限位:t、T、s、S、X、x | ||
用户类型 | 其他用户:o 所有:a,等效于u、g、o的总和 | ||
操作字符 | +:加入 -:减去 =:设置 |
[root@linuxprobe dir]# ll
total 4
----------. 1 linuxcool linuxcool 0 Dec 19 08:51 file1.txt
-rw-r--r--. 1 root root 5 Dec 19 09:00 test
[root@linuxprobe dir]# chmod u+x file1.txt
[root@linuxprobe dir]# ll
total 4
---x------. 1 linuxcool linuxcool 0 Dec 19 08:51 file1.txt
-rw-r--r--. 1 root root 5 Dec 19 09:00 test
[root@linuxprobe dir]# chmod g+w file1.txt
[root@linuxprobe dir]# ll
total 4
---x-w----. 1 linuxcool linuxcool 0 Dec 19 08:51 file1.txt
-rw-r--r--. 1 root root 5 Dec 19 09:00 test
[root@linuxprobe dir]# chmod o+r file1.txt
[root@linuxprobe dir]# ll
total 4
---x-w-r--. 1 linuxcool linuxcool 0 Dec 19 08:51 file1.txt
-rw-r--r--. 1 root root 5 Dec 19 09:00 test
Linux读、写、执行权限说明
普通文件的权限说明
- 可读r:表示具有读取/阅读文件内容的权限
- 可写w:表示具有新增、修改文件的权限(删除文件的权限是受父目录的权限控制,和文件本身无关)
- 可执行:表示具有执行文件的权限
- 文件本身要能够执行
- 普通用户必须还要有r权限才能够执行,无r就不能执行
- root没有r权限 只要有x权限就可以执行
- root用户位没有执行权限,但只要其他权限位还有x权限,就能执行
Linux目录的读、写、执行权限说明
- 可读r:表示具有浏览目录下面文件及子目录的权限
- 没有x不能进到目录里
- ls列表可以看到所有的文件名,会提示无权访问目录下的文件
- ls -l 则所有的属性会带问号。也会提示无权访问目录下的文件
- 可写w:表示具有增加、删除或修改目录内文件名的权限
- 增加的不是文件内容,而是创建一个新的文件
- 修改的不是文件内容,只能修改文件名、重命名文件
- 删除也是删除文件而不是看文件本身的权限,是看目录的权限,如果没有x则不能删除
- 可执行x 表示具有进入目录的权限
- 没有r则无法列表
- 没有w则无法新建文件
chgrp 更改文件用户组
chgrp只能更改文件的用户组,功能已经被chown取代
umask 显示或设置权限掩码
umask是通过八进制的数值来定义用户创建文件或目录的默认权限
umask [参数] [模式]
- -p 输出的权限掩码可直接作为命令来执行
- -S 以字符方式输出权限掩码
通过umask计算文件目录权限
- 创建文件默认最大的权限为666(-rw-rw-rw-),默认创建的文件是没有可执行x权限位
对于文件来说,umask的设置是在假定文件拥有八进制666的权限上进行的,文件的权限就是666减umask的掩码数值,如果得到3位数字其每一位都是偶数,那么这就是最终结果。如果有若干位的数字是奇数,那么这个奇数位需要加1变成偶数,最后得到全是偶数的结果 - 创建目录默认最大权限777(-rwx-rwx-rwx)默认创建的目录属主是有x权限的,允许用户进入