N25-第15周博客作业

1、总结sed和awk的详细用法;    sed [OPTION]...  'script'  [input-file] ...            script:                地址定界编辑命令                            常用选项:                -n:不输出模式空间中的内容至屏幕;                -e script, --expression=script:多点编辑;                -f  /PATH/TO/SED_SCRIPT_FILE                    每行一个编辑命令;                -r, --regexp-extended:支持使用扩展正则表达式;                -i[SUFFIX], --in-place[=SUFFIX]:直接编辑原文件 ;                            ~]# sed  -e  's@^#[[:space:]]*@@'   -e  '/^UUID/d'  /etc/fstab                        地址定界:                (1) 空地址:对全文进行处理;                (2) 单地址:                    #:指定行;                    /pattern/:被此模式所匹配到的每一行;                (3) 地址范围                    #,#:                    #,+#:                    #,/pat1/                    /pat1/,/pat2/                    $:最后一行;                (4) 步进:~                    1~2:所有奇数行                    2~2:所有偶数行                                编辑命令:                d:删除;                p:显示模式空间中的内容;                a  \text:在行后面追加文本“text”,支持使用\n实现多行追加;                 i  \text:在行前面插入文本“text”,支持使用\n实现多行插入;                 c  \text:把匹配到的行替换为此处指定的文本“text”;                w /PATH/TO/SOMEFILE:保存模式空间匹配到的行至指定的文件中;                r  /PATH/FROM/SOMEFILE:读取指定文件的内容至当前文件被模式匹配到的行后面;文件合并;                =:为模式匹配到的行打印行号;                !:条件取反;                    地址定界!编辑命令;                s///:查找替换,其分隔符可自行指定,常用的有s@@@, s###等;                    替换标记:                        g:全局替换;                        w /PATH/TO/SOMEFILE:将替换成功的结果保存至指定文件中;                        p:显示替换成功的行;2、删除/boot/grub/grub.conf文件中所有行的行首的空白字符;    sed 's/^[[:space:]]//g' /boot/grub/grub.conf3、删除/etc/fstab文件中所有以#开头,后跟至少一个空白字符的行的行首的#和空白字符;    sed 's/^#[[:space:]]\+//' /etc/fstab4、把/etc/fstab文件的奇数行另存为/tmp/fstab.3;    sed 'n;d' /etc/fstab >>/tmp/fstab.35、echo一个文件路径给sed命令,取出其基名;进一步地,取出其路径名;    echo /etc/fstab/ | sed -r 's@^/.*/([^/]+)/?$@\1@g'    echo /etc/fstab/ | sed -r 's@[^/]+/?$@@g'6、统计指定文件中所有行中每个单词出现的次数;    awk '{for(i=1;i<=NF;i++) {word[$i]++}}END{for(i in word) {print i,word[i]}}' /etc/fstab7、统计当前系统上所有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_log9、写一个脚本:定义一个数组,数组元素为/var/log目录下所有以.log结尾的文件的名字;显示每个文件的行数;    #!/bin/bash    filelist=$(ls /var/log/*.log)    for line in ${filelist[*]};do            echo $line            wc -l ${line}    done    #!/bin/bash    filelist=$(ls /var/log/*.log)    for i in $(seq 0 $[${#filelist[*]}-1]);do            echo ${filelist[$i]}            wc -l ${filelist[$i]}    done10、写一个脚本,能从所有同学中随机挑选一个同学回答问题;进一步地:可接受一个参数,做为要挑选的同学的个数;    #!/bin/bash    #    echo "student Name     student NO"    for i in {1..10};do    stu[$i]=stu_$i    echo "${stu[$i]}             $i"    done    j=$[$RANDOM % 10+1]    echo "Random picked student No:$j"    echo "The student name is :${stu[$j]}"                                可接受一个参数,做为要挑选的同学的个数;    #!/bin/bash    #    read -p "Please Input student Numbers:" num    echo "student Name     student NO"    for ((i=1;i<=$num;i++))do    stu[$i]=stu_$i    echo "${stu[$i]}             $i"    done    j=$[$RANDOM % $num+1]    echo "Random picked student No:$j"    echo "The student name is :${stu[$j]}"11、授权centos用户可以运行fdisk命令完成磁盘管理,以及使用mkfs或mke2fs实现文件系统管理;    vim /etc/sudoers    centos  ALL=(root)      NOPASSWD:/sbin/fdisk,/sbin/mke2fs,/sbin/mkfs12、授权gentoo用户可以运行逻辑卷管理的相关命令;    vim /etc/sudoers    gentoo  ALL=(root)      lvm13、基于pam_time.so模块,限制用户通过sshd服务远程登录只能在工作时间进行;    vim /etc/ssh/sshd_config     UsePAM noUsePAM yes  #开启Pam模块认证    vim /etc/pam.d/sshd    /lib64/security/pam_time.so 确保pam_time.so存在     vim /etc/pam.d/sshd    account    required     pam_time.so    vim /etc/security/time.conf    *;*;*;MoTuWeThFr0900-180014、基于pam_listfile.so模块,定义仅某些用户,或某些组内的用户可登录系统;    [root@localhost ~]# vim /etc/sshd_userlist    root    centos    gentoo    chmod 600 /etc/sshd_userlist    chown root /etc/sshd_userlist    vim /etc/pam.d/sshd     #auth       required     pam_listfile.so item=user sense=allow file=/etc/sshd_userlist onerr=succeed

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

