1:在shell脚本中,一定要使用绝对路径。
2:在根目录下,.和..是完全相同的两个目录。
3:cd - 就相当于撤销,表示回到前面状态所在的目录。
4:mkdir -m 700 test 加”-m”参数可以指定权限。
5:将某个目录(比如/home)加入PATH中我们可以:PATH = “$PATH”:/home
6:有时我们ls的时候,会看到在目录后面会加上一些* = | 等,他们表示这样的含义:*:可执行文件 =:代表socket文件 |:代表FIFO文件。
7:cp命令的用法:
-a:相当于-pdr 连同文件所有属性都复制。
-p:连同文件属性一起复制,不使用默认属性。
-r:递归复制,适用于目录的复制。
-d:若源文件为连接文件,则复制连接文件属性而非文件本身。
-l:创建一个硬链接文件
-s:创建一个软链接文件
8:”\” 符号可以忽略掉alias中的指定参数,一般情况下在我们的.bashrc中,以ls命令为例,会有alias ls = ‘ls –color=auto’这一句,它会将ls所列出的文件和目录以不同的颜色显示。
9:重命名文件命令除了mv之外,还有一个批量使用的叫做rename,它能批量修改文件名。比如将大写替换成小写的方法:rename ‘y/A-Z/a-z/’ *
10:cat 命令
-A:相当于 -vET的整合参数,可以列出一些特殊字符。
-b:显示行号,忽略空行。
-n:显示行号,不会忽略空行。
tac命令和cat命令相反,参数不变,tac将cat倒着写,输出当然也是倒着输出。
11:注意常用的more和less命令,适合在字符模式下查看东西,但是less的功能好像更加强大,空格键:向下翻动一页,[PageUp]:向上翻动一页。实际上我们的man就是调用less命令来实现查看方式的。
12:od命令
od -c /etc/passwd 它表示通过ASCII码的形式显示。
od -t oCc /etc/passwd 它会显示八进制的数值和相应字符进行比较。
13:注意即使cp -a 命令,也不能将文件的三个时间复制过来。
14:这次对umask彻底理解了:
怎样计算?注意:千万不要用数字减,应该用权限去减,文件的一般默认属性是666,目录一般为777。举个例子:
比如umask=003,要是文件666直接减,得到的结果是663,即-rw-rw–wx 这样反倒违背我的原意文件创建时候默认没有x权限了(虽然真实创建的文件也确实没有x权限),所以正确的理解方式是用rw依次去减每一位上的权限,要是原来没有x,自己也不会冒出来。
15:chattr命令:
chattr命令可以设置权限超过root,有以下选项:
-A:设置之后访问文件的话,访问时间不会被修改;
-i:保证此文件无论是谁都不能修改,
-a:增加之后只能向此文件中加入数据,不能删除,适用于一些登录日志文件。
lsattr命令用来显示属性。
16:SUID,SGID,SBIT特殊权限总结:
SUID:针对二进制文件,如果它具有SUID权限,那么其他人在使用它的时候,会默认得到此文件的user的权限去执行。
SGID:对目录:如果一个目录具有SGID的权限,则在这个目录下建立的文件或者目录都会继承目录的权限。
对文件:程序在执行过程中,权限是用户组的权限。
SBIT:相当于建立公共目录。只能删除和修改自己的东西。