Linux学习之路6.docx

上传人:b****7 文档编号:16045300 上传时间:2023-07-10 格式:DOCX 页数:22 大小:106.14KB
下载 相关 举报
Linux学习之路6.docx_第1页
第1页 / 共22页
Linux学习之路6.docx_第2页
第2页 / 共22页
Linux学习之路6.docx_第3页
第3页 / 共22页
Linux学习之路6.docx_第4页
第4页 / 共22页
Linux学习之路6.docx_第5页
第5页 / 共22页
Linux学习之路6.docx_第6页
第6页 / 共22页
Linux学习之路6.docx_第7页
第7页 / 共22页
Linux学习之路6.docx_第8页
第8页 / 共22页
Linux学习之路6.docx_第9页
第9页 / 共22页
Linux学习之路6.docx_第10页
第10页 / 共22页
Linux学习之路6.docx_第11页
第11页 / 共22页
Linux学习之路6.docx_第12页
第12页 / 共22页
Linux学习之路6.docx_第13页
第13页 / 共22页
Linux学习之路6.docx_第14页
第14页 / 共22页
Linux学习之路6.docx_第15页
第15页 / 共22页
Linux学习之路6.docx_第16页
第16页 / 共22页
Linux学习之路6.docx_第17页
第17页 / 共22页
Linux学习之路6.docx_第18页
第18页 / 共22页
Linux学习之路6.docx_第19页
第19页 / 共22页
Linux学习之路6.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Linux学习之路6.docx

《Linux学习之路6.docx》由会员分享,可在线阅读,更多相关《Linux学习之路6.docx(22页珍藏版)》请在冰点文库上搜索。

Linux学习之路6.docx

Linux学习之路6

Linux学习之路6(2011-07-2816:

01)

标签:

 Linux网络属性配置 case分支流程 字体控制及添加颜色 脚本 完全匹配IP的应用 分类:

LINUX学习之路

 由于这俩天身体不舒服白天上完课后,回来很早就睡了,所以对这俩天学的东西没有总结!

我们一天学习的内容是相当多的,不总结回头就忘了!

所以还是赶紧看看这俩天都学了什么吧!

我哭啊!

忙中出错!

刚点错了忘记保存了又得从头写!

这次可能就没上次写的那么详细了!

第6讲的主要内容有:

   1.在命令行怎样为echo语句添加颜色

    2.Linux主机的网络属性配置

   3.怎样添加路由

   4.case分支流程

   5.函数调用

 

怎么为echo语句添加颜色

ANSI

使用CSIn控制符

如:

echo-e"\033[31mThisisadesk;\033[0m" \033是Esc的16进制表示

一共8种颜色

0黑

1红

2绿

3黄

4蓝色

5紫红色

6cyan)adeepgreenishbluecolour我们就理解为青色

7白色

