51.shell 的变量有哪些?怎么样定义用户变量和环境变量?

在Linux的shell中使用的变量分为以下环境变量、内部变量和用户变量3类。环境变量是Linux系统环境的一部分,通常不需要用户去定义。shell使用环境变量来存储系统信息,这些变量可以提供给在shell中执行的程序使用,不同的shell会有不同的环境变量及其设置的方法。内部变量是由系统提供的,用户不能修改它们。用户变量是用户在编写shell脚本的时候定义的,可以在shell脚本中任意使用和修改。

如果希望一个用户定义的变量能够在定义它的shell脚本以外使用,就必须使用export命令。例如,“export var”命令就是将用户定义的变量var添加到系统变量列表中,这样就可以在定义var变量脚本以外的地方使用。

在Linux的bash中可以使用set命令来查看系统当前的环境变量及其取值。

由于Linux的环境变量很多,这里利用管道符和tail命令与set命令结合只显示系统环境变量的最后10个。若要查看当前某个环境变量的值,可以使用echo命令,并在环境变量的前面加上“$”即可。

命令主提示符是Linux的shell程序为用户输入命令而设置的提示符。环境变量PS1的值就是命令主提示符,默认为“[\\u@\\h \\W]\\$”,其中“[”、“]”和“@”原样显示;

“\\u”相应位置显示当前登录的用户账号;“\\h”表示相应位置显示主机名;“\\W”相应位置当前工作目录;“\\$”表示如果当前登录账号是超级用户就显示“#”,如果是普通用户就显示“$”。例如,当超级用户登录myhost主机时,命令提示符显示为“[root@myhost root]#”。

环境变量PATH记录了命令执行时的默认的搜索路径,即当用户在命令提示符后输入命令时,Linux系统会按照PATH设置的路径搜索该命令,然后再执行该命令。PATH变量的值由多个路径组成,各路径之间使用“:”隔开。

1)变量的声明

在bash中,变量的使用不需要显式的声明,或者说赋值就可以认为是变量的声明。通常,给一个变量赋值应采用如下的格式:

变量名=值

注意:等号两边不能存在分隔符(包括空格,制表位和回车符)。

2)变量的引用

通常,要引用一个变量,可以采取在变量名前加一个$的方法,即“$变量名”。

例如,要引用上面定义的变量a1可以采用如下的方法:

echo "a1 is $a1"

但是,有时候这种方法会产生混淆。例如,希望使用变量a1来输入“helloLinux”字符串。如果使用echo “$a1Linux”就会得不到期待的字符。这是因为bash把“a1Linux”作为一个变量来处理了。此时可以选择使用以下的几种用法(其中,value代表一个变量可能取的具体的值):

Ø${变量var:-value}:如果指定的变量var存在,则返回var的值,否则返回value。

Ø${变量var:=value}:如果指定的变量var存在,则返回var的值,否则先将value赋给var,然后再返回value。

Ø${变量var:+value}:如果指定的变量var存在,则返回value,否则返回空值。

Ø${变量var:?value}:如果指定的变量var存在,则返回该var的值,否则将错误提示消息value送到标准错误输出并退出shell程序。

Ø${变量var:offset[:length]}:offset和length是整数,中括号表示可选部分。表示返回从变量var的第offset+1个字符开始长度为length的子串。如果中括号部分省略,则表示返回变量var第offset+1个字符后面的子串。

3)特殊变量

在shell程序中存在一些特殊变量,当shell程序运行时,这些变量能够记录shell程序的命令行参数。这些变量分别是$0、$1、…$n,以及$#、$*和$@。其中$0存放的是命令行的命令名,$1存放的是命令行中传递给命令的第一个参数,依次类推,$n存放的是传递给命令的第n个参数。$#存放传递给命令的参数的个数(不包括命令),$*和$@均用于存放传递给命令的所有参数,两者的区别在于$*把所有的参数作为一个整体,而$@则把所有的参数看作是类似于字符串数组一样,可以单独访问这些参数。

52.输入和输出的实现

1.echo 命令可以显示文本行或者变量,或者把字符串输入到文件

echo [option] string

-e 解析转义字符,

转义符包括(

 \\c,回车不换行

 \\f,禁止

 \\t,跳格

 \\n)回车换行

 -n 回车不换行,linux系统默认回车换行

