centos系統和Ubuntu系統命令區別以及常見操作
- 2022 年 6 月 29 日
- 筆記
- Linux作業系統模組
一.前言
CentOS(Community ENTerprise Operating System)是Linux發行版之一,它是來自於Red Hat Enterprise Linux依照開放源程式碼規定釋出的源程式碼所編譯而成。由於出自同樣的源程式碼,因此有些要求高度穩定性的伺服器以CentOS替代商業版的Red Hat Enterprise Linux使用。
Ubuntu是一個以桌面應用為主的Linux作業系統。Ubuntu基於Debian發行版和GNOME桌面環境,與Debian的不同在於它每6個月會發布一個新版本。Ubuntu的目標在於為一般用戶提供一個最新的、同時又相當穩定的主要由自由軟體構建而成的作業系統。Ubuntu具有龐大的社區力量,用戶可以方便地從社區獲得幫助。
兩者同為目前版本中個人和小團隊常用的服務級作業系統,在線提供的軟體庫中可以很方便的安裝到很多開源的軟體及庫。 兩者都使用bash作為基礎shell,所以在很多基礎命令上,ubuntu與centos的差別不是很明顯,而ubuntu在桌面介面上要做的更為出色,很多人如果是從興趣出發而學習linux的首選一般都是ubuntu,畢竟很多人還是很習慣在桌面圖形下操作的。
總而言之,centos更加穩定,Ubuntu對新技術支援度更好。
因為我常用的是centos系統和Red Hat Enterprise Linux系統,本文著重講解Ubuntu命令,centos/RHEL命令偏少!
二.系統環境
| 伺服器版本 | 系統內核版本 | CPU架構 |
|---|---|---|
| Ubuntu 18.04.5 LTS | 4.15.0-112-generic | x86_64 |
三.命令區別
3.1 使用習慣和命令區別
Centos與Ubuntu的使用習慣和命令上有很多的不同,下面簡單列舉一下:
- centos中新建的非root用戶是沒有sudo的許可權的,如果需要使用sudo許可權必須在/etc/sudoers 中加入賬戶和許可權,所以切換到root帳號的時候只需要輸入su,加入root帳號的密碼即可;在Ubuntu中,一般使用sudo+命令,如果是第一次使用會提示輸入當前用戶的密碼(而不是root的密碼)。
- 在線安裝軟體中,centos使用的是yum命令,而ubuntu中使用的是apt-get命令(最新推薦的是apt命令)。除此之外yum中還有一個從軟體源中搜索某個軟體的方法yum search +軟體名
- centos是來自於redhat,所以centos支援rpm格式的安裝,而ubuntu顯然是不支援的。
- 畢竟是不同的公司做的不同的發行版,很多配置文件的位置和默認的文件路徑都有很大區別,這個需要使用過程中慢慢體會了。
3.2 服務管理的區別
命令區別總結如下表所示:

3.3 軟體包資訊區別

3.4 軟體包文件資訊區別
示例:Ubuntu系統搜索/sbin/lsmod是由哪個軟體包安裝的
#kmod: /sbin/lsmod表示/sbin/lsmod由kmod軟體包安裝的
root@k8scludes3:~# dpkg -S /sbin/lsmod
kmod: /sbin/lsmod

