系统安装镜像下载地址:http://mirrors.aliyun.com/ubuntu-releases/
服务器版本(不需要图形化界面不选择desktop包)可以选择:http://mirrors.aliyun.com/ubuntu-releases/20.04.1/ubuntu-20.04.1-live-server-amd64.iso
这里实在虚拟机中安装,将iso挂载到虚拟机的cdrom
启用ssh服务,允许远程连接,不导入ssh key,
其他功能软件列表,默认即可,Done
切换到root用户
dev@ubuntu:~$ sudo su - root
[sudo] password for dev:
root@ubuntu:~#
修改sshd配置
root@ubuntu:~# vim /etc/ssh/sshd_config
#PermitRootLogin prohibit-password
PermitRootLogin yes
###省略部分文件内容,设置PermitRootLogin为 yes
重启sshd生效
root@ubuntu:~# systemctl restart sshd
#设置root密码
root@ubuntu:~# passwd
New password:
Retype new password:
passwd: password updated successfully
经过以上设置root可以直接远程ssh登录了
可以通过以下方式查看系统信息
root@ubuntu:~# cat /etc/issue
Ubuntu 20.04.1 LTS \n \l
root@ubuntu:~# cat /proc/version
Linux version 5.4.0-58-generic (buildd@lcy01-amd64-004) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #64-Ubuntu SMP Wed Dec 9 08:16:25 UTC 2020
root@ubuntu:~# uname -a
Linux ubuntu 5.4.0-58-generic #64-Ubuntu SMP Wed Dec 9 08:16:25 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
root@ubuntu:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.1 LTS
Release: 20.04
Codename: focal
root@ubuntu:~# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS"
系统日志配置文件,修改后需要重启服务systemctl restart rsyslog
root@ubuntu:~# vim /etc/rsyslog.d/50-default.conf
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
#cron.* /var/log/cron.log
#daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
#lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
#user.* -/var/log/user.log
###省略部分内容###
日志记录内容 | 日志路径 |
---|---|
auth,authpriv.* 登陆、认证相关 | /var/log/auth.log |
.;auth,authpriv.none 系统,认证 | /var/log/syslog |
kern.* 内核 | /var/log/kern.log |
mail.* 邮件相关 | /var/log/mail.log |
软件包安装日志 | /var/log/dpkg.log |
开机日志 | /var/log/dmesg |
logger命令使用,作用向日志文件中写入内容:
root@ubuntu:~# logger 'Hello World' && tail -n5 /var/log/syslog
Dec 25 00:30:16 ubuntu multipathd[601]: sda: add missing path
Dec 25 00:30:16 ubuntu multipathd[601]: sda: failed to get udev uid: Invalid argument
Dec 25 00:30:16 ubuntu multipathd[601]: sda: failed to get sysfs uid: Invalid argument
Dec 25 00:30:16 ubuntu multipathd[601]: sda: failed to get sgio uid: No such file or directory
Dec 25 00:30:16 ubuntu root: Hello World
查看服务开机耗时
systemd-analyze blame
Ubuntu的软件包管理系统源自Debian GNU / Linux发行版所使用的系统。Debian软件包文件通常具有扩展名.deb,软件包通常采用预编译的二进制格式。因此安装很快,不需要编译软件。
linux 发行版 | 软件包管理机制 | 相关命令 | 在线安装命令 |
---|---|---|---|
Debian/ubuntu | dpkg | dpkg | apt、pt-get |
格式为:Package_Version-Build_Architecture.deb 如:nano_1.3.10-2_i386.deb
平台(Architecture):i386 、amd64
软件包相关的系统文件
路径 | 作用 |
---|---|
/etc/dpkg/dpkg.cfg | dpkg包管理软件的配置文件 |
/var/log/dpkg.log | dpkg包管理软件的日志文件 |
/var/lib/dpkg/available | 存放系统所有安装过的软件包信息 |
/var/lib/dpkg/status | 存放系统现在所有安装软件的状态信息 |
/var/lib/dpkg/info | 记安装软件包控制目录的控制信息文件 |
dpkg是基于Debian的系统的软件包管理器。它可以安装,删除和构建软件包(把自己的程序打包),但是与其他软件包管理系统不同,它无法自动下载和安装软件包或其依赖项。Apt和Aptitude较新,并且在dpkg之上添加了附加功能。
命令使用 | 作用 | 案例 |
---|---|---|
dpkg -i 包名 | 安装 | dpkg -i package-name.deb |
dpkg -r 包名 | 卸载软件包,保留配置文件 | |
dpkg -P 包名 | 完全清楚软件包,含配置文件 | |
dpkg -l [包名] | -l 后面不跟参数列出所有包,跟参数列出特定名称的包 | dpkg -l adduser |
dpkg -S 文件路径 | 列出系统上的文件由哪个包安装生成的 | dpkg -S /usr/sbin/adduser |
dpkg -L 包名 | 列出软件包安装后要生成的全部文件信息 | dpkg -L adduser |
apt工具等同redhat linux发行版的yum,是在线安装软件包的工具,会自动解决软件包的依赖关系,需要配置apt软件包源。
apt相关系统配置、信息文件
文件路径 | 作用 |
---|---|
/var/lib/dpkg/available | 文件的内容是软件包的描述信息, 该软件包括当前系统所使用的Debian 安装源中的所有软件包,其中包括当前系统中已安装的和未安装的软件包. |
/etc/apt/sources.list | 存储库的信息(执行 apt-get install xxx,Ubuntu 去对应站点下载软件包到本地并安装) |
/var/cache/apt/archives | 已经下载到的软件包都放在这里(用 apt-get install 安装软件时,软件包的临时存放路径) |
/var/lib/apt/lists | 使用apt-get update命令会从/etc/apt/sources.list中下载软件列表,并保存到该目录。 |
apt相关命令说明
命令 | 作用 |
---|---|
apt-get update | 更新本地源信息 |
apt-get install 包名 | 安装特定包 apt-get -y install nginx |
apt-get dist-upgrade | 升级系统到相应的发行版(根据 source.list 的配置) |
apt-get upgrade | 更新所有已经安装的软件包 |
apt-get remove package_name | 删除已安装的软件包(保留配置文件),不会删除依赖软件包,且保留配置文件。 |
apt-get --purge remove package_name | 删除已安装包(不保留配置文件);如软件包a依赖软件包b,执行该命令会删除a,而且不保留配置文件。 |
apt-get autoremove | 删除为了满足依赖而安装的,但现在不再需要的软件包(包括已安装包),保留配置文件。 |
apt-get autoclean | 定期运行这个命令来清除那些已经卸载的软件包的.deb文件。APT的底层包是dpkg, 而dpkg 安装Package时, 会将 *.deb 放在 /var/cache/apt/archives/中,apt-get autoclean 只会删除 /var/cache/apt/archives/ 已经过期的deb。 |
apt-get clean | 使用 apt-get clean 会将 /var/cache/apt/archives/ 的所有 deb 删掉 |
apt-cache depends packagename | 了解使用依赖 |
apt-cache rdepends packagename | 是查看该包被哪些包依赖 |
apt-cache search packagename | 搜索软件包,可以按关键字查找软件包,通常用于查询的关键字会使用软件包的名字或软件包的一部分 |
apt-cache show packagename | 查询指定包的详情,不管是否已经安装。获取包的相关信息,如说明、大小、版本等 |
apt-cache showpkg packagename | 显示软件包的大致信息 |
apt-file update | 更新软件包的文件库 |
apt-file search 文件名 | 查找包含指定文件名的软件包,包含未安装的 |
apt-file list 包名 | 显示软件包包含的文件 |
root@ubuntu:~# snap list
Name Version Rev Tracking Publisher Notes
core18 20201210 1944 latest/stable canonical✓ base
lxd 4.0.4 18150 4.0/stable/… canonical✓ -
snapd 2.48.1 10492 latest/stable canonical✓ snapd
root@ubuntu:~# snap remove lxd
lxd removed
root@ubuntu:~# apt remove snapd
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
squashfs-tools
Use 'apt autoremove' to remove it.
The following packages will be REMOVED:
snapd
0 upgraded, 0 newly installed, 1 to remove and 79 not upgraded.
After this operation, 120 MB disk space will be freed.
Do you want to continue? [Y/n] Y
(Reading database ... 71984 files and directories currently installed.)
Removing snapd (2.45.1+20.04.2) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for mime-support (3.64ubuntu1) ...
timedatectl set-timezone Asia/Shanghai
ubuntu 20 默认的dns管理服务是systemd-resolved,手动配置/etc/resolv.conf文件不会生效。
#查看当前dns解析状态
resolvectl status
#
vim /etc/systemd/resolved.conf
[Resolve]
DNS=8.8.8.8 114.114.114.114
#重启systemd-resolved服务
systemctl restart systemd-resolved服务
#再次查看dns状态,Global DNS Servers 有了配置
root@ubuntu:~# resolvectl status
Global
LLMNR setting: no
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 8.8.8.8
114.114.114.114
#禁用systemd-resolved服务
root@ubuntu:~# systemctl disable systemd-resolved.service
Removed /etc/systemd/system/dbus-org.freedesktop.resolve1.service.
Removed /etc/systemd/system/multi-user.target.wants/systemd-resolved.service.
root@ubuntu:~# systemctl stop systemd-resolved
#删除链接文件
rm /etc/resolv.conf
#重新配置链接文件
root@ubuntu:~# vim /etc/resolv.conf
nameserver 8.8.8.8
nameserver 114.114.114.114
#dig查看dig输出
root@ubuntu:~# dig www.baidu.com
www.baidu.com. 284 IN CNAME www.a.shifen.com.
www.a.shifen.com. 125 IN A 36.152.44.95
;; SERVER: 114.114.114.114#53(114.114.114.114)
###省略部分输出###
评价:不好说是systemd先进,还是耦合性太强,绑架了很多其他的设置,个人还是喜欢以前的松耦合。
网络管理工具很多,systemd-networkd \network-manager
root@ubuntu:~# cd /etc/netplan/
root@ubuntu:/etc/netplan# ls
00-installer-config.yaml
root@ubuntu:/etc/netplan# cp 00-installer-config.yaml 00-installer-config.yamlbak
#对网卡ens33配置静态地址,默认是dhcp
root@ubuntu:/etc/netplan# vim 00-installer-config.yaml
network:
version: 2
renderer: NetworkManager
ethernets:
ens33:
addresses:
- 192.168.98.133/24
gateway4: 192.168.98.2
nameservers:
addresses:
- 223.5.5.5
- 223.6.6.6
root@ubuntu:/etc/netplan# netplan apply
netplan的yaml配置文件含义:
配置项 | 作用 |
---|---|
renderer | 网络管理方案(networkd或者NetworkManager,默认是networkd管理--systemd-networkd),指定后可以用对应的工具管理 |
enp33 | 网络接口名称。 |
dhcp4、dhcp6 | 接受IPv4和IPv6的dhcp,yes或no。 |
addresses | 接口的静态地址 |
gateway4 | IPv4网管地址。 |
Nameservers | DNS地址 |
使用NetworkManager管理网络
#禁用停止system-networkd服务
systemctl disable systemd-networkd.service
systemctl mask systemd-networkd.service
systemctl stop systemd-networkd.service
#注意如果netplan没有指定renderer: NetworkManager,nmcli和nmtui不起作用
#安装NetworkManager服务
apt -y install network-manager
#管理命令
nmcli
#gui
nmtui
# ubuntu20 服务
systemctl status NetworkManager