7.linux文件与目录管理

1.目录与路径

①特殊的目录:

    .    代表此层目录

    ..   代表上一层目录(根目录的.与..都是同一个目录)

    -    代表前一个工作目录

   ~    代表“目前用户身份”所在的主文件夹,如~liupeng911,代表liupeng911这个用户的主文件夹(liupeng911是账号名称)

②处理目录的命令

   ----pwd:显示目前所在的目录(显示当前路径)

                 -p参数:可以显示非食用连接(link)的路径

   ----mkdir:新建新目录

                 -m参数:强制给目录一个权限,如 mkdir -m 711 test1

                 -p参数:递归创建,如mkdir -p /home/test/test1

   ----rmdir:删除“空”目录

                 -p参数:连同上层的空的目录一起删除

     如果需要将目录下的东西都删除:rm -r 风险较大,谨慎删除

③关于执行文件路径的变量:$PATH(环境变量)

   echo $PATH 可以查询哪些目录被定义(目录与目录用:分割)

   ----如root用户与普通用户的$PATH都存在/bin目录,所以用任何用户都可以执行ls命令

   ----如普通用户没有/sbin目录,则无法直接执行ifconfig命令,但是可以通过绝对路径执行:/sbin/ifconfig eth0

   如果移动了$PATH中的目录,则会无法执行某些命令

   ----如把/bin/ls移动到/root下,则直接运行ls会无法执行命令,只能通过绝对路径

        mv /bin/ls /root

        ls 会报错

        /root/ls则可以执行

        可以自定义$PATH:PATH="$PATH":/root(即把/root放到PATH中),下次可直接执行ls。。。。

   注意:PATH是可以修改的。

             本目录.最好不要放在PATH中。

2.文件与目录管理

①查看文件与目录:ls

   -a:全部文件,包括隐藏文件.开头。

   -l:列出长数据串,包含文件的属性与权限等数据。

   -d:仅列出目录本身,而不是列出目录内的文件数据。

   ----每个目录在ls后都会显示.此层目录和..上层目录。

②复制、删除与移动 :cp、rm、mv

   ----cp:复制文件或者目录(且可以更名)

         如:cp /var/log/wtmp .  ---复制文件到当前目录,注意.

                cp -u ~/.bashrc /tmp/bashrc

         -a:把文件的所有特性一起复制过来(如权限),复制文件不加参数,特性可能不同。(如权限不够,强制加-a还是不行的)

         -i :若目标文件已经存在,覆盖时就会先询问操作的进行。

         -r:递归复制,用于目录的复制行为。(目录不能直接复制,需要加上-r)

         -u:当目标文件与源文件有差异时才会复制,常用于备份的工作。

   ----rm:移除文件或者目录

         如:rm -r /tmp/etc

         -r :递归删除。

   ----mv:移动文件与目录或者更名

         如:mv bashrc mvtest 移动

                mv mvtest mvtest2 重命名

③取得文件名或者目录名(写程序时判断使用)

   basename /etc/sysconfig/network 取得文件名,输出:network

   direname /etc/sysconfig/network 取得目录名,输出:/etc/sysconfig/

3.文件内容的查阅

①查看文件的内容

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

         -n:打印行号,空白行也有行号

   ----tac:从最后一行开始显示

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

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

   ----less:与more相似,但是比more好的是,可以向前翻页

   ----head:只看头几行

         -n number:-n跟着数字,代表显示几行。

   ----tail:只看结尾几行

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

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

   三个时间:mtime:内容更新的时间,如文件的内容被更新

                   ctime:状态更新的时间,如权限与属性被更改

                   atime:文件内如被取用的时间,如用cat命令去读取某个文件,就会更新atime时间

    如:touch testtouch

       则:如果touch后面跟着一个文件名,如果文件存在,则会把文件的三个时间更新为目前的时间;

                                                             如果文件不存在,则会创建一个新的空的文件;

4.文件的默认权限与隐藏权限

①文件的默认权限

    ----查看文件的默认权限:umask ,如输出:0022(权限看后三位)

                                          umask -S ,如输出:u=rwx,g=rx,o=rx(比较022,也就是值为需要减掉的权限,2即-w)

          一般用户创建文件时,默认没有x权限,即666

          一般用户创建目录时,默认所有权限放开,x与进入目录有关,即777

        那如上例子,umask的分数等于“该默认值需要减掉的权限”,

                          如果新建文件时:(-rw-rw-rw-)-(-----w--w-)==>-rw-r--r--(新建文件时的默认权限)

                          如果新建目录时:(drwxrwxrwx)-(d----w--w-)==>-drwxr-xr-x(新建目录时的默认权限)

   ----修改文件的默认权限:如umask 002 即可(需要细细品味)

②文件的隐藏属性

   ----chattr 设置文件的隐藏属性

        +增加属性  -删除属性 =仅有后面的参数

        [+-=]a 文件只能增加数据,不能删除也不能修改数据,root的权限

        [+-=]i 文件不能删除、改名,也无法写入或者添加数据(无法改动,系统安全),root权限(设置后root也无法删除)

   ----leattr 显示文件的隐藏属性

③文件的特殊权限(--后补--)

5.命令与文件的查询

①脚本文件名的查询  which (查找PATH内所规范的目录

   如:which ifconfig ,可以输出: /sbin/ifconfig

       但是如果su -liupeng911 用户,则无法查找,因为liupeng911用户的PATH无/sbin/

②文件名的查找:

   ----whereis:寻找 特定文件,即用普通用户输入:whereis ifconfig 也可以 查找到,因为系统中有这个文件,

                        只是不再普用户的PATH中。

   ----locate:利用数据库寻找数据(/var/lib/mlocate),较快,因为数据库不是实时更新,有时候存在查询不到的情况,

                      可以手动更新数据库,直接输入命令 updatedb即可。

   ----find:直接硬盘查找,需要花费大量时间,但是功能强大。

          ---find / -mtime 0,0代表目前时间,所以意思为从现在开始到24小时前,有改动过的文件都会被列出。

               find / -mtime 3 ,3天前的24小时之内被更改过的文件。

          ---find /etc -newer /etc/passwd:寻找/etc下的文件,如果文件日期比/etc/passwd早就列出。

          ---find / -nouser 查找系统中不属于任何人的文件。

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值