查看IP地址
#centos系列!
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.93.200 netmask 255.255.255.0 broadcast 192.168.93.255
inet6 fe80::20c:29ff:fe0c:5043 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:0c:50:43 txqueuelen 1000 (Ethernet)
RX packets 78 bytes 8852 (8.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 81 bytes 9229 (9.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ifconfig命令查看ip或者用ip r命令查看路由和网关,如果这两个命令都无法显示ip地址,操作步骤如下:
首先输入ip addr,查看ens33(不一定是ens33)网卡配置,输入 vi /etc/sysconfig/network-scripts/ifcfg-ens33
将ONBOOT权限改为yes
设置静态IP(NAT模式)
#centos系列
注意:配置静态ip时不能起冲突,可以先在本机ping一下你想要配置的ip,ping得通就不要用,ping超时可以使用。
[root@Linux-server ~]# cd /etc/sysconfig/network-scripts/ #网卡配置文件存放路径
[root@linux-server network-scripts]# cp ifcfg-ens33 ifcfg-ens33.bak #将源文件备份
[root@linux-server network-scripts]# vi ifcfg-ens33 #编辑网卡配置文件
TYPE="Ethernet" #网络类型:以太网类型
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" #默认值none或static 这两种属于静态获取ip地址,dhcp自动获取ip
IPADDR=192.168.93.200 #设置静态ip地址
GATEWAY=192.168.93.2 #设置网关,nat模式网关是2,桥接为1
NETMASK=255.255.255.0 #设置子网掩码
#PREFIX=24
DEFROUTE="yes" #是否设置默认路由,yes表示该配置
NAME="ens33" #网卡名称,可以不存在
DEVICE="ens33" #设备名称
ONBOOT="yes" #开机启动
DNS1=114.114.114.114 #dns全国通用地址,dns最多可以设置三个
DNS2=8.8.8.8 #谷歌的dns
DNS3=202.106.0.20 #北京的DNS。
#重启网络
[root@linux-server ~]# systemctl restart NetworkManager #centos8以后
[root@linux-server ~]# systemctl restart network #centos7
ubuntu配置静态IP
#查找网络接口
root@ubuntu:~# ip link
#编辑 netplan 配置文件
root@ubuntu:~# vi /etc/netplan/01-netcfg.yaml
network:
version: 2
ethernets:
enp0s3:
dhcp4: no
addresses:
- 192.168.93.201/24
gateway4: 192.168.93.2
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
#配置生效
root@ubuntu:~# netplan apply
使用脚本判断主机所在网络内在线的主机IP有哪些
#!/bin/bash
subnet="192.168.1" #定义子网前缀
start=1
end=254 #ip地址范围
#使用ping 测试一个 IP 地址
#函数
ping_test() {
local ip=$1
if ping -c 1 -W 2 $ip &> /dev/null; #发送一个 ICMP 请求,超时时间为 2 秒
then
echo "$ip is online"
fi
}
#遍历子网中的所有 IP 地址
for ((i=start; i<=end; i++))
do
ip="$subnet.$i"
ping_test $ip & #调用 ping_test 函数,并将其放在后台执行(使用 &)
done
# 等待所有后台进程完成
wait
[root@linux-server ~]# chmod +x network.sh
[root@linux-server ~]# .network.sh
or
[root@linux-server ~]# bash network.sh
使用while read line和/etC++/passwd,计算用户id总和
#!/bin/bash
# 初始化用户ID总和变量
total_uid=0
# 读取 /etc/passwd 文件的每一行
while IFS=: read -r username password uid gid info home shell; do
# 将当前行的UID加到总和中
total_uid=$((total_uid + uid))
done < /etc/passwd #指定输入文件为 /etc/passwd
# 输出用户ID总和
echo "Total UID sum: $total_uid"
解读:
使用 IFS=: 指定字段分隔符为冒号,读取/etc/passwd 文件的每一行,并将字段分别赋值给 username、password、uid、gid、info、home 和 shell 变量。
#!/bin/bash
# 定义递归阶乘函数
factorial() {
local n=$1
if [[ $n -eq 0 ]]; then
echo 1
else
echo $(( n * $(factorial $((n - 1))) ))
fi
}
# 测试阶乘函数
for i in {0..10}; do
result=$(factorial $i)
echo "$i! = $result"
done
解读:
定义递归函数:
* factorial() 是一个递归函数,接受一个参数 n。
* 如果 n 等于 0,返回 1(因为 0!=1),
否则,返回 n 乘以 factorial(n - 1) 的结果。
测试阶乘函数:
* 使用 for 循环从 0 到 10 测试阶乘函数。
* 调用 factorial 函数并将结果存储在 result 变量中。
* 输出结果。
求10个随机数的最大值与最小值
#!/bin/bash
# 创建索引数组
random_numbers=(1 3 100 9 10 18 0 77 96 2)
# 初始化最大值和最小值
max_value=${random_numbers[0]}
min_value=${random_numbers[0]}
# 遍历数组,找到最大值和最小值
for num in "${random_numbers[@]}"; do
if [[ $num -gt $max_value ]]; then
max_value=$num
fi
if [[ $num -lt $min_value ]]; then
min_value=$num
fi
done
# 输出最大值和最小值
echo "Maximum value: $max_value"
echo "Minimum value: $min_value"
索引数组
特点
范例:
# 创建索引数组
array=(apple banana pear)
# 访问元素
echo "${array[0]}" # 输出: apple
echo "${array[1]}" # 输出: banana
echo "${array[2]}" # 输出: pear
# 获取数组长度
echo "${#array[@]}" # 输出: 3
# 遍历数组
for fruit in "${array[@]}"; do
echo "$fruit"
done
# 添加元素
array+=("date")
echo "${array[@]}" # 输出: apple banana pear date
# 删除元素
unset array[1]
echo "${array[@]}" # 输出: apple pear date
关联数组
特点
范例:
# 声明关联数组
declare -A fruits
# 添加元素
fruits[apple]="red"
fruits[banana]="yellow"
fruits[pear]="green"
# 访问元素
echo "${fruits[apple]}" # 输出: red
echo "${fruits[banana]}" # 输出: yellow
echo "${fruits[pear]}" # 输出: green
# 获取所有键
echo "${!fruits[@]}" # 输出: apple banana pear
# 获取所有值
echo "${fruits[@]}" # 输出: red yellow green
# 遍历数组
for key in "${!fruits[@]}"; do
echo "$key: ${fruits[$key]}"
done
# 删除元素
unset fruits[banana]
echo "${!fruits[@]}" # 输出: apple pear
字符串处理
常用命令和操作
范例:
# 定义字符串
string="Hello, World!"
# 获取字符串长度
length=${#string}
echo "Length: $length" # 输出: Length: 13
# 获取子字符串
substring=${string:0:5}
echo "Substring: $substring" # 输出: Substring: Hello
# 替换字符串中的模式
replace=${string//World/Universe}
echo "Replace: $replace" # 输出: Replace: Hello, Universe!
# 转换为小写
lowercase=${string,,}
echo "Lowercase: $lowercase" # 输出: Lowercase: hello, world!
# 转换为大写
uppercase=${string^^}
echo "Uppercase: $uppercase" # 输出: Uppercase: HELLO, WORLD!
高级变量使用
参数扩展
#centos系列
注意:配置静态ip时不能起冲突,可以先在本机ping一下你想要配置的ip,ping得通就不要用,ping超时可以使用。
[root@Linux-server ~]# cd /etc/sysconfig/network-scripts/ #网卡配置文件存放路径
[root@linux-server network-scripts]# cp ifcfg-ens33 ifcfg-ens33.bak #将源文件备份
[root@linux-server network-scripts]# vi ifcfg-ens33 #编辑网卡配置文件
TYPE="Ethernet" #网络类型:以太网类型
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" #默认值none或static 这两种属于静态获取ip地址,dhcp自动获取ip
IPADDR=192.168.93.200 #设置静态ip地址
GATEWAY=192.168.93.2 #设置网关,nat模式网关是2,桥接为1
NETMASK=255.255.255.0 #设置子网掩码
#PREFIX=24
DEFROUTE="yes" #是否设置默认路由,yes表示该配置
NAME="ens33" #网卡名称,可以不存在
DEVICE="ens33" #设备名称
ONBOOT="yes" #开机启动
DNS1=114.114.114.114 #dns全国通用地址,dns最多可以设置三个
DNS2=8.8.8.8 #谷歌的dns
DNS3=202.106.0.20 #北京的DNS。
#重启网络
[root@linux-server ~]# systemctl restart NetworkManager #centos8以后
[root@linux-server ~]# systemctl restart network #centos7
0
综合示例
#centos系列
注意:配置静态ip时不能起冲突,可以先在本机ping一下你想要配置的ip,ping得通就不要用,ping超时可以使用。
[root@Linux-server ~]# cd /etc/sysconfig/network-scripts/ #网卡配置文件存放路径
[root@linux-server network-scripts]# cp ifcfg-ens33 ifcfg-ens33.bak #将源文件备份
[root@linux-server network-scripts]# vi ifcfg-ens33 #编辑网卡配置文件
TYPE="Ethernet" #网络类型:以太网类型
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" #默认值none或static 这两种属于静态获取ip地址,dhcp自动获取ip
IPADDR=192.168.93.200 #设置静态ip地址
GATEWAY=192.168.93.2 #设置网关,nat模式网关是2,桥接为1
NETMASK=255.255.255.0 #设置子网掩码
#PREFIX=24
DEFROUTE="yes" #是否设置默认路由,yes表示该配置
NAME="ens33" #网卡名称,可以不存在
DEVICE="ens33" #设备名称
ONBOOT="yes" #开机启动
DNS1=114.114.114.114 #dns全国通用地址,dns最多可以设置三个
DNS2=8.8.8.8 #谷歌的dns
DNS3=202.106.0.20 #北京的DNS。
#重启网络
[root@linux-server ~]# systemctl restart NetworkManager #centos8以后
[root@linux-server ~]# systemctl restart network #centos7
1
进程的生命周期状态
创建状态:
就绪状态:
执行状态:
阻塞状态:
终止状态:
特殊状态:
僵尸(Zombie)
僵死(Defunct)
进程与线程的区别
进程(Process)
线程(Thread)
#centos系列
注意:配置静态ip时不能起冲突,可以先在本机ping一下你想要配置的ip,ping得通就不要用,ping超时可以使用。
[root@Linux-server ~]# cd /etc/sysconfig/network-scripts/ #网卡配置文件存放路径
[root@linux-server network-scripts]# cp ifcfg-ens33 ifcfg-ens33.bak #将源文件备份
[root@linux-server network-scripts]# vi ifcfg-ens33 #编辑网卡配置文件
TYPE="Ethernet" #网络类型:以太网类型
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" #默认值none或static 这两种属于静态获取ip地址,dhcp自动获取ip
IPADDR=192.168.93.200 #设置静态ip地址
GATEWAY=192.168.93.2 #设置网关,nat模式网关是2,桥接为1
NETMASK=255.255.255.0 #设置子网掩码
#PREFIX=24
DEFROUTE="yes" #是否设置默认路由,yes表示该配置
NAME="ens33" #网卡名称,可以不存在
DEVICE="ens33" #设备名称
ONBOOT="yes" #开机启动
DNS1=114.114.114.114 #dns全国通用地址,dns最多可以设置三个
DNS2=8.8.8.8 #谷歌的dns
DNS3=202.106.0.20 #北京的DNS。
#重启网络
[root@linux-server ~]# systemctl restart NetworkManager #centos8以后
[root@linux-server ~]# systemctl restart network #centos7
2
进程的结构
代码段(Text Segment)
数据段(Data Segment)
堆(Heap)
栈(Stack)
文件描述符表(File Descriptor Table)
环境变量(Environment Variables)
进程控制块(Process Control Block, PCB)
进程状态
#centos系列
注意:配置静态ip时不能起冲突,可以先在本机ping一下你想要配置的ip,ping得通就不要用,ping超时可以使用。
[root@Linux-server ~]# cd /etc/sysconfig/network-scripts/ #网卡配置文件存放路径
[root@linux-server network-scripts]# cp ifcfg-ens33 ifcfg-ens33.bak #将源文件备份
[root@linux-server network-scripts]# vi ifcfg-ens33 #编辑网卡配置文件
TYPE="Ethernet" #网络类型:以太网类型
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" #默认值none或static 这两种属于静态获取ip地址,dhcp自动获取ip
IPADDR=192.168.93.200 #设置静态ip地址
GATEWAY=192.168.93.2 #设置网关,nat模式网关是2,桥接为1
NETMASK=255.255.255.0 #设置子网掩码
#PREFIX=24
DEFROUTE="yes" #是否设置默认路由,yes表示该配置
NAME="ens33" #网卡名称,可以不存在
DEVICE="ens33" #设备名称
ONBOOT="yes" #开机启动
DNS1=114.114.114.114 #dns全国通用地址,dns最多可以设置三个
DNS2=8.8.8.8 #谷歌的dns
DNS3=202.106.0.20 #北京的DNS。
#重启网络
[root@linux-server ~]# systemctl restart NetworkManager #centos8以后
[root@linux-server ~]# systemctl restart network #centos7
3
IPC通信实现方式
#centos系列
注意:配置静态ip时不能起冲突,可以先在本机ping一下你想要配置的ip,ping得通就不要用,ping超时可以使用。
[root@Linux-server ~]# cd /etc/sysconfig/network-scripts/ #网卡配置文件存放路径
[root@linux-server network-scripts]# cp ifcfg-ens33 ifcfg-ens33.bak #将源文件备份
[root@linux-server network-scripts]# vi ifcfg-ens33 #编辑网卡配置文件
TYPE="Ethernet" #网络类型:以太网类型
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" #默认值none或static 这两种属于静态获取ip地址,dhcp自动获取ip
IPADDR=192.168.93.200 #设置静态ip地址
GATEWAY=192.168.93.2 #设置网关,nat模式网关是2,桥接为1
NETMASK=255.255.255.0 #设置子网掩码
#PREFIX=24
DEFROUTE="yes" #是否设置默认路由,yes表示该配置
NAME="ens33" #网卡名称,可以不存在
DEVICE="ens33" #设备名称
ONBOOT="yes" #开机启动
DNS1=114.114.114.114 #dns全国通用地址,dns最多可以设置三个
DNS2=8.8.8.8 #谷歌的dns
DNS3=202.106.0.20 #北京的DNS。
#重启网络
[root@linux-server ~]# systemctl restart NetworkManager #centos8以后
[root@linux-server ~]# systemctl restart network #centos7
4
RPC通信实现方式
#centos系列
注意:配置静态ip时不能起冲突,可以先在本机ping一下你想要配置的ip,ping得通就不要用,ping超时可以使用。
[root@Linux-server ~]# cd /etc/sysconfig/network-scripts/ #网卡配置文件存放路径
[root@linux-server network-scripts]# cp ifcfg-ens33 ifcfg-ens33.bak #将源文件备份
[root@linux-server network-scripts]# vi ifcfg-ens33 #编辑网卡配置文件
TYPE="Ethernet" #网络类型:以太网类型
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" #默认值none或static 这两种属于静态获取ip地址,dhcp自动获取ip
IPADDR=192.168.93.200 #设置静态ip地址
GATEWAY=192.168.93.2 #设置网关,nat模式网关是2,桥接为1
NETMASK=255.255.255.0 #设置子网掩码
#PREFIX=24
DEFROUTE="yes" #是否设置默认路由,yes表示该配置
NAME="ens33" #网卡名称,可以不存在
DEVICE="ens33" #设备名称
ONBOOT="yes" #开机启动
DNS1=114.114.114.114 #dns全国通用地址,dns最多可以设置三个
DNS2=8.8.8.8 #谷歌的dns
DNS3=202.106.0.20 #北京的DNS。
#重启网络
[root@linux-server ~]# systemctl restart NetworkManager #centos8以后
[root@linux-server ~]# systemctl restart network #centos7
5
前台作业与后台作业
#centos系列
注意:配置静态ip时不能起冲突,可以先在本机ping一下你想要配置的ip,ping得通就不要用,ping超时可以使用。
[root@Linux-server ~]# cd /etc/sysconfig/network-scripts/ #网卡配置文件存放路径
[root@linux-server network-scripts]# cp ifcfg-ens33 ifcfg-ens33.bak #将源文件备份
[root@linux-server network-scripts]# vi ifcfg-ens33 #编辑网卡配置文件
TYPE="Ethernet" #网络类型:以太网类型
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" #默认值none或static 这两种属于静态获取ip地址,dhcp自动获取ip
IPADDR=192.168.93.200 #设置静态ip地址
GATEWAY=192.168.93.2 #设置网关,nat模式网关是2,桥接为1
NETMASK=255.255.255.0 #设置子网掩码
#PREFIX=24
DEFROUTE="yes" #是否设置默认路由,yes表示该配置
NAME="ens33" #网卡名称,可以不存在
DEVICE="ens33" #设备名称
ONBOOT="yes" #开机启动
DNS1=114.114.114.114 #dns全国通用地址,dns最多可以设置三个
DNS2=8.8.8.8 #谷歌的dns
DNS3=202.106.0.20 #北京的DNS。
#重启网络
[root@linux-server ~]# systemctl restart NetworkManager #centos8以后
[root@linux-server ~]# systemctl restart network #centos7
6
#centos系列
注意:配置静态ip时不能起冲突,可以先在本机ping一下你想要配置的ip,ping得通就不要用,ping超时可以使用。
[root@Linux-server ~]# cd /etc/sysconfig/network-scripts/ #网卡配置文件存放路径
[root@linux-server network-scripts]# cp ifcfg-ens33 ifcfg-ens33.bak #将源文件备份
[root@linux-server network-scripts]# vi ifcfg-ens33 #编辑网卡配置文件
TYPE="Ethernet" #网络类型:以太网类型
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" #默认值none或static 这两种属于静态获取ip地址,dhcp自动获取ip
IPADDR=192.168.93.200 #设置静态ip地址
GATEWAY=192.168.93.2 #设置网关,nat模式网关是2,桥接为1
NETMASK=255.255.255.0 #设置子网掩码
#PREFIX=24
DEFROUTE="yes" #是否设置默认路由,yes表示该配置
NAME="ens33" #网卡名称,可以不存在
DEVICE="ens33" #设备名称
ONBOOT="yes" #开机启动
DNS1=114.114.114.114 #dns全国通用地址,dns最多可以设置三个
DNS2=8.8.8.8 #谷歌的dns
DNS3=202.106.0.20 #北京的DNS。
#重启网络
[root@linux-server ~]# systemctl restart NetworkManager #centos8以后
[root@linux-server ~]# systemctl restart network #centos7
7
#centos系列
注意:配置静态ip时不能起冲突,可以先在本机ping一下你想要配置的ip,ping得通就不要用,ping超时可以使用。
[root@Linux-server ~]# cd /etc/sysconfig/network-scripts/ #网卡配置文件存放路径
[root@linux-server network-scripts]# cp ifcfg-ens33 ifcfg-ens33.bak #将源文件备份
[root@linux-server network-scripts]# vi ifcfg-ens33 #编辑网卡配置文件
TYPE="Ethernet" #网络类型:以太网类型
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" #默认值none或static 这两种属于静态获取ip地址,dhcp自动获取ip
IPADDR=192.168.93.200 #设置静态ip地址
GATEWAY=192.168.93.2 #设置网关,nat模式网关是2,桥接为1
NETMASK=255.255.255.0 #设置子网掩码
#PREFIX=24
DEFROUTE="yes" #是否设置默认路由,yes表示该配置
NAME="ens33" #网卡名称,可以不存在
DEVICE="ens33" #设备名称
ONBOOT="yes" #开机启动
DNS1=114.114.114.114 #dns全国通用地址,dns最多可以设置三个
DNS2=8.8.8.8 #谷歌的dns
DNS3=202.106.0.20 #北京的DNS。
#重启网络
[root@linux-server ~]# systemctl restart NetworkManager #centos8以后
[root@linux-server ~]# systemctl restart network #centos7
8
进程管理相关操作
#centos系列
注意:配置静态ip时不能起冲突,可以先在本机ping一下你想要配置的ip,ping得通就不要用,ping超时可以使用。
[root@Linux-server ~]# cd /etc/sysconfig/network-scripts/ #网卡配置文件存放路径
[root@linux-server network-scripts]# cp ifcfg-ens33 ifcfg-ens33.bak #将源文件备份
[root@linux-server network-scripts]# vi ifcfg-ens33 #编辑网卡配置文件
TYPE="Ethernet" #网络类型:以太网类型
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" #默认值none或static 这两种属于静态获取ip地址,dhcp自动获取ip
IPADDR=192.168.93.200 #设置静态ip地址
GATEWAY=192.168.93.2 #设置网关,nat模式网关是2,桥接为1
NETMASK=255.255.255.0 #设置子网掩码
#PREFIX=24
DEFROUTE="yes" #是否设置默认路由,yes表示该配置
NAME="ens33" #网卡名称,可以不存在
DEVICE="ens33" #设备名称
ONBOOT="yes" #开机启动
DNS1=114.114.114.114 #dns全国通用地址,dns最多可以设置三个
DNS2=8.8.8.8 #谷歌的dns
DNS3=202.106.0.20 #北京的DNS。
#重启网络
[root@linux-server ~]# systemctl restart NetworkManager #centos8以后
[root@linux-server ~]# systemctl restart network #centos7
9
losf命令
#查找网络接口
root@ubuntu:~# ip link
#编辑 netplan 配置文件
root@ubuntu:~# vi /etc/netplan/01-netcfg.yaml
network:
version: 2
ethernets:
enp0s3:
dhcp4: no
addresses:
- 192.168.93.201/24
gateway4: 192.168.93.2
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
#配置生效
root@ubuntu:~# netplan apply
0
一次调度执行(at):
主要的用途是定期备份数据
#查找网络接口
root@ubuntu:~# ip link
#编辑 netplan 配置文件
root@ubuntu:~# vi /etc/netplan/01-netcfg.yaml
network:
version: 2
ethernets:
enp0s3:
dhcp4: no
addresses:
- 192.168.93.201/24
gateway4: 192.168.93.2
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
#配置生效
root@ubuntu:~# netplan apply
1
循环调度执行cron 用户级
#查找网络接口
root@ubuntu:~# ip link
#编辑 netplan 配置文件
root@ubuntu:~# vi /etc/netplan/01-netcfg.yaml
network:
version: 2
ethernets:
enp0s3:
dhcp4: no
addresses:
- 192.168.93.201/24
gateway4: 192.168.93.2
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
#配置生效
root@ubuntu:~# netplan apply
2