006-文件管理2

1、/etc/.bashr是存放别名的文件
/etc/profile.d/env.sh 存放ps1的变量,颜色
2、字符设备是按顺序访问的,而块文件是随机访问的;
字符设备无缓存,块文件是有缓存的;
3、相对目录一般情况下,相对的是当前目录,在其他情况下,可能相对的是其他目录;
4、./desk一般情况下可以直接desk,点斜杠就省略不写了;
5、操作技巧
cd 直接回到家目录;
cd ~ 也是回到当前家目录;
cd ~wujt就是直接去wujt的家目录,不需要知道家目录路径;
cd -返回上次的目录;
当离开当前文件夹的时候,当前文件夹的路径会记录到变量$OLDPWD内,这样就刻意使用-来返回上一次的文件夹了;
6、系统修改颜色 在文件etc/DIR_COLORS内;
31 red 红色
32 green 绿色
33 yellow 黄色
34 blue 蓝色
35 magenta 紫色
36 cyan 蓝绿色
7、至今为止的变量
PS1
PATH
PWD
OLDPWD
HISTSIZE
SHELL

8、利用ls显示文件时;
-l 是显示长格式的意思,
-a是显示所有文件;
-R是进行递归显示;
其中/bin这个文件夹比较特殊,因为是个链接,使用ll -l /bin 将显示文件夹属性,而在/bin/时,将显示文件夹内的文件;
其他的文件夹加不加/都一样;都显示文件夹内的文件,只有加上参数-d,才能显示文件夹属性;
ls 正常显示是从第一列上到下,然后第二列上到下,ls /data -1 ;
文件名的排序不是按照ASCII码进行的排序,而是按照字母的顺序进行的排序;
ls -S是以文件大小进行排序;
ls -t 按照修改时间进行排序,

-t默认是以mtime排序;
-u是按照atime进行排序显示;
-U按目录存放顺序显示
-X按文件后缀排序;

ls -d */用来只列文件夹本身;

9、每个文件都有三个时间,分别是access time,modify time,change time
其中使用cat读取文件后,access time 会发生改变,正常使用ls 显示文件信息时候,显示的是修改时间,如果要想让文件显示读取时间,就需要使用ls --time=atime /data/file6
如果想看文件的所有时间,使用stat file1就可以显示文件的所有类型时间;
ctime代表源数据发生变化的时间,是状态更改时间;修改用户名后变化;
记录网站的index.html的读数据,没有任何意义,因为大并发可能影响系统;
当文件内容改变时,mtime改变,同时ctime也一定改变。因此mtime改变,ctime一定改变。
但是ctime改变,mtime却不一定会改变,比如修改一个文件的访问权限(chmod)或者文件所有者信息(chown)时,只有ctime改变,mtime不改。

10、文件通配符glob;

比如?可以代替汉字的一个字,因为一个汉字虽然占用两个字节,但是还是一个字符;
使用{}可以生成序列;
使用[]可以匹配任意字符,匹配时,中间没有分割,如果有-代表序列,其中字母排列顺序是aAbBcC-zZ的顺序进行匹配;
-代表前一个目录,但是如果现在etc目录,然后跳到了data目录,这时候需要访问/etc/hosts文件那么就可以使用~-/hosts来进行访问上一个目录;

ls -R .[^.]*用来显示当前目录中所有的隐藏文件,包括子目录里的;
ls -ad .[^.]*或者使用这种方法;

11、练习

第一题
ls l*[[0-9]][[:lower:]]或者ls l[[:digit:]][[:lower]]
第二题
ls [0-9]
[1]
第三题
ls [2][[:alpha:]]*
第四题
ls rc[0-6]*
第5题
ls .d
第6题
ls [mnrp]
.conf
第7题
ls .[^.]*
第8题
ls -ad [.][.]*

12、使用touch命令时,
如果文件不存在,就会创建文件,如果文件存在,就会刷新文件时间,而且是3个时间都刷新,atime,mtime,ctime;

13、cp命令

第一种语法:
cp /etc/hosts hosts.bak复制到当前目录并改名;
ll !*显示最近命令的所有参数;
在root账号下使用cp命令,会提示是否覆盖,但是在其他非root账号下使用cp命令的时候并不提示覆盖,是因为root使用的cp是别名,cp=cp -i而其他账号使用的是真的cp,复制过程并不提示是否覆盖信息;
如果执行覆盖过程中,提示过多,及需要使用原始cp,就是\cp
cp -f的意思是将文件进行删除后,重新创建了;
cp -d的意思是在复制软连接的过程保留原始链接;
cp -p是保留部分信息;默认是模式,所有者,时间戳;
cp -a是把所有信息都保留下来;
cp -av 就是复制全部并显示过程;
cp -u复制最新的文件到目标;
cp --backup=numbered目标存在,覆盖前先备份加数字后缀;

du -sh /usr显示文件夹大小;

1答:1)vim .bashrc
2)添加baketc="\cp -av /etc /app/backupdate +%F"

2答
复制特殊文件,比如/dev/zero 或者/dev/sda这些文件,必须使用a,要不然,会把硬盘中所有字节复制到目标文件;

如果要对复制文件进行批量更改名字,cp就不行了,只能通过rename来进行批量文件重命名。
rename “conf” “conf.bak” .conf
rename “bak” “” file
删除后缀.bak

14、mv命令

15、rm命令

在使用rm命令时,挂载点是不能删除的,但是使用rm后,挂载点内的文件实际上是删除的,但挂载点的文件夹是没有删除掉的。
rm -rf /这条命令是在centos6后是不让直接执行的,如果要执行需要加上参数–no-preserve-root。
rm -rf /*这条命令是可以直接执行的,请一定要注意;

为了防止使用rm删除重要文件,可以将rm定义成别名
rm=mv -t /data这样执行rm的时候,相当于把所有删除文件都放到了data目录,这是rm的第三个语法;
创建大文件

lsof |grep deleted用来查看一些正在被删除的文件,但是还没有被释放空间;
killall vim用来删除vim进程;
但是一般不建议杀死进程
可以通过>bigfile的方法来释放空间;
删除大文件方法,释放磁盘空间;

bigfile
rm -f bigfile
在上面实例中,>是可以创建空文件的意思,但是文件如果存在,就相当于覆盖的意思,在这里就是用空文件覆盖大文件的意思;

16、目录操作

17、练习

第一题:
mkdir -p /testdir/dir1/{x,y}/{a,b}
第二题:
mkdir -p /testdir/dir2/{x/{a,b},y}
第三题:
mkdir -p /testdir/dir{3,4,5/dir{6,7}}
大括号非常有用,比如在备份/etc/hosts文件和备份文件时。
cp /etc/hosts{,.bak}
相当于把hosts文件和hosts.bak文件进行了copy。

文件系统的相关概念;
1)文件的节点编号是在一个分区内是唯一的;
2)inode表就是指指向实际文件位置的表,类似于一本书中的目录;
3)磁盘中分配文件的最小单位是4K,也叫block;

touch file{1…699999}会提示参数过多,
可以通过以下方式进行创建大量文件
echo file{1…524288} |xargs touch

如果删除时也会提示文件参数过长,只需要使用如下命令;
echo file{1…524288} |xargs rm
就可以把这么多文件删除;
删目录也可以;

文件和文件夹在文件系统中存放时候的结构;

shred -zvu hosts可以把文件彻底删除;


  1. :digit ↩︎

  2. :alpha: ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值