1、总结sed和awk的详细用法;
2、删除/boot/grub/grub.conf文件中所有行的行首的空白字符;
# sed 's@^[[:space:]]@@' /boot/grub/grub.conf
3、删除/etc/fstab文件中所有以#开头,后跟至少一个空白字符的行的行首的#和空白字符;
# sed 's@^#[[:space:]]\+@@' /etc/fstab
4、把/etc/fstab文件的奇数行另存为/tmp/fstab.3;
sed 'n;d' /etc/fstab >/tmp/fstab.3
5、echo一个文件路径给sed命令,取出其基名;进一步地,取出其路径名;
# echo /etc/fstab | sed -r 's@(/.*/)@@g' #"/etc/sysconfig/qq" | sed 's@[^/]\+/\?$@@'
6、统计指定文件中所有行中每个单词出现的次数;
# awk -F: '{for(i=1;i<=NF;i++){count[$i]++}}END{for(i in count) {print i,count[i]}}' /etc/passwd
7、统计当前系统上所有tcp连接的各种状态的个数;
# netstat -nat| awk '{print $6}' |sort | uniq -c
8、统计指定的web访问日志中各ip的资源访问次数:
# awk '{ip[$1]++}END{for(i in ip) {print i,ip[i]}}' /var/log/httpd/access_log-20161023
9、写一个脚本:定义一个数组,数组元素为/var/log目录下所有以.log结尾的文件的名字;显示每个文件的行数;
#!/bin/bash # filelist=(/var/log/*.log) for i in $(seq 0 $[${#filelist[@]}-1]) do wc -l ${filelist[i]} done
10、写一个脚本,能从所有同学中随机挑选一个同学回答问题;进一步地:可接受一个参数,做为要挑选的同学的个数;
#!/bin/bash # for i in {1..100};do k=$i-1 stud[$k]=boy_$i done a=$[$RANDOM % 100] echo this time phick student is :${stud[a]}
进一步地:可接受一个参数,做为要挑选的同学的个数;
#!/bin/bash # for i in {1..100};do k=$i-1 stud[$k]=boy_$i done num=$1 for a in $(seq 1 $num);do a=$[$RANDOM % 100] echo ${stud[a]} done
11、授权centos用户可以运行fdisk命令完成磁盘管理,以及使用mkfs或mke2fs实现文件系统管理;
centos ALL=(root) NOPASSWD:/sbin/fdisk, /sbin/mke2fs, /sbin/mkfs
12、授权gentoo用户可以运行逻辑卷管理的相关命令;
gentoo ALL=(root) lvm
13、基于pam_time.so模块,限制用户通过sshd服务远程登录只能在工作时间进行;
(1).# vim /etc/pam.d/sshd 在account required pam_nologin.so上插入一行: account required pam_time.so (2).编辑pam_time.so模块的配置文件 # vim /etc/security/time.conf *;*;*;MoTuWeThFr0900-1800
14、基于pam_listfile.so模块,定义仅某些用户,或某些组内的用户可登录系统;
创建一个用户的列表文件,例如/etc/sshd_userlist,然后编辑文件 root centos gentoo 然后修改文件的权限和属主 # chmod 600 /etc/sshd_userlist # chown root /etc/sshd_userlist 再编辑/etc/pam.d/sshd文件,加入以下一行内容: auth required pam_listfile.so item=user sense=allow file=/etc/sshd_userlist onerr=succeed
原创文章,作者:N21-沉舟,如若转载,请注明出处:http://www.178linux.com/57424
评论列表(1条)
可以总结一下awk和sed