Linux档案与目录管理
目录的相关操作
cd:更换目录
cd [相对路径或绝对路径]
pwd:显示当前目录
pwd [-P]
-P:显示出确实的路径,而非使用链接(link)路径
mkdir:新建目录
mkdir [-mp] 目录名称
-m:直接设置文件的权限
-p:建立多层目录
rmdir:删除空的目录
rmdir [-p] 目录名称
-p:连同上层空的目录一起删除
档案与目录管理
ls:查看档案与目录
ls [-aAdfFhilnrRSt] 目录名称
ls [--color={never,auto,always}] 目录名称
ls [--full-time] 目录名称
-a:全部档案,连同隐藏档一起列出来
-A:全部档案,连同隐藏档一起列出来,但不包括 . 与 .. 这两个目录
-d:仅列出目录,而不列出目录内的档案数据
-f:直接列出结果,不进行排序
-F:根据档案、目录等信息,给予附加数据结构
-h:将档案容量以GB/KB等形式列出来
-i:列出inode号码
-l:长数据串列出,包含档案的属性与权限等
-n:列出UID与GID而非使用者与群组名称
-r:将排序结果反向输出
-R:连同子目录内容一起列出来
-S:以容量大小排序
-t:以时间排序
--color=never:不依据档案特性给予颜色显示
--color=aways:显示颜色
--color=auto:让系统自动判断是否显示颜色
--full-time:以完整时间模式输出
--time=atime/ctime:输出access时间或改变时间
常用:adl
cp:复制档案或目录
cp [-adfilprsu] source destination
cp [options] source1 source2 ... directory
-a:相当于-pdr
-d:若来源文件为link文件的属性,则复制link文件的属性而非档案本身
-f:强制执行,若目标档案已存在且无法开启,则移除后再尝试一次
-i:互动模式
-l:进行硬式链接(hard link)的链接档建立,而非赋值档案本身
-p:连同档案属性一起复制过去
-r:递归执行
-s:复制成为符号链接文件,即快捷方式
-u:更新
常用:aipr
rm:移除档案或目录
-f:force 强制执行,忽略警告信息
-i:互动模式,在删除前询问是否删除
-r:递归执行(非常危险的选项)
mv:移动档案与目录,或改名
mv [-fiu] source destination
mv [option] source1 source2 ... directory
-f:强制执行
-i:互动模式
-u:若目标档案已存在,且source更新,才会更新
取得路径的文件名与目录名称
获取路径文件名
basename 路径
获取目录
dirname 路径
查看档案内容
cat:由第一行开始显示档案内容
cat [-AbEnTv]
-A:相当于-vET
-b:列出行号,空白行不标行号
-E:显示断行字符$
-n:列出行号,连同空白行
-T:将tab键以^I显示
-v:列出一些看不出来的特殊字符
tac:由最后一行开始显示
正好与cat相反
nl:显示时,顺便输出行号
nl [-bnw] 档案
-b:指定行号,指定的方式有两种
-b a:不论是否为空行都列出行号(类似cat -n)
-b t:如果有空行,空行不列出行号(默认值)
-n:列出行号的表示方法,主要有三种
-n ln:行号在屏幕最左方显示
-n rn:行号在自己字段的最右方显示,且不加0
-n rz:行号在自己字段的最右方显示,加0
-w:行号字段占用的位数
more:一页一页的显示档案内容
space:代表下一页
enter:代表下一行
/字符串:代表向下搜寻字符串
:f:立刻显示出文件名以及目前显示的行数
q:离开
b或ctrl b:代表往回翻页,只对档案有用,对管线无用
less:一页一页的显示档案内容
space:代表下一页
pagedown:代表下一页
pageup:代表上一页
/字符串:代表向下搜寻字符串
?字符串:代表向上搜寻字符串
n:重复前一个搜寻
N:反向重复前一个搜寻
q:离开
head:只看头几行
head [-n number] 档案
-n:后接数字,表示显示几行,默认显示前20行
tail:只看最后几行
tail [-n number] 档案
-n:后接数字,表示显示几行,默认显示10行
-f:表示持续侦测后面所接的档名,直到ctrl c才会结束tail的侦测
od:读取非纯文本文档
od [-t TYPE] 档案
-t:后接各种类型的输出
a:使用默认的字符来输出
c:使用ASCII字符来输出
d[size]:使用十进制(decimal)来输出数据,每个整数占用size bytes
f[size]:使用浮点数(floating)来输出数据,每个数占用size bytes
o[size]:使用八进制(octal)来输出数据,每个整数占用size bytes
x[size]:使用十六进制(hexadecimal)来输出数据,每个整数占用size bytes
touch:修该档案时间或建立新档
modification time(mtine):
当该档案的数据内容改变时,就会更新这个时间
status time(ctime):
当该档案的状态(权限与属性)改变时,就会更新这个时间
access time(atime):
当该档案的内容被取用时,就会更新这个读取时间
touch [-acdmt] 档案
-a:仅修订access time
-c:仅修该档案的时间,若该档案不存在则不建立新档案
-d:后面可以接欲修订的日期而不用当前日期,也可以使用--date="日期或时间"
-m:仅修该mtime
-t:后面可以接欲修订的时间而不是用当前时间,格式为[YYMMDDhhmm]
档案与目录的默认权限与隐藏权限
umask:档案预设权限
umask
0022
代表默认会拿掉的权限,以此为特殊权限、使用者、群组、其他人
chattr:配置文件隐藏属性
chattr [+-=] [ASacdistu] 档案与目录名称
+:增加某一个特殊参数,其他原本存在参数不动
-:移除某一个特殊参数,其他原本存在参数不动
=:后接设定的特殊参数
A:当设定了A属性时,存取档案时,访问时间atime不会改变
S:将对档案的修改同步写入磁盘中
a:设定后,档案只能增加数据,不能删除与不能修改数据,只有root才能设定一个属性
c:设定后,会将档案进行压缩保存,读取时自动解压
d:当dump程序被执行时,不会被dump备份
i:使一个档案不能被删除、改名、设定链接、写入或新增。只有root能设定这个属性
s:当档案设定s属性时,如果这个档案被删除,将会被完全移除出硬盘
u:与s相反
lsattr:显示档案隐藏属性
lsattr [-adR] 档案或目录
-a:将隐藏文件的属性也显示出来
-d:如果接的时目录,仅列出目录本身的属性而非目录内的文件名
-R:连同子目录的数据一起列出来
档案特殊权限:SUID、SGID、SBIT
SUID:4
- 仅对二进制程序有效
- 执行者对于该程序需要有x的可执行权限
- 本权限仅在执行该程序的过程中有效
- 执行者具有该程序拥有者的权限
SGID:2
- 仅对二进制程序有效
- 执行者对于该程序需要有x的可执行权限
- 本权限仅在执行该程序的过程中有效
- 执行者具有该程序群组的权限
SBIT:1
- 只对目录有效
- 当用户具有w、x权限时,就具有r权限
- 当用户在该目录下建立档案或目录时,仅有自己与root才有权利删除档案
指令与档案的搜寻
which:脚本文件名的搜寻
which [-a] command
-a:将所有有PATH目录中可以找到的指令均列出,而不止第一个被找到的指令名称
whereis:寻找特定档案(通过内部数据库)
whereis [-bmsu] 档案或目录名
-b:只找二进制格式的档案
-m:只找在说明文件manual路径下的档案
-s:只找source来源档案
-u:搜寻不在上述三个项目当中的其他特殊档案
locate:按档案名寻找档案(通过内部数据库)
locate [-ir] keyword
-i:忽略大小写的差异
-r:后面可接正则表达式
find:在磁盘中寻找档案
find [PATH] [option] [action]
与时间有关的选项:共有-atime、-ctime与-mtime,以-mtime说明
-mtime n:n为数字,意义为在n天之前的一天内被变更过内容的档案
-mtime +n:列出n天之前(不含n天本身)被变更过内容的档案
-mtime -n:列出n天之内(含n天本身)被变更过内容的档案
-newer file:列出比file还要新的档案
与使用者或组名有关的参数
-uid n:n为数字,代表用户的UID
-gid n:n为数字,代表组名的GID
-user name:name为用户名
-group name:name为组名
-nouser:寻找拥有者在/etc/passwd中不存在的档案
-nogroup:寻找群组在/etc/group中不存在的档案
与档案权限及名称有关的参数
-name filename:搜寻文件名为filename的档案
-size [+-]SIZE:搜寻比SIZE还要大(+)或小(-)的档案。SIZE的规格有:C代表byte,代表kb
-type TYPE:搜寻档案的类型为TYPE
-perm mode:搜寻档案权限刚好等于mode的档案
-perm -mode:搜寻档案权限包括mode权限的档案
-perm +mode:搜寻档案权限包含任一mode的权限的档案
额外动作
-exec:后接额外指令处理搜寻到的结果
-print:将结果打印到屏幕上(默认值)