RHCE——Ubuntu Linux操作系统

Ubuntu是一个以桌面应用为主的Linux发行版操作系统,其名称来自非洲南部祖鲁语豪萨语的"ubuntu"一词,意思是"人性""我的存在是因为大家的存在",是非洲传统的一种价值观。Ubuntu基于Debian发行版和GNOME桌面环境,而从11.04版起,Ubuntu发行版放弃了GNOME桌面环境,改为Unity。此前人们认为Linux难以安装、难以使用,在Ubuntu出现后这些都成为了历史。Ubuntu也拥有庞大的社区力量,用户可以方便地从社区获得帮助。自Ubuntu 18.04 LTS起,Ubuntu发行版重新开始使用GNOME3桌面环境。

下载ubuntu-22.04.4-desktop-amd64.iso 后在虚拟机中安装

用户操作

切换到root用户

sudo su

不建议在root用户下操作,平常涉及到高权限的情况,应该在普通用户下使用sudo 加命令的形式来操作

退出root用户

exit

退出普通用户

logout

su------切换用户(没有参数时,默认为root用户)

su   # 切换为root
## 推荐
su -   # 切换为root 并加载user1的环境配置
su -  user1 # 切换为user1 并加载user1的环境配置

sudo------让当前用户暂时以管理员root用户的身份运行

Ubuntu 默认没有启用root用户, 普通用户执行一些特殊的操作时,使用sudo就可以让普通用户以root用户的身份执行命令
 sudo有一个配置文件: /etc/sudoers  ;  通过修改配置文件可以让指定用户使用sudo命令
man sudoers # 查看man手册看下面几行: # Host alias specification # 配置Host_Alias:就是主机的列表 
Host_Alias      HOST_FLAG = hostname1, hostname2, hostname3# User alias specification # 配置User_Alias:就是具有sudo权限的用户的列表 
User_Alias USER_FLAG = user1, user2, user3 
# Cmnd alias specification # 配置Cmnd_Alias:就是允许执行的命令的列表,命令前加上!表示不能执行此命令.命令一定要使用绝对路径,避免其他目录的同名命令被执行,造成安全隐患 ,因此使用的时候也是使用绝对路径! 
Cmnd_Alias      COMMAND_FLAG = command1, command2, command3 ,!command4
# 配置Runas_Alias:就是用户以什么身份执行(例如root,或者oracle)的列表 
Runas_Alias RUNAS_FLAG = operator1, operator2, operator3 
 
# User privilege specification  
# 配置权限的格式如下: 
#  USER_FLAG HOST_FLAG=(RUNAS_FLAG) COMMAND_FLAG 
root    ALL=(ALL:ALL) ALL
如果不需要密码验证的话,则按照这样的格式来配置 
USER_FLAG HOST_FLAG=(RUNAS_FLAG) NOPASSWD: COMMAND_FLAG 
 
 
格式为:用户名(用户别名) 主机名(主机别名)=[(运行用户或是Runas_Alias)可选] [tag可选]  可以执行的命令(或Cmmd_Alias)  这样描述语法很生硬,不易理解,举例子
user1  host1 = /bin/kill # user1 可以在host1上使用命令/bin/kill
user1  host1 = NOPASSWD: /bin/kill # user1 可以在host1上使用命令/bin/kill 同时可以不必输入密码(这里就是使用了NOPASSWD # 这个tag,默认是PASSWD)
user1  host1 = NOPASSWD: /bin/kill , PASSWORD: /bin/ls # user1 可以在host1上使用命令/bin/kill无需输入密码,但是使用/bin/ls则需要输入密码
user1  host1 = (opterator) /bin/kill # user1 可以在host1上使用命令/bin/kill但是必须是以operator用户运行这个命令,等价于# su -u opertor /bin/kill
user1  host1 = (:group_name) /bin/kill # user1 可以在host1上使用命令/bin/kill,且必须以group_name这个用户群组里面的用户来运行。
%group_name host1 = /bin/kill # 所有group_name里面的用户都可以在host1上执行/bin/kill(Linux中一般代表整个用户群组用# %group_name)再举个实际例子,我之前对sudo su这个命令不理解,为什么我可以直接就su到root用户了呢,连密码都不需要?查看了一下sudoers文件才知道原来里面有这么一行:
xxx     ALL=NOPASSWD: /bin/su

dpkg命令

deb http://security.ubuntu.com/ubuntu xenial-security main restricted
# deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted
deb http://security.ubuntu.com/ubuntu xenial-security universe
# deb-src http://security.ubuntu.com/ubuntu xenial-security universe
deb http://security.ubuntu.com/ubuntu xenial-security multiverse
# deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse

Ubuntu 软件仓库被分为四个部分:main(主要的), restricted(受限的), universe(广泛的) , multiverse(多元的),这主要根据我们对软件的支持能力,以及软件的目的是否符合我们的 自由软件哲学。

第一个deb表示软件包的格式,可以是 deb 或 deb-src,前者表示所指向的存放 binary 格式(已编译),后者为 sources 格式(原代码)。

