习题整理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了习题整理相关的知识,希望对你有一定的参考价值。
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文件中所有以#开头,且#后面至少有一个空白字符的行的行首的#号
%[email protected]^#\([[:space:]]\+.*\)@\[email protected]
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: [email protected]
# ------------------------------------------
# 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: [email protected]
# ------------------------------------------
# Copyright: 2018 xiaoyu
# License: GPL" > /root/bin/$1
vim /root/bin/$1
以上是关于习题整理的主要内容,如果未能解决你的问题,请参考以下文章