2.read从键盘或者文件的某一行文本中读如信息,并将其赋给一个变量

read varible1 varible2

如果只指定了一个变量,那么read将会把所有的输入赋给该变量,直到遇到第一个文件结束符或回车;如果给出了多个变量,它们按吮吸分别赋给不同的变量,。shell将用空格作为变量之间的分隔符

举例说明:在shell脚本中有read A B C命令行,而在提示的命令行中输入1 2 3,则A=1,B=2,C=3(注意:若直接在命令行中输入read A B C,则表示只有一个变量A)

3.cat可以用来显示文件内容、创建文件,还可以用它来显示控制字符。

cat |options|filename1..filename2...

-v显示控制字符

使用cat命令时要注意,它不会在文件分页符处停下来,它会一下显示完整个文件。如果希望每次显示一页,可以使用more命令或者把cat命令的输出通过管道传递给另外一个具有分页功能的命令(如more,less)中。

 cat命令举例:

 cat myfile1 myfile2 myfile3>myfile123;

 cat myfile123|more 分页显示

 cat -v dos.txt 会出现“^M”等控制字符,这是在windows下的编辑器留下的

4.管道可以通过管道把一个命令的输出作为另一个命令的输入

举例说明:df -k |awk '{print $1}'|grep -v "Filesystem"

 df:显示所有文件系统对i节点和磁盘块的使用情况

 awk:浏览和抽取信息

 grep:文本过滤

显示所有文件系统对i接点和磁盘块的使用情况信息中的第一列并不含有"Filesystem"的信息

5.tee 把输出的一个副本输送到标准输出,另一个副本拷贝到相应的文件中

tee -a file 这个命令一般用于管道之后。

举例说明:

cat file|tee file.out 将file中的信息输出到屏幕并拷贝到file.out中

6.exec 命令可以用来代替当前shell;换句话说,并没有启动子shell,使用这一命令时任何现有环境都会被清除,并重新启动一个shell

exec command其中的command通常是一个shell脚本

对文件描述符操作的时候(也只有在这时),它不会覆盖你当前的shell

如:exec **.sh 会重新登录并清除环境变量

7.标准输入、输出和错误

在shell中执行命令时,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件。由于文件描述符不容易记忆,shell同时也给出了相应的文件名。

文件文件描述符

输入文件----标准输入             0(缺省是键盘,也可以是文件或者其他命令的输出)

输出文件---标准输出 1(缺省是屏幕,也可以是文件)

错误输出文件--标准错误     2(缺省是屏幕,也可以是文件)

系统中实际有12个文件描述符,可以任意使用文件描述符3-9

8.文件重定向改变程序运行的输入来源或输出地点

    command > filename 把把标准输出重定向到一个新文件中

    command >> filename 把把标准输出重定向到一个文件中(追加)

    command 1 > fielname 把把标准输出重定向到一个文件中

    command > filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中

    command 2 > filename 把把标准错误重定向到一个文件中

    command 2 >> filename 把把标准输出重定向到一个文件中(追加)

    command >> filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中(追加)

    command < filename >filename2 把command命令以filename文件作为标准输入,以filename2文件作为标准输出

    command < filename 把command命令以filename文件作为标准输入

    command << delimiter 把从标准输入中读入,直至遇到delimiter分界符

    command <&m 把把文件描述符m作为标准输入

    command >&m 把把标准输出重定向到文件描述符m中

    command <&- 把关闭标准输入

重定向的几个注意点:

重定向中为保护原来的文件不被覆盖可以用 set -o noclobber 命令来限制

用 set +o noclobber来取消限制,如果不取消的话也可以强制重定向

    command >| file

    cat file 会清空file中的内容,因为shell会先清空stdout和stderr的管道。

     cat >file会造成死循环,因为它是一行行读出来的,永远都没有结束符

9.合并标准输出和标准错误

合并标准输出和标准错误的时候,切记shell是用左至右分析相应的命令

举例说明:

grep "hi" test.txt >test.out 2>&1 标准输出和错误输出都输入到标准输出中

10.使用文件描述符

举例说明:

    exec 3<&0 0<name.txt   //设置3为标准输入 name.txt的内容输入到标准输入

