一、passwd重置密码

root用户,直接执行 passwd 回车 输入两次新密码即可
普通用户,也可以改。 passwd username
user1登录后,改自己密码,只需要执行 passwd 即可

语法:
    passwd [username]
 参数:
    --stdin  明文设置密码,常用于shell脚本

[root@localhost ~]# passwd root    #修改root用户密码
Changing password for user root.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

[root@localhost ~]# useradd user1    #增加普通用户
[root@localhost ~]# passwd user1    #修改普通用户密码
Changing password for user user1.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.

[root@localhost ~]# passwd --stdin user1

二、单用户模式

当我们忘记了密码,也没有密钥,该怎么办呢???Linux系统提供了一种单用户模式。单用户模式是Centos 7系统的一个运行级别。那么什么是运行级别呢?
运行级别就是操作系统当前正在运行的功能级别,级别是从0到6。Centos7系统之前的版本是通过/etc/inittab文件来定义系统运行级别:

[root@localhost ~]#  cat /etc/centos-release
CentOS release 6.4 (Final)
[root@localhost ~]#  cat /etc/inittab
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)    # 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
#   1 - Single user mode                               #  运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)    # 运行级别2:多用户状态(没有NFS)
#   3 - Full multiuser mode                           #   运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
#   4 - unused                                               #   运行级别4:系统未使用,保留
#   5 - X11                                                    #   运行级别5:X11控制台,登陆后进入图形GUI模式
#   6 - reboot (Do NOT set initdefault to this)    #   运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
#
id:3:initdefault:    # 表示运行级别3,是默认的

CentOS 7 版本不再使用该文件定义系统运行级别,相关运行级别设置无效:

[root@localhost ~]# cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core)
[root@localhost ~]# cat /etc/inittab
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:    #查看当前运行级别使用如下命令
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target    #设置默认运行级别,使用如下命令
#

新版本的运行级别都定义在/lib/systemd/system/runlevel*

[root@localhost ~]# ll /lib/systemd/system/runlevel*
lrwxrwxrwx. 1 root root 15 Dec  3  2017 /lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root 13 Dec  3  2017 /lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root 17 Dec  3  2017 /lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Dec  3  2017 /lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Dec  3  2017 /lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root 16 Dec  3  2017 /lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root 13 Dec  3  2017 /lib/systemd/system/runlevel6.target -> reboot.target

Centos 7和之前版本的运行级别对应表,如下:

init级别 systemctl target
0 shutdown.target
1 emergency.target
2 rescure.target
3 multi-user.target
4
5 graphical.target
6

设置运行级别:

命令格式:
    systemctl [command] [unit.target]
参数详解:
- get-default:获取当前的target
- set-default:设置指定的target为默认的运行级别
- isolate:切换到指定的运行级别

[root@localhost ~]# systemctl get-default   #获取当前运行级别
[root@localhost ~]# systemctl set-default multi-user.target #设置默认运行级别为multi-user
[root@localhost ~]# systemctl isolate multi-user.target #在不重启情况下,切换到multi-user
[root@localhost ~]# systemctl isolate graphical.target  #在不重启的情况下,切换到图形界面

如何进入单用户模式?

  • 重启机器,按一下方向键,不让系统马上启动,选择中第一个启动项,按e进入grub界面
  • 找到linux16这一行,找到ro更改为rw init=/sysroot/bin/sh,这里最好修改LANG=zh_CN.UTF-8LANG=en_US.UTF-8,避免修改密码时有乱码,再按ctrl +x启动。

  • 再执行chroot /sysroot/,进入到真正的Linux
  • 系统里执行 passwd更改密码
  • 执行 touch /.autorelabel (touch命令是用来创建一个新文件,或者说更改文件时间的命令)
  • 执行exit 推出 chroot的系统环境,到内存的环境
  • 再执行reboot,重启

三、救援模式

救援模式和单用户模式有点类似,不同的是救援模式需要使用系统盘来进行启动,是一个内存操作系统。