第二个URI,即 Universal Resource Identifier,通用资源标识符,可以是以:file(系统) 、 cdrom(光驱) 、 http 、 ftp、copy 、rsh 、ssh 等几个参数开头的软件包所在位置。

第三个Distribution 指发行版本号,可以是:stable,testing,unstable,sarge,etch,sid 等,具体可参考Debian文档。

后面的几个component表示具体的软件包分类

main:完全遵循 Debian 自由软件准则 即DFSG的软件包;

contrib:软件包均遵循DFSG自由使用原则,但是其使用了某些不符合DFSG的第三方库;

non-free:不符合DFSG的软件包。

dpkg是Debian软件包管理器的基础,被用于安装、卸载和供给和.deb软件包相关的信息。dpkg本身是一个底层的工具,本身并不能从远程包仓库下载包以及处理包的依赖的关系,需要将包从远程下载后再安装。

扩展名为.deb的安装包可以通过在桌面UI环境下双击启动包管理器自动安装,也可以使用命令行的方式启动安装。

命令如下:

sudo dpkg -i 安装包名称

      命令	                                含义
dpkg -i package.deb	                       安装包
dpkg -r package	                           删除包
dpkg -P package	                    删除包(包括配置文件)
dpkg -L package	                    列出与该包关联的文件
dpkg -l package	                        显示该包的版本
dpkg --unpack package.deb	          解开 deb 包的内容
dpkg -S keyword	                       搜索所属的包内容
dpkg -l	                              列出当前已安装的包
dpkg -c package.deb	                  列出 deb 包的内容
dpkg --configure package	                    配置包

使用.deb文件来安装软件的方式是不能使用apt管理器来帮助我们卸载软件。

卸载命令:

sudo dpkg -r 软件包名
# 或者:   
# sudo dpkg -P 软件包名

软件管理------apt

软件管理 apt ( Advanced Packaging Tool ) , 他可以自动下载、配置、安装软件包;简化了Linux系统上的。Debian及衍生版中都包含了apt , RedHat系列的linux的则使用yum来进行管理,其中Fedora22中Centos7中开始使用dnf 来替代yum。

**apt-cache search package 搜索包**
apt-cache show package 获取包的相关信息,如说明、大小、版本等
**sudo apt-get install package 安装包**
sudo apt-get install package --reinstall 重新安装包
sudo apt-get -f install 强制安装
**sudo apt-get remove package 删除包**
**sudo apt-get remove package --purge 删除包,包括删除配置文件等**
**sudo apt-get autoremove 自动删除不需要的包**
**sudo apt-get update 更新源**
**sudo apt-get upgrade 更新已安装的包**
sudo apt-get dist-upgrade 升级系统
sudo apt-get dselect-upgrade 使用 dselect 升级
apt-cache depends package 了解使用依赖
apt-cache rdepends package 了解某个具体的依赖
sudo apt-get build-dep package 安装相关的编译环境
apt-get source package 下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean 清理下载文件的存档
sudo apt-get check 检查是否有损坏的依赖

配置文件

/etc/apt/sources.list 设置软件包的获取来源
/etc/apt/apt.conf apt配置文件
/etc/apt/apt.conf.d apt的零碎配置文件
/etc/apt/preferences 版本参数
/var/cache/apt/archives/partial 存放正在下载的软件包
/var/cache/apt/archives 存放已经下载的软件包
/var/lib/apt/lists 存放已经下载的软件包详细信息
/var/lib/apt/lists/partial 存放正在下载的软件包详细信息

基础软件安装

#1)编译依赖
apt -y install gcc
#2)常规软件
apt -y install nano vim net-tools tree wget dos2unix unzip htop ncdu bash-completion
相关推荐
橘子真甜~13 分钟前
Linux操作系统3-文件与IO操作1(从C语言IO操作到系统调用)
linux·运维·服务器·c语言·io·文件操作·文件fd
A charmer24 分钟前
Linux 权限管理:用户分类、权限解读与常见问题剖析
linux·运维·服务器
运维自动化&云计算27 分钟前
华为交换机与锐捷交换机端口链路聚合的配置
服务器·网络·华为
羊村懒哥28 分钟前
linux-安全-iptables防火墙基础笔记
linux·网络·安全
孙同学_33 分钟前
【Linux篇】权限管理 - 用户与组权限详解
java·linux·服务器
skywalk81631 小时前
完全按照手册win10里装Ubuntu 虚拟机然后编译ESP32(主要是想针对ESP32C3和S3)开发板的鸿蒙系统(失败)
ubuntu·华为·harmonyos·liteos
猫猫的小茶馆1 小时前
【Linux系统】Linux内核框架(详细版本)
linux·运维·服务器·开发语言·嵌入式软件
材料苦逼不会梦到计算机白富美1 小时前
多人聊天室 NIO模型实现
运维·服务器·nio
风行無痕1 小时前
Ubuntu 22.04 解决EasyExcel导出报错和读写问题 缺失字体
linux·运维·ubuntu
boss-dog1 小时前
Ubuntu22.04系统源码编译OpenCV 4.10.0(包含opencv_contrib)
opencv·ubuntu