1、在vim中设置tab缩进为4个字符

vim /etc/vimrc

set tabstop=4

2、复制/etc/rc.d/init.d/functions文件至/tmp目录,替换/tmp/functions文件中的/etc/sysconfig/init为/var/log

:%s,/etc/sysconfig/init,/var/log,g

3、删除/tmp/functions文件中所有以#开头,且#后面至少有一个空白字符的行的行首的#号

%s@^#\([[:space:]]\+.*\)@\1@g

4、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小

  主机名 hostname

  IP ifconfig 

  系统版本  cat /etc/redhat-release 

  内核版本 uname -r

  CPU型号  cat /proc/cpuinfo 

  内存大小  cat /proc/meminfo  或  free -m

  硬盘大小 fdisk -l

        #!/bin/bash

        echo 主机名"$(hostname)"

        ipddr=$(ifconfig ens33 |grep broad |tr -s " " |cut -d" " -f3)

        echo ip地址"$ipddr"

        version1=$(cat /etc/redhat-release)

        echo 系统版本"$version1"

        version2=$(uname -r)

        echo 内核版本"$version2"

        cpu=$(cat /proc/cpuinfo |egrep "model name" |uniq |cut -d: -f2)

        echo cpu型号"$cpu"

        mem=$(echo $[$(cat /proc/meminfo |egrep MemTotal |tr -s " " :|cut -d: -f2)/1024])

        echo 内存大小"$mem MB"

        sda=$(fdisk -l |egrep "Disk /" |cut -d, -f1 |cut -d: -f2|cut -d" " -f2,3)

        echo 硬盘大小"$sda"

5、编写脚本/root/bin/backup.sh,可实现将/etc/目录备份到/root/etcYYYY-mm-dd中

date +%F 以年-月-日显示日期

#!/bin/bash

#备份/etc/到/root/etcYYYY-mm-dd中

cp -r /etc/ /root/etc$(date +%F)

6、编写脚本/root/bin/disk.sh,显示当前硬盘分区中空间利用率最大的值

#!/bin/bash

max=$(df |grep "/dev/sd" |tr -s " " ":"|cut -d ":" -f5|egrep -o "[[:digit:]]*"|sort -nr|head -n1)

echo "当前硬盘分区中空间利用率最大的值为: $max"

7、编写脚本/root/bin/links.sh,显示正连接本主机的每个远程主机的IPv4地址和连接数,并按连接数从大到小排序

     netstat -tan | tr -s " " ":" |cut -d":" -f6|uniq -c|sort -nr |egrep "\<(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"|grep -v 0.0.0.0

     netstat -tan |grep ESTABLISHED |tr -s " " : |cut -d: -f6 |sort -nr |uniq -c

8、编写脚本/root/bin/sumid.sh,计算/etc/passwd文件中的第10个用户和第20用户的ID之和

#!/bin/bash

A=$(cat /etc/passwd |head -n 10 |tail -1 |cut -d: -f3)

B=$(cat /etc/passwd |head -n 20 |tail -1 |cut -d: -f3)

echo "$[$A+$B]"

9、编写脚本/root/bin/sumspace.sh,传递两个文件路径作为参数给脚本,计算这两个文件中所有空白行之和

#!/bin/bash

path_a=$1

path_b=$2

file1_space_num=$( cat $path_a|egrep -c "^[[:blank:]]*$")

file2_space_num=$( cat $path_b|egrep -c "^[[:blank:]]*$")

echo sum_num=$[$file1_space_num+$file2_space_num]

10、编写脚本/root/bin/sumfile.sh,统计/etc, /var, /usr目录中共有多少个一级子目录和文件

#!/bin/bash

u1=$(ls /etc |wc -l)

u2=$(ls /var |wc -l)

u3=$(ls /usr |wc -l)

echo $[$u1+$u2+$u3]

11:写一个生成脚本的脚本,/root/bin/createsh.sh当执行如/root/bin/createsh.sh  test.sh时,会自动在/root/bin下新建一个名为test.sh的新文件,该文件会自动给上执行权限,同时自动在文件头加上shabang及注释信息,注释信息如下:

#!/bin/bash

# ------------------------------------------

# Filename:    test.sh(此处会根据文件名自动更换)

# Revision:    1.0

# Date:        2017-01-22(此处会自动变换为当前日期)

# Author:      Nanyibo

# Email:       nanyibo@gmail.com

# ------------------------------------------

# Copyright:   2017 nanyibo

# License:     GPL

之后,自动使用vim打开,等待用户开始编写脚本正文。

#!/bin/bash

touch  /root/bin/$1

chmod +x /root/bin/$1

echo "#!/bin/bash

# ------------------------------------------

# Filename:    $1

# Revision:    1.0

# Date:        $(date +%F)

# Author:      xiaoyu

# Email:       851812316@qq.com

# ------------------------------------------

# Copyright:   2018 xiaoyu

# License:     GPL" > /root/bin/$1

vim /root/bin/$1