如何进入救援模式?

  • 1)关机
  • 2)点右键 电源 启动时 进入bios

  • 3)到bios里面,选择boot,把光驱放到第一位 按F10 点yes

  • 4)选择troubleshuooting 回车 选择 rescue a centos system

  • 5)选择continue

  • 6)回车后,敲命令 chroot /mnt/sysimage

  • 7) 执行passwd命令
  • 8) 执行exit 然后执行 reboot 同时把光驱断开

四、设置SElinux

[root@localhost ~]# vi /etc/selinux/config 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled    #把enforing改为disabled,需要重启系统才会生效
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

#临时修改selinux的策略
[root@localhost ~]# setenforce 0    #临时关闭selinux,重启后还会引用配置文件中的配置
[root@localhost ~]# getenforce     #获取slinux的状态信息
Disabled

五、Linux的常用基础命令详解

5.1、mkdir命令

mkdir : 创建目录, make directorys, -p 递归创建目录

[root@localhost test]# mkdir -pv /a/b/c
mkdir: created directory ‘/a’
mkdir: created directory ‘/a/b’
mkdir: created directory ‘/a/b/c’

5.2、ls命令

-l(long)d(directory)显示目录或文件,全称 list

语法:
          ls [OPTION]... [FILE]...
参数:
    -a  查看隐藏的文件或者目录
    -l  查看文件的详细信息(时间、大小、权限、属主、属组、文件的属性)
    - 普通文件
    d 目录
    l 软链接文件(类似于windows的快捷方式)
    b 块设备文件(磁盘)
    c 字符设备文件 (键盘、鼠标)
    s 套接字文件 (socket文件,这个文件是Unix/Linux系统里面用来通信的,进程间通信的文件)
    p 管道文件 ( | 命名管道 )
    -d  查看目录本身
    -t  按时间排序,最新的在上面
    -i  inode(在格式化磁盘的时候生成的,mkfs.ext4)

[root@localhost test]# ls -a
.  ..  1.txt  3.txt  4.txt  test1
[root@localhost test]# ls -l
total 4
-rw-r--r-- 1 root root  7 Jan 30  2018 1.txt
-rw-r--r-- 1 root root  0 Jan 27  2018 3.txt
-rw-r--r-- 1 root root  0 Jan 27  2018 4.txt
drwxr-xr-x 2 root root 18 Jan 30  2018 test1
[root@localhost test]# ls -d
.
[root@localhost test]# ls -lt
total 4
drwxr-xr-x 2 root root 18 Jan 30  2018 test1
-rw-r--r-- 1 root root  7 Jan 30  2018 1.txt
-rw-r--r-- 1 root root  0 Jan 27  2018 3.txt
-rw-r--r-- 1 root root  0 Jan 27  2018 4.txt

[root@localhost test]# ls -li
total 4
 37267089 -rw-r--r-- 1 root root  7 Jan 30  2018 1.txt
 41800725 -rw-r--r-- 1 root root  0 Jan 27  2018 3.txt
 41800729 -rw-r--r-- 1 root root  0 Jan 27  2018 4.txt
101976481 drwxr-xr-x 2 root root 18 Jan 30  2018 test1    

5.3、cd命令

cd : 切换目录层次 change directory
~表示家目录,
-表示上一次的目录

cd ~
cd /tep/fq
cd /root
cd - # 回到/tep/fq

5.4、chmod命令

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定
在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组,如:

[root@localhost test]# ls -l
total 4
-rw-r--r-- 1 root root  7 Jan 30  2018 1.txt
-rw-r--r-- 1 root root  0 Jan 27  2018 3.txt
-rw-r--r-- 1 root root  0 Jan 27  2018 4.txt
drwxr-xr-x 2 root root 18 Jan 30  2018 test1

实例中,test1文件的第一个属性用"d"表示。"d"在Linux中代表该文件是一个目录文件。
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。

  • 当为[ d ]则是目录
  • 当为[ - ]则是文件;
  • 若是[ l ]则表示为链接文档(link file);
  • 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
    接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。
    其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
    每个文件的属性由左边第一部分的10个字符来确定(如下图)。

