精华内容
下载资源
问答
  • linux 下 网卡命名改名

    2020-10-16 11:45:35
    目录 背景 一致网络设备命名规范 biosdevname net.ifnames 系统默认命名规则 流程 rename 流程 ...编辑 grub 配置文件 ...Linux 操作系统的网卡设备的传统命名方式是 eth0、eth1、eth2等,而 CentOS7 提

    目录

    背景

    一致网络设备命名规范

    biosdevname

    net.ifnames

    系统默认命名规则

    流程

    rename 流程

    scheme 次序

    用户自定义网卡名称

    内核启动参数biosdevnane、net.ifnames

    biosdevname

    net.ifname

    修改网卡名称

    背景

    流程

    编辑 grub 配置文件

    重新生成 grub 配置文件

    修改网卡配置文件


    Linux 操作系统的网卡设备的传统命名方式是 eth0、eth1、eth2等,而 CentOS7 提供了不同的命名规则,默认是网卡命名会根据网卡的硬件信息,插槽位置等有关;来分配。这样做的优点是命名全自动的、可预知的,缺点是比 eth0、wlan0 更难读,比如 ens33 。

    背景

    服务器通常有多块网卡,有板载集成的,同时也有插在PCIe插槽的。
    Linux系统的命名原来是eth0,eth1这样的形式,但是这个编号往往不一定准确对应网卡接口的物理顺序。

    细心的同学会留意到从centos7开始一些比如ens enp等开头的网卡名称,简单了解,可以解释为centos7开始,网卡命名会根据网卡的硬件信息,插槽位置等有关;
    而网上也有为那些依然想使用ethX方式命名的提供了策略。比如在内核启动参数里增加biosdevname=0 net.ifnames=0;

    为什么centos7不再使用以前的ethX方式?根本是因为之前ethX方式是不确定的,每次启动可能都不同(如果没有用户自定义网卡名称的前提下);

    一致网络设备命名规范

    在centos5的时候,我们习惯了eth0这样的网络设备命名,在centos6发现网络设备变成了em1这样的命名。
    那时我们在安装的时候,给启动参数加上 biosdevname=0,就可以继续使用eth0这样的命名。
    升级到centos7后,发现原有的参数biosdevname=0不起作用了,网络设备变成了eno1这样的名称。
    centos7这种变化的原因是由于systemd和udev引入了一种新的网络设备命名方式:一致网络设备命名(CONSISTENT NETWORK DEVICE NAMING)。
    一致网络设备命名(CONSISTENT NETWORK DEVICE NAMING)规范,支持 biosdevname 和 net.ifnames 两种命名规范。

    biosdevname

    biosdevname 命名规范

    设备

    旧名称

    新名称

    示例

    内嵌网络接口(LOM)

    eth[0123…]

    em[1234…][a]

    em1

    PCI 卡网络接口

    eth[0123…]

    pp[b]

    p3p4

    虚拟功能

    eth[0123…]

    pp_[c]

    p3p4_1

    注: 新枚举从 1 开始。

    net.ifnames

    net.ifnames 命名规范为:设备类型 + 设备位置 + 数字

    设备类型

    • en 代表以太网
    • wl 代表无线局域网(WLAN)
    • ww 代表无线广域网(WWAN)

    设备命名

    格式

    描述

    o<index> :on-board device index number

    板载设备索引号

    s<slot>[f<function>][d<dev_id>]  :hotplug slot index number

    热插拔插槽索引号

    x<MAC>:MAC address

    MAC 地址

    p<bus>s<slot>[f<function>][d<dev_id>]: PCI geographical location

    PCI 地理位置

    p<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>]:USB port number chain

    USB 端口链

    示例

    • eno1 板载1号网卡
    • enp0s2 PCI扩展卡的2号端口
    • ens33 热插拔插槽3号PCI-E插槽的3号端口
    • wlp3s0 第3号PCI扩展卡的0号端口

    系统默认命名规则

    默认情况下,systemd 会使用以下策略,采用支持的命名方案为接口命名:

    • Scheme 1(方案 1): 如果从BIOS中能够取到可用的,板载网卡的索引号,则使用这个索引号命名,例如: eno1,如不能则尝试Scheme 2
    • Scheme 2(方案 2): 如果从BIOS中能够取到可以用的,网卡所在的PCI-E热插拔插槽的索引号,则使用这个索引号命名,例如: ens1,如不能则尝试Scheme 3
    • Scheme 3(方案 3): 如果能拿到设备所连接的物理位置信息,则使用这个信息命名,例如:enp2s0,如不能则尝试Scheme 5
    • Scheme 4(方案 4): 使用网卡的MAC地址来命名,这个方法一般不使用。
    • Scheme 5(方案 5):传统的kernel命名方法,例如: eth0,这种命名方法的结果不可预知的,即可能第二块网卡对应eth0,第一块网卡对应eth1。

    流程

    内核在boot 过程是默认使用ethX方式来命名的,每次启动的时候都不确定,启动会后再通过udev等方式去rename,

    核心流程:明确一点是,linux内核启动过程中,会默认给网卡以ethX方式随机命名,然后再通过systemd去rename成其他名称。关键字,rename!

    rename 流程

    默认rename流程:
    按照如下顺序执行udev的rule
    1./usr/lib/udev/rules.d/60-net.rules
    2./usr/lib/udev/rules.d/71-biosdevname.rules
    3./lib/udev/rules.d/75-net-description.rules
    4./usr/lib/udev/rules.d/80-net-name-slot.rules

    step1 依据/usr/lib/udev/rules.d/60-net.rules, 查看是否有ifcfg-xx配置文件(路径在/etc/sysconfig/network-scripts/),是否有定义了指定MAC地址的配置文件(ifcfg-xx ,xx必须和配置文件的内容DEVICE一致),如果有,则命名该网卡;

    step2 依据/usr/lib/udev/rules.d/71-biosdevname.rules,如果biosdevname使能了(安装了biosdevname这个包,且内核启动参数显式设置为1),且网卡没有在step1中定义,则按照biosdevname命名规则rename网卡;(注意,如果没有安装biosdevname这个包,就没有这个文件)

    step3, 依据/lib/udev/rules.d/75-net-description.rules,将udev工具会根据device属性将填写网卡的属性命名,可能一个网卡会有多个维度的名称哦;

    step4,udev 根据step3中的赋值,按照指定的scheme规则,去给在step1 step2中没有命名的网卡命名;
    强调:这个step顺序是在我们没有自定义自己的rules的前提下,如果用户自定义了自己的rules,则用户自定义为优先级最高;

    scheme 次序

    上面step4中提到,按照指定的scheme规则,这个规则是什么呢?
    首先说step3中,提到按照网卡的不同属性命名,系统识别网卡有好几种维度:  
    比如   BIOS provided index numbers for on-board devices (example: eno1),

    比如:BIOS provided PCI Express hotplug slot index numbers (example: ens1) 

    比如:physical location of the connector of the hardware (example: enp2s0), 

    比如:mac地址
    同一个网卡通常同时具有多个维度的名称,systemd在选取的时候,按照有先后次序,使用先命中的;
    顺序可以简单理解为(eno1-ens1-enp1)

    eth2这个网卡,scheme名称有3个,如果systemd自选,会使用哪个?ens5f0.(那这个为什么是/sys/class/net/eth2 而不是/sys/class/net/ens5f0 ,那是因为自定义的缘故;)

    用户自定义网卡名称

    1、在用户没有自定义rules文件前提下,step1中的网卡命名方式也可认为是 一种用户自定义的网卡命名;即在/etc/sysconfig/network-scripts/ifcfg-xx 文件,xx就是这个网卡名称,文件内容中体现MAC_ADDRESS、NAME,这种情况下,则会按照配置文件中指定的名称来命名网卡;

    2、如果用户自定义了rules文件,放在/etc/udev/rules.d/目录下,则这个优先级是最高的;比1中ifcfg-xx方式优先级更高,但是如果两者不一致,则在重启network服务时,会依据ifcfg-xx,所以用户不应该同时采用里两种方式给同一个网卡命不同的名称;

    /etc/udev/udev.conf是udev主配置文件,用户定制的规则文件在/etc/udev/rules.d目录下。对于网卡设备的配置一般社区约定的是/etc/udev/rules.d/70-persistent-net.rules文件。

    示例内容如下:
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="24:6e:96:03:5c:8d", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

    上述规则内容描述的是在内核发现有网络设备添加时,内核网络设备描述名文eth*格式的设备,变名为eth0.

    内核启动参数biosdevnane、net.ifnames

    默认就是内核启动参数没有biosdevname 也没有net.ifnames 参数;

    其实默认是net.ifnames=1,biosdevname=0;这种情况下就按照rename 中进行网卡命名;eno-ens-enp的方式逐个匹配。
    但是如果使能了biosdevname.则会使用biosdevname的命名 step1没有命名的网卡;要么是em开头,要么是p开头;

    biosdevname

    怎么样使能biosdevname呢?
    2个条件:
    1》安装biosdevname包
    2》在内核启动参数中明确 biosdevname=1. 否则使能不了;
    但是不管怎么样,如果用户自定义了udev rules,则用户自定义的rules优先!
    这是总述,但凡用户自定义rules,优先级最高;

    net.ifname

    内核启动参数net.ifname:
    如果在启动参数中增加net.ifname=0,这个文件会在/lib/udev/rule.d/80-net-name-slot.rules体现使用价值,则告诉系统不用scheme的方式来命名,这个时候,会恢复ethx这种不确定性的命名方式;

    修改网卡名称

    背景

    如果不习惯使用新的命名规则,可以恢复使用传统的方式命名;另外我们在做一些操作的时候,往往需要进行批量处理,如果说每台主机的网卡名都是一样的,这就给我们提供了很大的便利,我们可以进行批处理操作;

    流程

    编辑 grub 配置文件

    vim /etc/sysconfig/grub   # 其实是/etc/default/grub的软连接

    # 为GRUB_CMDLINE_LINUX变量增加2个参数,具体内容如下:GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap net.ifnames=0 biosdevname=0 rhgb quiet"

    重新生成 grub 配置文件

    grub2-mkconfig -o /boot/grub2/grub.cfg

    修改网卡配置文件

    原来网卡配置文件名称为 ifcfg-ens33,这里需要修改为 ethx 的格式,并适当调整网卡配置文件。
    mv /etc/sysconfig/network-scripts/ifcfg-ens33  /etc/sysconfig/network-scripts/ifcfg-eth0# 修改ifcfg-eth0文件如下内容(其它内容不变)
    NAME=eth0
    DEVICE=eth0
    # systemctl restart network.service    # 重启网络服务

    展开全文
  • linux编辑器 vim

    2020-10-07 09:38:25
    vim编辑器 在linux中一切皆文件,而配置一个服务就是在配置文件参数。要对文件进行修改就要有对应的编辑器,这里我们介绍vim...在编辑模式下无法直接进入末行模式,需要先进入命名模式,方法是按esc键。 命名模式是

    vim编辑器

     在linux中一切皆文件,而配置一个服务就是在配置文件参数。要对文件进行修改就要有对应的编辑器,这里我们介绍vim编辑器。vim编辑器提供了三种操作模式:命令模式,编辑模式,末行模式。
     命令模式:控制光标移动,可以进行复制,粘贴,删除,查找。
     编辑模式:文本输入。
     末行模式:保存退出。
     当运行vim编辑器时默认是命令模式,进入编辑模式只需要输入A I O a i o 任意一个。进入末行模式需要输入:。在编辑模式下无法直接进入末行模式,需要先进入命名模式,方法是按esc键。 命名模式是一个中介点。
    

    vi编辑器使用

    	命令模式
    			光标移动   上下左右键
    			行内跳转    ^ 0  $
    			行间跳转	G gg  1G  #G
    			翻页		Ctrl+F    Ctrl+B
    			删除 剪贴 dd  删除光标所在行
    			复制 yy  复制光标所在行
    			粘贴 p    将剪贴和复制的数据粘贴在光标后。
    	输入模式
    			新增:
    					a:从光标位置后面开始新增
    					A:从光标所在行的末尾开始新增
    			插入:
    					i:从光标所在位置之前开始插入
    					I:从光标所在行的第一个非空字符前开始插入
    			开始:
    					o:光标所在行的下一行开始插入
    					O:光标所在行的上一行开始插入
    
    	末行模式
    			w:保存
    			q:退出
    			wq:保存并退出
    			q!
    			wq!
    
    展开全文
  • linux中退出的命名

    2019-09-11 10:38:13
    ctrl+z ,退出正在执行的某些程序,如大文件预览more命令下几万行一直加载。 ctrl+q , 退出vim编辑器卡死状态。 exit , 退出数据库mysql,退出当前用户等。 ...

    ctrl+z ,退出正在执行的某些程序,如大文件预览more命令下几万行一直加载;如cat -n /var/log/cron查看定时任务的日志 。
    ctrl+q , 退出vim编辑器卡死状态。
    exit , 退出数据库mysql,退出当前用户等。

    展开全文
  • Linux中如何保存未命名vim

    千次阅读 2018-01-18 11:37:26
    Linux中如何保存未命名vim 在学习linux中的vim命令时,当我们需要创建文件并输入内容时,我们使用命令如: 1、vim test.txt 2、按下i(insert)进入输入模式,开始编辑内容 3、内容完成后,按下esc按钮,退出...

    Linux中如何保存未命名vim
    在学习linux中的vim命令时,当我们需要创建文件并输入内容时,我们使用命令如:
    1、vim test.txt
    这里写图片描述
    2、按下i(insert)进入输入模式,开始编辑内容
    3、内容完成后,按下esc按钮,退出输入模式
    4、输入:wq退出vi
    5、输入ls查看刚才输入的文件名
    6、cat test.txt进入文件,查看内容

    这里写图片描述

    但是我们有时候会直接输入vim命令进入编辑模式,当编辑完文件后,保存时会提醒E32:No file name。如何保存未命名vim?原因就是我们进入时没有输入文件名,退出时就报错了。

    这里写图片描述

    下面介绍方法:
    1、输入完成后按下esc退出输入模式
    2、输入 :w +”文件路径及文件名称”,然后回车 ;如 :w ~/test.txt

    这里写图片描述

    3、输入:wq退出vi
    4、输入ls查看刚才输入的文件名
    5、cat test.txt进入文件,查看内容

    这里写图片描述

    展开全文
  • linux文档编辑

    2013-08-23 13:34:00
    如果没有文档而且你又想编辑就可以直接编辑vi aa【名字你可以随便命名】; 也可以先建立一个文档touch aa 然后再编辑vi aa。 编辑器有三种模式:1 命令行模式 2 末行模式 3 输入模式;按Esc: 就可以进入命令行...
  • 按 i 进入编辑模式,然后就可以输入内容了,也可以移动光标到你要删除内容的位置按删除键来删除内容。编辑完后可以按 Esc(键盘左上角) 进入命令模式。然后按 shift+ : 进入末行模式。在末行模式下输入wq 回车 就能...
  • 这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、...
  • 解析如何使用Linux命令下复制和重命名文件2018-06-29 13:18:452019浏览在现如今,随着互联网技术飞速的发展和进步,目前大多数便于语言都会涉及到命名,比如在Linux上如何复制和重命名文件呢?下面我们一起来看一下...
  • Linux的代码脚本编辑器有很多种,接下来分析解说只针对Vmware(Linux5)编辑器。 1、打开vm编辑器命令终端。 2、在终端提示框中输出vi +文件名+.c (注:test只是一个文件的命名,命名可以根据自己所需命名) vi.test....
  • Linux之文本基础编辑

    2018-08-03 11:48:23
    在Redhat以及centos的版本里自带一款非常好用、强大的文本编辑...使用vim命令可以轻松创建一个文本文档,命名方式可以自由命名。 当进入vim文本编辑模式后,有三种模式:插入模式、命令模式以及末行模式。 通过vi...
  • linux下vi编辑文件

    2015-06-25 23:15:47
    vi 文件名称,进入读文件模式 按i进入编辑模式 按Esc退出编辑模式 :q退出 :wq保存退出 以上命名后面加上!表示强制执行
  • linux vi编辑器(记事本)

    2019-04-22 20:49:34
    命名模式标志: 尾行模式标志: 文件被非法关闭会形成备份文件,先删除该备份文件(否则该文件禁止修改),再做具体操作 2.切换到编辑模式 3.尾行模式操作 4.命令模式操作 4.1 光标移动 4.2 内容删除、复制...
  • 十六进制编辑器可以让你以十六进制的形式查看/编辑文件的二进制数据,因此其被命名为“十六进制”编辑器。说实话,并不是每个人都需要它。只有必须处理二进制数据的特定用户组才会使...
  • linux GCC与Vi编辑

    2017-06-14 19:50:14
    最近在网上找了些视频,自学了一点Linux环境下,C编程的方法。...在Linux终端里直接输入vim即可(此时没有给该文件命名,)进入后会看到些信息,按I(insert)建即可,此时为插入模式,在里面敲那些代码就
  • vim 回车 编辑命名的文件,需要在退出时命名文件名。 vim newfile 回车 编辑一个新文件newfile vim oldfile 回车 编辑一个已有的文件oldfile vim +n oldfile 回车 把光标定位在第n行 vim file1 file2 file3 ……...
  • Linux下的vim编辑器的初使用 1.打开终端: 建议在su下(root下编辑或修改文件和保存文件) vim #回车就进入vim编辑器了,但是文件未命名,也没有保存路径。 vim /usr/bin/pythonxgj/120.txt #说明文件名是120.txt...
  • 在命令终端,进入vi模式下的编辑模式后,编辑完vim文件,想要保存并退出时,会提示错误: 处理方式: 编辑完vim文件后,shift + :进入最后一行模式,输入:file 文件名.文件类型,回车 提示ab.txt文件已经...
  • Linux之vi编辑器的学习

    2020-08-12 23:01:30
    1.vi 需要在保存时进行文件命名 :wq a.txt 2.vi+文件名 使用vi编辑器打开a.txt 如果a.txt存在则打开 如果不存在 则创建后再打开 3.vi +number a.txt 使用vi打开a.txt 并将光标置于number行 b.三种模式 ...
  • Linux的vim文本编辑

    2018-03-28 11:31:21
    1. 请把/etc/init.d/iptables 复制到/root/目录下,并重命名为test.txt:cd /etc/init.d cp iptables /root/test.txt2. vim打开test.txt并设置行号:vim test.txt :set number3. 分别向下、向上、向左、向右移动5个...
  • 而在每个用户的主目录下,都可以建立私有的配置文件,命名为:“.vimrc”。下面以普通用户为例:在用户主目录下建立 .vimrc 文件或直接下载高手写好的 移动到自己主目录下即可下载vimrc.zip,解压后的文件为....
  • Linux VI编辑器配置

    2011-04-01 17:38:00
    而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件。   2、设置语法高亮显示 <br /> 1) 打开vimrc,添加以下语句来使得...
  • vi xxx文件 / vim xxx文件:使用 vi / vim 编辑器打开文件,文件需要加文件扩展名 三种模式 一般模式(默认模式) 编辑模式 命名模式 1. 一般模式命令 2. 编辑模式 3. 命令模式 ...
  • 碎片文件的命名类似“xx00”,“xx01”。csplit命令是split的一个变体,split只能够根据文件大小或行数来分割,但csplit能够根据文件本身特点来分割文件。语法csplit(选项)(参数)选项-b&lt;输出格式&gt;或--...
  • 编辑完成后,输入 : ,最下方一行出现一个命令行等待用户输入,其中,:q 表示退出,:w 表示保存,:w [文件名] 可以为文件命名,:wq 组合使用为保存并退出,当不保存直接选择退出时系统会提示,若想放

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 538
精华内容 215
关键字:

linux编辑命名

linux 订阅