Linux两进程循环输出,06葵花宝典之linux网络、进程管理和shell循环语句

06葵花宝典之linux网络、进程管理和shell循环语句

作为服务器,其输入输出功能在大多数时候都是通过网络提供的,网络功能对于服务器而言是至关重要的。

一、OSI七层模型和TCP/IP四层模型

1、OSI七层模型

OSI七层模型是参考ISO(International Standard Organization国际标准化组织)所指定的一个用于通信系统间互联的标准体系。 OSI(Open System Interconnetcion,开放系统互联)是一个参考模型。其从底层到高层分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层

1-1、物理层

物理层用于定义物理连接的手段,以及数据的bit流信号如何通过设备的电气特性进行传输;比如,可以通过双绞线传输,也可以通过WIFI传输,还可以通过同轴电缆传输,这些不同的物理链路方法中,也有不同的定义来规定信号的电气特性;也就是如何将数据的0、1转换为光、电或者其他信息进行传输,并在接收端还原出来。在这一层上,数据一般称之为数据流。

1-2、数据链路层

其主要作用是对物理层收的的0、1信号进行分组和解释,或者说,将上层的数据进行分组包装后变成0、1信号,交给物理层进行传输,在这层上,数据一般称之为数据帧。数据帧一般有标头和数据两部分,标头包括数据的一些说明向,数据则是上层协议需要传输的内容。

1-3、网络层

在网络层,可以将一个大的网络,划分为小的网络,这个是通过我们常说的IP地址来实现的。网络层主要的主要目的,是隔离数据链路层的一些广播数据,以及实现网络到网络的寻址,也就是我们常说的路由功能。

1-4、传输层

通过前三层,基本可以实现主机到主机的通信了,但主机上运行的软件或者进程很多,收到的数据或者发出的数据具体是到那个软件或者那个进程呢?这就需要进程的端口号来标示。传输层可以建立起A主机的某个进程到B主机的某个进程间的通信。

1-5、会话层

主机之间建立、管理、终止会话。

1-6、表示层

各类型文件或者数据采用何种方式进行表示。比如,一张图片是采用那种格式进行编码,如何加密等等

1-7、应用层

使用应用层来处理网络应用。

2、TCP/IP四层模型

TP/IP四层模型可以看作是OSI七层模型的一个具体实现,也是现在网络上设备之间通信的一个事实标准,它将七层模型中的物理层和数据链路层合起来称为数据链路层,将会话层、表示层和应用层合起来称为应用层。

不论是七层模型还是四层模型,对于网络连接而言,需要使用到的常用协议或者标准有:ARP(地址解析协议,工作在数据链路层)、IP(网际协议,工作在网络层)、TCP/UDP(传输控制协议/用户数据报协议,工作在传输层)、Http/Ftp(超文本传输协议/简单文件传输协议)等等。

二、iproute命令

在linux上配置查看或更改设备的属性,通常使用ip、ifconfig命令。

1、ifconfig

ifconfig:configure a network interface,配置网络接口。

常见使用方法如下:

1-1、ifconfig 不跟任何选项或参数,用于显示当前主机上没有被禁止的网络接口的配置信息。如:

[root@koala ~]# ifconfig

eth0 Link encap:Ethernet HWaddr 00:0C:29:0D:FF:B8

inet addr:192.168.1.169 Bcast:192.168.1.255 Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fe0d:ffb8/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:214 errors:0 dropped:0 overruns:0 frame:0

TX packets:188 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:23778 (23.2 KiB) TX bytes:31448 (30.7 KiB)

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:65536 Metric:1

RX packets:4 errors:0 dropped:0 overruns:0 frame:0

TX packets:4 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:240 (240.0 b) TX bytes:240 (240.0 b)

也可以跟一个指定接口,只显示该接口的网络配置信息,如: ifconfig eth0

1-2、ifconfig INTERFACE up|down 启用或禁用名称为INTERFACE的接口

如:ifconfig eth0 down 禁用eth0这个网络接口。

1-3、ifconfig INTERFACE ip/mask_len 配置接口地址为指定地址

如:配置接口地址为:192.168.0.1,掩码为255.255.0.0(掩码长度16位)

[root@koala ~]# ifconfig eth0 192.168.0.1/16

删除接口地址:

ifconfig eth0 del ip

2、ip

ip命令用于显示或者设置路由、设备网络配置、策略路由等信息

2-1、ip link show/ip addr show 显示网络接口相关信息,后面可跟具体接口名称,显示该接口信息

ip addr show 显示更详细的信息,包括接口的ip地址以及辅助地址(secondary)

[root@koala ~]# ip link show

1: lo: mtu 65536 qdisc noqueue state UNKNOWN

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 00:0c:29:0d:ff:b8 brd ff:ff:ff:ff:ff:ff

[root@koala ~]# ip addr show

1: lo: mtu 65536 qdisc noqueue state UNKNOWN

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 00:55:aa:55:bb:55 brd ff:ff:ff:ff:ff:ff

inet 192.168.1.250/24 brd 192.168.1.255 scope global eth0

inet 192.168.2.169/24 scope global eth0

inet 192.168.1.169/24 scope global secondary eth0

inet6 fe80::255:aaff:fe55:bb55/64 scope link

valid_lft forever preferred_lft forever

2-2、ip link set DEVICE 设置

可以设置的参数有 up|down 接口的开启或关闭 arp {up|down} 接口arp协议的开启或关闭 mtu 设置接口的mtu值,最大传输单元 address 接口的物理地址,格式 AA:BB:CC:DD:EE:FF alias 接口的别名 name 接口名称(重命名接口名称)

2-3、ip addr {add|del} ipaddress dev STRING

