Linux 文件与目录管理
Table of Contents
- 1 目录与路径
- 1.1 目录操作
- 1.2 环境变量PATH
- 2 文件与目录管理
- 2.1 cp
- 2.2 mv
- 2.3 rm
- 2.4 取得文件名或目录名
- 3 文件内容查询
- 3.1 cat/tac
- 3.2 head/tail
- 3.3 more/less
- 3.4 od
- 3.5 文件的三个时间
- 3.5.1 时间
- 3.5.2 显示
- 3.5.3 修改
- 4 文件与目录的默认权限与隐藏权限
- 4.1 隐藏权限
- 4.2 默认权限
- 4.3 特殊权限:SUID,SGID,SBIT
- 4.4 查看文件类型:file
- 5 文件与命令搜索
- 5.1 which
- 5.2 whereis/locate/find
1 目录与路径
1.1 目录操作
cd - :回到上一级工作目录
eg: 从下面的例子中体会cd -的含义,pwd命令输出当前工作命令
$pwd
/home/usrname/Document
$cd Manual/Latex
$pwd
/home/usrname/Document/Manual/Latex
$cd -
$pwd /home/usrname/Document
1.2 环境变量PATH
- 作用:在PATH指明的路径中依次搜索需要执行的命令
- 显示: $ echo $PATH /usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
- 修改
- path="$PATH":/xxx/xxx
- 注意:root和一般用户的PATH是不同的,所以它们可以执行的命令也不同
2 文件与目录管理
2.1 cp
- 功能:复制文件,目录,建立链接
- cp a.c b.c
- cp -s a.c as.c #建立软链接(符号链接)
- cp -l a.c al.c #建立硬链接
- 注意:复制文件时要特别注意文件的权限是否需要变化
2.2 mv
2.3 rm
2.4 取得文件名或目录名
- basename: basename ~/tmp/lab # 输出lab
- dirname: dirname ~/tmp/lab # 输出/home/usrname/tmp
3 文件内容查询
3.1 cat/tac
3.2 head/tail
- 取文件10-20行:head -n 20 man.config | tail -n 10
3.3 more/less
- less 可向上翻页哦
3.4 od
- 可读取非纯文本文档
3.5 文件的三个时间
3.5.1 时间
- modification time (mtime)
- status time (ctime)
- access time (atime)
3.5.2 显示
- ls -l –time=ctime
- ls -l –time=atime
3.5.3 修改
touch
4 文件与目录的默认权限与隐藏权限
4.1 隐藏权限
- 查看与修改:lsattr/chattr
- 功能
- atime不变
- 同步写入磁盘
- 只能增加数据,不能减少,不能修改
- 自动压缩
- 不删,不改,不连结
- 即使删除也还在硬盘上
4.2 默认权限
- 查看:
- umask #0002
- 最后的002表示的是三种个体被去除的权限,0表示没有被去除,u=rwx
- 注意:文件是在rw-rw-rw-的基础上去除权限的,目录是在rwxrwxrwx的基础上去除权限
- 新建文件的权限是:-rw-rw-r--
- 新建目录的权限是:drwxrwxr-x
- umask -S #u=rwx,g=rwx,o=rx
- umask #0002
- 修改:
- umask 022 #这样,再执行umask 时就会返回022
4.3 特殊权限:SUID,SGID,SBIT
- SUID
- 作用:程序的权限中,如果x的位置显示的是s,那么这个程序有SUID权限,普通用户调用这个程序 可以暂时得到root权限,所以普通用户才能修改自己的密码,但密码文件却属于root用户。
- 设置:chmod 4755 filename
- 4:SUID,755:原来的rwx权限
- 2:SGID
- 1:SBIT
4.4 查看文件类型:file
- file t.s # t.s: ASCII assembler program text
5 文件与命令搜索
5.1 which
- 功能:查找PATH路径下的命令
- 使用:which ls #/bin/ls
5.2 whereis/locate/find
- 注意:whereis与locate按数据库查找,所以比较快,先用它们查,找不到再用find find 是在硬盘上找
- 更新数据库:updatedb
- find:可以指定时间,用户,大小,权限等等作为查找的依据