一、shell
shell是命令语言解释器,俗称“壳”,是连接Linux内核与用户之间的接口程序,是文字操作系统与外部最主要的接口,也是操作系统最外面的一层。shell文件不需要编译。
用户可以通过查看/etc/shells 文件中的内容来查看自己主机中当前
有哪些种类的Shell。
echo $SHELL :查看当前shell
二 、目录和文件操作命令
1|pwd:查看当前目录路径;
2|which:查找并显示给定命令的决定路径;
3|touch:创建一个新文件,能够通过-a -m分别更变文件的访问时间和改动时间;
4|more,less:以多文件方式,按页显示文件内容和cat相似,more只能向后翻页,less更有弹性,也支持向前翻页;
5|head,tail:显示文件前(后)n行的内容;
6|ln:为文件创建链接,链接类型分为硬链接(默认)和符号链接(-s),符号链接对源文件存在依赖关系(类似windows系统的快捷方式);创建硬链接后,文件已经存在的I节点(Inode)会被多个文件使用,用ls -l命令可以查看文件链接数,当文件链接数为0时,文件才会被删除。
7|绝对路径与相对路径:绝对路径从根目录开始显示的完整路径,相对路径以当前目录为起点的路径。(cd / 切换到根目录;cd ~ 切换到家目录)
三、文件属性和用户组
1|查看当前用户:whoami 查看当前操作用户;who am i 查看已登录用户
2|chmod:更改用户对文件的访问权限,如 chmod u+x filename 赋予文件所属用户对filename文件可执行权限
chmod 用户参数:
-u 文件所属用;
-g 文件所属用户的群组;
-o 其他用户;
-a 以上三种;
操作符:
'+' 赋予权限
'-' 取消权限
'=' 赋予给定权限并取消其他所有权限
权限参数:
-r 可读权限(read);4 = 2^2 二进制:100
-w 可写权限(write);2 = 2^1 二进制:010
-x 可执行权限(execute);1 = 2^0 二进制:001
-s 特殊权限
权限参数可以二进制方式代替
chmod 600 filename (赋予文件所属用户可读可写权限)
每一位数代表二进制权限的和(6=2^2+2^1+0*2^0即可读可写权限),第一位代表文件用户所属权限,第二位代表文件所属用户的群组,第三位代表其他用户。
3|chown:
用来更改某个目录或文件的用户名和用户组的
chown 用户名:组名 文件路径(可以是就对路径也可以是相对路径)
例1:chown root:root /tmp/tmp1
就是把tmp下的tmp1的用户名和用户组改成root和root(只修改了tmp1的属组).
例2:chown -R root:root /tmp/tmp1
就是把tmp下的tmp1下的所有文件的属组都改成root和root。
4|chgrp
用来更改文件或目录的所属用户组。
chgrp [选项] [组] [文件]
选项参数:
-c 当发生改变时输出调试信息
-f 不显示错误信息
-R 处理指定目录以及其子目录下的所有文件
-v 运行时显示详细的处理信息
–dereference 作用于符号链接的指向,而不是符号链接本身
–no-dereference 作用于符号链接本身
选择参数:
–reference=<文件或者目录>
–help 显示帮助信息
–version 显示版本信息
方法级别的权限验证算法:
操作系统判断用户是否具有对应权限时的算法,
drwxrwxr-x (目录文件)
-rw-rw-r– (普通文件)
以普通文件对与文件所属用户的权限为例
rwx 二进制位显示 110 ‘1’代表具有该权限 用户权限为6(0*2^0+2^1+2^2)
在权限验证时 操作系统对用户使用权限对6做位的与运算所得结果是否为该权限的值。
如:
可执行权限为 1 与 6 做位的与运算
110 & 001 = 000 //不等于1 所以不具有可执行权限;
可写权限为 2 与 6 做位的与运算
110 & 010 = 010 //等于2 所以具有可写权限;
umask:设置文件和目录创建时的缺省权限。缺省权限算法为 (777)&(~umask)
例:umask = 002 即 000 000 010
~umask = 775 即 111 111 101
(777) & (~775) 即 111 111 101 rwxrwxr-x
umask 每3位中为1即缺省权限中去除该权限。