控制前景色\033[3N          \033[0m

控制背景色\033[4N           \033[0m

把前景色和背景色设置为相同可以隐藏内容这就不用解释了吧!

字符自身属性的控制字符

0重设为正常字体

1设置为粗体

2faint=slight理解为细体吧!

3斜体

4加下划线

5闪动效果

6快速闪动

7将前景色和背景色调换

8把字体颜色和背景色设置为一样

 

以上就是如何对脚本添加颜色及字符控制还有就是要给echo语句加颜色的时候必须要加-e

的选项

举个例子看看怎么具体怎么设置如:

1.echo-e"\033[1;31;42mMyColor.\033[0m"

这样就能将字体设置粗体且颜色为红色背景色为绿色了!

 

Linux主机的网络属性配置:

配置的信息包括:

IP地址,子网掩码,网关,DNS服务器地址等

一共有4种方法:

在图形界面下配置:

使用命令system-config-network-gui&这是redhat专门提供的网络配置窗口

基于字符的图形界面:

使用命令system-config-network-tui或setup

直接修改/etc/sysconfig/nerwork-scripts/ifcfg-ethX对应网卡信息的配置文件

ifconfig命令

下面具体说下这几种方法以及与之相关的一些必备知识!

1.在图形界面下配置

在命令行模式下输入命令system-config-network-gui&就会弹出一个跟widows下差不多的配置窗口

 

 

这是redhat专门提供的配置网卡的窗口这个配置比较简单就不详细解释了!

第2种方法在命令行

使用命令system-config-network-tui或setup都会弹出一个命令行的图形界面

setup命令会打开一个类似于windows里控制面板的界面!

这里我们选中第4项就能进入跟输入命令system-config-network-tui相同的弹窗

选中第一项进入可以配置的信息有:

Name设备名

Device设备

UseDHCP是否使用DHCP协议如果选择启用下面的配置将不会生效或不能配置下面的选项 

StsticIP静态IP地址

Netmask 子网掩码

DefaultgatewayIP网关

在配置完成后点OK 然后点SAVE即可

很easy吧也不用详细解释了吧!

然后切换到DNS选项上里面可以配置的选项:

Hostname 主机名

PrimaryDNS 主要或首选DNS

SecondaryDNS

TertiaryDNS

Search  

 

这里主要解释下Search选项的意义!

这是当我们在使用ping命令或其他命令去访问某个特定的主机时

后面跟的并非是一个完全合格域名即FQDN格式的域名的时候,就用Search后面给的内容将其补充成一个完全合格的域名,称为搜索域,这里面可以填写多个,它会一个一个的补充搜索!

另外说一点就是填写多个DNS的作用是什么,什么情况下会用到备用DNS,只有当首选DNS服务器坏掉的时候才会启用备用的DNS!

并非是发送个请求首先的解析不道它就会启用第2个或第3个的概念!

希望我说的大家能理解了!

这就是两种最简单的配置方法了,但在Linux系统下并不常用!

下面介绍第三种直接修改配置文件的方法!

我们知道在Linux里一切皆文件,这是Linux的哲学思想之一!

所以对redhat来讲所有的网卡配置文件都保存在/etc/sysconfig/nerwork-scripts目录下

/etc/sysconfig/nerwork-scripts/ifcfg-ethx对应各个网卡的配置文件!

在这个文件中我们能配置的信息有:

 

DEVICE=eth0

BOOTPROTO=dhcp

DHCPCLASS=

HWADDR=00:

0C:

29:

7F:

A1:

F2

ONBOOT=yes

这里的信息也只说两项吧!

BOOTPROTO这个选项用于配置设备启动时所使用的协议一共有4个选项分别是dhcp,bootp,static,none

其中bootp是dhcp的前身,用于早期无盘工作站的动态地址分配,没有租约的概念!

none和static的意义一样

再说下ONBOOT这个是干嘛的!

这是设置是否在系统启动时启用此设备!

一般设置为yes设置为no时要手动启动此设备!

当我们在这里选择static或none的时候我们将要配置一下几项信息

NETMASK=

IPADDR=

GATEWAY=

TYPE=

这几个也都不用解释了吧!

分别是子网掩码,IP地址,网关,类型!

出了上面的外我么经常还要配置的项

USERCTL=

PEERDNS=

这两项的选项都是yes或noUSERCTL是否允许普通用户来启用或禁用此设备通常设置为no

PEERDNS通常跟BOOTPROTO=dhcp或bootp是结合起来使用这个选项通常设置为no可以阻止dhcp服务协议修改本机的DNS服务器地址的!

说到这里怎么配置DNS呢对应的配置文件是/etc/resolv.conf

这里能指定搜索域上面解释过了还有nameserver服务器名这里只能跟IP地址不能跟主机名!

好了这就是基本的配置方法和基本要配置的信息了!

以上的三种配置方法都必须重启系统或重启网络服务后才能使之生效!

使用servicenetworkrestart或ifdownethx&&ifupethx来重启网络或禁用启用网卡来使配置生效!

第4种ifconfig命令

ifconfig不带选项查看当前处于激活状态的网络设备的信息

 -a查看所有包括未激活的

ifconfigethxIP/NETMASK不举例说明了需要说明的一点是NETMASK即子网掩码支持俩种格式的完全的255.255.255.0这种格式或CIDR格式即用长度表示的如24,16等

这种配置完后立即生效临时有效重启网络后失效

ifconfig不能配置DNS和网关等信息,想要配置还得配置上述的配置文件!

怎么配置网关和主机名

 

配置主机名

/etc/sysconfig/network下有

HOSTNAME的选项可以配置主机名

这个配置重启系统后才会生效

 

用hostname命令+主机名可以立即生效重启后失效

hostneme命令事实上修改得文件是/proc/sys/kernel/hostname的内容

这个文件的内容不能使用编辑器修改

 

可以用echo"   ">/重定向修改

不带任何选项的hostname能查看当前的主机名

网关在网卡配置的信息文件和/etc/sysconfig/network中都可配置

以网卡配置的信息为主!

 

以上就是基本的网络属性配置方法和基本选项配置了!

这部分知识会随着学习的深入更加完善的!

 

下面说下怎么添加路由和case分支流程及函数的相关知识!

 

 

怎么添加路由

routeadd-hostIPgwGATEWAY主机路由

routeadd-netNETWORK/NETMASKgwGATEWAY网络路由

如:

routeadd-net0.0.0.0/0.0.0.0gwGATEWAY

roueadddefaultgwGATEWAY 添加默认网关

怎么删除路由信息

routedel-hostIP删除主机路由

routedel-netNETWORK/NETMASK删除网络路由

 

case分支流程

case$VARin

PATTERN1)

......

;;

PATTERN2)

.....

;;

*)

....

;;

esac

函数 fuction:

功能

定义函数

functionF_NAME{

函数体

}

F_NAME(){

函数体

}

return明确指定返回值 0正确1-255错误

函数跟脚本一样,可以接受参数

这就是第6讲的内容了!

其实今天东西比较少是因为下面这个脚本!

大家可以看下,这是从学习Linux来看的最复杂的脚本了!

1.#!

/bin/bash

2.

3.#

4.

5.FLAG=0

6.

7.TMPFILE=`mktemp/tmp/eth.XXXXXXXX`

8.

9.

10.

11.read-p"Interface:

"ETHCARD

12.

13.

14.

15.ALLECARD=`ifconfig-a|awk'/^[^[:

space:

]l]/{print$1}'`

16.

17.

18.

19.untilecho$ALLECARD|grep"$ETHCARD"&>/dev/null;do

20.

21.echo-e"\033[31mWrongCardname.\033[0m"

22.

23.read-p"Interface:

"ETHCARD

24.

25.done

26.

27.

28.

29.ETHFILE=/etc/sysconfig/network-scripts/ifcfg-$ETHCARD

30.

31.

32.

33.read-p"BootProtocol:

"MYBOOTPROTO

34.

35.untilecho$MYBOOTPROTO|grep-E"dhcp|static"&>/dev/null;do

36.

37.echo-e"\033[31mWrongBOOTPROTO.\033[0m"

38.

39.read-p"BootProtocol:

"MYBOOTPROTO

40.

41.done

42.

43.

44.

45.if["$MYBOOTPROTO"=="dhcp"];then

46.

47.sed-i"s/^BOOTPROTO=.*/BOOTPROTO=dhcp/g"$ETHFILE

48.

49.if[$?

-eq0];then

50.

51.ifdown$ETHCARD&&ifup$ETHCARD

52.

53.[$?

-eq0]&&echo"Set$ETHCARDdone."

54.

55.fi

56.

57.elif["$MYBOOTPROTO"=="static"];then

58.

59.cat$ETHFILE>$TMPFILE

60.

61.read-p"IpAddress:

"MYIP

62.

63.

64.

65.until[[$MYIP=~^([1-9]|[1-9][0-9]|1[0-9]{1,2}|2[01][0-9]|22[0-3])(\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-4])){2}(\.([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-4]))$]];do

