1、总结学过的权限,属性及ACL相关命令及选项,示例。
在linux系统中,一切皆文件;
对于整个系统中大致可分为三类角色,分别是属主、属组、以及其他用户;
对于这三类角色对文件又有三种权限,分别是读、写、执行;
三种角色:
角色 | 字符表示 |
属主:即所有者 | u |
属组:即属于哪个组 | g |
其他用户:即不是所有者也不属于组 | o |
三种权限:
权限 | 字符表示 |
读权限 | r (八进制表示为 4 ) |
写权限 | w(八进制表示为 2 ) |
执行权限 | x(八进制表示为 1 ) |
特殊权限:
特殊权限分别是:SUID、SGID、Sticky,这三种特殊权限独立与rwx权限体系。
chmod命令:常用的针对修改文件权限的命令
常用赋值写法 : + 增加某些权限、 - 删除某些权限、= 只保留某些权限,覆盖写法
例如:u+x:意为属主增加写权限、g-r:意为属组删除读权限、ug=rw:意为属主和属组改为读和写权限、o=0:意为其他用户无任何权限等等等
示范:
或者也可用数字进行赋值
示范:
ACL命令:
setfacl 可设置ACL权限、getfacl 可查看设置的ACL权限
示范:使tom无读写执权限
恢复tom读写执权限
2、结合vim几种模式,学会使用vim几个常见操作。
1)如何打开文件。并在打开文件(命令模式)之后如何退出文件。
退出文件:shift + : 并输入wq推出编辑模式
2)打开文件(命令模式)之后,进入插入模式。并在插入模式中如何回到打开文件的状态(命令模式),并在命令模式之后如何退出文件。
进入文件后(命令模式)按i(在光标处输入)、I(在当前光标首行输入)、a(在光标所在处后面输入)、A(在光标所在行的行尾输入)、o(在当前光标所在行的下方打开一个新行)、O(在当前光标所在行的上方打开一个新行)都可进入插入模式,再按 ESC 键即可退出插入模式,回到命令模式。
3)打开文件(命令模式)之后,进入插入模式,编写一段话,"马哥出品,必属精品", 之后从插入模式中如何回到打开文件的状态(命令模式),并在命令模式之后如何退出文件。
4)使用cat命令验证文件内容,是刚刚自己写的内容。
5)命令模式下,光标在单词,句子上进行前后,上下跳转。行复制粘贴。行删除。
3. 总结学过的文本处理工具,文件查找工具,文本处理三剑客, 文本格式化命令(printf)的相关命令及选项,示例。
cat命令:可以查看文本内容
nl命令:显示行号,相当于cat -b
tac命令:你想显示文本内容,行倒叙显示
rev命令:将同一行的内容逆向显示,同一行倒叙
more命令:可以实现分页查看文件,可以匹配管道实现输出信息的分页
less命令:less 也可以实现分页查看文件或STDIN输出,less 命令是man命令使用的分页器
head命令:可以显示文件或标准输入的前面行
范例:
tail命令:tail 和 head 相反,查看文件或标准输入的倒数行
cut命令:cut 命令可以提取文本文件或STDIN数据的指定列
paste命令:合并多个文件同行号的行到一行
grep命令:文本搜索工具,根据用户指定的 “模式” 对目标文本逐行进行匹配检查;打印匹配到的行
标准输入:
处理文件:
管道:
取前两行:
取反,取不匹配的行:
不区分大小写:
显示行号:
显示匹配的行数:
仅显示匹配到的内容:
只显示匹配到的文件的文件名,不显示具体内容
sed命令:行编辑器
标准输入,默认直接输出:
默认输出内容:
输出第一、二行:
输出最后一行:
正则匹配,输出包含root的行:
正则匹配,输出root开头的行:
正则匹配:输出以bash结尾的行:
正则匹配,显示注释行行号:
命令展开:
搜索替换:
awk命令:
常用的内置变量
范例FS
范例RS
范例OFS
范例ORS
范例NF
范例NR
范例FNR
范例ARGC
动作printf:可以实现格式化输出
4. 总结文本处理的grep命令相关的基本正则和扩展正则表达式。
基本正则
字符匹配:
. #匹配任意单个字符(除了\n),可以是一个汉字或者其他国家的文字
. 在[ ]内代表本身(自己)、\. 也代表本身,中括号外就代表任意单个字符
[ ] #匹配指定范围内的任意单个字符,示例:[wang] [0-9]
[^] #匹配指定范围外的任意单个字符,示例:[^wang]
匹配次数:
* #匹配前面的字符任意次,包括0次,贪婪模式:尽可能长的匹配
. * #任意长度的任意字符
\? #匹配其前面的字符出现0次或1次,即:可有可无
\+ #匹配其前面的字符出现最少1次,即:肯定有且 >=1 次
\{n\} #匹配前面的字符n次
位置锚定:位置锚定可以用于定位出现的位置
分组其他
扩展正则表达式
字符匹配:
匹配次数:
* #匹配前面字符任意次
? #0次或一次
+ #1次或多次
{ n } #匹配n次
{m,n} #至少m次,至多n次
位置锚定:
分组其它:
链接练习:
1、删除文件每行的第一个字符
2、删除文件每行的最后一个字符
3、删除文件每行的第二个字符
4、删除文件每行的倒数第二个字符
5、删除文件每行的第二个单词
6、删除文件每行的倒数第二个单词
7、交换每行的第一个字符和第二个字符
8、交换每行的第一个单词和第二个单词
9、打印Linux系统的"IP地址,系统版本,CPU核心,内存大小
总结变量命名规则,不同类型变量(环境变量,位置变量,只读变量,局部变量,状态变量)如何使用
变量命名规则:
要区分大小写、不能使用程序中的保留字和内置变量,如:if、for
只能使用数字、字母及下划线,且不能数字开头,不支持短横线“-”
命名习惯:
环境变量:
只读变量:
只能声明定义,但后续不能修改和删除,即常量
位置变量:
状态变量:
$0 表示当前执行的脚本或程序的名称 当前脚本的名字
通过shell编程完成,30鸡和兔的头,80鸡和兔的脚,分别有几只鸡,几只兔?
参考例题