一.前言

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的使用习惯和命令上有很多的不同,下面简单列举一下:

  1. centos中新建的非root用户是没有sudo的权限的,如果需要使用sudo权限必须在/etc/sudoers 中加入账户和权限,所以切换到root账号的时候只需要输入su,加入root账号的密码即可;在Ubuntu中,一般使用sudo+命令,如果是第一次使用会提示输入当前用户的密码(而不是root的密码)。
  2. 在线安装软件中,centos使用的是yum命令,而ubuntu中使用的是apt-get命令(最新推荐的是apt命令)。除此之外yum中还有一个从软件源中搜索某个软件的方法yum search +软件名
  3. centos是来自于redhat,所以centos支持rpm格式的安装,而ubuntu显然是不支持的。
  4. 毕竟是不同的公司做的不同的发行版,很多配置文件的位置和默认的文件路径都有很大区别,这个需要使用过程中慢慢体会了。

3.2 服务管理的区别

命令区别总结如下表所示:

3.3 软件包信息区别

3.4 软件包文件信息区别

示例:Ubuntu系统搜索/sbin/lsmod是由哪个软件包安装的

  1. #kmod: /sbin/lsmod表示/sbin/lsmod由kmod软件包安装的
  2. root@k8scludes3:~# dpkg -S /sbin/lsmod
  3. kmod: /sbin/lsmod

四.Ubuntu系统常见操作

4.1 Ubuntu系统apt和apt-get的区别

  1. apt命令从Ubuntu 16.04“引入”,许多其他发行版遵循Ubuntu的脚步并开始鼓励用户使用apt而不是apt-get。作为普通的 Linux 用户,优先使用 apt,它是 Linux 发行版推荐的命令。它提供了包管理必要的选项,更重要的是便于记忆。
  2. apt 是 apt-get 和 apt-cache 的子集,为包管理提供必要的命令。
  3. 虽然 apt-get 没有被弃用,但是作为普通 Linux 用户,推荐开始频繁的使用 apt。

4.2 apt-get remove,apt-get purge,apt-get autoremove的区别

  1. apt-get remove :卸载软件包;
  2. apt-get autoremove :会卸载所有自动安装且不再使用的软件包,一般用来清理依赖项(慎用);
  3. apt-get purge:卸载并清除软件包的配置;

4.3 Ubuntu18防火墙

Ubuntu18默认使用UFW管理防火墙,即Uncomplicated Firewall,是基于iptables实现的防火墙管理工具,旨在简化配置防火墙的过程,所以实际上UFW修改的是iptables的规则。

4.3.1 Ubuntu防火墙UFW常见命令

安装ufw

  1. #查看Ubuntu版本
  2. root@localhost:~# lsb_release -a
  3. No LSB modules are available.
  4. Distributor ID: Ubuntu
  5. Description: Ubuntu 18.04.5 LTS
  6. Release: 18.04
  7. Codename: bionic
  8. #安装ufw
  9. #apt-get install ufw

查看ufw版本

  1. root@localhost:~# ufw --version
  2. ufw 0.36
  3. Copyright 2008-2015 Canonical Ltd.

查看ufw是否被安装

  1. root@localhost:~# dpkg -l | grep ufw
  2. ii ufw 0.36-0ubuntu0.18.04.1 all program for managing a Netfilter firewall

查看防火墙状态

  1. #Status: inactive说明防火墙关闭
  2. root@localhost:~# ufw status
  3. Status: inactive

关闭防火墙

  1. root@localhost:~# ufw disable
  2. Firewall stopped and disabled on system startup
  3. root@localhost:~# ufw status
  4. Status: inactive

启动防火墙

  1. root@localhost:~# ufw enable
  2. Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
  3. Firewall is active and enabled on system startup
  4. #可以看到一条防火墙规则:允许外界访问本机的22端口
  5. root@localhost:~# ufw status
  6. Status: active
  7. To Action From
  8. -- ------ ----
  9. 22 ALLOW Anywhere
  10. 22 (v6) ALLOW Anywhere (v6)

