首页 > 代码库 > 鸟哥Linux私房菜知识点总结6到7章

鸟哥Linux私房菜知识点总结6到7章

最近翻看了一本《鸟哥的Linux私房菜》。这是一本基础的书,万丈高楼平地起,会的不多但可以学。这是我整理的一些知识点,虽然很基础。希望和大家共同交流。

 

6主机规划与磁盘分区

 

1、在进行团队开发资源时,用户组是很有用的一个功能。

2、Linux文件属性

如:-rw-r--r--

第一个字符代表这个文件时目录[d],文件[-]或链接文件[I]

接下来的三个字符代表文件所有者的权限

再接下来的三个字符代表所属组的权限

最后三个字符代表其他人的权限

 

3、改变文件属性和权限:

chgrp:改变文件所属用户组

chown:改变文件所有者

chmod:改变文件权限

4、文件复制

cp 源文件 目标文件(注:复制行为cp会复制执行者的属性和权限)

5、你有r权限并不能说明就具有进入该目录的权限,能不能进入某一个目录,只与该目录的x  权限有关

6、要开放目录给任何人浏览时,至少应该给rx的权限,但w权限不能轻易交出。

7、新建目录命令:mkdir

      新建空文件命令:touch

8、.html文件可使用网页浏览器来直接开启,.php文件,可通过客户端的浏览器来服务端浏览,以得到运算后的网页结果

9、/var目录主要针对常态性变动的文件,包括缓存,登陆文件,程序文件,Mysql数据库文件

10、SELinuxLinux重要外挂,它可以用来作为具体权限的管理,针对逻辑程序的访问权限的限制。

^(*(oo))^   

 

7Linux文件与目录管理

 

一、常用的处理目录的命令

1、cd:切换目录

2、pwd:显示当前目录

想要知道当前所在目录,直接输入pwd即可

3、mkdir:新建一个新的目录

mkdir -p test1/test2/test3/test4  使用-p这个牛X,可以自行创建多层目录

mkdir -m 711 test 新建权限为rwx--x--x的目录

4、rmdir:删除一个空的目录

rmdir -r test 可删除test下面的所有目录

二、关于执行路径的变量:$Path

echo $Path 使用root的身份列出查询的路径

三、查看文件和目录

ls -al ~ 将主文件夹的所有文件列出来(含属性和隐藏)

Ls -alF --color=never~ 不显示颜色,但在文件名末显示出该文件名代表的类型

Ls -al --full-time ~ 完整呈现文件的修改时间

四、复制,删除和移动

1、cp:复制文件或目录

cp复制时默认的目的文件所有者是命令的执行者,就是谁执行的,老大归谁

因此例如密码文件或配置文件,就不能直接用cp必须加上-a-p可以完整复制文件权限的参数才行。

可以利用cp -a /etc /tmp 来进行文件备份。

2、rm:移除文件或目录

-f  不会出现警告信息

-i  删除前会问一下(想起个笑话,说比尔盖茨家的马桶按一下都有提示,确定冲厕吗)

-r  递归删除(因为很吊,所以很危险!!)

rm -i bashrc* 删掉所有以bashrc开头的文件

3、mv:移动文件与目录或更名

-f  若目标文件已存在,直接覆盖

-i  会问你一下

-u  目标文件已存在,并且source更新,才林更新。

五、获得路径文件名和目录名称

basename  获得最后的文件名

dirname  获得目录名

六、文件内容查询

1、cat 由第一行开始显示内容

-A 列出特别字符,而非空白

-b 列出行号,空白不显示行号

-n 列出行号,空白显示行号

2、nl  显示时顺便输出行号

3、More 一页一页显示

Space 向下翻一页

Enter 向下滚动一行

搜索字符串功能:

输入/ xxx ,然后按n进行查询就行了

4、Od  以二进制的方式读取文件内容

5、数据选取headtail

Head number 文件 取出第number

持续显示/TEST内容(更新立即显示)taiel -f /test

③想要显示/test11行到第20

  Head -n 20 /test | tail -n 10

七、修改文件时间或创建新文件 touch

1、mtime  文件内容更改 -m

      ctime  文件状态(权限和属性)更改 -c

      atime  文件内容被取用 -a

2、将/test文件日期改为两天前

touch -d “2 days ago” /test

3、将/test时间改为2007/09/15 2:02

touch -t 0709150202 /test

八、文件与目录的默认权限与隐藏权限

1、文件默认权限umask

①用户在新建文件或目录时候的权限默认值

②用户创建文件默认x权限,因此最大值为666

③用户创建目录默认权限全开,因此最大值为777

umask的分数是指该默认值需要减掉的权限