此时的exec不会清除环境变量,也不会重新登录,覆盖当前的sehll  

53.shell 脚本:判断一个数的奇偶性

#!/bin/bash

#jiou.sh

i=$[$1 % 2 ]

echo $i

iftest$i -eq 0 ;then

echo oushu

else

echojishu

fi

54.shell 脚本:判断两个数的大小

#!\\bin\\bash

echo -n"a="
read a
echo -n "b="
read b
#let "c=$a -$b"
c=`expr $a - $b`
if [ $c -eq 0 ];then
echo "a=b"
elif [ $c -lt 0 ];then
echo "aelse
echo "a>b"
fi

55.shell 的测试语句有哪些,各是怎样实现的?

1. 整数测试运算

test int1 -eq int2: 判断两个数是否相等

test int1 -ne int2: 判断两个数是否不相等

test int1 -gt int2: 判断整数1是否大于整数2

test int1 -ge int2: 判断整数1是否大于等于整数2

test int1 -lt int2:判断整数1是否小于整数2

test int1 -le int2:判断整数1是否小于等于整数2

整数测试也可以使用 let 命令或双圆括号

相关操作为:== 、!=、>、>= 、<、<=<>

2. 字符串测试运算

test -z string: 判断字符串长度是否为0,即判断字符串是否为空,为空返回真,非空返回假

test -n string: 判断字符串长度是否不为0,即判断字符串是否非空,为空返回假,非空返回真

test str1 =str2:判断两个字符串是否相等

test str1!=str2:判断两个字符串是否不等

3. 文件测试运算

test -r filename:判断用户对文件filename是否有读权限

test -w filename: 判断用户对文件filename是否有写权限

test -x filename:判断用户对文件filename是否有可执行权限

test -f filename: 判断文件filename是否为普通文件

test -d filename: 判断文件filename是否为目录

test -c filename: 判断文件filename是否为字符设备

test -b filename: 判断文件filename是否为块设备

test -s filename: 判断文件filename是否大小不为0

test -t fnum:判断与文件描述符fnum(默认值为1)相关的设备是否是一个终端设备

4. 逻辑运算

test 表达式1-a 表达式2:与(and)逻辑判断。如果两个表达式同时为真则返回真,否者返回假。

test 表达式1-o 表达式2:或(or)逻辑判断。只要两个表达式有一个为真则返回真,否则返回假。

56.shell 的循环控制语句有哪些?其语法格式分别是什么?

1. 在shell脚本中进行条件控制

1.1 Bash 中允许测试两种类型的条件:命令成功或失败,表达式为真或假

1.2任何一种测试中,都要有退出状态(返回值),退出状态为 0

表示命令成功或表达式为真,非0 则表示命令失败或表达式为假。

1.3状态变量$? 中保存命令退出状态的值

if表达式有:

if[ 条件表达式1]

then

if [ 条件表达式2]

then

……

else

……

fi

命令串;

else

命令串;

fi

注意:上述if语法中,中括号“[]”中的内容用于进行条件测试。使用”[]“进

行条件测试时,要注意空格的使用。在if与”[“间要有空格,在”[“与

后面的条件表达式之间要有空格,在”]“与前面的条件表达式之间也要

有空格。

还有另外一种:

ifexpr1# 如果expr1 为真(返回值为0)

then# 那么

commands1# 执行语句块commands1

elifexpr2# 若expr1 不真,而expr2为真

then# 那么

commands2# 执行语句块commands2

... ...# 可以有多个elif 语句

else#else 最多只能有一个

commands4# 执行语句块commands4

fi# if 语句必须以单词 fi 终止

1.elif可以有任意多个(0 个或多个)

2.else最多只能有一个(0 个或1 个)

3.if语句必须以 fi 表示结束

4.expr通常为条件测试表达式;也可以是多个命令,以最后一个命令的退出状态为条件值。

5.commands为可执行语句块,如果为空,需使用 shell 提供的空命令 “ : ”,

即冒号。该命令不做任何事情,只返回一个退出状态 0

6.if语句可以嵌套使用,如:

ex4if.sh,chkperm.sh,chkperm2.sh,

name_grep,tellme,tellme2,idcheck.sh

使用case语句有:

casestring in

str1)

