N25期–第十五周作业

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 '1~2w /tmp/fstab.3' /etc/fstab

5、echo一个文件路径给sed命令,取出其基名;进一步地,取出其路径名;

取基名:echo "/etc/sysconfig/network-scripts/" | sed 's@^.*/\([^/]\+\)/\?$@\1@'
取路径名:echo "/etc/sysconfig/network-scripts/" | sed 's@[^/]\+/\?$@@'

6、统计指定文件中所有行中每个单词出现的次数;
 awk '{for(i=1;i<=NF;i++){count[$i]++}}END {for (i in count) {print i,count[i]}}' /etc/fstab

7、统计当前系统上所有tcp连接的各种状态的个数;

netstat -tan | awk '/^tcp\>/{state[$NF]++}END {for (i in state) {print i,state[i] }}'

8、统计指定的web访问日志中各ip的资源访问次数:

awk '{ip[$1]++}END{for(i in ip) {print i,ip[i]}}' /var/log/httpd/access_log


9、写一个脚本:定义一个数组,数组元素为/var/log目录下所有以.log结尾的文件的名字;显示每个文件的行数;
#!/bin/bash
declare -a files
files=(/var/log/*.log)
for i in `seq 0 $[${#files[@]}-1]`;
    do wc -l ${files[$i]}
done

10、写一个脚本,能从所有同学中随机挑选一个同学回答问题;进一步地:可接受一个参数,做为要挑选的同学的个数;

#!/bin/bash 
function  duplicate() {   #判断是否重复选择,如果重复在选一次,直到不重复
for ((j=$[${#student[@]}-2];j>=0;j--));do
            if [ ${student[$j]} -eq ${student[$i]} ] 
            then
            student[$i]=$(($RANDOM % $a))
            duplicate
            fi
        done
}
read -p  "input the total student number,the first student no. is 0:" a
total=($(seq 0 $[$a-1]))
read -p "input how many student pick:" b
if [ $b -gt $a ]
then 
    echo "pick tpo more student"
elif [ $a -eq $b ]
then
    echo "pick every student"
else
    for ((i=0;i<$b;i++));do
        student[$i]=$(($RANDOM % $a))
        duplicate
        echo ${student[$i]}
    done
fi


11、授权centos用户可以运行fdisk命令完成磁盘管理,以及使用mkfs或mke2fs实现文件系统管理;

visudo
User_Alias   DISK_ADMINS = centos
Cmnd_Alias   DISK_COMMAND = /sbin/fdisk, /sbin/mkfs, /sbin/mke2fs
DISK_ADMINS  ALL=(root) NOPASSWD: DISK_COMMAND

12、授权gentoo用户可以运行逻辑卷管理的相关命令;
visudo
User_Alias  LVM_ADMINS = gentoo
Cmnd_Alias  LVM_COMMAND = /sbin/pv*, /sbin/vg*, /sbin/lv*
LVM_ADMINS  ALL=(root) NOPASSWD: LVM_COMMAND

useradd centos
echo "centos" | passwd --stdin centos
useradd gentoo
echo "gentoo" | passwd --stdin gentoo

[centos@node6 ~]$ sudo -l
用户 centos 可以在该主机上运行以下命令:
    (root) NOPASSWD: /sbin/fdisk, /sbin/mkfs, /sbin/mke2fs
[gentoo@node6 ~]$ sudo -l
用户 gentoo 可以在该主机上运行以下命令:
    (root) NOPASSWD: /sbin/pv*, /sbin/vg*, /sbin/vl*



13、基于pam_time.so模块,限制用户通过sshd服务远程登录只能在工作时间进行;

[root@localhost ~]# vim /etc/pam.d/sshd
account    required pam_time.so
[root@localhost ~]# vim /etc/security/time.conf 
*;*;*;MoTuWeThFr0900-1800#表示工作时间9点到下午6点允许访问ssh

14、基于pam_listfile.so模块,定义仅某些用户,或某些组内的用户可登录系统;"
[root@localhost ~]# vim /etc/sshd_userlist
root
centos
gentoo
[root@localhost ~]# chmod 600 /etc/sshd_userlist 
[root@localhost ~]# chown root /etc/sshd_userlist 
[root@localhost ~]# vim /etc/pam.d/sshd
添加
auth        required pam_listfile.so item=user sense=allow file=/etc/sshd_userlist onerr=succeed

原创文章,作者:victorli88,如若转载,请注明出处:http://www.178linux.com/72611

(0)
victorli88victorli88
上一篇 2017-05-08
下一篇 2017-05-08

相关推荐

  • ​N25第三周作业

    第三周 一、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@zf ~]# who | cut -d " " -f1  | sort | uniq -…

    Linux干货 2016-12-14
  • 我与Linux的第一次亲密接触

        作为一个新手,经过一周的学习,我对Linux目前有了些许的了解,从Linux的发展史中,开源共享精神深深的感染了我,也使得我对Linux的兴趣更加浓厚。对于一个一直翘计算机课的我来说,入门和基础是一项非常艰巨的任务,初期为了搭建学习的环境,也是费了不小的功夫,相信许多萌也对此有很大的感触,在这里,我来和大家分享一下如何去构建环境。…

    Linux干货 2017-03-26
  • N24_jerry 第十二周作业

    1、请描述一次完整的http请求处理过程; 简介 一次完整的HTTP请求过程从TCP三次握手建立连接成功后开始,客户端按照指定的格式开始向服务端发送HTTP请求,服务端接收请求后,解析HTTP请求,处理完业务逻辑,最后返回一个HTTP的响应给客户端,HTTP的响应内容同样有标准的格式。无论是什么客户端或者是什么服务端,大家只要按照HTTP的协议标准…

    Linux干货 2017-03-22
  • awk,systemctl,破解7root口令

    awk -F 指明输入时用到的字段分隔符 默认空格为分隔符 -v 自定义变量 基本格式:awk [options] 'program' file $1,$2..$n称为域标识,$0为所有域。 文件的每一行称为记录 awk '{print}' /etc/passwd 默认 print $0 显示全段   awk…

    Linux干货 2016-10-05
  • /etc/fstab及/boot分区文件恢复

    以centos6为例,/boot目录下有最为关键的开机启动所必须的内核文件、根文件系统驱动文件已经引导加载程序(bootloader)grub。当我们清空此文件夹之后关机,机器就不能正常启动了,这种情况下,可以借助光盘启动进入救援模式解决。具体步骤如下: 1. 开机进入救援模式 这里不像正常情况下,显示根文件系统挂载在/mnt/sysimage目录,而是提示…

    2017-07-09
  • bash特性

    bash特性之一:命令别名      获取当前用户可用的别名的定义:  bash的特性之二:命令历史      命令语法格式:      history [-c] [-d OFFSET] [n]&nb…

    Linux干货 2016-11-06

评论列表(1条)

  • 马哥教育
    马哥教育 2017-06-20 11:39

    怎么没有总结sed和awk的具体用法啊?