杨小龙
目录
基本情况
班级:软件技术1902
性别:男
技术专长
python-scrapy
scala-spark
兴趣爱好
除编程以外,看书,写字
工坊学习历程
Linux
Linux系统常用基本命令总结
rpm命令
(1)rpm命令示例一——查询系统中安装的软件包
[root@yxy ~]# rpm -qa
功能:查询系统中安装的软件包列表,其中参数-q的功能是“查询”,参数-a的功能是“所有的”。
(2)rpm命令示例二——查询软件包中文件清单
[root@yxy ~]#rpm -ql php
功能:查询已安装的软件包php中的文件列表,其中参数-l的功能是“列出指定软件包中的文件”。
(3)rpm命令示例三——卸载指定的软件包
[root@yxy ~]# rpm -e php
功能:卸载已安装的软件包php,参数-e的功能是“卸载”。
说明:请注意执行上述命令时,采用的身份是不同的,普通用户只能执行查询操作。
(4)rpm命令示例四——安装软件包
# rpm -ivh php-4.3.9-3.1-i386.rpm
功能:安装软件包php
参数-i的功能是“安装”install
参数-v的功能是“显示处理过程”view
参数-h的功能是显示“#”来表示进度
(5)rpm命令示例五——强制安装软件包
# rpm -ivh --force php-4.3.9-3.1-i386.rpm
功能:强制安装软件包php,参数--force表示强制的意思。
说明:如果要安装的软件的版本比较低或该软件包在系统中已存在,系统会给出提示并拒绝安装,此时可以加上参数—force来进行强制安装。
(6)rpm命令示例五——忽略依赖关系安装软件包
# rpm -ivh --nodeps php-4.3.9-3.1-i386.rpm
功能:安装软件包php时忽略与其它软件包的依赖关系,参数--nodeps表示忽略依赖关系。
说明:在安装或卸载软件时经常会遇到提示“该软件包与某某软件包存在依赖关系”,只有加上参数--nodeps忽略掉依赖关系才能进行安装或卸载。
(7)卸载
首先通过 rpm -q <关键字> 可以查询到rpm包的名字
然后 调用 rpm -e <包的名字> 删除特定rpm包
如果遇到依赖,无法删除,使用 rpm -e --nodeps <包的名字> 不检查依赖,直接删除rpm包
rpm命令查询软件包(-q、-qa、-i、-p、-l、-f、-R)
rpm -q:查询软件包是否安装
用 rpm 查询软件包是否安装的命令格式为:
[root@localhost ~]# rpm -q 包名
-q 表示查询,是 query 的首字母。
例如,查看 Linux 系统中是否安装 apache,rpm 查询命令应写成:
[root@localhost ~]# rpm -q httpd httpd-2.2.15-15.el6.centos.1.i686
注意这里使用的是包名,而不是包全名。因为已安装的软件包只需给出包名,系统就可以成功识别(使用包全名反而无法识别)。
rpm -qa:查询系统中所有安装的软件包
使用 rpm 查询 Linux 系统中所有已安装软件包的命令为:
[root@localhost ~]# rpm -qa libsamplerate-0.1.7-2.1.el6.i686 startup-notification-0.10-2.1.el6.i686 gnome-themes-2.28.1-6.el6.noarch fontpackages-filesystem-1.41-1.1.el6.noarch gdm-libs-2.30.4-33.el6_2.i686 gstreamer-0.10.29-1.el6.i686 redhat-lsb-graphics-4.0-3.el6.centos.i686
…省略部分输出…
此外,这里还可以使用管道符查找出需要的内容,比如:
[root@localhost ~]# rpm -qa | grep httpd httpd-devel-2.2.15-15.el6.centos.1.i686 httpd-tools-2.2.15-15.el6.centos.1.i686 httpd-manual-2.2.15-15.el6.centos.1.noarch httpd-2.2.15-15.el6.centos.1.i686
相比rpm -q 包名命令,采用这种方式可以找到含有包名的所有软件包。
rpm -qi:查询软件包的详细信息
通过 rpm 命令可以查询软件包的详细信息,命令格式如下:
[root@localhost ~]# rpm -qi 包名
-i 选项表示查询软件信息,是 information 的首字母。
例如,想查看 apache 包的详细信息,可以使用如下命令:
[root@localhost ~]# rpm -qi httpd
Name : httpd Relocations:(not relocatable)
除此之外,还可以查询未安装软件包的详细信息,命令格式为
[root@localhost ~]# rpm -qip 包全名
-p 选项表示查询未安装的软件包,是 package 的首字母。
注意,这里用的是包全名,且未安装的软件包需使用“绝对路径+包全名”的方式才能确定包。
rpm -ql:命令查询软件包的文件列表
通过前面的学习我们知道,rpm 软件包通常采用默认路径安装,各安装文件会分门别类安放在适当的目录文件下。使用 rpm 命令可以查询到已安装软件包中包含的所有文件及各自安装路径,命令格式为:
[root@localhost ~]# rpm -ql 包名
-l 选项表示列出软件包所有文件的安装目录。
例如,查看 apache 软件包中所有文件以及各自的安装位置,可使用如下命令:
[root@localhost ~]# rpm -ql httpd /etc/httpd /etc/httpd/conf /etc/httpd/conf.d /etc/httpd/conf.d/README /etc/httpd/conf.d/welcome.conf /etc/httpd/conf/httpd.conf /etc/httpd/conf/magic
…省略部分输出…
同时,rpm 命令还可以查询未安装软件包中包含的所有文件以及打算安装的路径,命令格式如下:
[root@localhost ~]# rpm -qlp 包全名
-p 选项表示查询未安装的软件包信息,是 package 的首字母。
注意,由于软件包还未安装,因此需要使用“绝对路径+包全名”的方式才能确定包。
比如,我们想查看 bing 软件包(未安装,绝对路径为:/mnt/cdrom/Packages/bind-9.8.2-0.10.rc1.el6.i686.rpm)中的所有文件及各自打算安装的位置,可以执行如下命令:
[root@localhost ~]# rpm -qlp /mnt/cdrom/Packages/bind-9.8.2-0.10.rc1.el6.i686.rpm /etc/NetworkManager/dispatcher.d/13-named /etc/logrotate.d/named /etc/named /etc/named.conf /etc/named.iscdlv.key /etc/named.rfc1912.zones …省略部分输出…
rpm -qf:命令查询系统文件属于哪个RPM包
rpm -ql 命令是通过软件包查询所含文件的安装路径,rpm 还支持反向查询,即查询某系统文件所属哪个 RPM 软件包。其命令格式如下:
[root@localhost ~]# rpm -qf 系统文件名
-f 选项的含义是查询系统文件所属哪个软件包,是 file 的首字母。
注意,只有使用 RPM 包安装的文件才能使用该命令,手动方式建立的文件无法使用此命令。
例如,查询 ls 命令所属的软件包,可以执行如下命令:
[root@localhost ~]# rpm -qf /bin/ls coreutils-8.4-19.el6.i686
rpm -qR:查询软件包的依赖关系
使用 rpm 命令安装 RPM 包,需考虑与其他 RPM 包的依赖关系。rpm -qR 命令就用来查询某已安装软件包依赖的其他包,该命令的格式为:
[root@localhost ~]# rpm -qR 包名
-R(大写)选项的含义是查询软件包的依赖性,是 requires 的首字母。
例如,查询 apache 软件包的依赖性,可执行以下命令:
[root@localhost ~]# rpm -qR httpd /bin/bash /bin/sh /etc/mime.types /usr/sbin/useradd apr-util-ldap chkconfig config(httpd) = 2.2.15-15.el6.centos.1 httpd-tods = 2.2.15-15.el6.centos.1 initscripts >= 8.36 …省略部分输出…
同样,在此命令的基础上增加 -p 选项,即可实现查找未安装软件包的依赖性。
例如,bind 软件包尚未安装(绝对路径为: /mnt/cdrom/Packages/bind-9.8.2-0.10.rc1.el6.i686.rpm),查看此软件包的依赖性可执行如下命令:
[root@localhost ~]# rpm -qRp /mnt/cdrom/Packages/bind-9.8.2-0.10.rc1.el6.i686.rpm /bin/bash /bin/sh bind-libs = 32:9.8.2-0.10.rc1.el6 chkconfig chkconfig config(bind) = 32:9.8.2-0.10.rc1.el6 grep libbind9.so.80 libc.so.6 libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1) …省略部分输出…
注意,这里使用的也是“绝对路径+包全名”的方式。
tar命令
tar命令是经典的备份/还原命令,几乎所有最新的软件包都是通过tar包发布的。
(1)tar命令示例一——打包(备份)
[user1@server2 ~]# tar -cvf myetc.tar /etc
功能:参数-c的功能是打包(创建),
参数-v是显示处理过程,
参数-f是用来指定文档名;
本例的功能是:将目录/etc打包为一个名为myetc.tar的文档。
(2)tar命令示例二——打包(备份)并压缩
# tar -zcvf myetc.tar.gz /etc
功能:将目录/etc打包并压缩为一个名为myetc.tar.gz的文档。
说明:其中参数-z是调用gzip命令来压缩,扩展名为gz,
参数-Z是调用compress命令来压缩,扩展名为Z,
参数-j是调用bzip2命令来压缩,扩展名为bz2。