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

目录与路径
相对路径:cd跳转各级目录比较方便

绝对路径:正确度好,写程序(shell script)管理系统务必使用绝对路径。

所有目录都有“.”,“..”分别代表该层目录和上层目录。

常用的处理目录的命令:
cd切换(change directory)
常用: cd ~:回到当前用户的主文件夹 比如/home/jerry
cd -:回到刚才的目录(上一个目录)
pwd显示当前目录(print working directory)
mkdir新建空目录
-p:可以创建多层目录mkdir -p test1/test2/test3/test4
-m:可以修改属性,mkdir -m 711 test2,没加则用默认属性umask
rmdir删除空目录
rmdir只能删除空目录,-p:可以删除所有父目录rmdir -p test1/test2/test3/test4
删除所有目录下东西使用:rm -r test,但是要小心使用。
注意:linux的默认命令行bash shell有文件补齐功能,经常使用tab快速完整输入目录是个好习惯!!!


执行文件路径的变量:$PATH
echo $PATH:echo有显示的意思,$表示后面接的是变量。
一般用户PATH是无法拥有/sbin目录的,因此用ifconfig eth0无法执行,ifconfig属于/sbin下面,但PATH没有规范到/sbin下,我们可以用绝对路径来执行:/sbin/ifconfig eth0
修改PATH:PATH="$PATH":/root (此次登陆有效,下次失效,若要永久有效,需要修改/etc/profile添加export PATH=$PATH:.... 然后运行source profile或者./profile使修改立即生效)

文件与目录管理
ls
常用:-a,-l,-d,(ls -l许多版本已经将ll设置成ls -l,它是bash shell的alias功能)

复制删除移动:cp,rm,mv
cp
1:-a(备份时常用,相当于-pdr,会将文件的所有属性复制过来),-i目标文件已经存在则先询问是否覆盖,-r递归持续复制,用于目录行为的复制(注意:若源文件有两个以上则最后一个目的文件一定是目录才行!),-u 当文件更新才拷贝(常用于拷贝)
2:-l拷贝硬链接(涉及i-node知识),-s拷贝软链接(快捷方式,指向文件)
3:拷贝链接文件时,没加参数拷贝的是原文件,加上参数(-d复制文件属性)拷贝的是链接!
4:备份的时候,注意普通用户及时能够复制文件,也无法改变文件的所有者、用户组,即使加上-a也不行!
特别注意:!!!使用cp时考虑!!!
是否需要完整保留来源文件的信息
源文件是否为软链接文件?(symbolic link file)
源文件是否为特殊的文件,比如FIFO,SOCKET等
源文件是否为目录?

rm
-f:忽略不存在的文件,不出现警告信息
-i:每次删除都会询问!!!
-r:递归删除,常用于目录的删除,非常危险的参数!!!!
1:使用通配符*帮忙,将bashrc开头的文件名全部删除:rm -i bashrc* (*代表0到无穷多个任意字符!)
2:centOS的root权限加入了-i参数,每次删除会询问,(ctrl+c可以终止删除),使用rm删除还是小心点(添加-i询问比较保险)
3:在命令前添加反斜杠“\”可以忽略掉询问,比如 \rm -r /tmp/etc
4:文件名比较特殊时,比如以-开头,比如: rm -i ./-aaa- (./是当前目录)或者rm -- -aaa-
特别注意:
很多版本的linux已经在rm中加入了-i,确保不会误删!(Ubuntu14.04好像没有= =)
如果要连目录下的东西一起删除,使用-r
不过使用-r时特别小心,该目录或者文件肯定会被root删除!!!系统不会询问!!!
若是确定目录不需要了,使用-r是个不错的方法

mv
-f:强制拷贝,不会询问而直接覆盖
-i:目标文件已经存在的话会询问是否覆盖
-u:目标文件已经存在,而且source更新才会更新
可以用mv来重命名,还有一个是rename指令

文件内容查阅
cat:从第一行开始
tac:从最后一行开始
nl:顺便显示行号输出
more:一页一页显示文件(翻页显示)
space向下翻页,b回翻(只对文件有用,对管道无用),enter向下一行,/string向下查找,:f显示文件名和当前行数,q立刻离开more
less:和more类似,不过还可以往前翻页
space向下翻动一页,pageDown向下翻,pageUp向上翻,/string向下查询,?string向上查询,n下一个关键字,N上一个关键字,q退出
man是调用less来显示文件内容的!!!
head:只看前几行
tail:只看结尾几行
head和tail以行为单位显示!!!
显示11到20行的内容: head -n 20 /etc/manpath.config | tail -n 10
od:以二进制读取文件内容