66.

67.echo-e"\033[31mWrongIP.\033[0m"

68.

69.read-p"IpAddress:

"MYIP

70.

71.done

72.

73.

74.

75.read-p"Netmask:

"MYNM

76.

77.

78.

79.until[[$MYNM=~^255(\.(0|255)){3}$]];do

80.

81.echo-e"\033[31mWrongNetMask.\033[0m"

82.

83.read-p"Netmask:

"MYNM

84.

85.done

86.

87.

88.

89.read-p"Gateway:

"MYGW

90.

91.

92.

93.forIin{1..4};do

94.

95.[$[`echo$MYIP|cut-d.-f$I`&`echo$MYNM|cut-d.-f$I`]-ne$[`echo$MYGW|cut-d.-f$I`&`echo$MYNM|cut-d.-f$I`]]&&FLAG=1&&break

96.

97.done

98.

99.

100.

101.until[[$MYGW=~^([1-9]|[1-9][0-9]|1[0-9]{1,2}|2[01][0-9]|22[0-3])(\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-4])){2}(\.([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-4]))$]]&&[$FLAG-eq0];do

102.

103.echo-e"\033[31mWrongGateWay.\033[0m"

104.

105.read-p"Gateway:

"MYGW

106.

107.forIin{1..4};do

108.

