重拾linux(二)

正则

grep:显示匹配行
v:反显示
e:使用扩展正则表达式
匹配操作符
\                  转义字符
. 	                 匹配任意单个字符
[1249a],[^12],[a-k]  字符序列单字符占位
^                 行首
$                  行尾
\<,\>:\<abc           单词首尾边界
|                   连接操作符
(,)              选择操作符
\n    	     反向引用
重复操作符:
?      	匹配0到1次。
*      	匹配0到多次。
+     	匹配1到多次。
{n}   	匹配n次。
{n,}  	匹配n到多次。
{n,m}      匹配n到m次。
与扩展正则表达式的区别:grep basic
\?, \+, \{, \|, \(, and \)
匹配任意字符
.*

文本编辑

  1. cut:cut -d':' -s -f1 filename
//显示切割的行数据
-f:选择显示的列
-s:不显示没有分隔符的行
-d:自定义分隔符
  1. sort:sort -t' ' -n -r -k2 sort.txt
-t:自定义分隔符
-n:按数值排序(默认按字典序)
-r:倒序
-k#:选择排序的列
-u:合并相同行
-f:忽略大小写
  1. wc
wc sort.txt	//print newline, word,byte counts for each FILE, and a total line if more than one FILE is specified.
cat sort.txt | wc
cat sort.txt | wc -l	//lines
cat sort.txt | wc -c	//bytes
cat sort.txt | wc -w	//words
cat sort.txt | wc -m	//chars
  1. sed > vi
    sed[optioins] Address Command file
[options]:
-n: 静默模式,不再默认显示模式空间中的内容
-i: 直接修改原文件
-e SCRIPT -e SCRIPT:可以同时执行多个脚本
-f /PATH/TO/SED_SCRIPT
-r: 表示使用扩展正则表达式
行编辑器Command:
d: 删除符合条件的行;
p: 显示符合条件的行;
a \string: 在指定的行后面追加新行,内容为string\n:可以用于换行
i \string: 在指定的行前面添加新行,内容为string
r FILE: 将指定的文件的内容添加至符合条件的行处
w FILE: 将地址指定的范围内的行另存至指定的文件中; 
s/pattern/string/修饰符: 查找并替换,默认只替换每行中第一次被模式匹配到的字符串
g: 行内全局替换
i: 忽略字符大小写
s///: s###, s@@@	
	\(\), \1, \2
行编辑器Address:
可以没有
给定范围
查找指定行/str/
  1. awk
awk -F '{pattern + action}' {filenames}
支持自定义分隔符
支持正则表达式匹配
支持自定义变量,数组  a[1]  a[tom]  map(key)
支持内置变量
	ARGC               命令行参数个数
	ARGV               命令行参数排列
	ENVIRON            支持队列中系统环境变量的使用
	FILENAME           awk浏览的文件名
	FNR                浏览文件的记录数
	FS                 设置输入域分隔符,等价于命令行 -F选项
	NF                 浏览记录的域的个数
	NR                 已读的记录数
	OFS                输出域分隔符
	ORS                输出记录分隔符
	RS                 控制记录分隔符
支持函数
	print、split、substr、sub、gsub
支持流程控制语句,类C语言
	if、while、do/while、for、break、continue

练习:
显示etc/passwd的账户:
awk -F':' '{ print $1}' passwd
显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割,而且在所有行开始前添加列名name,shell,在最后一行添加"blue,/bin/nosh"
awk -F':' 'BEGIN{ print "name\tshell"}{ print $1 "\t" $7}END{ print "blue\t/bin/nosh"}' passwd
搜索/etc/passwd有root关键字的所有行
awk '/root/{ print $0}' passwd
统计/etc/passwd文件中,每行的行号,每行的列数,对应的完整行内容
awk -F':' '{ print NR "\t" NF "\t" $0}' passwd

//文本分析练习:统计报表:合计每人1月工资,0:manager,1:worker

//awk.txt
Tom	 0   2012-12-11      car     3000
John	 1   2013-01-13      bike    1000
vivi	 1   2013-01-18      car     2800
Tom	 0   2013-01-20      car     2500
John	 1   2013-01-28      bike    3500
//method1
awk '{split($3,data,"-");if(data[2]=="01"){name[$1]+=$5};if($2=="0"){role[$1]="manager"}else{role[$1]="worker"}}END{for(i in name){print i "\t" role[i] "\t" name[i]}}' awk.txt
//method2
awk -f awk.sh awk.txt
//awk.sh
{
		split($3,data,"-");
		if(data[2]=="01"){
				name[$1]+=$5
		};
		if($2=="0"){
				role[$1]="manager"
		}else{
				role[$1]="worker"
		}
}
END{
		for(i in name){
			print i "\t" role[i] "\t" name[i]
		}
}

用户权限

  1. 创建用户
    useradd user01
    useradd user01
    useradd aaa

  2. 删除用户

    userdel aaa
    cd /home/
    rm -rf aaa
    cd /var/spool/mail/
    rm -rf aaa
    
  3. 修改用户密码
    passwd username

  4. 修改用户权限

    cd /
    mkdir share
    ll
    

    在这里插入图片描述

    groupadd share
    usermod -G share user01
    usermod -G share user02
    id user01
    id user02
    

    在这里插入图片描述

    chown root:shre share/
    chmod g+w share/
    chmod o-rx share/
    ll
    

    在这里插入图片描述

    chown 语法:
    chown owner: ownergroup catalaog
    chmod 语法:
    chmod augo +- rwx filename
    a-all u-user g-group o-others
    chmod 444 filename
    rwx<-->111 每3个一组 0-7
    文件夹的执行权限是可进入权限
    root用户可以无视其他权限的显示
    
    //练习	user01
    vi log1.log
    chown :share log1.log
    chmod o-r log1.log
    //练习	user02
    vi log2.log
    chown :share log2.log
    chmod o-r log2.log
    
    

权限管理

<–未完待续–>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值