UFW重新加载配置文件

  1. root@localhost:~# ufw reload

重置UFW

  1. ufw reset

4.3.2 UFW防火墙常用规则

防火墙开启/禁用语法

  1. ufw allow|deny [service]

默认情况下,UFW将阻止所有传入连接并允许所有出站连接。 这意味着任何试图访问您的服务器的用户都将无法连接,除非您专门打开该端口,而服务器上运行的所有应用程序和服务都将能够访问外部世界。

默认策略在/etc/default/ufw文件中定义,可以使用sudo ufw default。

  1. #关闭所有外部对本机的访问,但本机访问外部正常
  2. ufw default deny

打开或关闭某个端口

  1. ufw allow 8000:8100/tcp 允许端口范围
  2. ufw allow smtp 允许所有的外部IP访问本机的25/tcp (smtp)端口
  3. ufw allow 22/tcp 允许所有的外部IP访问本机的22/tcp (ssh)端口
  4. ufw allow 53 允许外部访问53端口(tcp/udp)
  5. ufw allow from 192.168.1.100 允许此IP访问所有的本机端口
  6. ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 要拒绝所有的流量从TCP10.0.0.0/8 到端口22的地址192.168.0.1
  7. ufw deny smtp 禁止外部访问smtp服务
  8. ufw delete allow smtp 删除上面建立的某条规则

查看端口状态

  1. root@localhost:~# lsof -i:22
  2. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
  3. sshd 883 root 3u IPv4 26893 0t0 TCP *:ssh (LISTEN)
  4. sshd 883 root 4u IPv6 26895 0t0 TCP *:ssh (LISTEN)
  5. sshd 1744 root 3u IPv4 27581 0t0 TCP linux:ssh->192.168.110.1:60711 (ESTABLISHED)
  6. root@localhost:~# netstat -antup | grep 22
  7. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 883/sshd
  8. tcp 0 36 192.168.110.128:22 192.168.110.1:60711 ESTABLISHED 1744/sshd: root@pts
  9. tcp6 0 0 :::22 :::* LISTEN 883/sshd

列出服务器上可用的所有应用程序配置文件

  1. root@localhost:~# ufw app list
  2. Available applications:
  3. OpenSSH

4.4 Ubuntu18配置网卡IP地址

Ubuntu Server 18.04采用netplan作为网络配置管理工具。默认的网卡配置文件为01-netcfg.yaml

  1. #01-netcfg.yaml为网卡配置文件
  2. root@localhost:~# ll /etc/netplan/
  3. total 12
  4. drwxr-xr-x 2 root root 4096 Apr 14 15:59 ./
  5. drwxr-xr-x 88 root root 4096 Nov 28 2020 ../
  6. -rw-r--r-- 1 root root 84 Apr 14 15:59 01-netcfg.yaml

默认的网络配置信息如下:

  1. root@localhost:~# cat /etc/netplan/01-netcfg.yaml
  2. network:
  3. version: 2
  4. renderer: networkd
  5. ethernets:
  6. ens32:
  7. dhcp4: dhcp

4.4.1 使用dhcp动态分配IP地址

如果要使用dhcp动态分配IP,则配置修改如下:

  1. root@localhost:~# cat /etc/netplan/01-netcfg.yaml
  2. network:
  3. version: 2
  4. renderer: networkd
  5. ethernets:
  6. ens32:
  7. dhcp4: yes

修改了网卡文件之后需要netplan apply 更新网卡配置

  1. netplan apply