(0)
oranixoranix
上一篇 2017-05-21 20:44
下一篇 2017-05-21 20:53

相关推荐

  • 【Linux基础】计算机及操作系统基础

    【Linux基础】计算机及操作系统基础 计算机的组成及其功能 计算机的组成 简单来说,计算机应由两部分组成:第一部分:硬件 冯诺依曼结构体系 当前计算机主要是基于冯诺依曼体系结构设计的,在该体系中,计算机硬件由5个部件组成。分别是:运算器、控制器、存储器、输入设备和输出设备。而现今运算器和控制器一般集成在一起,叫中央处理器(Central Processin…

    Linux干货 2018-03-04
  • 马哥教育网络班第21期+第二周课程作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 命令 选项 解释 cp -r 递归复制 copy -f 强行复制,若已存在则覆盖 -i 交互式 -p 保留属主属组权限时间戳 -L(不加也可以,默认) (源文件为链接)复制指向连接的文件 -P (源文件为链接) 以链接的方式复制过来 -a 归档复制,常用备份 命令 选项 …

    Linux干货 2016-07-17
  • TCP协议详解

    TCP协议详解。     I,TCP数据段报文解释 1,tcp数据段头部20(固定)+40(可变)字节构成,此数据由报头偏移位构成,计算单位为四个字节 表示TCP报文段的首部长度,共4位,由于TCP首部包含一 个长度可变的选项部分,需要指定这个TCP报文段到底有多长。它指 出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。…

    Linux干货 2017-06-26
  • 用户、组

    用户user:  令牌token,identity   Linux用户:username/UID   管理员:root,0   普通用户:1-65535  系统用户:1-499(CENTOS6),1-999 对守护进程获取资源进行权限分配  登录用户:500(CENTOS6)+,1000+…

    Linux干货 2016-08-04
  • Linux简介,计算机基础

    计算机系统   计算机系统分为:  硬件(Hardware)系统和软件(Software)系统  硬件系统:    主机、外部设备  软件系统:  系统软件、应用软件  主机:  中面处理器CPU、内存储器  外部设备:  外部存储器、输入…

    Linux干货 2017-02-14
  • 关于大型网站技术演进的思考(十)–网站静态化处理—动静整合方案(2)

    原文出处: 夏天的森林    上篇文章我简要的介绍了下网站静态化的演进过程,有朋友可能认为这些知识有点过于稀松平常了,而且网站静态化的技术基点也不是那么高深和难以理解,因此它和时下日新月异的web前端技术相比,就显得不伦不类了。其实当我打算写本系列的之前我个人觉得web前端有一个点是很多人都知道重要,但是有常常低估它作用的,那就…

    2015-03-11