Linux的发行版本
Linux有上百种不同的发行版,其中大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本。如基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux,和基于社区开发的debian、archlinux等。前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。
Debian,或者称Debian系列,包括Debian和Ubuntu等,我们所用的kali也属于这个系列。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。Debian最早由Ian Murdock于1993年创建。Debian最具特色的是apt-get / dpkg包管理方式。
除了这具有代表性的两大体系外,Linux发行版还有其他体系,例如Slackware系的SUSE Linux。我们的教程主要使用的是redhat与debian系。
Debian体系的软件安装
两个体系最直观的不同是软件安装命令的不同。这一节,我们要来学习debian体系的软件安装。
dpkg命令
是为"Debian"操作系统专门开发的套件管理系统,用于软件的安装,更新和移除。能被命令安装的软件包一般以为文件后缀。
dpkg -i # 安装软件包
dpkg -r # 移除软件(保留配置)
dpkg -P # 移除软件(不保留配置)
dpkg -c # 列出deb包的内容
dpkg -l # 配合|grep,查找主机包
dpkg -s # 查找包的详细信息
dpkg -L # 查看已安装的软件包,都存在系统哪有文件
dpkg -S # 显示指定包的状态信息
apt命令
是一个在Debian中的Shell前端软件包管理器。
命令执行需要超级管理员权限(root)
源配置
kali系统的源文件在。
#官方源
deb http://http.kali.org/kali kali-rolling main contrib non-free
#中科大
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
#阿里云
#https://developer.aliyun.com/mirror/ 官方源地址,如果下面的源失效可以去该地址找
deb http://mirrors.a/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
#清华大学
deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
可以编辑文件,将源切换成需要的源。
如果更新源的过程中失效了就然后再去切换源再执行上述命令更新
apt命令
apt-get install #安装软件包 可以-y自动确定
apt-get remove #仅卸载软件,但是并不卸载配置文件
apt-get purge #卸载指令,同时卸载相应的配置文件
apt-get update #将所有包的来源更新(更新源)
apt-get upgrade #将系统中旧版本的包升级成最新的,某种意义上和更新操作系统一样,kali上慎用
apt-cache search #用关键字搜索包
apt-cache show #显示特定包的基本信息
apt-cache depends #列出包的依赖
apt-get clean #清理本地包占用的磁盘空间(/var/cache/apt/archives)
apt-get autoremove #卸载软件的时候同时卸载那些当初作为依赖但是现在并不需要的包
小结
两者的使用是区分应用场景的,apt-get更方便,通常情况下就使用apt就可以,但是有的包并没有被收录到源里面,这时候我们就需要去下载包用dpkg安装
redhat体系的软件安装
rpm命令
常见命令
rpm -ivh [package_name] #安装软件包,i参数是安装,vh可以显示信息以及详细的进度条
rpm -evh [package_name] #卸载软件
rpm -qlp *.rpm #列出rpm包的内容
rpm -qa |grep [字符串] #在已安装的所有软件中查询包含某字符串的软件版本
rpm -ql [软件名] #列出该软件所有文件与目录所在的完整文件名
rpm -qc [软件名] #列出软件的所有设置文件
rpm -qR [软件名] #查询某软件依赖的其他软件
rpm -qf [文件名] #查询文件属于哪个软件包
yum命令
命令是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。
yum源配置
同apt命令一样,依然从源获取软件。在centos中yum源文件存储在目录中,apt是把所有的deb都写到一个源文件里面,而yum是一个rpm写一个repo文件。
[baseos]
name=Rocky Linux $releasever - BaseOS
mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=BaseOS-$releasever
#baseurl=http://dl.rockylinux.org/$contentdir/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
具体的换源过程可以参考:
https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11XvjSRf
epel源是redhat系比较常用的源。
安装epel源只需要安装一个叫”epel-release”的软件包,这个软件包会自动配置yum的软件仓库。
yum命令
yum makecache #更新源(安装新源后执行)
yum clean all #清除缓存目录(/var/cache/yum)下的软件包及旧的headers
yum list |grep #显示所有已经安装和可以安装的程序包
yum info [package-name] #显示安装包信息
yum -y install [package-name] #安装软件,默认选yes
yum remove [package-name] #卸载
yum deplist rpm #查看程序rpm依赖情况
yum update #更新全部软件包
yum group list #列出组
yum group install "Security Tools" #安装‘Security Tools’软件组
yum search #检索安装包
dnf命令
是新一代的rpm软件包管理器。它正在逐步取代命令。
dnf repolist #该命令用于显示系统中可用的 DNF 软件库
dnf repolist all #该命令用于显示系统中可用和不可用的所有的 DNF 软件库
dnf list #用户系统上的所有来自软件库的可用软件包和所有已经安装在系统上的软件包
dnf list installed #该命令用于列出所有安装了的 RPM 包
dnf list available #用于列出来自所有可用软件库的可供安装的软件包
dnf search [pakage] #用该命令来搜索软件包
dnf provides /bin/bash #查找某一文件的提供者
dnf info nano #查看软件包详情
dnf install [pakage] #安装软件包
dnf update systemd #该命令用于升级指定软件包
dnf check-update #该命令用于检查系统中所有软件包的更新
dnf update #该命令用于升级系统中所有有可用升级的软件包
dnf remove [pakage] #删除系统中指定的软件包
dnf autoremove #删除无用孤立的软件包
dnf clean all #删除缓存的无用软件包
dnf history #查看您系统上 DNF 命令的执行历史
dnf grouplist #该命令用于列出所有的软件包组
dnf groupinstall ‘Educational Software’ #该命令用于安装一个软件包组
dnf groupupdate ‘Educational Software’ #升级一个软件包组中的软件包
dnf groupremove ‘Educational Software’ #该命令用于删除一个软件包组
dnf reinstall [pakage] #该命令用于重新安装特定软件包