109.[$[`echo$MYIP|cut-d.-f$I`&`echo$MYNM|cut-d.-f$I`]-ne$[`echo$MYGW|cut-d.-f$I`&`echo$MYNM|cut-d.-f$I`]]&&FLAG=1&&break||FLAG=0

110.

111.done

112.

113.done

114.

115.

116.

117.sed-i"s/^BOOTPROTO=.*/BOOTPROTO=static/g"$TMPFILE

118.

119.grep"^IPADDR="$TMPFILE&>/dev/null&&sed-i"s/IPADDR=.*/IPADDR=$MYIP/"$TMPFILE||echo"IPADDR=$MYIP">>$TMPFILE

120.

121.grep"^NETMASK="$TMPFILE&>/dev/null&&sed-i"s/NETMASK=.*/NETMASK=$MYNM/"$TMPFILE||echo"NETMASK=$MYNM">>$TMPFILE

122.

123.

124.

125.if[-z$MYGW];then

126.

127.sed-i'/^GATEWAY=.*/d'$TMPFILE

128.

129.else

130.

131.grep"^GATEWAY="$TMPFILE&>/dev/null&&sed-i"s/GATEWAY=.*/GATEWAY=$MYGW/"$TMPFILE||echo"GATEWAY=$MYGW">>$TMPFILE

132.

133.fi

134.

135.cp-f$TMPFILE$ETHFILE

136.

137.ifdown$ETHCARD&&ifup$ETHCARD

138.

139.[$?

-eq0]&&echo"Set$ETHCARDdone."

140.

141.else

142.

143.echo"Nosuchoptions."

144.

145.exit1

146.

147.fi

148.

149.

150.

151.rm-f$TMPFILE

稍微说明下这个脚本实现的功能吧!

1。

判断用户输入的设备是否存在是一个正确的设备

2.判断用户输入的BOOTPROT类型及是否是可用的协议并作出相应的后续操作

3.判断用户输入的IP地址是否是一个合法的IP地址子网掩码是否是一个合理的子网掩码这里并不是很严谨

按理说子网掩码的最后一段不能是255这里没完全的严格限制!

4.判断用户输入的网关是否是一个合法的IP地址并判断网关是否跟IP地址在同一个网段内!

还有一些提示信息及相应的操作!

里面涉及了些以前没学过的内容稍微介绍下吧!

一是创建临时文件!

 

怎样创建临时文件

mktemp/tmp/eth.XXXXXXX

  -p

  -d生成临时目录

