鸟哥的私房菜--笔记 7章 文件与目录管理

7.1.2目录相关操作

1.

. 当前目录

.. 上一目录

- 前一目录

~用户主文件夹

/ 的.  和.. 都是自己

csl@ubuntu:/$ cd ..
csl@ubuntu:/$ ls
bin   etc   initrd.img  lost+found  opt   run      srv  usr
boot  home  lib         media       proc  sbin     sys  var
dev   host  lib64       mnt         root  selinux  tmp  vmlinuz

2.简单命令

pwd显示当前工作目录(print working directory)

        -p显示当前路径,非连接路径m

mkdir

        -m 设置权限,默认权限与umask 相关

        csl@ubuntu:~/code$ mkdir -m 777 t4
        csl@ubuntu:~/code$ ls -al
        total 8
        drwxrwxrwx  2 csl csl 1024  7月 11 11:08 t4

        -p递归创建目录 ,一般情况下 mkdir t1/t2/t3 是不允许的, 若加-p则可以

        csl@ubuntu:~/code$ mkdir t1/t2/t3
        mkdir: cannot create directory `t1/t2/t3': No such file or directory
        csl@ubuntu:~/code$ mkdir -p t1/t2/t3
        csl@ubuntu:~/code$ 

rmdir

      -r强制删除目录下所有文件,即使目录非空

     -p递归删除上层目录,只有空目录可以删除

7.1.3$PATH(大写)

1.文件路径环境变量,在任意出输入命令如ls时,系统根据用户的PATH变量配置的目录,到每一个目录下寻找对应命令名字的可执行文件,执行。

csl@ubuntu:~/code$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

ls可执行文件位于/bin之下

2.命令执行可以直接到可执行文件所在文件夹地下,一文件名的形式执行,也可以配置PATH,将可执行文件所在文件夹加入PATH。

csl@ubuntu:~/code$ /bin/ls
ACM  t1  t4  twst

7.2.2

rm

mv移动目录&文件

cp

   复制,文件属性为默认属性,所有者为复制操作执行人

   -a  连文件属性一起复制,若cp者用户无权限,不能完成复制

csl@ubuntu:/$ ls -al initrd.img
lrwxrwxrwx 1 root root 33  8月 23  2013 initrd.img -> /boot/initrd.img-3.8.0-29-generic
csl@ubuntu:/$ cp -a initrd.img  i.img
cp: cannot create symbolic link `i.img': Permission denied

   -s 符号连接

   -l  硬连接

   -u目标文件比原文文件旧时,才更新目标文件

   -r 递归复制

   -i

   -f


basename 取得最后的文件名或者目录名

csl@ubuntu:/$ basename /initrd.img
initrd.img


dirname 取得目录名

csl@ubuntu:/$ dirname /initrd.img
/

7.3.5修文件时间/创建文件:touch

文件有三种文件时间

mtime ----modification time 内容修改时间

ctime -----state time 文件属性等的修改时间

atime -----access time 最近访问时间

csl@ubuntu:~/test$ ls -l t
-rw-rw-r-- 1 csl csl 0  7月  9 19:10 t
csl@ubuntu:~/test$ ls -l --time=atime t
-rw-rw-r-- 1 csl csl 0  7月 11 16:12 t
csl@ubuntu:~/test$ ls -l --time=ctime t
-rw-rw-r-- 1 csl csl 0  7月  9 19:10 t


touch 创建文件,修改文件创建日期

-t 后可直接跟日期 0708141402 日期为2014/07/08 14:02,可跟在 -a -m后,无-t参数则默认为当前时间

-a  修改atime

-c 修改ctime 后面接-t参数无效

-d同时修改 atime和ctime 后可接欲修改的时间

-m修改mtime


csl@ubuntu:~/test$ ls -l  t
-rw-rw-r-- 1 csl csl 0  7月 16 01:00 t


csl@ubuntu:~/test$ touch -a -t 0708091403 t
csl@ubuntu:~/test$ ls -l --time=atime t
-rw-rw-r-- 1 csl csl 0  8月  9  2007 t


csl@ubuntu:~/test$ ls -l --time=ctime t
-rw-rw-r-- 1 csl csl 0  7月 16 12:18 t