2、文件隐藏属性chattr,lsattr

chattr [+-=][属性文件或目录名称

  +  增加某一个特殊属性

  - 减少某一个特殊属性

  =  仅有后面接的参数

 

 A 当设置这个属性,当访问文件时,她的atime不会改变,可避免I/O较慢的及 其过度访问磁盘。

 S 当进行任何文件修改,改动会”同步”写入磁盘中。

 a 设置文件只能增加数据,不能删除和修改,只有root可以

 i   该文件不能被删除,改名,设置连接也无法写入或添加数据,对系统安全性有 帮助啊,只有root可以设置此属性

 s 若文件被删除,则就会被完全从磁盘中over

 u 若文件被删除,数据内容还存在磁盘,可以被找回

   3、文件的特殊权限:SUID ,SGID ,SBIT

^(*(oo))^   回头再研究这块,有点小迷糊

若果将A目录加上了SBIT的权限项目时,则甲只能够针对自己创建的文件或目 录进行删除,重命名,移动等操作,而无法删除他人的文件

4SUID

  2  SGID

  1  SBIT

如用chmod 4775 filename

 ③当然也可用符号

 SUID为  u+s

 SGID为   g+s

 SBIT为   o+t

④文件具有SUID时,代表当用户执行此二进制程序时,在执行过程中用户会暂时具有程序所有者权限

⑤目录具有SGID时,代表用户在这个目录下创建的文件用户组都会与该目录的用户组名称相同。

⑥目录具有SBIT时,代表在该目录下用户创建的文件只有自己与root能删

 4、查看文件类型file

file /test

九、命令与文件的查询

1、脚本文件名的查询

       which(寻找”执行文件”)

2、文件名的查找

   ①whereislocate利用数据库来查找数据,并没有实际查询硬盘比较节省时间

   ②Linux系统会将系统内的所有文件记录在一个数据库文件里面

3Find

这个比较霸道,有老多种参数了。

①与时间有关:-atime,-ctime,-mtime

Eg:3天前文件有改动的都列出来find / -time 3

             寻找test下文件将文件日期比test1早的列出来find /test -newer /tset1

 ②与用户或用户组名有关的参数:

这块就写两个小例子就行了。

Eg:查找/home下面属于vbird的文件

find /home -user vbird

查找系统中不属于任何人的文件

find / -nouser

 ③与文件权限及名称有关的参数:

-size [+-]SIZE 查找大于或小于某个SIZE的文件

-type TYPE     查找某个类型文件:一般正规文件(f)、设备文件(b,c)、目录(d)、 连 接文件(l)socket(s)FIFO(p)属性

-perm mode 文件权限刚好等于XXX的文件

-perm -mode 文件权限必须要包括mode的权限

-perm +mode 包含任一mode权限

**重点:在/etc下查找文件名包含.cpp的文件

find /etc -name  ‘*.cpp’

十、权限与命令间的关系

1、让用户能进入某目录成为工作目录的权限:

   目录所需权限:用户对此目录至少x权限

   额外需求:想用ls的话,还要有r权限

2、用户在某个目录内读取文件的基本权限:

   目录所需权限:用户对此目录至少x权限

  文件所需权限:用户对文件至少有r权限

3、让用户可修改一个文件的基本权限:

   目录所需权限:用户对此目录至少x权限

  文件所需权限:用户对文件至少有rw权限

    4、用户在某个目录内创建文件的基本权限:

   目录所需权限:用户对此目录至少wx权限

    5、用户进入目录内并执行文件的基本权限:

   目录所需权限:用户对此目录至少x权限

   文件所需权限:用户对文件至少有x权限

十一、情景模拟题:

情景:有两个账户alexarod,两人除了自己用户组外还共同支持一个名为project的用户组,假设两个用户需要共同拥有/srv/ahome目录开发权,且该目录不许其他人进行查阅。。。

解答:

   1、制作两个账户的相关数据

 groupadd project 天剑新的用户组

 useradd -G project alex 新建alex账号,且支持project

 useradd -G project alex 新建alex账号,且支持project

 id alex 查阅alex账号属性

2、新建需要开发的项目目录

           mkdir /srv/home

           ll -d /srv/ahome

3、给权限,用户组应为project

  chgrp project /srv/ahome

  chmod 770 /srv/ahome

  ll -d /srv/ahome

4、加入SGID 权限

  chmod 2770 /srv/ahome

 最后是我喜欢的一句话:

每个人都有一双翅膀;有的人长在脚上,有的人长在手上,有的人长在头上,有的人长在心上。翅膀长在哪里,你的天赋就在哪里


鸟哥Linux私房菜知识点总结6到7章