马哥教育网络班21期+第15周课程练习

1、总结sed和awk的详细用法;

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
# awk '{if (NR%2==0) next; print}' /etc/fstab > /tmp/fstab.3

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

# echo "/tmp/test/fstab" | sed 's/[^/]\+\/\?$//'
# echo "/tmp/test/fstab" | sed 's/\(\/.*\/\)//'

6、统计指定文件中所有行中每个单词出现的次数;

# awk '{for(i=1;i<=NF;i++){count[$i]++}}END{for(j in count) {print j,count[j]}}' /etc/fstab

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

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

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 test
test=$(ls /var/log/*.log)
for i in $(seq 0 $[${#test[*]}-1]); do
    wc -l ${test[$i]}
done

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

从给定的同学中随机挑选一位回答问题

#!/bin/bash
echo "Please enter some name of students,and the separator is space!!!" 
read -a student
random=$((RANDOM % ${#student[@]}))
echo "Please ${student[$random]} answer the question!"

可接受一个参数,作为要挑选同学的个数

#!/bin/bash
echo "Please enter some name of students,and the separator is space!!!" 
read -a student
read -p "Please enter the number of students to answer question !" num
if [ $num -gt ${#student[@]} ]; then
    echo "The number should be smaller than the total of you enter!"
    exit
fi

echo "The list to answer the question is:"
for ((i=0;i<num;i++)); do
    random=$((RANDOM % ${#student[@]}))
    echo ${student[$random]}
done

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

# visudo
Cmnd_Alias DISK = /sbin/fdisk, /sbin/mkfs, /sbin/mke2fs
centos  ALL=(root)  DISK

12、授权gentoo用户可以运行逻辑卷管理的相关命令;

# visudo
Cmnd_Alias LVMMANAGE = /sbin/*create, /sbin/*reduce,/sbin/*scan, /sbin/*display, /sbin/fsck, /sbin/mke2fs
gentoo  ALL=(root)  LVMMANAGE

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

# vim /etc/pam.d/sshd
account required pam_time.so -->//要位于文件的第一行
# vim /etc/security/time.conf 
*;*;*;MoTuWeThFr0900-1800 -->//表示工作时间的9点到下午6点

14、基于pam_listfile.so模块,定义仅某些用户,或某些组内的用户可以登录系统。

# vim /etc/sshd_userlist -->//在此文件中添加一些用户来登录系统
# vim /etc/pam.d/sshd
auth required pam_listfile.so item=user sense=allow file=/etc/sshd_userlist onerr=succeed

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

(0)
JeasonJeason
上一篇 2016-11-14 08:28
下一篇 2016-11-14 08:28

相关推荐

  • Linux文本三剑客之grep

    一、定义:                 GREP  :Global search REgular expression and Print out the line的缩写。是一种强大的文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;并把匹配的行打印出…

    Linux干货 2016-04-05
  • 常见HTTP code大全

    1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。 代码 说明 100 (继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。  101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。 2xx (成功)表示成功处理了请求的状…

    Linux干货 2016-09-19
  • 网络接口配置–Bonding

    网络接口配置–Bonding Bonding        就是讲到快网卡绑定到同一IP地址对外服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP地址是不可能的。通过bonding,虚拟一块网卡对外提供连接,物理网卡被修改为同一MAC地址。 一 Bonding …

    Linux干货 2017-05-07
  • 序列化和反序列化

    序列化和反序列化之基本笔记

    2017-10-29
  • 【Linux基础】文件管理类命令

    总结下linux系统文件管理类的命令 mkdir -> make dirtctories 创建目录 语法:mkdir [OPTION]… DIRECTORY… 常用选项-p: 自动按需创建父目录;-v: verbose,显示详细过程;-m MODE:直接给定权限;注意:路径基名方为命令的作用对象;基名之前的路径必须得存在;示例:~]# mkdir -p…

    Linux干货 2018-03-11
  • 计算机组成及功能

    计算器:进行逻辑和算数运算 控制器:读取,接受,发出控制指令 存储器:存取程序和数据 I/O设备:输入指令并显示到标准输出设备

    Linux干货 2018-03-03

评论列表(1条)

  • 马哥教育
    马哥教育 2016-11-16 15:47

    写的很好,排版也很棒,希望能够再接再厉