su、sudo、sudo su、sudo -i的用法和区别
- su、su - 、sudo -i : 用户切换到root(或其他指定切换到的用户)
用法:
区别: su没有切换并没有切换到root用户工作目录和环境变量,只是赋予用户权限;而su- 、sudo -i是真正切换到root登录,工作目录跟环境变量也同时改变
- sudo : 暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。不过有时间限制,Ubuntu默认为一次时长15分钟。(获取临时的root权限执行命令)
软件包管理器: apt,dpkg
dpkg
在Linux发展之初,安装软件的时候是需要下载以tar.gz结尾的软件源码包,然后对源码包进行编译安装。这是极其麻烦的使用。后来Debian(Ubuntu是基于Debian系统的)开发了dpkg(Debian Package)管理工具来管理软件,软件都是以deb结尾的编译好的二进制包,通过dpkg命令可以安装软件和卸载软件(CentOS中使用rpm包管理器)。
dpkg常用命令
- 安装软件:dpkg -i
- 移除软件:dpkg -r
- 查看某个软件包是否已经安装:dpkg -l
- 查看某个软件包中都包含哪些文件:dpkg -L
- 查看系统中的某个文件是由哪个软件包提供的: dpkg -S /path/to/file
- 查看哪些软件包未完成安装:dpkg -C
- 重置软件配置文件 dpkg-reconfigure
dpkg是底层的包管理工具,不太常用,最常用的是apt
dpkg
dpkg不够人性化的一点就是不能自动解决依赖问题,比如A软件包依赖于B软件包,那么你先得安装B才能安装A。而且使用dpkg需要将软件下载到本地才能安装。使用apt安装软件时会自动从软件仓库下载软件进行安装,并且apt能自动解决依赖问题,当有依赖的时候它也会自动从软件仓库下载依赖的包进行安装。当然apt底层还是调用dpkg来进行软件安装的。
apt相关文件
- /etc/apt/source.list 配置软件包来源,也就是上面说的软件仓库
- /ect/apt/apt.conf.d 存在apt的零碎配置文件
- /ect/apt/preferences 制定软件包的版本参数
- /var/cache/apt/archives 存放已下载的软件包
- /var/cache/apt/archives/partial 存放正在下载的软件包
- /var/lib/apt/lists 存放已下载的软件包详细信息
软件源
- 软件源(软件仓库)中存放这大量的软件包,apt会从软件源中下载软件。在/ect/apt/soure.list中可以为apt配置软件源。在这个文件中deb关键字定义已编译的软件包来源,deb-src定义源码包的来源。每一行的格式如下:
deb(或deb-src) 软件源地址 主版本代号 软件仓库1 软件仓库2 软件仓库3 ...
下面时我的source.list中的内容
deb http://cn.archive.ubuntu.com/ubuntu/ bionic main universe restricted multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ bionic-updates main universe restricted multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ bionic-updates main universe restricted multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ bionic-updates main universe restricted multiverse
官方软件包分类: [trusty] [xenial] [bionic] [cosmic] [disco]
Ubuntu的软件仓库被分为4个部分,分别是main,restricted,universe和multiverse
- main:软件包是自由软件,Ubuntu提供及时性,安全性支持
- restricted:不是完全的自由软件,但是由于被广泛使用,所以Ubuntu也提供及时性,安全性支持****
- universe:一般由社区维护的软件,但Ubuntu不提供安全性的支持
- multiverse:非自由软件,不被Ubuntu认可,不建议使用
apt-get 命令
apt-get 命令一般用于软件包的安装,更新和移除,下面是它的一些常用命令
当然,在使用apt-get时还可以带一些选项,关于apt-get的详细说明可以查看手册man apt-get
安装MySQL数据库
#apt-get install mysql
升级软件
#apt-get update && apt-get upgrade
apt-cache 命令
apt-cache一般用于软件包查找和显示软件包信息
当我们安装某个软件包时,但是却不知道具体包名时可以使用apt-cache进行查找
查找mysql数据库安装包的包名
# apt-cache search mysql
显示mysql-server(也就是mysql数据库)的安装包信息
#apt-cache show mysql-server
查看本机是否安装软件: whereis package_name 或者 which package_name