从左至右用0-9这些数字来表示。

  • 第0位确定文件类型,第1-3位确定属主(该文件的所有者)拥有该文件的权限。
  • 第4-6位确定属组(所有者的同组用户)拥有该文件的权限
  • 第7-9位确定其他用户拥有该文件的权限。
    其中,第1、4、7位表示读权限,如果用"r"字符表示,则有读权限,如果用"-"字符表示,则没有读权限;
    第2、5、8位表示写权限,如果用"w"字符表示,则有写权限,如果用"-"字符表示没有写权限;第3、6、9位表示可执行权限,如果用"x"字符表示,则有执行权限,如果用"-"字符表示,则没有执行权限。
    Linux文件属性有两种设置方法,一种是数字,一种是符号。
    Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。
    文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
  • r:4
  • w:2
  • x:1
    每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:
  • owner = rwx = 4+2+1 = 7
  • group = rwx = 4+2+1 = 7
  • others= --- = 0+0+0 = 0
    设定权限的变更时,该文件的权限数字就是770啦!变更权限的指令chmod的语法是这样的:
语法:
    chmod [-R] xyz 文件或目录

选项与参数:
    xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
    -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更

将.bashrc这个文件所有的权限都设定启用,那么命令如下:

[root@www ~]# ls -al .bashrc
-rw-r--r--  1 root root 395 Jul  4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc

那如果要将权限变成 -rwxr-xr-- 呢?那么权限的分数就成为 [4+2+1][4+0+1][4+0+0]=754。

符号类型改变文件权限
还有一个改变权限的方法,从之前的介绍中我们可以发现,基本上就九个权限分别是:

  • (1)user
  • (2)group
  • (3)others
    那么我们就可以使用 u, g, o 来代表三种身份的权限!
    此外, a 则代表 all,即全部的身份。读写的权限可以写成 r, w, x,也就是可以使用下表的方式来看:

如果我们需要将文件权限设置为 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定:

[root@localhost test]#   touch test1    #创建 test1 文件
[root@localhost test]#  ls -al test1    #查看 test1 默认权限
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
[root@localhost test]#  chmod u=rwx,g=rx,o=r  test1    #修改 test1 权限
[root@localhost test]#  ls -al test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1

而如果是要将权限去掉而不改变其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:

[root@localhost test]#  chmod  a-x test1
[root@localhost test]#  ls -al test1
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1

5.5、chown命令

chown:用于更改文件或者目录的属主或者属组

chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
参数说明:
    -R:级联更改目录下的所有目录和文件
例如:
    chown user1:users 1.txt
    chown user1.users 1.txt

进入 test 目录将1.txt的拥有者改为user1这个账号:

[root@localhost test]# ll
total 4
-rw-r--r-- 1 root root  7 Jan 30  2018 1.txt
-rw-r--r-- 1 root root  0 Jan 27  2018 3.txt
-rw-r--r-- 1 root root  0 Jan 27  2018 4.txt
drwxr-xr-x 2 root root 18 Jan 30  2018 test1
[root@localhost test]# chown -R user1.user1 1.txt
[root@localhost test]# ll
total 4
-rw-r--r-- 1 user1 user1  7 Jan 30  2018 1.txt
-rw-r--r-- 1 root  root   0 Jan 27  2018 3.txt
-rw-r--r-- 1 root  root   0 Jan 27  2018 4.txt
drwxr-xr-x 2 root  root  18 Jan 30  2018 test1

5.6、echo命令

echo : 打印输出内容(printf 复杂的输出)

参数: -n : 不换行输出

​ -e : 激活转义字符

[root@localhost test]# echo "hello world"
hello world
[root@localhost test]# echo -n "hello world" 

hello world
[root@localhost test]# echo -e "hello\nworld"
hello
world

5.7、cat命令

查看文件内容

[root@localhost test]# cat /etc/hosts   #查看文件内容
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.56.11 linux-node1 linux-node1.example.com
192.168.56.12 linux-node2 linux-node2.example.com