命令串1;;#执行语句块命令,注意后面为“;;”双分号

str2)

命令串2;;

*)

默认处理命令串;

esac# esac实际上就是case反过来写

case详解:

caseexpr in# expr 为表达式,关键词 in 不要忘!

pattern1)# 若expr 与 pattern1 匹配,注意括号

commands1# 执行语句块commands1

;;# 跳出 case 结构

pattern2)# 若expr 与 pattern2 匹配

commands2#执行语句块 commands2

;;# 跳出 case 结构

... ...# 可以有任意多个模式匹配

*)# 若 expr 与上面的模式都不匹配

commands# 执行语句块 commands

;;# 跳出 case 结构,为两个双分号

esac# case语句必须以 esac 终止

1.表达式 expr 按顺序匹配每个模式,一旦有一个模式匹配成功,

则执行该模式后面的所有命令,然后退出 case。

2.如果 expr 没有找到匹配的模式,则执行缺省值 “ *) ”

后面的命令块 ( 类似于if中的else ); “ *) ” 可以不出现。

3.所给的匹配模式 pattern 中可以含有通配符和“ | ”。

4.每个命令块的最后必须有一个双分号,可以独占一行,或放在最后一个命令的后面。

5.一般来说,在条件判断中,ifthen……[else]……if,(else可以不要),是成对出现的,也是遵循C语言中if的就近原则,即else、fi都是与其最近相邻的if配对的。对于case,也是类似C语言中的switch语句,参照switch理解,每一个case一定有一个esac与之配对。

2. 在shell脚本中进行for循环

for的第一种形式:

forvar in list

do

命令串

done

list: 列表,可以是由空格分隔的变量($a $b)或者是值(1 2 3等)。

对于list中的每一项,都将循环一次

var : 每次循环的值。对于list中的每一项都要进行一次循环,而每次循环时,就取出list中的第几项放在var中,可以在命令串中通过$var的方式进行引用

循环执行过程:

执行第一轮循环时,将 list 中的第一个词赋给循环变量,

并把该词从 list 中删除,然后进入循环体,执行 do 和 done 之间的命令。

下一次进入循环体时,则将第二个词赋给循环变量,并把该词从 list 中删除,

再往后的循环也以此类推。当 list 中的词全部被移走后,循环就结束了。

for的第二种形式:

for var

do

命令串

done

与第一种方式相比,少了in list项。此时,for循环省略了list,list值由当前脚本程序的命令行参数代替。也就是说,在这种情况下,没循环一次,var中存储的就是一个命令行参数。

对于for语句,我的理解是,如果没有in list,则循环参数则由命令行带参使用,即以命令行参数为for循环值列表。

3. 在shell脚本中进行while循环

在某些情况下,需要依据某个条件进行判断,如果条件为真则继续循环,否则结束循环,这种情况下,就需要使用while循环。while循环是当某个判定条件的值为假时退出循环。

语法如下:

while条件表达式

do

命令串;

done

执行过程:

先执行条件表达式,如果其退出状态为 0,就执行循环体。执行到关键字 done 后,回到循环的顶部,while 命令再次检查条件表达式的退出状态。以此类推,循环将一直继续下去,直到条件表达式的退出状态非 0 为止。

4. 在shell脚本中使用util循环

util循环和while循环实现的功能基本相同,不过util是判定条件为假时才继续循环。

语法如下:

util条件表达式

do

命令行;

done

57.三种循环方式编写shell脚本,实现1+2+3+……+99+100

#!/bin/bash

i=1

sum=0

while [ $i –le 100 ]

do

sum=$[$sum+$i]

i=$[$i+1]

这里使用while控制,还有util和for循环,大体结构相似,具体的只需要系那个下面修改即可:

for i in [1~100]

util [$i-gt100]

58.Linux操作系统为什么有强大的网络管理功能?

Linux本身就是一个网络操作系统,它和互联网诞生于同一个年代。可以说,正因为有了互联网,才使linux的普及变成现实。Linux具有Unix的优点:稳定、可靠、安全,有强大的网络功能。在相关软件的支持下,可实现WWW、FTP、DNS、DHCP、E-mail等服务,还可作为路由器使用,利用ipchains/iptables可构建NAT及功能全面的防火墙。

