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 19:20
下一篇 2017-05-08 20:08

相关推荐

  • AWK实现求和、平均数、最小值、最大值

    1.简单的按列求和]$ cat test123125126]$ awk ‘{sum += $1}END {print sum}’ test2.对符合某些条件的行,按列求和]$ cat  testaaa 123bbb 125aaa 123aaa 123ccc 126对文件test中 第一列为aaa的行求和]$ awk &#82…

    Linux干货 2017-04-09
  • Linux基本操作:关机 重启

        Linux系统安装完成以后,就要学会一些Linux的基本操作命令,首先是关机和重启命令,如果进入Linux系统之后连关机重启都不会是不是太不应该了,总不能关机或重启的时候直接关闭电源在开机吧,这就显得太不专业了,这样也会对Linux系统主机不太好,一些进程还没有关闭就直接断电,会导致Linux系统的不稳定出现问题,何况也…

    Linux干货 2016-08-04
  • N25期第八周作业

    1.请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别 主要功能: 网桥是一个局域网与另一个局域网之间建立连接的桥梁,属于数据链路层的一种设备。 集线器是可以将一些机器连接起来组成一个局域网的设备。 二层交换机是工作于OSI模型的第2层(数据链路层)的设备,作用和集线器类似。 三层交换机就是具有部分路由器功能的二层交换机。 路由器是互联…

    Linux干货 2017-03-08
  • hbase安装配置(整合到hadoop)

    1.  快速单击安装 在单机安装Hbase的方法。会引导你通过shell创建一个表,插入一行,然后删除它,最后停止Hbase。只要10分钟就可以完成以下的操作。 1.1下载解压最新版本 选择一个 Apache 下载镜像:http://www.apache.org/dyn/closer.cgi/hbase/,下载 HBase Re…

    Linux干货 2015-04-13
  • 第一天上课

                      2016.10.11 第一天上课 上课环境安排 电脑IP安排 学生IP地址安排     上课软件安装    虚拟机安装 操作系统发展史    第一代计算机:电子管计算机&nb…

    Linux干货 2016-10-18
  • sed

    Stream EDitor, 行编辑器 sed是一种流编辑器,它一次处理一行内容。处理时,把当前 处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后 ,把缓冲区的内容送往屏幕。然后读入下行,执行下一个循环 。如果没有使诸如‘D’的特殊命令,那会在两个循环之间清空 模式空间,但不会清空保留…

    Linux干货 2017-12-03

评论列表(1条)

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

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