Linux开发中,if语句是用来帮助程序员进行复杂判断的,if 语句本身也会有许多关联的符号来实现对复杂判断的要求。其中的一种是并且操作符,这种操作符可以将两个独立的表达式连接起来,只有当这两个表达式同时成立时,才会执行后面定义的操作,下面让我们一起来认识一下关于Linux if语句中的并且操作符的详细内容。
Linux if语句中的并且操作符是“&&”,也有人称为逻辑与操作符,可以将两个独立的表达式连接起来,只有当两个表达式同时成立时,才会执行后面定义的操作。下面我们来说明下并且操作符的运算规则,当两个表达式均为True时,表达式结果才会为True,比如下面的代码:
`if [ $name==”yunxing” ] && [ $age -eq 18 ]; then
echo “the name is yunxing and age is 18.”
从上面的代码中,可以看出并且操作符具有较高的运算优先级,也就是说,当上述两个表达式同时为真时,程序才会执行后面的操作。
从并且操作符的解释中可以发现,这个符号可以用来判断两个或多个条件是否都满足才能做后续处理,比如用户所在国家是否是US它 和 用户账号是否 authentic,如果这两个条件都满足时,才可以登录系统。
`if [ $country=$US ] && [ $authentic -ne 0 ];
echo “Login success!”
总之,Linux if语句中的并且操作符主要用于将两个或多个条件连接起来,只有当这些条件同时满足,才会执行相应的操作。因此,并且操作符在Linux开发中可以帮助我们将复杂的逻辑进行处理。
香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云 服务器 和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
电脑桌面换不了,谁能告诉我问什么呀?
开始——运行————本地计算机策略——用户配置——管理模板——控制面板——显示——右边列表下的阻止更改墙纸策略——此策略设为“未被配置”…… “组策略”法,请按照下面步骤进行组策略操作: 1、点击『开始』菜单 2、点击“运行”并键入(不包括双引号)后确定 3、在“组策略”中依次展开 本地计算机策略/用户配置/管理模板/桌面/Active DeskTop 4、在该列表中打开 Active Desktop 墙纸的属性 5、在Active Desktop 墙纸 属性中的“设置”选项卡中点选“已启用”单选项,并在“墙纸名称”中键入所要设为墙纸背景的图片或Html文件的具体路径和文件名(路径可以是本地路径也可以是UNC路径)。 墙纸样式根据你自己的需要来设置。 注:在“组策略”中的 本地计算机策略/用户配置/管理模板/控制面板/显示 列表下的阻止更改墙纸策略,如果将此策略设为启用,能达到使 “显示属性”中的“桌面”选项卡下的“背景”和“位置”呈不可操作状,但此策略效果有局限,如果在“资源管理器”中任意一图片文件的右键上下文菜单中点“设为桌面背景”仍旧能更改桌面背景,第三方工具亦可更改桌面背景。 上述策略在管理员帐户下操作,对所有用户均生效,即所有用户的桌面背景将设为一致的。 上述方法因需用到“组策略”,故该法适用于: ·Microsoft WindowsXP Professional “注册表”法,请按照下面步骤进行注册表编辑操作: 1、点击『开始』 2、点击“运行”并键入regedit(不包括双引号)后确定 3、在“注册表编辑器”中依次展开 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\ 在该注册表项下建立名为 System 的项(如在Policies分支下已有System项,则无须此步骤) 在 System 项下建立名为 Wallpaper 和 WallpaperStyle 的两个“字串符值” 对于字串符值定义的解释: Wallpaper 有两个可以定义的值: 空 或 某图片具体路径位置及文件名(路径可以允许设为本地路径或 UNC 路径) 如果 Wallpaper 字串符值为空,则桌面背景固定为添加该字串符值前所设的图片,且在“显示属性”中的“桌面”选项卡中的“背景”框中呈不可操作状。 并且在“资源管理器”中浏览图片时,右键、图片文件中的上下文菜单的“设为桌面背景”操作将无效。 但是该法有一缺点,使用第三方工具如ACDSee依旧可以更改桌面背景。 (注:此项比“组策略”法中的阻止更改桌面策略略强,能使得上下文菜单中的“设为桌面背景”无效) 如果 Wallpaper 字串符值设置为某图片或Html文件的路径及文件名(如F:\或F:\),那么桌面背景将强制更改为该值中所指定的图片文件或Html文件(F:\或F:\),且在“显示属性”中的“桌面”选项卡中的“背景”框中仍然呈不可操作状,并且第三方工具的桌面背景设置将无效。 但是该法也有一缺点:桌面上的图标将消失“阴影”特效,很是难看。 WallpaperStyle 有三个可以定义的值: 0=居中 1=平铺 2=拉伸 当 WallpaperStyle 设置为上述三个值(数字)中的一个,那么将强制“显示属性”中的“桌面”选项卡中的“位置”下拉菜单为对应值效果,并同样呈不可操作状。 更多信息: · 在上述的注册表项(System 项)中建立名为 NoDispBackgroundPage 的 DWORD 值,且定义键值为 1 (有效,相反设为0为无效),则“显示属性”中将没有“桌面”选项卡。 (此项对应“组策略”中的 本地计算机策略/用户配置/管理模板/控制面板/显示 中的 隐藏“桌面”选项卡 策略) ·在下面注册表项中新建名为 ActiveDesktop 的项 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\ 并在 ActiveDesktop 项中建立名为 NoChangingWallPaper 的DWORD值,定义键值为1(有效,相反设为0为无效),则“显示属性”中的“桌面”选项卡下的“背景”、“浏览”和“位置”下拉菜单呈不可操作状(此键值对应“组策略”的本地计算机策略/用户配置/管理模板/控制面板/显示 列表下的阻止更改墙纸策略)。 图片文件的上下文菜单中的“设为桌面背景”和第三方工具均可更改桌面背景。 使用管理员帐户对注册表编辑上述相关键值,对所有用户均生效,即所有用户的桌面背景将设为一致的。 由于注册表具有的可自定义性,因此相对“组策略”较灵活。 WindowsXP均带有注册表编辑器,故该“注册表”法适用于: ·Microsoft WindowsXP Home ·Microsoft WindowsXP Professional ·Microsoft WindowsXP Media Center Edtion 2005 请根据你自己的需要和上述的“组策略”法以及对于注册表相应键值的解释来进行具体操作。 注:修改注册表有风险,可能会导致重装系统,操作注册表之前请先备份,使用注册表编辑器需要你自行承担风险! 参考资料:cnjinbin 回答者:赵大掌柜
创建一个类A它包含一个整型变量i。在创建一个类B它包含一个整型变量j,并且让类B是类A的友员类。
class B{public:int j;};class A{public:int i;friend class B;};
网络访问控制列表
谢谢采纳!
访问列表的种类划分
目前的路由器一般都支持两种类型的访问表:基本访问表和扩展访问表。
基本访问表控制基于网络地址的信息流,且只允许过滤源地址。
扩展访问表通过网络地址和传输中的数据类型进行信息流控制,允许过滤源地址、目的地址和上层应用数据。
表1列出了路由器所支持的不同访问表的号码范围。
标准IP访问表
标准IP访问表的基本格式为:
access-list [list number][permit|deny][host/any][sourceaddress][wildcard-mask][log]
下面对标准IP访问表基本格式中的各项参数进行解释:
number---表号范围
标准IP访问表的表号标识是从1到99。
/deny----允许或拒绝
关键字permit和deny用来表示满足访问表项的报文是允许通过接口,还是要过滤掉。permit表示允许报文通过接口,而deny表示匹配标准IP访问表源地址的报文要被丢弃掉。
address----源地址
对于标准的IP访问表,源地址是主机或一组主机的点分十进制表示,如:198.78.46.8。
/any----主机匹配
host和any分别用于指定单个主机和所有主机。host表示一种精确的匹配,其屏蔽码为0.0.0.0。例如,假定我们希望允许从198.78.46.8来的报文,则使用标准的访问控制列表语句如下:
access-list 1 permit 198.78.46.8 0.0.0.0
如果采用关键字host,则也可以用下面的语句来代替:
access-list 1 permit host 198.78.46.8
也就是说,host是0.0.0.O通配符屏蔽码的简写。
与此相对照,any是源地证/目标地址0.O.O.O/255.255.255.255的简写。假定我们要拒绝从源地址198.78.46.8来的报文,并且要允许从其他源地址来的报文,标准的IP访问表可以使用下面的语句达到这个目的:
access-list 1 deny host 198.78.46.8
access-list 1 permit any
注意,这两条语句的顺序;访问表语句的处理顺序是由上到下的。如果我们将两个语句顺序颠倒,将permit语句放在deny语句的前面,则我们将不能过滤来自主机地址198.78.46.8的报文,因为permit语句将允许所有的报文通过。所以说访问表中的语句顺序是很重要的,因为不合理语句顺序将会在网络中产生安全漏洞,或者使得用户不能很好地利用公司的网络策略。
1dcardmask------通配符屏蔽码
Cisco访问表功能所支持的通配符屏蔽码与子网屏蔽码的方式是刚好相反的,也就是说,二进制的O表示一个匹配条件,二进制的1表示一个不关心条件。假设组织机构拥有一个C类网络198.78.46.0,若不使用子网,则当配置网络中的每一个工作站时,使用于网屏蔽码255.255.255.O。在这种情况下,1表示一个 匹配,而0表示一个不关心的条件。因为Cisco通配符屏蔽码与子网屏蔽码是相反的,所以匹配源网络地址198.78.46.0中的所有报文的通配符屏蔽码为:0.0.O.255。
----日志记录
log关键字只在IOS版本11.3中存在。如果该关键字用于访问表中,则对那些能够匹配访问表中的permit和deny语句的报文进行日志记录。日志信息包含访问表号、报文的允许或拒绝、源IP地址以及在显示了第一个匹配以来每5分钟间隔内的报文数目。使用log关键字,会使控制台日志提供测试和报警两种功能。系统管理员可以使用日志来观察不同活动下的报文匹配情况,从而可以测试不同访问表的设计情况。当其用于报警时,管理员可以察看显示结果,以定位那些多次尝试活动被拒绝的访问表语句。执行一个访问表语句的多次尝试活动被拒绝,很可能表明有潜在的黑客攻击活动。
扩展的IP访问控制列表
顾名思义,扩展的IP访问表用于扩展报文过滤能力。一个扩展的IP访问表允许用户根据如下内容过滤报文:源和目的地址、协议、源和目的端口以及在特定报文字段中允许进行特殊位比较等等。一个扩展的IP访问表的一般语法格或 下面简要介绍各个关键字的功能:
number----表号范围
扩展IP访问表的表号标识从l00到199。
-----协议
协议项定义了需要被过滤的协议,例如IP、TCP、UDP、1CMP等等。协议选项是很重要的,因为在TCP/IP协议栈中的各种协议之间有很密切的关系,如果管理员希望根据特殊协议进行报文过滤,就要指定该协议。
另外,管理员应该注意将相对重要的过滤项放在靠前的位置。如果管理员设置的命令中,允许IP地址的语句放在拒绝TCP地址的语句前面,则后一个语句根本不起作用。但是如果将这两条语句换一下位置,则在允许该地址上的其他协议的同时,拒绝了TCP协议。
3.源端口号和目的端口号
源端口号可以用几种不同的方法来指定。它可以显式地指定,使用一个数字或者使用一个可识别的助记符。例如,我们可以使用80或者http来指定Web的超文本传输协议。对于TCP和UDP,读者可以使用操作符 (大于)=(等于)以及(不等于)来进行设置。
目的端口号的指定方法与源端口号的指定方法相同。读者可以使用数字、助记符或者使用操作符与数字或助记符相结合的格式来指定一个端口范围。
下面的实例说明了扩展IP访问表中部分关键字使用方法:
access-list 101 permit tcp any host 198.78.46.8 eq smtp
access-list 101 permit tcp any host 198.78.46.3 eq www
第一个语句允许来自任何主机的TCP报文到达特定主机198.78.46.8的smtp服务端口(25);第二个语句允许任何来自任何主机的TCP报文到达指定的主机198.78.46.3的www或http服务端口(80)。
4.选项
扩展的IP访问表支持很多选项。其中一个常用的选项有log,它已在前面讨论标准访问表时介绍过了。另一个常用的选项是fistahlishfid,该选项只用于TCP协议并且只在TCP通信流的一个方向上来响应由另一端发起的会话。为了实现该功能,使用estab1ished选项的访问表语句检查每个 TCP报文,以确定报文的ACK或RST位是否已设置。
例如,考虑如下扩展的IP访问表语句:
access-list 101 permit tcp any host 198.78.46.8 established
该语句的作用是:只要报文的ACK和RST位被设置,该访问表语句就允许来自任何源地址的TCP报文流到指定的主机198.78.46.8。这意味着主机198.78.46.8此前必须发起TCP会话。
5.其他关键字
deny/permit、源地址和通配符屏蔽码、目的地址和通配符屏蔽码以及host/any的使用均与标准IP访问表中的相同。
管理和使用访问表
在一个接口上配置访问表需要三个步骤:
(1)定义访问表;
(2)指定访问表所应用的接口;
(3)定义访问表作用于接口上的方向。
我们已经讨论了如何定义标准的和扩展的IP访问表,下面将讨论如何指定访问表所用的接口以及接口应用的方向。
一般地,采用interface命令指定一个接口。例如,为了将访问表应用于串口0,应使用如下命令指定此端口:
interface serial0
类似地,为将访问表应用于路由器的以太网端口上时,假定端口为Ethernet0,则应使用如下命令来指定此端口:
interface ethernet0
在上述三个步骤中的第三步是定义访问表所应用的接口方向,通常使用ip access-group命令来指定。其中,列表号标识访问表,而关键字in或out则指明访问表所使用的方向。方向用于指出是在报文进入或离开路由器接口时对其进行过滤。如下的实例将这三个步骤综合在一起:
intface serial0
ip access-group 107 in
access-list 107 remark allow traffic to toms pc
access-list 107 ip any host 198.78.46.8
access-list 107 remark allow only web traffic to webserver
access-list 107 tcp any host 198.78.46.12 eq 80
access-list 107 remark block everything else
access-list 107 deny any any
在本例中,先使用interface命令指定串行端口0,并使用ipaccess-group命令来将访问表l07中的语句应用于串行接口的向内方向上。最后,输入6个访问表语句,其中三条访问表语句使用关键字remark,以提供关于列表中后继语句的注解说明。注意访问表中的最后一条语句,它表示了每个访问表相关的隐含denyall设置,并且如果不显式地列出是不会看到该语句的。如果读者希望从路由器的控制台端口相连的终端上直接输入这些命令和语句,则应该先使用EXEC特权命令。这个终端会话过程的实例如下图所示:
此外,当读者配置访问表后使用IOS的show命令查看列表时,有时很容易被显示出来的内容所迷惑,这是由于当通配符屏蔽码位被置为1(无关)时,1OS将该访问表表项的IP地址部分的该位设置为二进制0。
例如,输入如下的配置命令,用于创建一个扩展的IP访问表,并将其列表内容显示出来:
在本例中,由于C类地址的通配符屏蔽码的主机子段被设置为全1(255),所以网络198.78.46.0上的主机地址198.78.46.20被自动转换为网段地址。
发表评论