前言
Linux开机的时候,有时候我们希望自动运行一些默认配置,例如:网口的IP地址配置,交叉编译环境配置等。本文记录两种配置方法。
一、/etc/rc.local
将需要运行的shell命令添加到/etc/rc.local
文件末尾。
vi /etc/rc.local
//打开文件后,在末尾添加指令
注意:ubuntu18.04没有rc.local文件,参考第3小节。
二、~/.bashrc
将需要运行的shell命令添加到~/.bashrc
文件末尾,每次打开shell终端的时候生效。
vim ~/.bashrc
//打开文件后,在末尾添加指令
三、Ubuntu18.04方法
Ubuntu 18.04不再使用initd管理系统,改用systemd,包括用systemctl命令来替换了service和chkconfig的功能。
systemd 默认读取 /etc/systemd/system 下的配置文件,该目录下的文件会链接 /lib/systemd/system/下的文件。
不同于以往的版本,ubuntu18.04默认不带/etc/rc.local文件,我们需要通过配置来让rc.local.service生效。然后我们就可以像以前那样,直接把启动脚本写入/etc/rc.local文件,这样机器启动时就会自动运行它。
- 检查系统目录/lib/systemd/system/rc-local.service,如果没有就自己新建文件。文件内容如下(如果文件存在本身是没有[Install]项的,需要自己添加进去):
#### 文件中本身就有的
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no
#### 需要自己添加
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
- 创建/etc/rc.local脚本文件,并写入想要运行的脚本程序。
#!/bin/bash
# 设置eth0 默认IP
ifconfig eth0 192.168.1.1
- 给rc.local执行的权限
sudo chmod +x /etc/rc.local
- 启用服务
sudo systemctl enable rc-local
//执行后会生成/etc/systemd/system/rc-local.service
sudo systemctl start rc-local.service
sudo systemctl status rc-local.service
- 查看效果
// 查看ip地址是否修改了
$ ifconfig
- 重启验证
重启后,查看ip地址是否正确。
$ ifconfig eth0 192.168.2.1 //手动修改ip地址
$ sudo reboot //重启后查看ip地址是否为192.168.1.1
- 这个时候就可以按照第1节的方法修改
/etc/rc.local
文件了。