第七章:Linux文件与目录管理

目录的相关操作

cd:切换目录

cd:change Direcotry

cd 默认为cd ~
cd ~ 回到自己的主文件夹
cd .. 返回上级目录
cd - 回到刚才的目录

pwd:显示当前所在的目录

pwd: Print Working Directory

参数:

-p : 显示出当前的路径,而非使用连接路径

mkdir:创建目录

参数:

-p :递归创建多级目录
-m: 创建目录,并配置权限

[root@localhost ~]# mkdir -p test1/test2/test3
[root@localhost ~]# mkdir -m 711 test4


rmdir:删除空目录

参数:

-p 删除多层空目录

[root@localhost ~]#rmdir test4
[root@localhost ~]#rmdir -p test1/test2/test3

rmdir不能删除有内容的目录
若想删除有内容的目录需要用:rm -r test

$PATH

ls命令的完整文件名为:/bin/ls
而可以直接使用ls,是由于环境变量PATH的帮助

打印出环境变量,用户不同,环境变量也有所不同。

[root@localhost ~]# echo $PATH

添加环境变量:

[root@localhost ~]# PATH="$PATH":/root

ls

参数:

-a :显示全部文件
-d :仅列出目录本身
-i :列出inode号码
-S :以文件容量大小排序,而不是文件名排序
-t : 依时间排序,而不是文件名

[root@localhost ~]# ls -l
[root@localhost ~]# ls -a
[root@localhost ~]# ls -al

cp

参数:

-a : 相当于-pdr的意思
-d : 若源文件为链接文件的属性(link file),则复制链接文件属性而非本身
-i : 若目标文件已经存在,则询问是否覆盖
-p: 连同文件的属性一起复制过去,而非使用默认属性
-r : 递归复制,用于目录的复制行为。
-l:复制成为硬链接文件
-s: 复制成为符号链接文件:即“快捷方式”文件

注意:
在默认的条件中,cp的源文件与目的文件的权限是不同的,目的文件的所有者通常会是命令操作者本身。
当复制软连接文件的时候,默认会复制文件本身,使用-d参数,才会复制链接文件

其他

touch: 修改文件时间或创建新文件

cat : 由第一行开始显示文件内容

cat -n 打印出行号

tac : 从最后一行开始显示

nl : 显示的时候,顺便输出行号

more: 一页一页的显示文件内容

空格键(Space):代表向下翻一页
Enter: 向下滚一行
/字符串: 向下查询
:f 立刻显示出文件名以及目前显示的行数
q:离开more
b:往回翻页,只对文件有用,对管道无用。

less: 与more类似,但可以向前查找或是翻页

空格键(Space):代表向下翻一页
[PageDown]:向下翻动一页
[PageUp]: 向上翻动一页
/字符串: 向下查询
?字符串:向上查询
n:重复前一个查询
N:反向重复前一个查询
q:离开more

head:显示头几行

列出file的前20行

head -n 20 file

tail:只看结尾几行

列出file的最后20行

tail -n 20 file

当file随时会有数据写入,让其立刻显示到屏幕上,就利用-f参数,[ctrl] +c退出

tail -f file

od: 以二进制的方式读取文件内容

file: 查看文件类型

文件与目录的默认权限

默认的文件权限
666
-rw-rw-rw-

默认的目录权限
777
drwxrwxrwx

umask

umask就是指定目前用户在新建文件或目录时候的权限默认值

[root@localhost ~]# umask
022

[root@localhost ~]# umask -S
u=rwx,g=rx,o=rx

umask的分数指的是该默认值需要减掉的权限

新建文件时:

(-rw-rw-rw-)-(—–w–w-) ==>-rw-r–r–

新建目录时

(drwxrwxrwx)-(d—-w–w-)==>drwxr-xr-x

文件的隐藏属性chattr,lsattr

chattr

[root@localhost ~]# chattr [+-=] [参数]  文件或目录

参数:

+:
- :
=:
a: 当设置a之后,这个文件只能增加数据,不能删除和修改,只有root可以设置,比如开机登录日志文件
i: 使文件不能删除,不能修改或添加数据

lsattr
显示文件的隐藏属性

[root@localhost ~]# touch attrtest
[root@localhost ~]# chattr +ai attrtest
[root@localhost ~]# lsattr attrtest
----ia---------- ./attrtest

文件的特殊权限:SUID,SGID,SBIT

文件具有SUID的特殊权限时:代表当用户执行此二进制程序时,在执行过程中用户会暂时具有程序所有者的权限。执行者需要先具有该程序的x的可执行权限

目录具有SGID的特殊权限时:代表用户在这个目录下面新建的文件用户组都会与该目录的用户组名相同。执行者需要先具有该程序的x的可执行权限

目录具有SBIT的特殊权限时:代表在该目录下用户创建的文件只有自己与root可以删除。

SUID: 4
SGID: 2
SBIT: 1

[root@localhost ~]# chattr -ai attrtest
[root@localhost ~]# lsattr attrtest
---------------- attrtest
[root@localhost ~]#ll
-rw-r--r-- 1 root root 0 414 10:44 attrtest

//添加可执行权限
[root@localhost ~]#chmod +x attrtest

//加入SUID的权限
[root@localhost ~]#chmod 4755 attrtest
[root@localhost ~]#ll
-rwsr-xr-x 1 root root 0 414 10:44 attrtest

//当不具有可执行权限时,SUID的权限s会变成大写S,表示空
[root@localhost ~]#chmod -x attrtest
[root@localhost ~]#ll
-rwSr--r-- 1 root root 0 414 10:44 attrtest


命令与文件的查询

脚本文件名的查询

查看命令的完整文件名可用which或type,这两个命令都是通过PATH变量来查找文件名

which

用来寻找命令(执行文件),默认是查找PATH内所规范的目录。

参数:
-a :将所有由PATH目录中可以找到的命令均列出,而不只第一个被找到的命令名称。

[root@localhost ~]#which ifcofig
/usr/sbin/ifconfig

文件名的查找

Linux系统会将系统内的所有文件都记录在一个数据库文件里面,当使用whereis或locate,都会以此数据库文件内容为准。而不是直接在硬盘当中访问数据,所以很快速。
CentOS 5.x是每天更新数据库一次。

也可以通过updatedb手动更新。

find功能强大,直接查找硬盘,时间花费较多。

你可能感兴趣的:(第七章:Linux文件与目录管理)