59.什么是IP地址,IPv4地址有哪些类型?

所谓IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。按照TCP/IP协议规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节。例如一个采用二进制形式的IP地址是“00001010000000000000000000000001”,这么长的地址,人们处理起来也太费劲了。为了方便人们的使用,IP地址经常被写成十进制的形式,中间使用符号“.”分开不同的字节。于是,上面的IP地址可以表示为“10.0.0.1”。IP地址的这种表示法叫做“点分十进制表示法”,这显然比1和0容易记忆得多。

IP地址有5类,A类到E类,各用在不同类型的网络中。地址分类反映了网络的大小以及数据包是单播还是组播的。
A类到C类地址用于单点编址方法,但每一类代表着不同的网络大小。
A类地址(1.0.0.0-126.255.255.255)用于最大型的网络,该网络的节点数可达16,777,216个。
B类地址(128.0.0.0-191.255.255.255)用于中型网络,节点数可达65,536个。
C类地址(192.0.0.0-223.255.255.255)用于256个节点以下的小型网络单点网络通信。
D类地址并不反映网络的大小,只是用于组播,用来指定所分配的接收组播的节点组,这个节点组由组播订阅成员组成。D类地址的范围为224.0.0.0-239.255.255.255。
E类(240.0.0.0-255.255.255.254)地址用于试验。

60.什么是域名,为什么要采用域名?

域名就是上网单位的名称,是一个通过计算机登上网络的单位在该网中的地址。一个公司如果希望在网络上建立自己的主页,就必须取得一个域名,域名也是由若干部分组成,包括数字和字母。通过该地址,人们可以在网络上找到所需的详细资料。域名是上网单位和个人在网络上的重要标识,起着识别作用,便于他人识别和检索某一企业、组织或个人的信息资源,从而更好地实现网络上的资源共享。除了识别功能外,在虚拟环境下,域名还可以起到引导、宣传、代表等作用。

通俗的说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易的找到你。

61.解释相关概念:路由,网关,端口,网卡?

路由:是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程

网关:是指一个网络连接到另一个网络的“关口”。也就是网络关卡。又称网间连接器、协议转换器。

端口:在网络技术中,端口(Port)有好几种意思。集线器、交换机、路由器的端口指的是连接其他网络设备的接口,如RJ-45端口、Serial端口等。我们这里所指的端口不是指物理意义上的端口,而是特指TCP/IP协议中的端口,是逻辑意义上的端口。

网卡:计算机与外界局域网的连接是通过主机箱内插入一块网络接口板(或者是在笔记本电脑中插入一块PCMCIA卡)。网络接口板又称为通信适配器或网络适配器(network adapter)或网络接口卡NIC(NetworkInterface Card)但是现在更多的人愿意使用更为简单的名称“网卡”。

62.测试网络连通性的命令有哪些,分别显示什么信息?

1.ping命令。

用于测试当前系统的网络是否连通

ping[选项]目标主机名或IP地址

常用的参数及含义如下表所示。

参数

含义

-c packet_count

指定ping命令发送数据包的个数

-i interval

指定每个数据包发送的时间间隔

-f

快速发送指定数量的数据包,然后查看统计结果

-l packet_count

快速发送指定个数内的数据包

-s b_count

设定数据包的大小,默认为64字节

-t ttl_time

设置存活数值TTL的大小

-R

记录数据包的路由信息

2. traceroute命令

该命令向目的主机发送数据包,每经过一个网关或路由就返回一行信息,内容包括网络或路由的主机名或IP地址、每次经过该网关或路由的时间(单位为ms)。系统默认的数据包长度为38字节,最大跳数(Hop)为30次。

traceroute[选项]目的主机名或IP地址

常用的参数及含义如表所示。

参数

含义

-f first_ttl

设置第一个检测数据包的存活时间TTL

- g gateway_ip

设置数据包经过的网关,最多可设置8个

-m max_ttl

设置检测数据包的最大存活时间TTL

-n ip_addr

直接使用目的主机的IP地址

-p port

指定UDP协议使用的端口

-w timeout

设置等待远端主机回应的时间

-x

开启数据包的正确性检验

3. netstat命令

netstat命令用于查看网络连接、路由表信息和网络接口的状态信息,其格式如下:

