0
点赞
收藏
分享

微信扫一扫

【linux学习笔记】文件与目录管理

TiaNa_na 2022-01-20 阅读 45
linuxcentos

linux学习笔记


鸟哥的linux私房菜第八章 https://wizardforcel.gitbooks.io/vbird-linux-basic-4e/content/48.html

linux文件与目录管理

相对路径与绝对路径

绝对路径:路径的写法“一定由根目录 / 写起”,例如: /usr/share/doc 这个目录。
相对路径:路径的写法“不是由 / 写起”,例如由 /usr/share/doc 要到 /usr/share/man 下面时,可以写成: “cd …/man”,相对路径意指“相对于目前工作目录的路径!”

注意:绝对路径的准确度好,在写程序 (shell scripts) 来管理系统的条件下,务必使用绝对路径的写法。

目录管理

	.         代表此层目录
	 ..        代表上一层目录
	- 代表前一个工作目录
	~         代表“目前使用者身份”所在的主文件夹

处理目录的指令

  • cd:变换目录
cd ..
# 表示回到上一层目录
cd -
# 表示回到上一个目录
cd ~
cd
## cd 和 cd ~都是回到主目录的意思
cd ~accout
  • pwd:显示目前的目录
  • mkdir:创建一个新的目录
 mkdir test  
 #  创建一个名为test的目录
 mkdir -p  test1/test2/test3/test4
 #同时创建多层目录
  • rmdir:删除一个空的目录

文件与目录的查看

  • ls

文件的复制(cp)、删除(rm)和移动(mv)

  • cp
  • rm
  • mv

取得路径的文件名称与目录名称

basename /etc/sysconfig/network
#取得文件名
dirname /etc/sysconfig/network
#取得目录名

文件内容查阅

  • cat
    由第一行开始显示文件内容

  • tac
    从最后一行开始显示

  • nl
    显示的时候,顺道输出行号

  • more
    一页一页的显示文件内容

  • less
    与more 类似,但可以往前翻页

  • head
    只看头几行

  • tail
    只看尾巴几行

  • od
    读取非文本文件

echo password | od -t oCc echo 可以得到 ASCII code 对照
补充:
管道:|
一个命令的输出可以通过管道做为另一个命令的输入。
echo 可以输出任何信息,而这个信息不由屏幕输出,而是传给 od 去继续处理

修改文件时间

linux三个主要变动的时间参数

  • modification time (mtime): 当该文件的“内容数据”变更时,就会更新这个时间!内容数据指的是文件的内容,而不是文件的属性或权限喔!

  • status time (ctime): 当该文件的“状态 (status)”改变时,就会更新这个时间,举例来说,像是权限与属性被更改了,都会更新这个时间啊。

  • access time (atime): 当“该文件的内容被取用”时,就会更新这个读取时间 (access)。举例来说,我们使用 cat 去读取 /etc/man_db.conf , 就会更新该文件的 atime 了。

修改文件时间–touch

文件与目录权限与属性

默认权限

unmask查看默认权限

umask
# 输出0022
umask -S
# 输出u=rwx,g=rx,o=rx

所以0022意即拿掉user 和 group的 w权限

  • 若使用者创建为“文件”则默认“没有可执行( x )权限”,亦即只有 rw 这两个项目,也就是最大为 666 分,默认权限如下: -rw-rw-rw-
    因此创建文件时:权限值 644

  • 若使用者创建为“目录”,则由于 x 与是否可以进入此目录有关,因此默认为所有权限均开放,亦即为 777 分,默认权限如下: drwxrwxrwx
    因此创建目录时: 权限值 755

更改unmask

unmask 003
# 即拿掉group的 w 和 x权限

文件隐藏属性

  • chattr 修改文件隐藏属性
  • lsattr 查看文件隐藏属性

文件特殊权限

  • SUID

特点:

  1. SUID 权限仅对二进制程序(binary program)有效;
  2. 执行者对于该程序需要具有 x 的可执行权限;
  3. 本权限仅在执行该程序的过程中有效 (run-time);
  4. 执行者将具有该程序拥有者 (owner) 的权限。

举例说明:
user对文件/usr/bin/passwd 没有w权限,但由于own拥有s权限,user在执行/usr/bin/passwd 时会短暂获得root的权限,也就是说短暂获得w权限,可以改密码啦!
来自鸟哥的linux

  • SGID
    当 s 标志在文件拥有者的 x 项目为 SUID,那 s 在群组的 x 时则称为 Set GID, SGID,另外SGID针对文件和目录,而SUID仅针对文件

特点:

  1. SGID 对二进制程序有用;
  2. 程序执行者对于该程序来说,需具备 x 的权限;
  3. 执行者在执行的过程中将会获得该程序群组的支持!
  • SBIT
    只针对目录

特点:

  1. 当使用者对于此目录具有 w, x 权限,亦即具有写入的权限时;
  2. 当使用者在该目录下创建文件或目录时,仅有自己与 root 才有权力删除该文件

举例来说,我们的 /tmp 本身的权限是“drwxrwxrwt”, 在这样的权限内容下,任何人都可以在 /tmp 内新增、修改文件,但仅有该文件/目录创建者与 root 能够删除自己的目录或文件。

SUID/SGID/SBIT 权限设置

数字法:

  • 4 为 SUID
  • 2 为 SGID
  • 1 为 SBIT
    在原本的3个数字前加上相应数字
    例:4755表示加入SUID权限
    注意:s和t是取代x权限的,如果没有x权限,权限会显示为S和T
    符号法:
    SUID 为 u+s ,而 SGID 为 g+s ,SBIT 则是 o+t

查看文件类型

指令与文件的搜寻

指令的搜寻

注意:which 默认查找path路径内的目录,所以找不到history

文件的搜寻

  • whereis
  • locate 只用输入文件的关键字就可以了

locate是经由数据库来搜寻的,而数据库的创建默认是在每天执行一次 ,即数据库每天更新一次。
所以新创建文件时,需要用updatedb更新数据库

  • find

总结:
一、让使用者能进入某目录成为“可工作目录”的基本权限为何:

可使用的指令:例如 cd 等变换工作目录的指令;
目录所需权限:使用者对这个目录至少需要具有 x 的权限
额外需求:如果使用者想要在这个目录内利用 ls 查阅文件名,则使用者对此目录还需要 r 的权限。
二、使用者在某个目录内读取一个文件的基本权限为何?

可使用的指令:例如本章谈到的 cat, more, less等等
目录所需权限:使用者对这个目录至少需要具有 x 权限;
文件所需权限:使用者对文件至少需要具有 r 的权限才行!
三、让使用者可以修改一个文件的基本权限为何?

可使用的指令:例如 nano 或未来要介绍的 vi 编辑器等;
目录所需权限:使用者在该文件所在的目录至少要有 x 权限;
文件所需权限:使用者对该文件至少要有 r, w 权限
四、让一个使用者可以创建一个文件的基本权限为何?

目录所需权限:使用者在该目录要具有 w,x 的权限,重点在 w 啦!
五、让使用者进入某目录并执行该目录下的某个指令之基本权限为何?

目录所需权限:使用者在该目录至少要有 x 的权限;
文件所需权限:使用者在该文件至少需要有 x 的权限

举报

相关推荐

0 条评论