- 通过网络配置命令,让主机可以上网。
要配置主机能够上网,需要设置以下内容:
ip 地址
子网掩码 (netmask)
默认网关 (gateway)
DNS 服务器地址 (dns)
主机名 (hostname)
设置 IP 地址
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 up
设置默认网关
sudo route add default gw 192.168.1.1
编辑 /etc/resolv.conf 设置 DNS
sudo nano /etc/resolv.conf
添加
nameserver 8.8.8.8
nameserver 8.8.4.4
设置主机名
sudo hostnamectl set-hostname myhostname
- 解析 /etc/sysconfig/network-scripts/ifcfg-eth0 配置格式。
该配置文件用于设置网络接口(如 eth0)的网络参数。
常见字段:
DEVICE=eth0:指定设备名
BOOTPROTO=dhcp:DHCP自动获取IP(静态IP可设为static)
IPADDR=192.168.1.100:指定静态IP地址
NETMASK=255.255.255.0:子网掩码
GATEWAY=192.168.1.1:默认网关
DNS1=8.8.8.8:DNS服务器
- 基于配置文件或命令完成 bond0 配置。
bond0 配置用于将多个网络接口聚合为一个虚拟接口。配置步骤:
编辑 /etc/sysconfig/network-scripts/ifcfg-bond0 文件:
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
BONDING_OPTS="mode=1 miimon=100"
配置网络接口(如 eth0 和 eth1):
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
ONBOOT=yes
/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
ONBOOT=yes
重启网络服务:
sudo systemctl restart network
- 通过 ifconfig 命令结果找到 IP 地址。
运行 ifconfig 命令后,查找对应接口(如 eth0)下的 inet 字段:
ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
inet 后面的地址(如 192.168.1.100)即为该接口的 IP 地址。
- 使用脚本判断你主机所在网络内在线的主机IP有哪些?ping通则在线。
network="192.168.1"
for ip in {1..254}; do
ping -c 1 -W 1 {ip} > /dev/null
if [ {network}.${ip} is online"
fi
done
- 使用 while read line 和 /etc/passwd,计算用户 ID 总和。
sum=0
while IFS=: read username password uid gid full_name home shell
do
sum=sum"
- 总结索引数组和关联数组,字符串处理,高级变量使用。
索引数组:
arr=("apple" "banana" "cherry")
echo{fruits["apple"]} # 输出 "red"
字符串处理:
string="Hello World"
echo{#var} # 输出字符串长度
- 求10个随机数的最大值与最小值。
max=0
min=100
for i in {1..10}
do
num=num
if ((num > max)); then
max=num
fi
done
echo "Max:min"
- 使用递归调用,完成阶乘算法实现。
factorial() {
if [ $1 -le 1 ]; then
echo 1
else
local temp=1 - 1 ))
local result=temp)
echo 1 * result ))
fi
}
echo $(factorial 5)
- 解析进程和线程的区别?解析进程的结构。
进程:独立的程序实例,拥有自己的内存空间、资源等。
线程:进程内的执行单元,共享进程的内存和资源。
进程结构:
PCB(进程控制块):保存进程的状态、寄存器、堆栈等信息。
内存空间:代码段、数据段、堆、栈等。 - 结合进程管理命令,说明进程各种状态。
运行状态:进程正在执行。
就绪状态:进程等待CPU资源。
阻塞状态:进程等待I/O操作或事件。
僵尸状态:进程已经结束,但父进程尚未回收其资源。 使用 ps, top 等命令可以查看进程状态。 - 说明 IPC 和 RPC 通信实现的方式。
IPC(进程间通信):
管道(Pipe)、消息队列(Message Queue)、共享内存(Shared Memory)、信号量(Semaphore)等。
RPC(远程过程调用):
使用 RPC 机制,可以在一台计算机上调用另一台计算机上的程序,通常基于TCP/IP协议。 - 总结 Linux,前台和后台作业的区别,并说明如何在前台和后台中进行状态转换。
前台作业:用户直接交互执行,终端控制。
后台作业:在后台运行,终端不控制。
状态转换:
在前台运行命令后加 & 可转为后台作业。
使用 bg 将已暂停的作业转为后台。
使用 fg 将后台作业调回前台。 - 实现定时任务,每日凌晨1点,删除指定文件。
使用 crontab
0 1 * * * rm /path/to/file
- 实现定时任务每月月初对指定文件进行压缩。
使用 crontab
0 0 1 * * tar -czf /path/to/compressed_file.tar.gz /path/to/file
- 完成鸡兔问题的解决。
for chicken in {0..30}
do
rabbit=chicken, 兔: $rabbit"
fi
done
- 使用 for 循环批量创建100个用户。
for i in {1..100}
do
if id "useri already exists"
else
sudo useradd "useri added"
fi
done
- 练习 top, htop, iotop, iostat 工具的使用。
这些工具用于系统资源监控:
top:显示当前进程的实时信息。
htop:类似 top,但提供彩色界面和更多交互选项。
iotop:监控磁盘I/O。
iostat:查看CPU和磁盘的I/O统计信息。
- 练习 awk 的使用。
awk '{print $1}' /etc/passwd