[root@localhost test]# cat -n /etc/hosts    #显示行号
     1  127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
     2  ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
     3  192.168.56.11 linux-node1 linux-node1.example.com
     4  192.168.56.12 linux-node2 linux-node2.example.com
     5
[root@localhost test]# cat >>a.txt<<EOF #将EOF之间的所有数据都追加到a.txt文件尾部
> 666
> 777
> 888
> EOF
[root@localhost test]# cat a.txt
666
777
888

5.8、cp命令

cp:cp - copy files and directories 拷贝文件

[root@localhost test]# cp a.txt /tmp/
[root@localhost test]# cp -r test1 /tmp

5.9、useradd:建立用户账号

格式:
useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s ][-u ][用户帐号] 或 useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群
组>][-s ]

参数:
    -c<备注> 加上备注文字。备注文字会保存在 passwd 的备注栏位中。
    -d<登入目录> 指定用户登入时的启始目录。
    -D 变更预设值.
    -e<有效期限> 指定帐号的有效期限。 格式 MM/DD/YY
    -f<缓冲天数> 指定在密码过期后多少天即关闭该帐号。 0:立即停权 -1:关闭此功能(默认值-1)
    -g<群组> 指定用户所属的群组。
    -G<群组> 指定用户所属的附加群组。
    -m 自动建立用户的登入目录。
    -M 不要自动建立用户的登入目录。
    -n 取消建立以用户名称为名的群组.
    -r 建立系统帐号。
    -s 指定用户登入后所使用的 shell。 不填写时,系统根据/etc/default/useradd 预设值指定
    -u 指定用户 ID。
    -p 创建用户时,直接指定密码,但在 /etc/shadow 文件中以明文显示,不安全

[root@localhost test]# useradd -g test -G dba -p password -d /home/oracle -s /bin/bash oracle

补充说明: useradd 可用来建立用户帐号。帐号建好之后,再用 passwd 设定帐号的密码.而可用 userdel 删除帐号。使用 useradd 指令所建立的帐号,实际上是保存在/etc/passwd 文本文件中。passwd 设定的密码在/etc/shadow 文件中。

5.10、userdel : 删除用户

参数:
    -f, --force force removal of files, even if not owned by user
    -h, --help display this help message and exit
    -r, --remove 在删除用户的同时一起把这个用户的宿主目录和邮件目录删除。
示例:
[root@localhost test]# userdel -r newuser

5.11、tail:监控文件的变化

参数:
    -n 行数,显示文件后几行,默认 10 行;
    -f 跟踪文件结尾变化,如果文件被删除后重建,不会显示新的变化
    -F 跟踪文件结尾变化,会尝试重新连接文件,如果文件被删除后重建,会显示新的变化
[root@localhost test]# tail -n 500 a.txt
[root@localhost test]# tail -500 a.txt

类似命令: tailf。
tailf 相当于 tail -f,类似于 tail -f,严格说来应该与 tail –follow=name 更相似些。
与 tail -f 不同的是,如果文件不增长,它不会去访问磁盘文件,所以省电,并减少了磁盘访问

5.12、id: 显示用户 id 和组 id 信息

语法:
id [-gGnru][--help][--version][用户名称]

参数:
    -a 打印用户名、 UID 和该用户所属的所有组
    -g 或--group 显示用户所属群组的 ID。
    -G 或--groups 显示用户所属附加群组的 ID。
    -n 或--name 显示用户,所属群组或附加群组的名称。
    -r 或--real 显示实际 ID。
    -u 或--user 显示用户 ID。
    --help 显示帮助。
    --version 显示版本信息。

[root@localhost test]# id
uid=0(root) gid=0(root) groups=0(root)
[root@localhost test]# id -gn
root
[root@localhost test]# id -un
root

5.13、history:查看命令历史

[root@localhost test]# history -c   #清空历史记录
[root@localhost test]# history
   25  history
[root@localhost test]# history -d 28    #删除指定行号的历史记录

5.14、route:路由配置

语法:
route (选项)(参数)