修改文件时间或者创建新文件:touch
文件有三个时间:mtime(内容修改时间),ctime(状态修改时间),atime(读取时间)
ls默认显示的是mtime,若文件“来自未来”,则要使用touch修改!
复制文件的时,复制了所有属性,唯独无法复制 ctime 这个属性!!!
touch最被常用的情况是:
1:创建空文件
2:将某个文件的日期改成当前日期( mtime 和 atime )


文件默认权限:umask
用户创建 “目录”,默认为777 (drwxrwxrwx),"文件":666(-rw-rw-rw-)
umask (-S) 的分数指的是:该默认值需要减掉的权限
umask对于新建文件和目录尤其重要,架设文件服务器SAMBA Server或FTP Server时涉及用户能否进一步利用文件的问题。


文件隐藏属性:chattr,lsattr (很重要,尤其在系统数据安全上!!)
chattr设置隐藏属性 chattr [+-=][ASacdistu]
-a:设置之后,文件只能增加数据,而不能删除和修改数据,只有root才能设置
-i:可以让文件不被删除,改名,设置连接也无法写入或添加数据,对于系统安全有很大帮助,root执行!

lsattr显示隐藏属性 lsattr [-adR] 文件或目录
-a:将隐藏文件属性显示出来
-d:如果接的是目录,仅列出目录本身的属性而不是目录内的文件名
-R:连同子目录的数据一并显示出来

文件特殊权限:SUID SGID SBIT
SUID只能用于二进制程序上,不能用于shell和目录(4)
SGID对二进制程序有用,对于项目开发很有用!!(2)
SBIT只对目录有效!(1)

查看文件类型:file
man file

命令与文件的查询
1:脚本文件名的查询
which [-a] command which是根据用户所设置的PATH变量内的目录去查找可执行文件
which cd:怎么找不到结果?因为cd是bash的内置命令!which查找PATH规范的路径当然找不到!(type可以)
2:文件名的查找
通常find不常用,因为速度慢!一般我们用whereis或者locate来检查(利用数据库,没有查询硬盘),实在找不到采用find
whereis:找不到某些命令时,先用文件查找命令试试~
locate:可以输入文件部分名称,它的数据来自于(/var/lib/mlocate)而不直接访问硬盘,各版本自动更新时间不一样,可以采用手动更新:updatedb!
find:很强大的指令!!但是查找硬盘话费的时间多!
whereis可以添加参数更加灵活!

权限与命令间的关系(非常重要)
1:让用户能进入某目录成为“可工作目录”的基本权限
目录所需: x 
若用户想在目录内用 ls ,还需要 r 权限
2:用户在某个目录内读取一个文件
可使用命令:cat more less
目录所需:x
文件所需:r
3:用户能修改一个文件的基本权限
命令:nano vim vi gpedit
目录所需:x
文件所需:r w
4:让用户创建一个文件的基本权限
  目录所需:w x ,重点是w
5:让用户进入某个目录并执行该目录下某个命令
目录所需:x 

文件所需:x


重点回顾:
与目录相关的指令:cd mkdir rmdir pwd
root与一般用户系统默认PATH通常区别在于/sbin /usr/sbin
ls常用参数 -d -a -l
文件常用:cp rm mv touch(创建新文件,修改时间参数) file(查看文件类型)
读文件常用:cat tac nl more less head tail od
一个文件记录的时间参数:atime(access) mtime(modify) ctime(status)
Ext2/Ext3文件系统,可以使用chattr lsattr设置查看隐藏属性,常用 +a(只能新增数据) +i(完全不能更改文件)
新建文件/目录时,默认权限umask,目录的权限为777,文件的权限为666

文件具有SUID,代表当用户执行此二进制程序时,执行中用户会暂时具有owner权限
目录具有SGID,代表用户在这个目录下面新建的文件的group都和该目录的group相同
目录具有SBIT,代表该目录下用户创建的文件只有自己和root可以删除


查找命令的完整文件名:which type,它们通过PATH来查找
查找完整文件名:whereis locate,它们到数据库文件(/var/lib/mlocate)查找,而不直接查文件系统
利用find可以加入参数来直接查询文件系统,获得自己想要的文件名
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值