Ubuntu常用操作
1、查看安装的所有软件
dpkg -l
edg:dpkg -l | grep ftp
2、查看软件安装的路径
dpkg -L | grep ftp
or
whereis ftp
3、查看软件版本
aptitude show
edg:aptitude show ftp
4、dpkg方式安装
说明 :DPKG包:是由Debian Linux所开发出来的包管理机制,主要应用在Debian和Unbuntu中。软件包文件后缀是 “.deb”。
注:需要先下载Linux环境下对应的软件安装包(XXX.deb),在其安装包(XXX.deb)所处位置下面打开终端运行以下命令。
sudo dpkg -i XXX.deb
卸载:在其安装包(XXX.deb)所处位置下面打开终端运行以下命令:
apt-get remove [package]
apt-get purge [package]
apt-get autoremove [package]
apt-get clean
apt-get autoclean
5、apt-get卸载常用命令说明:
命令 | 特点 |
---|---|
apt-get autoremove | 移除没有使用的依赖高能警告:慎用本命令!!! 它会在你不知情的情况下,一股脑删除很多“它认为”你不再使用的软件; |
apt-get remove [+软件包名称] 特点 | 卸载软件(删除已安装的软件包但不会删除依赖软件包,保留配置文件) |
apt-get purge / apt-get --purge remove[+软件包名称] | 卸载软件和配置文件(在删除软件包的同时删除相应依赖软件包) |
apt-get autoclean | 删除/var/cache/apt/archives/下的过期deb包(删除已经卸载的软件包的.deb安装文件) |
apt-get clean | 删除/var/cache/apt/archives/下的所有deb包(相当于清理下载的软件安装包) |
命令 | 特点 |
clean | 类似上面的命令,但它删除包缓存中的所有包。 |
根据以上,我们可以知道完全卸载一个软件可以按照这个流程:
5.1、删除软件及其配置文件
apt-get --purge remove <package>
5.2、删除没用的依赖包
apt-get autoremove <package>
5.3、清理dpkg的列表中有“rc”状态的软件包
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
说明:输入dpkg -l来查看软件的状态,输入dpkg -P来卸载软件。因为dpkg --remove只是删除安装的文件,但不删除配置文件。而dpkg --purge则安装文件和配置文件都删除。
常用命令
6、dpkg常用命令说明:
所谓源码包一般就是指C语言开发的源代码文件的一个压缩包(.tar.gz或.tar.bz2)。源码包的编译用到了linux系统里的编译器
gcc,利用它就可以把C语言变成可执行的二进制文件,所以如果要使用源码包安装必须先安装 gcc 编译器(可以使用 yum install -y gcc 完成安装)。
选项(在下面对应的场景会具体说明)
软件包名:指定要操做的dpkg软件包。如果操作的是未安装过的软件包,要使用包全名,而且要注意绝对路径;如果操作的是已安装过的软件包,可以在任意目录下直接使用包名,DPKG包管理利用文件数据库来维护已安装的软件信息, 如果软件安装完毕,该软件的相关信息会被写入/var/lib/dpkg/目录下的数据库文件中,一般"/var/lib/dpkg/status" 文件中存储软件状态和控制信息,"/var/lib/dpkg/info/xxx.list"文件中记录了软件安装文件清单
DPKG 软件包的命名规则为:软件包名_版本号-修订号_平台.deb
例如:typora_1.0.3_amd64.deb
命令 | 特点 |
---|---|
dpkg -i package.deb | 安装包(使用包全名) |
dpkg -R /usr/local/src | 安装一个目录下面所有的软件包 |
dpkg -r package | 删除包(保留配置文件) |
dpkg -P package | 删除包(包括配置文件) |
dpkg -l | 查询所有安装过的包一般信息(也可以验证包是否被安装)) |
dpkg -l package | 查看指定包一般信息 |
dpkg -s package | 查看安装过的包的**详细信息、及包的依赖列出当前已安装的包 |
dpkg --info package.deb | 查看未被安装过的包的**详细信息、及包的依赖(使用包全名) |
dpkg -L package | 查看包的安装位置 |
dpkg -S fileName | 查询文件属于哪个包中 |
dpkg --unpack package.deb | 解开deb包的内容 |
dpkg -s keyword | 搜索所属的包内容 |
dpkg -c package.deb | 列出deb包的内容(使用包全名) |
dpkg --configure package | 配置包 |
6.1、DPKG 安装
安装命令:dpkg -i 包全名
选项
-i:安装
--unpack:解开软件包
--configure:配置软件包
-i 选项所做操作包含解开软件包和配置软件包,相当于这两步操作:
dpkg --unpack 包全名
dpkg --configure 包名
6.2、DPKG 卸载
卸载命令:dpkg -r|-P 包名
选项
--r:删除已安装的软件包,但保留配置文件
-P:删除已安装软件包,完全清除包(含配置文件)
6.3、DPKG 查询
6.3.1、查询已安装软件包列表,命令:dpkg -l [包名]
选项
-l:查询已安装软件包列表,包含状态、版本信息
包名:查询指定的软件包,如果省略查询全部已安装软件包。包名可使用通配符
6.3.2、列出软件包关联文件,命令:dpkg -L 包名 或 dpkg -c 包全名
选项
-L:列出已安装软件包关联文件列表
-c:列出未安装软件包关联文件列表
也可以通过该命令查看软件包文件安装目录位置
6.3.3、显示软件包的详细状态,命令:dpkg -s 包名
选项
-s 或 --status:显示软件包的详细状态
6.3.4、搜索含有指定文件的软件包,命令:dpkg -S 文件名
选项
-S 或 --search:搜索含有指定文件的软件包。文件名可使用通配符
6.3.5、搜索系统中损坏的软件包,命令:dpkg -C
7、源码包安装
7.1、注意事项
什么情况下选择源码包安装?
如果软件包是给大量客户提供访问的,建议源码包安装,因为源码包效率更高,如LAMP环境搭建;如果软件包是给Linux底层使用或者少量客户访问,建议使用rmp包安装,因为rmp包简单,不容易出错
源码包从哪里来?
rpm 包是光盘中直接包含的或者yum源服务器提供,一般不需要单独下载;而源码包是通过官方网站下载的,使用时需要单独下载。
同一个软件是否可以用软件包方式安装后,同时又用源码包再安装一遍?
答案是可以的,因为两种方式的软件安装位置不同,所以安装时相互不会有影响,但是需要注意,两个同时启动时需要修改端口,否则会端口冲突。一般情况下不会同一个软件安装两边,多装一个只会浪费资源
7.2、安装步骤
下载源码包
源码包格式一般为 xxx.tar.gz或 xxx.tar.bz2。
示例: wget https://archive.apache.org/dist/httpd/httpd-2.2.15.tar.gz
解压缩
一般习惯把下载的源码包解压缩到 /usr/local/src/ 目录下。
示例:tar -zxvf httpd-2.2.15.tar.gz -C /usr/local/src/
进入解压目录
示例:cd /usr/local/src/httpd-2.2.15/
编译前准备,命令:./configure --prefix=安装目录
--prefix=安装目录:指定安装目录。如果不指定,默认情况下会安装在 /usr/local/包名/bin, /usr/local/包名/lib 等目录下,安装文件比较分散不利于删除
configure 指令是每个源码包都自带的脚本程序(即解压目录下一个名为"configure"的脚本文件),非系统指令执行时必须指明路径,即"./"表明是当前路径下。执行该指令主要有如下作用:
安装之前检测系统环境是否符合安装要求
定义需要的功能选项。如通过 “–prefix=安装目录” 指定安装目录,其他更多功能选项可以通过 “./configure --help” 来查看
创建 Makefile 文件并把系统环境检测结果和定义的功能选项写入该文件,后续的编译和安装都需要依赖这个文件的内容
示例:./configure --prefix=/usr/local/apache2
编译,命令:make
make 会调用 gcc 编译器,并读取 Makefile 文件中的信息进行系统软件编译。编译的目的就是把源码程序转变为能被 Linux 识别的可执行文件,这些可执行文件保存在当前目录下。编译过程较为消耗时间,需要耐心等待
报错清空编译内容(非必须步骤),命令:make clean
如果在执行 “./configure” 或者 “make” 命令时报错,解决报错问题后,需要重新执行命令时一定要先执行一下 “make clean” 命令,它会清空 Makefile 文件和编译产生的 “.o” 头文件
安装,命令:make install
这个才是真正的安装,一般会输出程序的安装位置。如果忘记指安装目录,则可以把这个命令的执行过程保存下来,以备将来删除软件使用
注意:1.执行 ./configure命令时可能会提示缺少 gcc等依赖程序,所以需要使用 yum 等方式先安装依赖程序即可
2.并不是所有的源码包安装一定是执行"./configure"、“make”、“make install” 这三个命令,只有极少数源码包安装命令可能有些不同,比如 mysql 版本 5.5 以后的源码包安装时,使用 “cmake” 命令替代了 “./configure”。一般源码包解压后都有安装的说明文档,安装之前可以先阅读以下说明文档。
3.一般去第三方官网下载源码包时,也会提供已经编译好的二进制包,这种二进制包里面包括了已经经过编译可以马上运行的程序,所以解压后直接进入 “xxx/bin/” 目录找到相关命令直接运行即可。
7.3、卸载
通过源码包安装时如果指定了安装目录,比如 “./configure --prefix=/usr/local/apache2”,卸载时只需要删除整个安装目录就可以了 “rm -rf /usr/local/apache2”,而且是100%卸载,不会像windows那样经常会残留那多注册表之类的垃圾。
如果源码包安装时没有指定安装目录,那么安装软件生成的文件会分别存储在 /usr/local/ 下的 bin、lib、etc 等目录下,删除起来就比较麻烦一点了。所以建议源码包安装一定要指定安装目录,方便卸载。
8、core文件生成
8.1、 查看是否打开了coredump
ulimit -c
可以使用下面命令修改
ulimit -c 1024
ulimit -c unlimited //大小不受限
但是这个只是针对当前这个连接,如果想要永久修改可以修改配置文件:
vim /etc/profile,然后添加上面的命令ulimit - c unlimited.然后执行source /etc/profile或者重启使刚刚的配置可以生效。
8.2、 设置core文件存储路径
打开文件 /etc/sysctl.conf ,添加以下内容:
kernel.core_pattern = /var/core/core_%e_%p
kernel.core_uses_pid = 0 //是否加上pid
cat /proc/sys/kernel/core_pattern
|/usr/share/apport/apport %p %s %c %d %P %E
ubuntu的服务apport.service。自动生成崩溃报告,官方为了自动收集错误的。这个玩意会导致core_pattern的设置不能一直有效,只要这个服务存在,系统重新启动后就会把core_pattern改为一个特定的值,直接导致coredump无法生成。
8.3、 修改/etc/default/apport
修改/etc/default/apport文件,enabled 设置为0。