选项:
    -A:设置地址类型
    -C:打印将 Linux 核心的路由缓存
    -v:详细信息模式
    -n:不执行 DNS 反向查找,直接显示数字形式的 IP 地址
    -e: netstat 格式显示路由表
    -net:到一个网络的路由表
    -host:到一个主机的路由表。

参数:
    Add:增加指定的路由记录
    Del:删除指定的路由记录
    Target:目的网络或目的主机
    gw:设置默认网关
    mss:设置 TCP 的最大区块长度(MSS),单位 MB
    window:指定通过路由表的 TCP 连接的 TCP 窗口大小
    dev:路由记录所表示的网络接口。

[root@localhost test]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.56.2    0.0.0.0         UG    100    0        0 eth0
192.168.56.0    0.0.0.0         255.255.255.0   U     100    0        0 eth0

其中 Flags 为路由标志,标记当前网络节点的状态, Flags 标志说明:
U Up 表示此路由当前为启动状态。
H Host,表示此网关为一主机。
G Gateway,表示此网关为一路由器。
R Reinstate Route,使用动态路由重新初始化的路由。
D Dynamically,此路由是动态性地写入。
M Modified,此路由是由路由守护程序或导向器动态修改。
! 表示此路由当前为关闭状态

增加一条到达 244.0.0.0 的路由。
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

增加一条屏蔽的路由,目的地址为 224.x.x.x 将被拒绝。
route add -net 224.0.0.0 netmask 240.0.0.0 reject

删除路由记录:
route del -net 224.0.0.0 netmask 240.0.0.0
route del -net 224.0.0.0 netmask 240.0.0.0 reject

删除默认网关
route del default gw 192.168.1.1

添加默认网关
route add default gw 192.168.1.1

六、软链接和硬链接

硬链接:当系统需要读取一个文件时,就会先去读取inode table,一个文件对应一个inode,然后再根据inode中的信息到块区域去将数据读取出来。而硬链接是直接使用了和源文件相同的inode。进行硬链接的时候实际上该文件的内容没有任何变化,只是指定了相同的inode。硬链接有两个限制:①不能跨文件系统,因为不同的文件系统有不同的inode table;②不能链接目录。

软链接:跟硬链接不同,这个是建立一个独立的文件,而这个文件的作用是当读取这个链接文件时,它会把读取的行为转发到该文件所link的文件上。相当于windows系统中的快捷方式。当源文件被删除时,link文件将无法打开文件。

 语法:ln 【-s】 【源文件】 【目的文件】
     ln的常用选项就一个-s,如果不加就是建立硬链接,加上就是建立软连接。

[root@longlinux ~]# ln -s /etc/passwd /tmp/passwd1   //建立/etc/passwd的软链接
[root@longlinux ~]# ls -l /tmp/passwd1
lrwxrwxrwx 1 root root 11 8月  24 23:10 /tmp/passwd1 -> /etc/passwd
[root@longlinux ~]# ls -i /etc/passwd
788439 /etc/passwd
[root@longlinux ~]# ln /etc/passwd /tmp/passwd0      //建立/etc/passwd的硬链接
[root@longlinux ~]# ls -i /etc/passwd && ls -i /tmp/passwd0       //都指向同一个inode:788439
788439 /etc/passwd
788439 /tmp/passwd0

最后,来一张图解说明软链接和硬链接:

七、RPM工具用法

RPM [1]  是Red-Hat Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。

(1)rpm选项
-i 表示安装
-U 表示升级一个包
-v 表示可视化
-h 表示显示安装进度
-e 卸载一个包
-q 查询一个包是否已经安装
-qi 查询指定包信息
-ql 列出一个包安装的文件
-qf 查询文件绝对路径
rpm -qf `which cd` 查看这条命令的路径包在哪
--force 表示强制安装
--nodeps 表示当安装的rpm包依赖其他包时,忽略依赖进行安装

rpm的功能众多,总结出来大概常用的功能有3类:

  • 查询、验证RPM软件包的相关信息
  • 安装、升级、卸载RPM软件包
  • 维护RPM数据库信息等综合管理操作

查询已安装的 RPM 软件信息