[root@koala ~]# ip addr add 192.168.2.169/24 dev eth0

为eth0接口增加ip地址:192.168.2.169/24

[root@koala ~]# ip addr del 192.168.2.169/24 dev eth0

删除接口的192.168.2.169/24这个地址

注意:无论是ifconfig还是ip命令,其都是立即有效,但是服务或系统重启后,该配置无效。要使设置的ip相关参数重启后仍然有效,需要修改配置文件(/etc/sysconfig/network-scripts/,以ifcfg-接口名为名称的文件)

如:配置eth0接口(在Cetnos6,网络接口一般以eth#命名,如ifcfg-eth0;在Centos7,网络接口一般以eno167777##命名,如eno16777736)的ip为静态ip,192.168.1.185/24,网关192.168.1.1,DNS114.114.114.114等,配置文件如下:

DEVICE=eth0

HWADDR=00:0C:29:0D:FF:B8

TYPE=Ethernet

UUID=02f6e8e0-dc1e-4f97-a958-ea7bd4b65f76

ONBOOT=yes

IPADDR=192.168.1.185

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

DNS1=114.114.114.114

NM_CONTROLLED=yes

BOOTPROTO=static

三、进程相关命令 htop vmstat

1、ps

ps显示当前系统上的进程信息。常用选项为

a 显示用户的进程

u 以用户格式显示,主要显示user(用户)、PID(进程号)、%cpu(CPU占用率)、%mem(内存占用率)、vsz(虚拟内存大小)、RSS(驻留实际内存大小)、tty(终端号)、stat(进程状态)、start(起始时间)、time(累计运行时间)、command(哪个命令发起的进程)

x 与终端无关的进程

-e 显示所有进程

-f 全格式显示(PPID,该进程的父进程号)

-H 以层级结构显示(hierarchy)

o 以指定格式显示进程

ps aux 以用户格式显示所有进程。

ps -efH

ps o pid,ni,tty,ppid,rtprio,comm,stat

ps -e o pid,ni,tty,stat

stat:进程状态有: R,running运行态;S,Interrupt sleeping可中断睡眠态;D,Uninterrupt sleeping不可终端睡眠态;T,stopped停止态;Z,zomble僵死态;+,前台进程,N 低优先级;

2、htop

htop是一个交互式的进程信息查看工具,可以认为是top的升级版。htop并不在CentOS的光盘所带和镜像仓库中,他在epel仓库中,安装前,首先要配置好epel仓库。

使用htop命令进入交互式界面,如图

3c8ce6380daa33c267ccb0e2e66a02de.png

使用F1-F10进入相应的模式

F1帮助 常用的命令有: H用户进程或线程开关 K系统进程或线程开关 F选中鼠标点击的进程 P M T 使用cpu% mem% Time来进行排序q

F2设置 主要用于设置htop命令的默认选项 meters 设置上方左右的显示信息,默认为cpu mem swp tasks loadaverage uptime等 display options 设置显示信息 color columns设置需要显示的进程属性信息。

F3匹配第一个含查找字符串的进程,使用F3切换至下一个匹配到的,此时,仍然显示所有进程

F4匹配查找到字符串的进程,其他未被字符串匹配的进程不显示

F5以树状格式显示(或关闭树状结构显示)

F6展开或关闭选定的树状结构

F7将选中的进程的nice值变小(即优先级变高),root用户有效

F8将选中的进程的nice值变大(即优先级变低),root用户有效

F9kill选中的进程,ENter确定

F10退出htop

常用选项

-u username 显示指定用户的进程

-s COLUMN 以指定列排序(使用htop --sort-key help查看可以用于排序的列,也可以在F2中查看可以用于排序的列)

3、vmstat

显示虚拟内存统计信息

常用选项-s 显示内存统计数据

当只是有vmstat命令时,显示内容信息解释如下:

[root@localhost tmp]# vmstat

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----

r b swpd free buff cache si so bi bo in cs us sy id wa st

2 0 0 646008 1240 245436 0 0 9 3 22 32 0 0 100 0 0

procs 进程

r 等待运行的,指cpu队列长度

b 被阻塞的进程,也就是不可终端睡眠状态的进程数量

memory 内存

swpd 交换内存使用总是,0表示未启用swap分区

free 空闲内存

buff 缓冲区

cache 缓存

swap 交换分区

si swapin 换进速率 kb/s

so swapout 换出速率

io 块设备

bi blockin 从块设备读入

bo 写入块设备

system

in interrupt 终端产生速率

cs context switch 上下文转换速率

cpu

us 用户空间进程

sy 系统

id 空闲

wa 等待

st 被虚拟机占用的(stolen)

四、使用until和while分别实现192.168.0.0/24

网段内,地址是否能够ping通,弱ping通则输出”success!”,若ping不通则输出”fail!”

while循环:条件为真,则执行循环体,条件一旦为假,则退出循环。

#!/bin/bash

#

declare -i i=1

while [ $i -lt 255 ];do

if ping -c 2 "192.168.1.$i"> /dev/null;then

echo ping "192.168.1.$i" success!

else

echo ping "192.168.1.$i" fail!

fi

i=$i+1

done

ping -c 说明发的ping包次数,将其送给/dev/null。如果ping成功,则其命令执行状态结果为真,输出success,否则输出fail

until循环:条件为假,则执行循环体,条件一旦为真,则退出循环。

#!/bin/bash

#

declare -i i=1

until [ $i -ge 15 ];do

if ping -c 2 "192.168.1.$i"> /dev/null;then

echo ping "192.168.1.$i" success!

else

echo ping "192.168.1.$i" fail!

fi

i=$i+1

done

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96211

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值