第一阶段测试

1:yum源的配置与使用

  1. 创建一个本地yum源
    base源指向[https://mirrors.aliyun.com/centos/7/os/x86_64/]
    epel源指向[https://mirrors.aliyun.com/epel/7Server/x86_64/]

  2. 安装开发包组

    移动/etc/yum.repos.d/* 至 ./back 文件夹然后创建文件bash.repo

    vim /etc/yum.repos.d/bash.repo

    bash.repo内容如下

    [base]
    name=base
    baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
    gpgcheck=0 [epel]
    name=epel
    baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
    gpgcheck=0
    #清空缓存 yum clean all
    #获取新的repo数据yum repolist yum repolist
    #使用 yum groups list 查看包组信息#安装开发包组
    如果是中文环境: yum groups install 开发包组
    如果是英文环境: yum groups install Development Tools

2:复制/etc/ssh/sshd_config 到/tmp/中并更名为sshd_config.bak。将/tmp/sshd_config.bak文件中所有以非#号开头与包含空白字符的行保存至/tmp/sshd_config中
#复制文件
cp /etc/ssh/sshd_config /tmp/sshd_config.bak
#将文件中的行保存到/tmp/sshd_config
cat /tmp/sshd_config.bak |grep -E'#|[[:space:]]*$'>/tmp/sshd_config

3:编写脚本/root/bin/sysinfo.sh显示当前主机系统信息,包括主机名,操作系统版本,内核版本,CPU型号,内存大小,硬盘分区。

    #!/bin/bash
  
    echo "=======hostname====== "
    hostname
    echo -e "\n=======release====== "
    cat /etc/centos-release
    echo -e "\n=======kernel====== "
    uname -r
    echo -e "\n=======cpuinfo====== "
    cat /proc/cpuinfo|grep 'model name' 
    echo -e "\n=======free====== "
    free
    echo -e "\n=======disk====== "
    df
    echo "==========end========== "

4:给root用户定义别名命令vimnet,相当于vim /etc/sysconfig/network-scripts/ifcfg-ens33,并使root执行history命令时,显示每个命令执行的具体时间。

#定义别名,此配置只在当前登录有效 
alias vimnet='vim /etc/sysconfig/network-scripts/ifcfg-ens33'
#定义变量 
export HISTTIMEFORMAT="%Y%m%d-%H%M%S"
#长期生效写入文件 只针对于root用户,写入/root/.bashrc
 全局生效写入文件,/etc/bashrc

6:指出软链接与硬链接的异同之处:

软链接是在目录数据块中创建一个地址指向(指向新的inode),inode寻址索引放入的是被链接文件的
地址;
硬链接是在目录数据块中直接引用被链接文件的inode软链接可以跨分区,硬链接不可以软链接删除
可不影响目标文件(特殊参数除外),硬链接链接次数归零则删除硬链接不占用inode 软链接占用

7:下载编译安装httpd 2.4最新版本,写出安装过程

#下载源码 
官方网站:http://www.apache.org/
#解压缩包 (使用tar命令) 
tar xvf /httpd.2.4.**.tar.bz2 
#准备开发环境,
没有安装使用命令yum 命令进行安装 yum groups install Development Tools
#进入目录,并使用configure生成配置文件,具体参数可以查看INSTALL 或./configure --help ./configure --prefix="/app/apache"
#编译,安装 make && make install

8:过滤ifconfig命令结果中所有大于0且小于255的三位数

大于0 小于255的数
ifconfig |grep -E '\b(([1-9])|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-4]))\b'
大于0小于255的三位数
ifconfig |grep -E '\b((1[0-9][0-9])|(2[0-4][0-9])|(25[0-4]))\b'

9:将用户mage被误删除的的家目录恢复,复制/etc/shadow到mage家目录中。并设置只有用户wang可以读取/home/mage/shadow

#复制模版文件
 cp -r /etc/skel /home/mage
#更改权限 属主组 
chown -R mage.mage /home/mage 
chmod -R 700 /home/mage
#复制文件 cp /etc/shadow /home/mage/shadow
#更改权限两种方法,基本的属主属组或ACL 
#基本的属主方法,将wang用户加入到mage组,设置mage家用户组有读权限,使wang可以访问mage
  家用户 
groupmems -a wang -g mage 
chmod g+r /home/mage
chown wang /home/mage/shadow 
chmod -R 400  /home/mage/shadow 
#acl方法,确保挂载时开启了acl功能
 setfacl -m u:wang:rx /home/mage/
 chown root /home/mage/shadow 
setfacl -m u:wang:r /home/mage/shadow

10:统计/var/log/httpd/access.log日志访问频繁前十的地址,并从大到小排序

#输出排序,
cat /var/log/httpd/access.log |cut -d" " -f1|sort |uniq -c|sort -nr|head 1
220 192.168.1.117 
1134 192.168.1.31 
583 192.168.1.113 
204 172.16.100.76 
112 172.16.233.133
110 192.168.1.118 
83 192.168.1.110 
68 192.168.1.107 
68 172.16.250.227
42 192.168.6.1

11:开启两个终端,将终端1 中输入命令的执行结果输出,并同时输出到终端2

  ###发送信息 
ttt=`date` ;
echo "$ttt";
echo "$ttt">/dev/pts/2 date|tee /dev/pts/2

12:误删除/lib64/libc.so.6系统库文件,如何恢复之,实验说明

#删除libc.so.6
1. ldd `which ls`
2. rm /lib64/libc.so.6 
#恢复
3. 直接关闭电源,然后重起
4. 可以开机进入固件,或开机时 按1次esc 键,设置从光盘引导启动
5. 进入光盘救援模式, 6 7进入的界面选项根据实际情况选择。
6. 复制/lib64/libc.so.6 到 /mnt/sysimge/lib647. 关闭selinux ,设置
   /etc/sysconfig/selinux中为disabled8. 重起,

13:误删除rpm包命令,如何恢复之,实验说明

#恢复
1.同样进入安全模式
 2.在/mnt目录下创建目录 cdrom
3.挂载安装光盘到cdrom mount /dev/sr0 /mnt/dcrom
4.安装 rpm 软件 ,rpm -ivh /mnt/cdrom/Packges/rpm.*****.rpm --force --root
  =/mnt/sysimge
5.重起

14:计算2+4+6+…+96+98+100之和。

#bc 实现
 echo {2..100..2} |tr " " "+" |bc
#循环实现
                   let sum=0 
                   for i in `seq 2 2 100` ;
                      do let sum+=i 
                    done 
                      echo "$sum"

14:取/etc/sysconfig/network-scripts/ifcfg-ens33基名,用两种方法实现。

echo "/etc/sysconfig/network-scripts/ifcfg-ens33" |grep '[^/]*$'
      -o  ifcfg-ens33
echo "/etc/sysconfig/network-scripts/ifcfg-ens33" |rev|cut -d"/" -f1|rev
      ifcfg-ens33

15:对/etc/目录,分别执行命令,实现以下功能
#将当前的工作目录设置成为 /etc
cd /etc
#显示目录下的文件(大小排序)
ls -lS
#显示目录下的隐藏文件 显示目录下所有的隐藏文件,及隐藏目录中的隐藏文件
ll -a .[^.]*
# 显示目录下的隐藏文件及文件夹
ls -A |grep -E "^."
#只显示目录下的隐藏文件
find ./ -maxdepth 1 -mindepth 1 -name "." -type f
#只显示目录
ls -l |grep ^d ls ./
/ -d find ./ -maxdepth 1 -mindepth 1 -type d
#按mtime 时间排序
ls -l -t
#按atime时间排序
ls -l -u

16:编写/root/bin/excute.sh,实现与用户交互,判断用户给予的参数是否可读,可写,可执行。

#!/bin/bash
#author:cxj
#sno:   35
#desc:This is for check files
[[ -e $1 ]] || { echo "文件不存在";exit 1 ;}
R=$([ -r $1 ] && echo "可读"||echo "不可读" )
W=$([ -w $1 ] && echo "可写"||echo "不可写" )
X=$([ -x $1 ] && echo "可执行" || echo "不可执行")
echo "当前用户对$1 $R $W且$X"                       

17:编写/root/bin/create.sh可以生成新的脚本包括作者、联系方式、版本、时间和描述等,并且可以直接对其进行编辑,编辑完后自动加上执行权限。

 #!/bin/bash
 #  判断参数个数
[[ "$#" -eq 1 ]]||{ echo "usage:cshell.sh shellname " ; exit; }
touch "$1"
echo "#!/bin/bash
 #author :cxj
#sno    :M35
#phone : 156XXXXXXXX
#version:2.0
#date   :`date +%F`
#desc   :$2" > "$1"
chmod +x "$1"
vim "$1"

18:写一个脚本,让它可以传递两个参数后,实现对该参数的加、减、乘、除运算并输出运算后的值。

#!/bin/env bash  
 #_____参数检测_________# 
[[ "${1}" ]] || { echo "参数为空" ; exit 2 ; }
[[ "${2}" ]] || { echo "参数为空" ; exit 3 ; }
[[ "${1}" =~ ^[0-9]*$ ]] || { echo "参数非数字" ; exit 4 ; }
[[ "${2}" =~ ^[0-9]*$ ]] || { echo "参数非数字" ; exit 4 ; }
 #_____数值计算________# 
echo "=======加=======" 
echo "${1}+${2}=$(($1+$2))" 
echo "=======减=======" 
echo "${1}-${2}=$(($1-$2))" 
echo "=======乘=======" 
echo "${1}*${2}=$(($1*$2))" 
echo "=======除======="
echo "${1}/${2}=$(($1/$2))"

19:编写/root/bin/wcfile.sh统计/etc目录中的目录的个数,文件的个数,并求出/etc/目录中的目录和文件个数的总和

#!/bin/env bash
dri_name=`find /etc -maxdepth 1 -mindepth 1 -type d |wc -l`
file_name=`find /etc -maxdepth 1 -mindepth 1 -type f |wc -l`
nodri_name=`find /etc -maxdepth 1 -mindepth 1 ! -type d |wc -l`
#结果输出
echo "文件夹数量为:${dri_name}"
echo "普通文件的数量为:${file_name}"
echo "文件的数量为:${nodri_name}"
echo "相加结果数为:  $((${dri_name}+${nodri_name}))"

20:编写/root/bin/baketc.sh 查找/etc/目录中超过1天未修改的文件,将其压缩备份至/bakup目录。若之前没有备份过则备份之,若存在的备份文件超过了2分钟则备份之,否则退出。备份的格式为YYYY-MM-DD-hh-mm-ss.xz

#!/bin/bash
#文件备份函数
bakup_file()
   {
   file_name="/bakup/`date "+%F-%H-%M-%S"`" 
     find /etc -mtime +1 -type f |xargs tar -Jcf "${file_name}.tar.xz "
  }
#文件夹测试
  [ -a /bakup ] || mkdir /bakup[ -d /bakup ] || { echo "/bakup 非目录请手动处理" ; exit 3 ; }

#没有备份,则备份。
ls /bakup/*.tar.xz &>/dev/unll || { echo "没有发生过任何备份"; bakup_file &>/dev/null ;exit 0 ; }
#文件超过两分钟则备份
test=`find /bakup -mindepth 1 -name "*.tar.xz" -mmin -2`
[ "${test}" ] && echo "文件是最新的" || bakup_file &>/dev/null
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • 1、yum源的配置与使用(5分)1). 创建一个本地yum源base源指向https://mirrors.aliy...
    JevonWei阅读 152评论 0 0
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,130评论 9 467
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,131评论 2 34
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,596评论 18 139
  • 郭相麟 《三国演义》是中国的四大名著之一,草船借箭是其中的精彩篇章。 草船借箭当时发生的背景形势严峻,北魏的曹操打...
    郭相麟阅读 225评论 0 0