语法:rpm  -q[子选项]  [软件名]
选项:
    -qa:显示当前系统中以RPM方式安装的所有软件列表
    -qi:查看指定软件包的名称、版本、许可协议、用途描述等详细信息
    -ql:显示指定的软件包在当前系统中安装的所有目录、文件列表
    -qf:查看当前指定的文件或目录是由哪个软件包所安装的

[root@localhost test]# rpm -qa |wc -l   #统计当前系统安装的RPM软件个数
819
[root@localhost test]# rpm -q samba #查询某个软件是否安装
package samba is not installed
[root@localhost test]# rpm -qf `which cd`   #查看cd命令是由哪个包安装的
bash-4.2.46-29.el7_4.x86_64

查询未安装的 RPM 软件包文件中信息

使用“-qp”选项时,必须以RPM软件包文件的路径作为参数(可以有多个),而不是软件包名称。

-qpi: 查看指定软件包的名称、版本、许可协议、用途描述等详细信息

-qpl: 显示指定的软件包准备要安装的所有目录、文件列表

[root@localhost ~]# rpm -qpi elasticsearch-6.0.0.rpm    #查看软件包信息
warning: elasticsearch-6.0.0.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
Name        : elasticsearch
Epoch       : 0
Version     : 6.0.0
Release     : 1
Architecture: noarch
Install Date: (not installed)
Group       : Application/Internet
Size        : 31180241
License     : 2009
Signature   : RSA/SHA512, Sat 11 Nov 2017 04:14:03 AM CST, Key ID d27d666cd88e42b4
Source RPM  : elasticsearch-6.0.0-1-src.rpm
Build Date  : Sat 11 Nov 2017 02:42:43 AM CST
Build Host  : packer-virtualbox-iso-1509888528
Relocations : /usr
Packager    : Elasticsearch
Vendor      : Elasticsearch
URL         : https://www.elastic.co/
Summary     : Elasticsearch is a distributed RESTful search engine built for the cloud. Reference documentation can be found at https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html and the 'Elasticsearch: The Definitive Guide' book can be found at https://www.elastic.co/guide/en/elasticsearch/guide/current/index.html
Description :
Elasticsearch subproject :distribution:rpm

[root@localhost ~]# rpm -qpl elasticsearch-6.0.0.rpm    #查看该软件包含哪些文件
warning: elasticsearch-6.0.0.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
/etc/elasticsearch/elasticsearch.yml
/etc/elasticsearch/jvm.options
/etc/elasticsearch/log4j2.properties
/etc/init.d/elasticsearch
/etc/sysconfig/elasticsearch
......

八、YUM工具

yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

yum 语法
    yum [options] [command] [package ...]
- options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
- command:要进行的操作。
- package操作的对象。

yum常用命令:
    1.列出所有可更新的软件清单命令:yum check-update
    2.更新所有软件命令:yum update
    3.仅安装指定的软件命令:yum install <package_name>
    4.仅更新指定的软件命令:yum update <package_name>
    5.列出所有可安裝的软件清单命令:yum list
    6.删除软件包命令:yum remove <package_name>
    7.查找软件包 命令:yum search <keyword>
    8.清除缓存命令:
    yum clean packages: 清除缓存目录下的软件包
    yum clean headers: 清除缓存目录下的 headers
    yum clean oldheaders: 清除缓存目录下旧的 headers
    yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers

【第四课】Linux的基础命令使用的更多相关文章

  1. Linux常用基础命令整理:关机命令、查看目录下文件命令等

    Linux常用基础命令整理:关机命令.查看目录下文件命令等 整理了一些Linux常用基础命令,欢迎指正. 首先记住四个热键,学会这四个键,收益一辈子. Tab按键---命令补齐功能Ctrl+c按键-- ...

  2. Linux常用基础命令(二)

    Linux常用基础命令 一.-ls--列表显示目录内容 二.-alias--设置别名 三.-du--统计目录及文件空间占用情况 四.-mkdir--创建新目录 五.-touch--创建空文件 六.-l ...

  3. Linux系统基础命令

    这是看itercast的学习笔记 Linux系统基础命令 日期时间 命令date用以查看.设置当前系统时间:格式化显示时间: +%Y--%m--%d 命令hwclock(clock)用以显示硬件时钟时 ...

  4. Linux(三)——Unix&amp;Linux 的基础命令

    Linux(三)--Unix&Linux 的基础命令 快捷键 Ctl-A 光标移动到行首 Ctl-C 终止命令 Ctl-D 注销登录 Ctl-E 光标移动到行尾 Ctl-U 删除光标到行首的所 ...

  5. Linux 的基础命令的操作

    Linux 的基础命令的操作 显示日期和时间:date 显示日历:cal 简单好用的计算机:bc 1.显示日期: date +%Y/%m/%d 2018/09/01 date +%H:%M 14:26 ...

  6. Linux的基础命令大全

    linux的基础命令大全 1.shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器) ls -al /bin/sh   ls -al /bin/bash 查看这些shell的 ...

  7. linux 02 基础命令

    linux 02 基础命令 1.alias 别名 pyvip@Vip:~/demo$ alias lh="ls -lh" #将ls -lh的功能赋给lh(lh原来并没有意义)这个赋 ...

  8. linux 01 基础命令

    linux 01 基础命令 对于Linux要记住一个概念,一切皆文件,哪怕是目录,也是一个文件 1.修改用户密码 sudo passwd pyvip@Vip:~$ #pyvip表示用户名, Vip表示 ...

  9. Linux的基础命令, django的安装与使用

    一. Linux一些基础指令 cat命令, 用于查看纯文本文件(常用于内容较少的) cat 校花的故事.txt # 查看文件 cat -n 校花的故事.txt # 查看文件并显示行号 -n 显示行号 ...

随机推荐

  1. thinkphp验证是否登录并跳转

    CommonController.class.php <?php namespace Admin\Controller; use Think\Controller; class CommonCo ...

  2. 接口测试之HTTP协议详解

    引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...

  3. js中文乱码怎么解决【转】

    ①.js 文件中文显示乱码Javascript文件XX.js编辑保存时有一种编码方案(如GBK),当打开文件的时候所用的编码(如UTF-8)和保存时的编码方案不一致时,则会出现中文显示乱码.解决方案: ...

  4. Oracle 去除两边空格

    sql 去掉两头空格sql语法中没有直接去除两头空格的函数,但有ltrim()去除左空格rtrim()去除右空格.合起来用就是sql的trim()函数,即select ltrim(rtrim(UsrN ...

  5. SRM 585 DIV1 L2

    记录dp(i, j)表示前i种卡片的排列,使得LISNumber为j的方法数. #include <iostream> #include <vector> #include & ...

  6. JavaScript DOM 编程艺术(1)---&gt; JavaScript语法

    一.  JavaScript语法目录 语法 操作 条件语句 循环语句 函数 对象 二.  具体内容 2.1 语法 javaScript代码要通过HTML/XHTML文档才能执行.可以有两种方式完成这一 ...

  7. Synctoy2.1使用定时任务0X1

    环境描述:公司需要在windows上面使用双向文件同步,目前发现SyncToy可以实现这个功能,但是在Windows 2012上面 ,添加定时任务的时候,执行状态总是0x1,定时任务配置确认多次,肯定 ...

  8. bzoj3491: PA2007 Subsets

    Description 有一个集合U={1,2,…,n),要从中选择k个元素作为一个子集A.若a∈A,则要有a*X不属于A,x是一个给定的数.求可选方案对M取模后的值. 1< = N< = ...

  9. 【CF666E】Forensic Examination(后缀自动机,线段树合并)

    [CF666E]Forensic Examination(后缀自动机,线段树合并) 题面 洛谷 CF 翻译: 给定一个串\(S\)和若干个串\(T_i\) 每次询问\(S[pl..pr]\)在\(T_ ...

  10. 「Python实践」学习之路

    一.列表内容对比 方式一: import operatorl1 = ['a','b','c']l2 = ['a','d','e']print(operator.lt(l1,l2))运行结果为True ...