nestat[选项]

参数

含义

-a

显示所有套接口,包括正在监听的

-c

每个1秒刷新一次结果,直到用户终止

-i

显示所有网络接口信息

-l

显示处于监听状态的套接口信息

-n

显示结果直接使用IP地址,而不使用域名

-t

显示TCP协议的连接状况

-u

显示UDP协议的连接状况

-w

显示RAW协议的连接状况

-r

显示当前核心路由表的信息

-v

显示命令执行过程

63.显示并配置linux网络信息需要用到的命令有哪些?怎样实现?

1. ifconfig工具的使用

该工具既可以用于查看网络接口的信息,也可以用于配置网络的TCP/IP参数,还可以用于启动和停用指定的网络接口。

1) 查看网络接口信息

ifconfig命令格式如下:

ifconfig[网络接口设备名]

其中网络接口设备名为可选参数,如果没有指定网络接口,ifconfig将返回系统所有的网络设备的TCP/IP参数,包括回环网络接口的信息,否则返回指定的接口参数。在终端命令提示符中输入如下命令,可以查看网络接口eth0的TCP/IP参数信息。

2) 配置网络信息

ifconfig工具可以配置系统中指定的网络接口的TCP/IP参数信息,其格式如下:

ifconfig网络接口设备名IP地址[netmask网络掩码][broadcast广播地址]

其中netmask部分和broadcast部分可以任选其一,因为从网络掩码和广播地址可以互相推算。上述命令可以用指定的IP地址和网络掩码来配置命令中指定的网络接口。

3) 网络接口的启用和禁用

当网络接口的配置更改以后往往需要重启网络接口,以应用新的配置。使用ifconfig工具可以完成启用和禁用指定的网络接口的工作,具体方法如下:

ifconfig网络接口设备名[up|down]

其中参数up表示启用指定的网络接口,参数down表示禁用指定的网络接口。

此外还可以使用network命令和ifup/ifdown命令来完成网络接口的启用和禁用。

参数

含义

start

启动所有网络接口

stop

禁用所有网络接口

restart

重启网络

其中,network是一个shell脚本程序,用于启用、禁用或重启所有网络接口,其格式如下:

/etc/rc.d/init.d/network[选项]

常用的参数及含义如右表所示。

ifup和ifdown命令分别用启用和禁用

指定的网络接口,其格式如下:

ifup网络接口设备名

ifdown网络接口设备名

2. route工具的使用

使用ifconfig工具配置了网络接口的IP地址、网络掩码等参数后,该主机就可以在局域网络内和其他主机通信了,但是还不能访问外网的主机。此时需要使用route工具配置网络的路由记录或默认网关。

route工具可以用于查看当前的路由信息,也可以设置网络的默认路由信息。

1) 查看路由信息

route命令在不带任何信息时,系统将返回当前路由表的信息,

2) 添加/删除路由记录

使用route命令添加或删除一条到达目标网络的路由记录,其格式如下:

routeadd|del-net网络地址netmask网络掩码[gw网关地址][dev网络接口]

其中参数add表示向路由表中添加一条路由信息,del表示删除路由表中的一条路由信息。gw参数和dev参数任选其一。gw参数用于指定网关地址,dev参数用于指定到达目标地址时数据分组投递的网络接口。

使用router命令添加或删除一条到达目标主机的路由记录,其格式如下:

routeadd|del-hostIP地址[gw网关地址][dev网络接口]

在该命令中无需网络掩码,其中add参数、del参数、gw参数和dev参数含义同上。

3) 添加/ 删除默认网关

默认网关通常是一个公司或单位内部网络与外部网络通信的唯一通路,当公司内部网络上的主机与外部网络进行连接时,就将数据分组发给默认网关,由该网关负责数据分组的路由选择。可以使用route命令来添加或删除网络中的默认网关,其格式如下:

routeadd|deldefaultgw 网关地址

其中add参数、del参数、gw参数和dev参数含义同上。

由route命令返回的最后一行可以看到默认网关添加成功。

64.怎样才能让命令配置的功能长期有效?

尽管ifconfig和route工具非常有效,但是它们的命令效果只能维持在命令执行到网络重启或系统重启的时限内,如果希望系统重启后ifconfig和route工具配置的参数仍然有效,可有以下的两个办法实现:

