本来不想写ubuntu装机步骤的,因为网上很多人已经写了,但是每次装机都要到处百度,而且还是手工操作,这个完全不符合,我这种懒人的性质,能用脚本的为什么不用脚本,老是要敲命令行,还要等,浪费时间。
我们是先介绍手工的操作方法,然后再写成脚本的方式,这样也好更清楚明白。
我这里使用的是ubuntu mate 18 32bit系统,其他系统不保证能运行,哈哈哈
我们是利用脚本去执行的,所以第一步需要上传脚本到虚拟机。
拷贝脚本到虚拟机有很多种方法,
然后就直接执行这个脚本,一些需要的软件就会自动安装,当然我们现在脚本还没开始写,执行脚本也不会有什么反应,接下来就是这个自动安装的脚本的实现。(当然如果需要脚本的,自己拉到文章末尾,自行下载)
一般我们装机的时候,默认是自己创建的用户,还没有root用户,所以需要创建一个root账号。
输入命令sudo passwd,然后就输入一连串的密码,不过密码都是一样的,只是确认几次密码,
设置成功后,就开启了root权限了,这一步我试了要写成脚本,结果还是实现不了,技术不够强。
sudo passwd
[sudo] password for chen:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
国外的源也是可以使用的,只不过是有点慢,所以要添加国内的软件源。
下面有一个博客就写了国内的软件源:
https://blog.csdn.net/shanpenghui/article/details/80433555
下面是引用这篇博客的:
1、输入命令修改sources.list文件,当然需要超级权限,所以要加sudo;
sudo gedit /etc/apt/sources.list
编辑/etc/apt/sources.list文件
2、在文件最前面添加以下条目(操作前请做好相应备份):
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
3、修改完成后,保存文件,警告什么的都不理,然后运行下面的命令。
sudo apt-get update
sudo apt-get upgrade
4、到此完成国内源更新。
附加其他源内容,需要的自己添加进sources.list文件里面就ok了。
阿里源:
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
脚本实现就利用到了sed 命令,这里我参考了一篇sed命令的博客:
https://blog.csdn.net/caoshuming_500/article/details/8852514
按照这个博客,我们可以在sources.list里面插入这几行数据,脚本如下:
#2.更新软件源
#2.1 备份sources.list
cp /etc/apt/sources.list /etc/apt/sources.list.bak#2.2 插入软件源的路径
sed -i -e '3 a\deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse\ndeb-src https://mirrors.tuna.tsinghua.edu.cn/
ubuntu/ bionic main restricted universe multiverse\ndeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse\nd
eb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse\ndeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ b
ionic-backports main restricted universe multiverse\ndeb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiv
erse\ndeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse\ndeb-src https://mirrors.tuna.tsinghua.edu.cn/u
buntu/ bionic-security main restricted universe multiverse\ndeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe mult
iverse\ndeb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse\n' /etc/apt/sources.listsed -i -e '$ a\deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse\ndeb http://mirrors.aliyun.com/ubuntu/ bionic-security ma
in restricted universe multiverse\ndeb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse\ndeb http://mirrors.aliyun.com
/ubuntu/ bionic-proposed main restricted universe multiverse\ndeb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse\n
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse\ndeb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restr
icted universe multiverse\ndeb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse\ndeb-src http://mirrors.aliyun.com
/ubuntu/ bionic-proposed main restricted universe multiverse\ndeb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiver
se\n' /etc/apt/sources.list#2.3 更新软件源
echo 'yes' | sudo apt-get update
echo 'yes' | sudo apt-get upgrade
我们在使用的时候有时候也会经常使用vi,所以要更新一个新的vi,是很有必要的。
脚本如下:
#3.更新vi
echo 'yes' | sudo apt-get install vim
为什么把ssh放到这么前面,是因为我在写这个脚本的时候,虚拟机老是卡死,真不好用,所以先把ssh安装好用windows登入进去操作,这样会方便很多。
#4.安装ssh
#4.1 安装ssh包
echo 'yes' | sudo apt-get install openssh-server openssh-client
手动操作的步骤:
在ubuntu系统中,默认是不开启ssh使用root用户登陆的,在/etc/ssh/sshd_config配置文件中如下配置:
Authentication:
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
很多时候需要允许root用户登陆,需要将PermitRootLogin without-password修改为PermitRootLogin yes.然后重启ssh,sudo service ssh restart.这样就可以使用root用户登陆了
参考博客:https://blog.csdn.net/mier9042/article/details/80449416
脚本操作如下:
//我的Ubuntu18已经默认支持root用户登陆了,这里就不写脚本了,写的话也是用sed命令来修改sshd_config里面的内容
安装samba服务器参考的是这一篇文章
https://www.linuxidc.com/Linux/2018-11/155466.htm
先讲一下手工操作:
下面是脚本操作,由于我目前还不会创建账号密码的时候利用脚本,所以一个步骤要手动输入
#5.安装Samba
#5.1 安装Samba软件包
echo 'yes' | sudo apt-get install samba samba-common#5.2 添加Samba用户和密码,这个做不了自动(需要手动,以后改正)
echo '123456' | sudo smbpasswd -a root#5.3 开启共享目录
sed -i -e '$ a\[share]\ncomment = share folder\nbrowseable = yes\npath = \/\ncreate mask = 0700\ndirectory mask = 0700\npublic = yes \navailable = yes \n
writable = yes\n' /etc/samba/smb.conf#5.4 重启Samba服务器
sudo service smbd restart
安装tftp服务器,参考自朱老师的《嵌入式开发环境搭建-基于14.04.pdf》
还是先手动操作:
安装 tftp
sudo apt-get install tftp-hpa tftpd-hpa xinetd
配置/etc/xinetd.conf
配置相关服务文件。进入根目录下的 etc 文件夹(cd /etc/),首先看目录中有没有一个
xinetd.conf 文件,如果没有则新建一个,有的话查看内容,看是否与下面的一致,若不一致则
修改,内容如下:
#Simple configuration file for xinetd
Some defaults, and include /etc/xinetd.d/
defaults
{#
Please note that you need a log_type line to be able to use log_on_success
#and log_on_failure. The default is the following :
#log_type = SYSLOG daemon info
}
includedir /etc/xinetd.d
3. 配置/etc/default/tftpd-hpa
配置 tftp 服务器
命令:
sudo vim /etc/default/tftpd-hpa
将内容修改成
#/etc/default/tftpd-hpa
TFTP_USERNAME=“tftp”
TFTP_DIRECTORY="/tftpboot"
#这是你 tftp 服务器的工作目录,自行修改,注意,在新建工作目录时,最好修改其权限为 777,
命令 sudo chmod 777 /tftpboot
TFTP_ADDRESS=“0.0.0.0:69”
TFTP_OPTIONS="-l -c -s"
接下来是脚本操作:
#7.安装tftp服务器
#7.1 安装tftp软件包
echo 'yes' | sudo apt-get install tftp-hpa tftpd-hpa xinetd#7.2 配置/etc/xinetd.conf
#不过默认已经配好了,不要再配#7.3 配置/etc/default/tftpd-hpa
sed -i 's/TFTP_DIRECTORY="\/var\/lib\/tftpboot"/TFTP_DIRECTORY="\/root\/tftpboot"/g' /etc/default/tftpd-hpa
sed -i 's/TFTP_OPTIONS="--secure"/TFTP_OPTIONS="-l -c -s"/g' /etc/default/tftpd-hpa#7.4 配置/etc/xinetd.d/tftp
echo "service tftp
{
socket_type = dgram
wait = yes
disable = no
user = root
protocol = udp
server = /usr/sbin/in.tftpd
server_args = -s /root/tftpboot
#log_on_success += PID HOST DURATION
#log_on_failure += HOST
per_source = 11
cps =100 2
flags =IPv4
}" > /etc/xinetd.d/tftp#7.5 修改权限
sudo mkdir /root/tftpboot
sudo chmod 777 /root/tftpboot#7.6 重启服务
sudo service tftpd-hpa restart
sudo /etc/init.d/xinetd reload
sudo /etc/init.d/xinetd restart
安装nfs,参考自朱老师的《嵌入式开发环境搭建-基于14.04.pdf》
还是先手动操作:
nfs比tftp步骤少了很多
下面是脚本操作:
#8.安装nfs
#8.1 安装nfs软件包
echo 'yes' | sudo apt-get install nfs-kernel-server nfs-common#8.2 配置/etc/exports
sed -i -e '$ a\/root *(rw,sync,no_root_squash,no_subtree_check)' /etc/exports
sudo showmount -e
sudo exportfs -r
sudo showmount localhost -e#启动nfs
sudo /etc/init.d/nfs-kernel-server restart
ubuntu的2018版本修改静态ip已经跟2016有很多不同了,下面参考了这篇博客
https://ywnz.com/linuxjc/1491.html
先手动操作:
sudo nano /etc/netplan/01-cloud-init.yaml,配置文件可按如下内容修改:
network:
version: 2
renderer: networkd
ethernets:
ens33: #配置的网卡名称
dhcp4: no #dhcp4关闭
dhcp6: no #dhcp6关闭
addresses: [192.168.121.188/24] #设置本机IP及掩码
gateway4: 192.168.121.1 #设置网关
nameservers:
addresses: [114.114.114.114, 8.8.8.8] #设置DNS
下面是脚本操作:
脚本需要获取ip、网关还是网卡的名称,所以比较多
#9.修改静态ip
#9.1 备份/etc/netplan/01-network-manager-all.yaml
mv /etc/netplan/01-network-manager-all.yaml /etc/netplan/01-network-manager-all.yaml.bak#9.2 修改成静态地址
#9.2.1 获取网卡名称
net='eth0'
net=$(ifconfig | awk -F'[ :]+' '!NF{if(eth!=""&&ip=="")print eth;eth=ip4=""}/^[^ ]/{eth=$1}/inet addr:/{ip=$4}')
net1=$(echo $net | cut -d " " -f 1)
echo $net1
#9.2.2 获取ip地址,并修改成一个固定的ip(目前写死的188)
ipaddr='172.0.0.1'
ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}')
ipaddr1=${ipaddr%\.*}
ipaddr=$ipaddr1.188
echo $ipaddr
#9.2.3 获取网关ip(目前先这样用)
gateway=$(route -n | awk '/UG/{print $2}')
echo $gateway
#9.2.4 输入到/etc/netplan/01-network-manager-all.yaml文件中
echo "network:ethernets:$net1:addresses: [$ipaddr/24, ]dhcp4: nodhcp6: nogateway4: $gatewaynameservers:addresses: [8.8.8.8, 9.9.9.9]" > /etc/netplan/01-network-manager-all.yaml#9.2.5 重启网络
netplan apply
安装到这里的话,应该基本完成了,不过你要添加其他软件也是可以的,可以在这里添加安装其他软件的命令。
我这里添加了3个安装其他软件的命令
#10.安装其他软件
#10.1 安装gcc
echo 'yes' | sudo apt-get install gcc#10.2 安装make
echo 'yes' | sudo apt-get install make#10.3 安装git
echo 'yes' | sudo apt-get install git
装了这么多软件了,还是要重启一些,保证每一个软件都能生效。不过也可以屏蔽掉
#11.重启
# reboot
总结:现在这个脚本还不能完全自动化,需要创建账号和输入密码的时候需要手动输入。(创建root用户的时候,需要手动,还有Samba创建用户的时候也需要手动)第二个是Samba的参数填写的还不对,现在是公共登录的,这个需要改(我回去看下我另一台电脑的虚拟机就知道了),今天先这样。
github路径:https://github.com/1033177205/scriptCongregation/tree/master/installUbuntuSoftware
以后会修改这几个问题,慢慢完善,有什么不对的对方和有什么建议都可以留言。