查看IP地址,192.168.110.128就是dhcp服务器动态分配的IP地址

  1. root@localhost:~# ifconfig
  2. ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  3. inet 192.168.110.128 netmask 255.255.255.0 broadcast 192.168.110.255
  4. inet6 fe80::20c:29ff:fe92:3462 prefixlen 64 scopeid 0x20<link>
  5. ether 00:0c:29:92:34:62 txqueuelen 1000 (Ethernet)
  6. RX packets 28639 bytes 21935140 (21.9 MB)
  7. RX errors 0 dropped 0 overruns 0 frame 0
  8. TX packets 16661 bytes 1081505 (1.0 MB)
  9. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  10. lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
  11. inet 127.0.0.1 netmask 255.0.0.0
  12. inet6 ::1 prefixlen 128 scopeid 0x10<host>
  13. loop txqueuelen 1000 (Local Loopback)
  14. RX packets 59906 bytes 4255443 (4.2 MB)
  15. RX errors 0 dropped 0 overruns 0 frame 0
  16. TX packets 59906 bytes 4255443 (4.2 MB)
  17. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

查看用netplan配置的网卡信息

  1. root@localhost:~# networkctl status ens32
  2. 2: ens32
  3. Link File: /lib/systemd/network/99-default.link
  4. Network File: /run/systemd/network/10-netplan-ens32.network
  5. Type: ether
  6. State: routable (configured)
  7. Path: pci-0000:02:00.0
  8. Driver: e1000
  9. Vendor: Intel Corporation
  10. Model: 82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Single Port Adapter)
  11. HW Address: 00:0c:29:92:34:62 (VMware, Inc.)
  12. Address: 192.168.110.128
  13. fe80::20c:29ff:fe92:3462
  14. Gateway: 192.168.110.2 (VMware, Inc.)
  15. DNS: 192.168.110.2
  16. 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配置如下

  1. root@localhost:~# cat /etc/netplan/01-netcfg.yaml
  2. network:
  3. version: 2
  4. renderer: networkd
  5. ethernets:
  6. ens32:
  7. dhcp4: no
  8. addresses: [192.168.110.128/24]
  9. gateway4: 192.168.110.2
  10. nameservers:
  11. addresses: [192.168.110.2,114.114.114.114]

修改了网卡文件之后需要netplan apply 更新网卡配置

  1. root@localhost:~# netplan apply

查看用netplan配置的网卡信息

  1. root@localhost:~# networkctl status ens32
  2. 2: ens32
  3. Link File: /lib/systemd/network/99-default.link
  4. Network File: /run/systemd/network/10-netplan-ens32.network
  5. Type: ether
  6. State: routable (configured)
  7. Path: pci-0000:02:00.0
  8. Driver: e1000
  9. Vendor: Intel Corporation
  10. Model: 82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Single Port Adapter)
  11. HW Address: 00:0c:29:92:34:62 (VMware, Inc.)
  12. Address: 192.168.110.128
  13. fe80::20c:29ff:fe92:3462
  14. Gateway: 192.168.110.2 (VMware, Inc.)
  15. DNS: 192.168.110.2
  16. 114.114.114.114

4.5 Ubuntu18配置软件源

先查看操作系统版本,我们的Ubuntu版本为18.04 bionic,要根据版本添加软件源

  1. root@localhost:~# lsb_release -a
  2. No LSB modules are available.
  3. Distributor ID: Ubuntu
  4. Description: Ubuntu 18.04.5 LTS
  5. Release: 18.04
  6. Codename: bionic

添加阿里云软件源

  1. root@localhost:~# cat /etc/apt/sources.list
  2. deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
  3. deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
  4. deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
  5. deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
  6. deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
  7. deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
  8. deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
  9. deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
  10. deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
  11. deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
  12. #这三行是k8s源
  13. deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
  14. deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic stable
  15. # deb-src [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic stable