csl@ubuntu:~/test$ touch -c t
csl@ubuntu:~/test$ ls -l --time=ctime t
-rw-rw-r-- 1 csl csl 0  7月 16 12:35 t
csl@ubuntu:~/test$ 


-c 修改ctime 后面接-t参数无效

csl@ubuntu:~/test$ touch -c -t 0708091403 t
csl@ubuntu:~/test$ ls -l --time=ctime t
-rw-rw-r-- 1 csl csl 0  7月 16 12:36 t


csl@ubuntu:~/test$ touch -d 2013-05-02 t
csl@ubuntu:~/test$ ls -l --time=atime t;ls -l t
-rw-rw-r-- 1 csl csl 0  5月  2  2013 t
-rw-rw-r-- 1 csl csl 0  5月  2  2013 t


7.4文件与目录的默认权限&应藏权限

7.4.1文件默认权限umask

umask 用户建立文件时的默认权限,umask的值代表要取出的权限,4位,每一位的二进制分别代表隐藏权限、u、g、o要去除的权限,1位代表要去除的权限

如0002建立的文件为u drwxrwxr-x,文件以rw-rw-rw- 为基础去除umask,目录以-rwxrwxrwx为基础

可以设置umask的值   umask value

csl@ubuntu:~/test$ umask
0002
csl@ubuntu:~/test$ umask 0022
csl@ubuntu:~/test$ touch tufile
csl@ubuntu:~/test$ mkdir tufiled
csl@ubuntu:~/test$ ls -l tufile tufiled



csl@ubuntu:~/test$ ls -al
total 5
。。。
-rw-r--r--  1 csl  csl     0  7月 16 14:22 tufile
drwxr-xr-x  2 csl  csl  1024  7月 16 14:23 tufiled


7.4.3 隐藏属性

SUID SGID SBIT

SUID 只对二进制文件有效,如果文件拥有SUID则当用乎在执行该文件是,执行用户拥有文件所有者的权限

SGID 对二进制文件,用户若拥有x权限,则在执行的过程中,获取文件所在用户组的权限

           对目录而言,若用户能进入该目录,则用户在此目录现获取,该目录的用户组的权限,如果目录所属用户组拥有w权限则,用户可创建文件,用户组属于此目录的所属        用户组

SBIT  对目录而言的,在此目录下的拥有SBIT属性,若用户能访问并能创建文件,则用户创建的文件只有自己与root能删除、重命名、移动!

修改权限的方法

SUID SGID SBIT 权限的数字分别为 4 2 1,修改权限是最高第四位的数字代表隐藏属性

csl@ubuntu:~/test$ chmod 4777 tufile
-rwsrwxrwx  1 csl  csl     0  7月 16 14:22 tufile


csl@ubuntu:~/test$ chmod 2777 tufile
-rwxrwsrwx  1 csl  csl     0  7月 16 14:22 tufile


csl@ubuntu:~/test$ chmod 7777 tufile

-rwsrwsrw 1 csl  csl     0  7月 16 14:22 tufile


7.4.4 file

查看文件基本信息,如文件类型二进制文件,binary文件。是否使用动态链接等!


7.5命令&文件查询

which 用户的$PATH变量所包的目录,查找命令的路径

           -a 输出所有找到的,而不是第一个


whereis 从数据库中查找文件的路径,find是在硬盘上查找,慢!,但数据库更新问题,可能找不到刚新建的目录,或者找到已删除的目录。

               -b只查找二进制文件

              -m 只查找munal下的文件

              -s  只查找源文件

              -u 查找不再上述三个文件选项中的文件

csl@ubuntu:~/test$ whereis firefox
firefox: /usr/bin/firefox /etc/firefox /usr/lib/firefox /usr/bin/X11/firefox /usr/share/man/man1/firefox.1.gz

csl@ubuntu:~/test$ whereis -b firefox
firefox: /usr/bin/firefox /etc/firefox /usr/lib/firefox /usr/bin/X11/firefox

locate
也是从数据库中查找,只文件或者路径中包含查找的名字,就输出

             -r 可接正则表达式

             -i忽略大小写

linux文件数据库一天一更新

updatedb 能手动更新数据库,花时可能几分钟!



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值