在这里的作用是先将配置信息储存在临时文件里再取覆盖原文件可以防止非正常的退出造成意外!

这里还没有学捕捉信号的方法因此用这种方法做的!

还有一个关键字

break提前跳出循环的,一次跳出一层循环,即在循环嵌套的时候由内向外一次跳出一层循环!

与之对应的还有个continue继续循环!

还有一个FLAG标识这里用作条件的双层限制!

好的基本如此了!

下面将这节课的作业附上3个脚本其实是一个脚本层层递进的关系综合涵盖了以上的内容大家看下吧!

可能写的不好!

有错的地方还请提醒!

1、提示用户可以输入”mem"查看本机物理内存使用信息,"swap"显示虚拟内存使用信息;

2、当用户输入mem时,获取当前主机物理内存的大小,已经使用的空间及空闲空间大小;如果已用空间超出总空间的90%,则以红色字体警告;否则,则以绿色字体显示空间剩余百分比;

3、当用户输入"swap"时,获取当前主机虚拟内存的大小,已经使用的空间及空闲空间的大小;如果已用空间超出总空间的90%,则以红色字体警告;否则,则以绿色字体显示空间剩余百分比;

4、其它信息则说明是错误输入;

 

#!

/bin/bash

#

read-p"Inputmemtoseetheinformationofmemory;swaptoseetheinformationofswap:

"MS

case$MSin

"mem")

free|awk'/^Mem:

/{print"total:

"$2,"used:

"$3,"free"$4}'

A=`free|awk'/^Mem:

/{print$2}'`

B=`free|awk'/^Mem:

/{print$3}'`

C=$[$B*100/$A]

if[$C-gt90];then

echo-e"\033[31mThememoryhasbeenused"$C"%.\033[0m"

else

echo-e "\033[32mThememoryhasbeenused"$C"%.\033[0m"

fi

;;

"swap")

free|awk'/^Swap:

/{print"total:

"$2,"used:

"$3,"free"$4}'

A=`free|awk'/^Swap:

/{print$2}'`

B=`free|awk'/^Swap:

/{print$3}'`

C=$[$B*100/$A]

if[$C-gt90];then

echo-e"\033[33mThememoryhasbeenused"$C"%.\033[0m"

else

echo-e"\033[32mThememoryhasbeenused"$C"%.\033[0m"

fi

;;

*)

echo"Wrong."

;;

 

 

1、用一个函数实现获取当前主机物理内存的大小,已经使用的空间及空闲空间大小;如果已用空间超出总空间的90%,则以红色字体警告;否则,则以绿色字体显示空间剩余百分比;

2、用一个函数实现获取当前主机虚拟内存的大小,已经使用的空间及空闲空间的大小;如果已用空间超出总空间的90%,则以红色字体警告;否则,则以绿色字体显示空间剩余百分比;

3、显示一个提示给用户,说明输入mem可以显示物理内存空间使用情况;输入swap可以显示虚拟内存空间使用情况;其它任意字符提示用户脚本使用方法后退出脚本;

 

#!

/bin/bash

#

functionMYMEMORY{

free|awk'/^Mem:

/{print"total:

"$2,"used:

"$3,"free"$4}'

A=`free|awk'/^Mem:

/{print$2}'`

B=`free|awk'/^Mem:

/{print$3}'`

C=$[$B*100/$A]

if[$C-gt90];then

echo-e"\033[31mThememoryhasbeenused"$C"%.\033[0m"

else

echo-e "\033[32mThememoryhasbeenused"$C"%.\033[0m"

fi

}

functionMYSWAP{

free|awk'/^Swap:

/{print"total:

"$2,"used:

"$3,"free"$4}'

A=`free|awk'/^Swap:

/{print$2}'`

B=`free|awk'/^Swap:

/{print$3}'`

C=$[$B*100/$A]

if[$C-gt90];then

echo-e"\033[33mThememoryhasbeenused"$C"%.\033[0m"

else

echo-

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2