一、通过网络配置命令,让主机可以上网。 ip, netmask, gateway, dns,主机名。相关命令总结,最终可以通过这些配置让你的主机上网。
添加一块网卡,并指定NAT模式
Red Hat 系列网卡配置:
网卡配置文件:存在于 /etc/sysconfig/network-scripts/ 目录中,以 ifcfg-XXX 的格式来命名 路径是固定的,文件命名规则也是固定的
Ubuntu网卡配置:
网卡配置文件存在于 /etc/netplan/ 目录中,以 XXX.yaml 的格式来命名,路径是固定的,文件命名规则也是固定的
网卡生效:
nmcli connection;nmcli connection reload;nmcli connection up con-eth1;nmcli connection
ubuntu让网卡生效:
netplan apply
网络配置命令:
修改主机名
hostname 是临时有效,重启后消失
hostnamectl set-hostname ubuntu-m57 会写进 /etc/hostname 文件里面,永久有效
ifconfig 命令
#常用选项
-a #显示所有
-s #以短格式显示
-v #显示详细错误信息
#常用子命令
add #给设备添加IPV6地址
del #删除IPV6地址
up #启用设备
down #禁用设备
route 命令
route #查看路由表
route -n #查看路由表,以IP格式显示
#目标:192.168.1.3 网关:172.16.0.1
route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0 route add -net
192.168.0.0/24 gw 172.16.0.1 dev eth0
#目标:192.168.1.3 网关:172.16.0.1
route del -host 192.168.1.3
#目标:192.168.0.0 网关:172.16.0.1
route del -net 192.168.0.0 netmask 255.255.255.0
netstat 命令
netstat -nr #以IP格式显示路由表
netstat -tulnp #仅显示Listen 状态的TCP,UDP连接,并显示进程ID和程序
ip命令
ip link #主要用来查看链路层信息
ip link set eth1 down #禁用网卡
ip link set eth1-test up #启用
ip address show eth1 #查看网卡
ip address add 10.0.0.110/24 dev eth1 #向设备添加IP地址
ip a del 10.0.0.119/24 dev eth1 #删除IP
ip a change 10.0.0.137/24 dev eth1 preferred_lft 30 valid_lft 30 #添加IP,30S生命周期
ip a flush dev eth1 #清除网卡上所有IP
ss 命令
ss -n #以IP的格式显示所有连接数据
ss -tunlp #显示所有处于监听状态的TCP,UDP连接,并显示程序和进程ID
网络配置工具 nmcli
nmcli con 或者 nmcli con show #查看网络连接
nmcli con show eth1 #查看指定设备
nmcli con del con-eth1 #删除连接
nmcli con up con-eth1 #启用
nmcli con down con-eth1 #禁用
nmcli connection reload #刷新
二、解析/etc/sysconfig/network-scripts/ifcfg-eth0配置格式。
三、基于配置文件或命令完成bond0配置
创建bond配置文件:
#创建网卡配置文件:
网卡生效:nmcli con;nmcli con reload;nmcli con
四、通过ifconfig命令结果找到ip地址
ifconfig | sed -En "s/ +inet +([0-9.]+).*/\1/p"
五、使用脚本判断 你主机所在网络内在线的主机IP有哪些? ping通则在线。
六、 使用while read line和/etc/passwd,计算用户id总和。
七、总结索引数组和关联数组,字符串处理,高级变量使用及示例。
#普通数组可以不事先声明,直接使用
declare -a ARRAY_NAME
#关联数组必须先声明,再使用
declare -A ARRAY_NAME
关联数组与普通数组,索引数组的区别:
关联数组要先声明,才能使用,普通数组可以不用声明
关联数组可以自定义下标,普通数组必须用数字
索引数组:
一次只赋值一个元素 weekdays[0]="Sunday"
一次赋值全部元素 title=("ceo" "coo" "cto")
关联数组:
格式:
declare -A ARRAY_NAME
ARRAY_NAME=([idx_name1]='val1' [idx_name2]='val2‘...)
字符串处理:
基于偏移量取字符串
基于模式取子串
查找替换
查找并删除
字符大小写转换
变量扩展
高级变量:
八、求10个随机数的最大值与最小值。
九、使用递归调用,完成阶乘算法实现。
十、解析进程和线程的区别? 解析进程的结构。
解析进程和线程的区别:
进程是操作系统分配资源的最小单位;
线程是程序执行的CPU调度的最小单位;
一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线;
进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段、数据集、堆等)及一 些进程级的资源(如打开文件和信号),某进程内的线程在其它进程不可见;
调度和切换:线程上下文切换比进程上下文切换要快得多
解析进程的结构:
每个进程都有自己的资源,由操作系统分配,内存,栈,文件描述符
进程的组成:进程一般由程序、数据集合和进程控制块三部分组成
十一、结合进程管理命令,说明进程各种状态。
运行态:running
就绪态:ready
睡眠态:分为两种,可中断:interruptable,不可中断:uninterruptable
停止态:stopped,暂停于内存,但不会被调度,除非手动启动
僵死态:zombie,僵尸态,结束进程,父进程结束前,子进程不关闭,杀死父进程可以关闭僵死 态的子进程
十二、说明IPC通信和RPC通信实现的方式。
十三、总结Linux,前台和后台作业的区别,并说明如何在前台和后台中进行状态转换。
前台作业:前台进程,跟终端相关,通过终端启动的进程,且启动后一直占据终端。
后台作业:守护进程: daemon,在系统引导过程中启动的进程,和终端无关进程,可以通过终端启动,但启动后即转入后台运行(释放终端)。
让作业运行于后台:
1. 运行中的作业: Ctrl+z
2. 尚未启动的作业: COMMAND &
送往后台 后,剥离与终端的关系:
nohup COMMAND &>/dev/null &
screen;COMMAND
tmux;COMMAND
把后台作业调到前台:
#把指定的后台作业调回前台
fg [[%]JOB_NUM]
十四、实现定时任务,每日凌晨1点,删除指定文件(自己创建即可)
十五、实现定时任务每月月初对指定文件进行压缩(自己创建文件)