四.Ubuntu系統常見操作
4.1 Ubuntu系統apt和apt-get的區別
- apt命令從Ubuntu 16.04「引入」,許多其他發行版遵循Ubuntu的腳步並開始鼓勵用戶使用apt而不是apt-get。作為普通的 Linux 用戶,優先使用 apt,它是 Linux 發行版推薦的命令。它提供了包管理必要的選項,更重要的是便於記憶。
- apt 是 apt-get 和 apt-cache 的子集,為包管理提供必要的命令。
- 雖然 apt-get 沒有被棄用,但是作為普通 Linux 用戶,推薦開始頻繁的使用 apt。
4.2 apt-get remove,apt-get purge,apt-get autoremove的區別
- apt-get remove :卸載軟體包;
- apt-get autoremove :會卸載所有自動安裝且不再使用的軟體包,一般用來清理依賴項(慎用);
- apt-get purge:卸載並清除軟體包的配置;
4.3 Ubuntu18防火牆
Ubuntu18默認使用UFW管理防火牆,即Uncomplicated Firewall,是基於iptables實現的防火牆管理工具,旨在簡化配置防火牆的過程,所以實際上UFW修改的是iptables的規則。
4.3.1 Ubuntu防火牆UFW常見命令
安裝ufw
#查看Ubuntu版本
root@localhost:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.5 LTS
Release: 18.04
Codename: bionic
#安裝ufw
#apt-get install ufw
查看ufw版本
root@localhost:~# ufw --version
ufw 0.36
Copyright 2008-2015 Canonical Ltd.
查看ufw是否被安裝
root@localhost:~# dpkg -l | grep ufw
ii ufw 0.36-0ubuntu0.18.04.1 all program for managing a Netfilter firewall
查看防火牆狀態
#Status: inactive說明防火牆關閉
root@localhost:~# ufw status
Status: inactive
關閉防火牆
root@localhost:~# ufw disable
Firewall stopped and disabled on system startup
root@localhost:~# ufw status
Status: inactive
啟動防火牆
root@localhost:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
#可以看到一條防火牆規則:允許外界訪問本機的22埠
root@localhost:~# ufw status
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)
UFW重新載入配置文件
root@localhost:~# ufw reload
重置UFW
ufw reset
4.3.2 UFW防火牆常用規則
防火牆開啟/禁用語法
ufw allow|deny [service]
默認情況下,UFW將阻止所有傳入連接並允許所有出站連接。 這意味著任何試圖訪問您的伺服器的用戶都將無法連接,除非您專門打開該埠,而伺服器上運行的所有應用程式和服務都將能夠訪問外部世界。
默認策略在/etc/default/ufw文件中定義,可以使用sudo ufw default。
#關閉所有外部對本機的訪問,但本機訪問外部正常
ufw default deny
打開或關閉某個埠
ufw allow 8000:8100/tcp 允許埠範圍
ufw allow smtp 允許所有的外部IP訪問本機的25/tcp (smtp)埠
ufw allow 22/tcp 允許所有的外部IP訪問本機的22/tcp (ssh)埠
ufw allow 53 允許外部訪問53埠(tcp/udp)
ufw allow from 192.168.1.100 允許此IP訪問所有的本機埠
ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 要拒絕所有的流量從TCP的10.0.0.0/8 到埠22的地址192.168.0.1
ufw deny smtp 禁止外部訪問smtp服務
ufw delete allow smtp 刪除上面建立的某條規則
查看埠狀態
root@localhost:~# lsof -i:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 883 root 3u IPv4 26893 0t0 TCP *:ssh (LISTEN)
sshd 883 root 4u IPv6 26895 0t0 TCP *:ssh (LISTEN)
sshd 1744 root 3u IPv4 27581 0t0 TCP linux:ssh->192.168.110.1:60711 (ESTABLISHED)
root@localhost:~# netstat -antup | grep 22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 883/sshd
tcp 0 36 192.168.110.128:22 192.168.110.1:60711 ESTABLISHED 1744/sshd: root@pts
tcp6 0 0 :::22 :::* LISTEN 883/sshd
列出伺服器上可用的所有應用程式配置文件
root@localhost:~# ufw app list
Available applications:
OpenSSH
4.4 Ubuntu18配置網卡IP地址
Ubuntu Server 18.04採用netplan作為網路配置管理工具。默認的網卡配置文件為01-netcfg.yaml
#01-netcfg.yaml為網卡配置文件
root@localhost:~# ll /etc/netplan/
total 12
drwxr-xr-x 2 root root 4096 Apr 14 15:59 ./
drwxr-xr-x 88 root root 4096 Nov 28 2020 ../
-rw-r--r-- 1 root root 84 Apr 14 15:59 01-netcfg.yaml
默認的網路配置資訊如下:
root@localhost:~# cat /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
ens32:
dhcp4: dhcp
4.4.1 使用dhcp動態分配IP地址
如果要使用dhcp動態分配IP,則配置修改如下:
root@localhost:~# cat /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
ens32:
dhcp4: yes
修改了網卡文件之後需要netplan apply 更新網卡配置
netplan apply
查看IP地址,192.168.110.128就是dhcp伺服器動態分配的IP地址
root@localhost:~# ifconfig
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.110.128 netmask 255.255.255.0 broadcast 192.168.110.255
inet6 fe80::20c:29ff:fe92:3462 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:92:34:62 txqueuelen 1000 (Ethernet)
RX packets 28639 bytes 21935140 (21.9 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16661 bytes 1081505 (1.0 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 59906 bytes 4255443 (4.2 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 59906 bytes 4255443 (4.2 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
查看用netplan配置的網卡資訊
root@localhost:~# networkctl status ens32
● 2: ens32
Link File: /lib/systemd/network/99-default.link
Network File: /run/systemd/network/10-netplan-ens32.network
Type: ether
State: routable (configured)
Path: pci-0000:02:00.0
Driver: e1000
Vendor: Intel Corporation
Model: 82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Single Port Adapter)
HW Address: 00:0c:29:92:34:62 (VMware, Inc.)
Address: 192.168.110.128
fe80::20c:29ff:fe92:3462
Gateway: 192.168.110.2 (VMware, Inc.)
DNS: 192.168.110.2
Search Domains: localdomain
4.4.2 給網卡配置靜態IP地址
靜態IP常用參數解釋:
- renderer:指定後端網路服務,支援networkd(Systemd-networkd) 和 NetworkManager兩種,默認是networkd。
- ethernets:指定是乙太網配置,其他的還包括 wifis 或者 bridges
- ens32:網卡名稱
- dhcp4:開啟使用ipv4的DHCP,默認是關閉。
- dhcp6:開啟使用ipv6的DHCP,默認是關閉。
- addresses:對應網卡配置的靜態ip地址,是ip/掩碼的格式,支援ipv6地址,例如 addresses: [192.168.14.2/24, “2001:1::1/64”]
- gateway4, gateway6:指定IPv4/6默認網關,使用靜態ip配置時使用。例如IPv4: gateway4: 172.16.0.1 例如IPv6: gateway6: “2001:4::1”
- nameservers:設置DNS伺服器和搜索域。有兩個受支援的欄位:addresses:是DNS地址列表,search:是搜索域列表,沒有特殊需要可以不配置search這項。
靜態IP配置如下
root@localhost:~# cat /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
ens32:
dhcp4: no
addresses: [192.168.110.128/24]
gateway4: 192.168.110.2
nameservers:
addresses: [192.168.110.2,114.114.114.114]
修改了網卡文件之後需要netplan apply 更新網卡配置
root@localhost:~# netplan apply
查看用netplan配置的網卡資訊
root@localhost:~# networkctl status ens32
● 2: ens32
Link File: /lib/systemd/network/99-default.link
Network File: /run/systemd/network/10-netplan-ens32.network
Type: ether
State: routable (configured)
Path: pci-0000:02:00.0
Driver: e1000
Vendor: Intel Corporation
Model: 82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Single Port Adapter)
HW Address: 00:0c:29:92:34:62 (VMware, Inc.)
Address: 192.168.110.128
fe80::20c:29ff:fe92:3462
Gateway: 192.168.110.2 (VMware, Inc.)
DNS: 192.168.110.2
114.114.114.114
4.5 Ubuntu18配置軟體源
先查看作業系統版本,我們的Ubuntu版本為18.04 bionic,要根據版本添加軟體源
root@localhost:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.5 LTS
Release: 18.04
Codename: bionic
添加阿里雲軟體源
root@localhost:~# cat /etc/apt/sources.list
deb //mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src //mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb //mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src //mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb //mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src //mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb //mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src //mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb //mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src //mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
#這三行是k8s源
deb //mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
deb [arch=amd64] //mirrors.aliyun.com/docker-ce/linux/ubuntu bionic stable
# deb-src [arch=amd64] //mirrors.aliyun.com/docker-ce/linux/ubuntu bionic stable
更新軟體源
root@localhost:~# apt-get update
Hit:1 //mirrors.aliyun.com/ubuntu bionic InRelease
Hit:2 //mirrors.aliyun.com/ubuntu bionic-security InRelease
Hit:3 //mirrors.aliyun.com/ubuntu bionic-updates InRelease
Get:4 //mirrors.aliyun.com/kubernetes/apt kubernetes-xenial InRelease [9,383 B]
Hit:5 //mirrors.aliyun.com/ubuntu bionic-proposed InRelease
Hit:6 //mirrors.aliyun.com/ubuntu bionic-backports InRelease
Hit:7 //mirrors.aliyun.com/docker-ce/linux/ubuntu bionic InRelease
Ign:8 //mirrors.aliyun.com/kubernetes/apt kubernetes-xenial/main amd64 Packages
Get:8 //mirrors.aliyun.com/kubernetes/apt kubernetes-xenial/main amd64 Packages [54.7 kB]
Fetched 54.7 kB in 2s (33.3 kB/s)
Reading package lists... Done
五.Ubuntu系統troubleshooting
5.1 xshell連接不上Ubuntu18解決方法
問題描述:
安裝了Ubuntu18系統之後,使用xshell連接不上Ubuntu,執行dpkg -l | grep ssh,發現有openssh-client openssh-server openssh-sftp-server ssh-import-id,防火牆也是關閉狀態,但是xshell就是連接不上
解決方法:
使用apt-get update 更新軟體包列表之後,使用apt-get install ssh安裝ssh,注意在安裝軟體時不執行apt-get update 會報錯
apt-get update
apt-get install ssh
ssh安裝之後,查看安裝的相關ssh程式包
root@localhost:~# dpkg -l | grep ssh
ii openssh-client 1:7.6p1-4ubuntu0.7 amd64 secure shell (SSH) client, for secure access to remote machines
ii openssh-server 1:7.6p1-4ubuntu0.7 amd64 secure shell (SSH) server, for secure access from remote machines
ii openssh-sftp-server 1:7.6p1-4ubuntu0.7 amd64 secure shell (SSH) sftp server module, for SFTP access from remote machines
ii ssh 1:7.6p1-4ubuntu0.7 all secure shell client and server (metapackage)
ii ssh-import-id 5.7-0ubuntu1.1 all securely retrieve an SSH public key and install it locally
重啟ssh
root@localhost:~# /etc/init.d/ssh restart
[ ok ] Restarting ssh (via systemctl): ssh.service.
root@localhost:~# service ssh status
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-04-14 17:36:39 CST; 28s ago
Process: 14347 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
Main PID: 14348 (sshd)
Tasks: 1 (limit: 2940)
CGroup: /system.slice/ssh.service
└─14348 /usr/sbin/sshd -D
ssh配置文件
root@localhost:~# ls /etc/ssh/sshd_config
/etc/ssh/sshd_config
此時,使用xshell就能連接Ubuntu18.04了
查看ssh埠
root@localhost:~# netstat -antup | grep 22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 14348/sshd
tcp 0 36 192.168.110.128:22 192.168.110.1:55466 ESTABLISHED 14213/sshd: root@pt
tcp6 0 0 :::22 :::* LISTEN 14348/sshd


