赞
踩
1,绝对路径与相对路径
相对路径对比绝对路径来说更加方便,但是绝对路径的正确度更好
2.目录的相关操作
. 代表此层目录
.. 代表上一层目录
- 代表前一个工作目录
- [root@zjwLinux ~]# cd /home/zjw/
- [root@zjwLinux zjw]# cd -
- /root
- [root@zjwLinux ~]# cd -
- /home/zjw
合理使用 - 可在工作目录间快速切换
~ 代表目前使用者身份所在的家目录
~用户名 代表 用户名 这个使用者的家目录
根目录 / 的 . 与 .. 是同一个目录
- 1 root@zjw-Lenovo-Legion-Y7000P-2020H:/# ls -al
- 2 总用量 84
- 3 drwxr-xr-x 20 root root 4096 6月 11 01:17 .
- 4 drwxr-xr-x 20 root root 4096 6月 11 01:17 ..
3.几个常用的处理目录命令
cd 切换目录
pwd 显示当前目录
mkdir 建立一个新目录
rmdir 删除一个空目录
一般情况下 pwd -L 与 pwd 一样
pwd -P 显示真正的物理路径,非连接文件路径
如
- root@zjw-Lenovo-Legion-Y7000P-2020H:~# cd /lib
- root@zjw-Lenovo-Legion-Y7000P-2020H:/lib# pwd
- /lib
- root@zjw-Lenovo-Legion-Y7000P-2020H:/lib# ls -ld /lib
- lrwxrwxrwx 1 root root 7 6月 11 01:16 /lib -> usr/lib
- root@zjw-Lenovo-Legion-Y7000P-2020H:/lib# pwd -P
- /usr/lib
mkdir -p test1/test2 为递归创建,在 test1 中创建 test2
mkdir -m 777 test1 在创建 test1 时直接设置权限777
但是,当递归创建的同时设置权限时,仅有最里面的目录拥有设置的权限,其他外层目录都是默认权限
- root@zjw-Lenovo-Legion-Y7000P-2020H:/tmp# mkdir -pm 777 test1/test2
- root@zjw-Lenovo-Legion-Y7000P-2020H:/tmp# ls -ld test1
- drwxr-xr-x 3 root root 4096 6月 24 20:29 test1
- root@zjw-Lenovo-Legion-Y7000P-2020H:/tmp# ls -l ./test1
- 总用量 4
- drwxrwxrwx 2 root root 4096 6月 24 20:29 test2
仅仅只有 test2 拥有被设置的权限
rmdir -p test1/test2 删除空目录test2与空目录test1(rmdir只能删除空目录)
4.文件与目录的查看:ls
ls -F 显示出的*为可执行文件;/为目录;=为socket文件;|为FIFO文件
具体查看man手册
5.复制、删除、移动 cp、rm、mv
cp -a 将所有属性都复制
cp -d 若源文件是链接文件,则复制链接文件属性而非文件本身
- root@zjw-Lenovo-Legion-Y7000P-2020H:/tmp# ls -l /bin
- lrwxrwxrwx 1 root root 7 6月 11 01:16 /bin -> usr/bin
- root@zjw-Lenovo-Legion-Y7000P-2020H:/tmp# ls -ld /usr/bin
- drwxr-xr-x 2 root root 36864 6月 24 14:32 /usr/bin
- root@zjw-Lenovo-Legion-Y7000P-2020H:/tmp# cp -d /bin ./zjwbin
- root@zjw-Lenovo-Legion-Y7000P-2020H:/tmp# ls -ld zjwbin
- lrwxrwxrwx 1 root root 7 6月 25 20:00 zjwbin -> usr/bin //会发现 zjwbin 文件属性与链接文件 /bin 的属性一模一样,而非 /usr/bin;但是若直接 cp 复制,则会将 /usr/bin 属性复制而非链接文件 /bin
cp -r 递归复制
cp -p 连同文件属性一起复制而非使用默认属性
cp -f 若目标文件已存在且无法开启,则删除后再复制一次
cp -i 若目标文件已存在,则在覆盖时会询问
cp -l 硬连接
cp -s 复制成为符号链接文件
cp -u 目标文件比源文件旧才更新,或者目标文件不存在才复制
默认情况下,目标文件的拥有者通常会是操作者本身而非源文件拥有者
在复制时需要知道:是否需要完整的保留源文件信息;源文件是否为符号链接文件;源文件是否为特殊的文件;源文件是否为目录
rm -f 强制,忽略不存在的文件,不会出现警告信息
rm -i 在删除时会询问
rm -r 递归删除
mv -f 强制,若目标文件已存在,不会询问而直接覆盖
mv -i 若目标文件已存在,则会询问
mv -u 若目标文件比源文件旧,则更新
6.文件名与目录名的获取
basename 获取文件名
dirname 获取目录名
7.文件内容查看
cat 从第一行开始显示文件内容 -a 相当于 -vET
-b 列出行号,空白行不标记
-E 将换行符 $ 显示
-n 列出行号,空白行也包含
-T 将 tab 键以^I显示出来
-v 列出一些看不出来的特殊字符
tac 从最后一行开始显示
nl显示的时候同时输出行号 -b 指定行号指定的方式 -b a 类似于 cat -n
-b t (默认)若有空行,空行不列出行号
-n 列出行号的表示方法 -n ln 行号在屏幕的最左方显示
-n rn 行号在栏位的最右方显示,不加0
-n rz 行号在栏位的最右方显示,加0
-w 行号栏位的占用字符数,即行号显示的位数
more 一页一页显示文件内容
less 与 more 类似,但是可以往前翻页(测试了一下,more 也可以向前翻页,区别是 less 可以使用 g 或 Home、G或End 到达第一行与最后一行)
head 只看前面几行 -n number 显示 number 行,number 为负时,除了最后number行不显示,其余行都显示
tail 只看后面几行 -n number 显示最后number行 +number 显示number行以后的数据 (-number好像没有什么意义)
-f 持续刷新后面所接文件中的内容
od -t 后面可以接各种类型的输出 a 默认字符输出(以二进制方式读取文件内容)
c ASCLL字符输出
d[size] 十进制输出,每个整数占用 size字节
f[size] 浮点数输出
o[size] 八进制输出
x[size] 十六进制输出
8.文件时间的认识及创建新文件
修改时间(mtime):当文件的内容数据被修改时,就会更新时间
ls 显示出来的时间默认为 mtime
状态时间(ctime):当文件的状态改变时,如权限与属性,就会更新时间(通过操作可以发现只要更改了文件的任何一个属性如任何一个时间,ctime都会改变)
读取时间(atime):当文件的内容数据被读取时,就会更新时间
touch 创建新文件 -a 仅自定义atime
-c 仅修改文件时间,若文件不存在则不创建新文件
-d 后面可以接欲自定义的日期而不用目前的日期,等于 --date=
-m 仅修改mtime
-t 与 -d类似,日期格式为 YYYYDDMMhhmm
9.文件目录的默认权限与隐藏权限
umask 查看默认权限 默认显示为所有权限需要减去的权限,如显示022则g-w o-w
-S 以u= ,g=, o= 显示
- [zjw@zjwLinux ~]$ umask -S
- u=rwx,g=rx,o=rx
建立文件的所有权限为-rw-rw-rw- 建立目录的所有权限为drwxrwxrwx
文件的隐藏属性
chattr + 增加某一特殊参数,其他参数不动
- 删除某一特殊参数,其他参数不动
= 直接设置,且仅有设置的参数
A 设置此参数后,存取次文件时,存取时间 atime 不会改变
S 一般文件都是非同步写入磁盘,设置此参数后,修改会同步写入磁盘
a 设置后,文件只能增加数据,不能修改或删除数据
c 设置后,会自动将文件压缩,读取时自动解压缩,存储时先压缩再存储
d 当dump程序被执行时,此文件不会被dump备份
i 此文件不能被删除、改名、设置链接也无法写入或新增数据,即使是root也无法
s 若文件被删除,则会完全被硬盘删除,无法恢复
u 与s相反,可恢复
lasttr -a 显示隐藏文件
-d 若接目录,则列出目录本身
-R 递归显示
10.文件的特殊权限(先记着,了解一下,后面再会来看)
4 SUID Set UID,s出现在文件拥有者的x权限上,仅对二进制程序有效,无法用在目录及shell脚本上;执行者对于该程序具有x的可执行权限;仅在执行该程序中获得该程序拥有者的权限
如
[root@zjwLinux /]# ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 51464 Jan 27 21:47 /usr/bin/passwdpasswd的拥有者为 root ,当用另外一个用户zjw执行此文件时,如用vim进入,如果没有s,则zjw无法修改内容,但是有了s后,zjw有了文件拥有者root的权限,即有了rwx
2 SGID Set GID,s出现在用户组的x权限上,对二进制程序有用;程序执行者须具备x权限且在执行过程中将会获得用户组权限
设置在目录上后,用户对于此目录有r与x权限,即能够进入此目录且拥有用户组权限
1 SBIT Sticky Bit,只对目录有效如 /tmp ,每个文件拥有者只能更改自己的文件,无法删除其他人的文件
SUID仅用在文件上,SBIT仅用在目录上 S与T代表空
利用 file 查看文件类型
11.命令与文件的查找
which 根据 PATH 环境变量所规范的路径查找执行文件的文件名
type 通过PATH变量查找,并且type 会显示出原名而非别名
由于find速度慢,影响硬盘性能,所以先用 whereis或 locate,真找不到采用find
whereis -l 列出whereis 查询的几个主要目录
-b 只查找二进制文件
-m 只搜索手册和信息
-s 之查找源文件
-u 查找不在上述三个项目中的其他文件
locate(linux发行版ubuntu22.04LTS不自带此命令)
-i 忽略大小写
-c 不输出文件名,仅计算找到的文件数量
-l number 仅输出 number 行
-S 输出locate 所使用的数据库文件的相关信息,包括该数据库记录的文件/目录数量等
-r 后面可接正则表达式的显示方式
由于 locate 根据数据库来搜索,所以在数据库更新前无法查找新建立起来的文件,利用
updatedb 来手动更新数据库
find [PATH](mtime为例)
-mtime n n天之前(一天之内)被修改过的文件,如今天是28号,n为5,则查找的是22-23这24小时内变化的文件
-mtime +n 列出在n天之前(不包含本身)被修改过内容的文件, n为5,则查找的是22号及往前变化的文件
-mtime -n 列出在n天之内被修改过的文件, n为5,则查找的是23号直到今天的变化的文件
-newer file 列出比file更新的文件
-uid n 记录在/etc/passwd内的使用者账号UID
-gid n 记录在/etc/group内的用户组的GID
-user name
-group name
-nouser 查找文件的拥有者不在/etc/passwd中的文件
-nogroup 文件用户组不在/etc/group中的文件
-name filename 利用 * ?‘ “ 等符号查找包含 filename 的文件
-size [+-]Size 查找比Size还要+大 -小 的文件 Size规格为 c:Bytes,k:1024Bytes
-type TYPE 查找文件类型为TYPE(f:正规文件,b,c:设备文件,d:目录文件,l:链接文件,s:socket,p:FIFO文件
-perm mode 查找文件权限为 mode 的文件
-perm -mode 查找文件权限包括mode 的文件
-perm /mode 查找任意包含 mode 子权限(瞎邹的,知道意思就行......)的文件
-exec command exec再接其他command,不支持别名
如 find /usr/bin -perm /7000 -exec ls -l {} \; -exec 到 \; 为find的开始与结束,\; 为转义 ;
-print 将结果打印到屏幕,默认执行
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。