更新软件源

  1. root@localhost:~# apt-get update
  2. Hit:1 http://mirrors.aliyun.com/ubuntu bionic InRelease
  3. Hit:2 http://mirrors.aliyun.com/ubuntu bionic-security InRelease
  4. Hit:3 http://mirrors.aliyun.com/ubuntu bionic-updates InRelease
  5. Get:4 https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial InRelease [9,383 B]
  6. Hit:5 http://mirrors.aliyun.com/ubuntu bionic-proposed InRelease
  7. Hit:6 http://mirrors.aliyun.com/ubuntu bionic-backports InRelease
  8. Hit:7 https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic InRelease
  9. Ign:8 https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial/main amd64 Packages
  10. Get:8 https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial/main amd64 Packages [54.7 kB]
  11. Fetched 54.7 kB in 2s (33.3 kB/s)
  12. 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 会报错

  1. apt-get update
  2. apt-get install ssh

ssh安装之后,查看安装的相关ssh程序包

  1. root@localhost:~# dpkg -l | grep ssh
  2. ii openssh-client 1:7.6p1-4ubuntu0.7 amd64 secure shell (SSH) client, for secure access to remote machines
  3. ii openssh-server 1:7.6p1-4ubuntu0.7 amd64 secure shell (SSH) server, for secure access from remote machines
  4. ii openssh-sftp-server 1:7.6p1-4ubuntu0.7 amd64 secure shell (SSH) sftp server module, for SFTP access from remote machines
  5. ii ssh 1:7.6p1-4ubuntu0.7 all secure shell client and server (metapackage)
  6. ii ssh-import-id 5.7-0ubuntu1.1 all securely retrieve an SSH public key and install it locally

重启ssh

  1. root@localhost:~# /etc/init.d/ssh restart
  2. [ ok ] Restarting ssh (via systemctl): ssh.service.
  3. root@localhost:~# service ssh status
  4. ssh.service - OpenBSD Secure Shell server
  5. Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
  6. Active: active (running) since Thu 2022-04-14 17:36:39 CST; 28s ago
  7. Process: 14347 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
  8. Main PID: 14348 (sshd)
  9. Tasks: 1 (limit: 2940)
  10. CGroup: /system.slice/ssh.service
  11. └─14348 /usr/sbin/sshd -D

ssh配置文件

  1. root@localhost:~# ls /etc/ssh/sshd_config
  2. /etc/ssh/sshd_config

此时,使用xshell就能连接Ubuntu18.04了

查看ssh端口

  1. root@localhost:~# netstat -antup | grep 22
  2. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 14348/sshd
  3. tcp 0 36 192.168.110.128:22 192.168.110.1:55466 ESTABLISHED 14213/sshd: root@pt
  4. tcp6 0 0 :::22 :::* LISTEN 14348/sshd

centos系统和Ubuntu系统命令区别以及常见操作的更多相关文章

  1. windows系统和ubuntu虚拟机之间文件共享——samba

    参考:http://www.cnblogs.com/phinecos/archive/2009/06/06/1497717.html 一. samba的安装: sudo apt-get insall  ...

  2. Linux操作系统和Windows操作系统的区别

    1.免费与收费 在中国,windows和linux都是免费的,至少对个人用户是如此,如果那天国内windows真的严打盗版了,那linux的春天就到了!但现在linux依然是任重道远,前路漫漫. 2. ...

  3. Ubuntu 16.04 catkin_make 常见操作

    参考博客:https://answers.ros.org/question/54178/how-to-build-just-one-package-using-catkin_make/ 1. catk ...

  4. 扫盲--CRM系统和ERP系统的区别

    企业规模在逐步扩大的时候,为了提高生产和管理的效率,经常需要用到相关管理软件.很多企业管理者在选择管理软件的时候犯了难,面对CRM系统和ERP系统不知如何选择无法下手.那么,CRM和ERP的区别是什么 ...

  5. 使用拷贝的方式(adb push) 绕过Android系统和adb install直接安装APK

    某些情况下定制的Android系统为了限制用户安装应用,例如电视盒子,车载中控等,通过修改代码屏蔽了正常安装应用的方式 本文探讨如何在 adb shell 具有读写data分区目录的权限前提下,通过a ...

  6. 你知道吗, CoreGraphics绘图系统和Bezier贝塞尔曲线坐标系的顺时针方向是相反的!

    UIBezierPath是对Core Graphics框架的一种上层封装,目的是让绘图需求可以被更方便的使用. 那你有没有发现被UIBezierPath封装后与之前有什么改变? 答:有三个变化. 1. ...

  7. gpio子系统和pinctrl子系统(上)

    前言 随着内核的发展,linux驱动框架在不断的变化.很早很早以前,出现了gpio子系统,后来又出现了pinctrl子系统.在网上很难看到一篇讲解这类子系统的文章.就拿gpio操作来说吧,很多时候都是 ...

  8. 基于GPS北斗卫星授时系统和NTP网络授时服务器的设计与开发

    基于GPS北斗卫星授时系统和NTP网络授时服务器的设计与开发 安徽京准科技提供@请勿转载@@ 更多资料请参考——ahjzsz.com 天文观测设备对于控制系统的时间准确度有严格要求.为此,采用搭建高精 ...

  9. 下一代大数据系统和4S标准

    大数据行业发展到今天,它创造的价值和带来的社会效应,大家已经看得很明白,同时很多问题和不足也暴露出来,特别是hadoop能够提供的数据处理能力,现在已经挖掘到极限,但是现在各行业对数据的存储和计算需求 ...