(1)修改网络接口的配置文件(/etc/sysconfig/network-scripts/ifcfg-eth0文件)中的指定内容。这种方法可以同时解决网络重启和系统重启后网络配置失效的问题。这种方法将在下面的小节中给予介绍。

(2)将相应的ifconfig和route配置命令,分别按行写入/etc/rc.d/rc.local文件。这种方法可以解决系统重启后ifconfig和route命令失效的问题,但是不能解决网络重启后ifconfig和route命令失效的问题。

/etc/rc.d/rc.local文件是一个具有可执行属性的shell脚本文件,

它在RedHat Linux 9系统启动时执行。通常,rc.local文件中的每一行都是一条命令,用于在系统启动时运行一个需要随系统一起运行的程序,类似于MS Windows的随机启动。

65.linux用于网络性能检测的命令有哪些?可以检测到哪些信息?

1、sar 命令行的常用格式

sar [options] [-A] [-o file] t [n]

在命令行中,n 和t两个参数组合起来定义采样间隔和次数,t为采样间隔,是必须有的参数,n为采样次数,是可选的,默认值是1,-o file表示将命令结果以二进制格式存放在文件中,file 在此处不是关键字,是文件名。options 为命令行选项。

常用命令选项

sar命令的选项很多,下面只列出常用选项:

-A:所有报告的总和。-u:CPU利用率-v:进程、I节点、文件和锁表状态。-d:硬盘使用报告。

-r:没有使用的内存页面和硬盘块。-g:串口I/O的情况。-b:缓冲区使用情况。

-a:文件读写情况。-c:系统调用情况。-R:进程的活动情况。-y:终端设备活动情况。

-w:系统交换活动。

2、tcpdump采用命令行方式,它的命令格式为:

tcpdump [-adeflnNOpqStvx ] [ -c 数量] [ -F 文件名 ]

[ -i 网络接口 ] [ -r 文件名][ -s snaplen ]

[ -T 类型 ] [ -w 文件名] [表达式 ]

tcpdump的选项介绍

-a  将网络地址广播地址转变成名字;-d  将匹配信息包代码以人们能够理解汇编格式给出;

-dd  将匹配信息包的代码以c语言程序段的格式给出;

-ddd 将匹配信息包的代码以十进制的形式给出;-e  在输出行打印出数据链路层的头部信息;

-f  将外部的Internet地址以数字的形式打印出来;-l  使标准输出变为缓冲行形式;

-n  不把网络地址转换成名字;-t  在输出的每一行不打印时间戳

-v  输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;

-vv  输出详细的报文信息;-c  在收到指定的包的数目后,tcpdump就会停止;

-F  从指定的文件中读取表达式,忽略其它的表达式;

-i  指定监听的网络接口;-r  从指定的文件中读取包(这些包一般通过-w选项产生);

-w  直接将包写入文件中,并不分析和打印出来;

-T  将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程

调用)和snmp(简单 网络管理协议)

66.用于网络服务的命令有哪些?分别完成哪些功能?

1.ping 查看主机网络接口状态
2. ifconfig 查看和更改网络接口的地址和参数(IP地址,子网掩码,网关等),也可以通过配置文件来查看或者更改,(/etc/sysconfig/network-script/ifcfg-eth0)
3. netstat 检查整个网络4.route查看或者修改路由表

5.nslookup 查询一台机器的IP地址和其对应的域名6. 其他测试连接的命令有ftp,ssh,telnet等7.dmesg| grep -i eth 获取网络适配器列表信息
8. ethtool查询及设置以太网卡参数(全双共/半双共,连接速度等)
9. mii-tool查看网卡的接连状态,是否连接

67.什么是网络安全?网络安全的范畴和特性是什么?

网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。网络安全从其本质上来讲就是网络上的信息安全。从广义来说,凡是涉及到网络上信息的保密性完整性可用性真实性和可控性的相关技术和理论都是网络安全的研究领域

68.linux操作系统的网络安全用到哪些技术手段?

在linux下的网络安全用到了以下手段:

1、用户管理,即口令控制 2、文件系统的权限控制

3、日志文件系统   4、防病毒软件   5、防火墙