随机推荐

  1. golang常用库包:Go依赖注入(DI)工具-wire使用

    google 出品的依赖注入库 wire:https://github.com/google/wire 什么是依赖注入 依赖注入 ,英文全名是 dependency injection,简写为 DI. ...

  2. 2021.07.26 P1011 车站(斐波那契数列)

    2021.07.26 P1011 车站(斐波那契数列) [P1011 NOIP1998 提高组] 车站 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1.改变形式的斐波那契 ...

  3. python黑帽子(第三章)

    Windows/Linux下包的嗅探 根据os.name判断操作系统 下面是os的源码 posix是Linux nt是Windows 在windows中需要管理员权限.linux中需要root权限 因 ...

  4. 云平台短信验证码通知短信java/php/.net开发实现

    一.本文目的 大部分平台都有一个接入发送短信验证码.通知短信的需求.虽然市场上大部分平台的接口都只是一个非常普通的HTTP-GET请求,但终归有需要学习和借鉴使用的朋友. 本文的初衷是主要提供学习便利 ...

  5. 论文解读(MERIT)《Multi-Scale Contrastive Siamese Networks for Self-Supervised Graph Representation Learning》

    论文信息 论文标题:Multi-Scale Contrastive Siamese Networks for Self-Supervised Graph Representation Learning ...

  6. Django视图函数:CBV与FBV (ps:补充装饰器)

    CBV 基于类的视图  FBV 基于函数的视图 CBV: 1 项目目录下: 2 urlpatterns = [ 3 path('login1/',views.Login.as_view()) #.as ...

  7. IDEA2021.2安装lombok插件(借鉴前辈)

    lomhok下载地址: https://plugins.jetbrains.com/plugin/6317-lombok/versions CSDN关注斧头湖懒客 一,下载lombok插件我这里下载的 ...

  8. 如何使用Shell写一个显示目录结构的命令?

    公众号关注 「开源Linux」 回复「学习」,有我为您特别筛选的学习资料~ 在Linux中使用Shell写一个显示目录结构的命令,快速寻找目录结构. 1.代码 #!/usr/bin/env bash ...

  9. openstack命令创建云主机实例

    @ 目录 前言 上传centos镜像 创建实例 创建外网卡 修改安全组规则 创建云主机实例 前言 简单创建云主机实例只需要上传一个测试镜像.创建一张外网卡.创建一个实例类型.修改安全组规则即可 注:这 ...

  10. Java高并发-多线程基础

    一.什么是线程 线程是进程内的执行单元. 二.线程的基本操作 2.1 状态与操作 2.2 新建线程 Thread t1 = new Thread(new CreateThread()); t1.sta ...