Linux基础

Linux基础

开源协议

作为一款开源的操作系统,首先我们来简单说开源协议,
常见的开源协议有如下

  • GPLv2 ,GPLv3,LGPL(lesser):通用公共许可copyleft
  • Apache:apache
  • BSD:bsd
  • Mozilla
  • MIT
    相互关系可见下图
    kaiyuan

哲学思想

  • 一切皆文件(程序进程,字符设备,目录等均可以以文件的方式在Linux系统中展示)
  • 小型,单一用途的程序(程序和可执行文件不太复杂,可以保证内核高效运行)
  • 链接程序,共同完成复杂的任务(复杂的任务可以通过连接多个简单的高效的程序实现复杂的功能,可以使得复杂的任务同样可以高效运行)
  • 避免令人困惑的用户界面(通过简洁的命令可以实现排错,修改配置等操作,使得操作和交互方式简洁化)
  • 配置数据存储在文本中(所有的配置文件都存放在文本配置文档中,如需修改相关配置秩序更改编辑对应配置文件即可)

系统用户

  • root
    作为一个特殊账户,即系统的超级用户,拥有最大的系统控制权限,可近似理解为Windows系统的Administrator账户。
  • 普通用户
    拥有有限的系统控制权限,不能对系统实现完整全面的控制。

Shell

Shell的中文翻译是壳,我们可以将其理解为命令解释器,作为外界用户与系统内层内核直至硬件的交互中介,接受外界用户输入的命令并将它送到系统内核执行。类似于DOS下的command.com和后来的cmd.exe。

同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

Bash

Bash (GNU Bourne-Again Shell) 是一个为GNU计划编写的Unix shell,是许多Linux发行版的默认Shell。事实上,还有许多传统UNIX上用的Shell,例如tcsh、csh、ash、bsh、ksh等等。

命令提示符

[root@centos7 ~]#  
[linux@centos7 ~]$  

PS1是Linux用来设置命令提示符的环境变量,下方为我们通过命令获得的Linux默认命令符的环境变量值

[root@centos7 ~]# echo $PS1
[\u@\h \W]\$

\u :当前用户的账号名称
\H :完整的主机名称
\h :主机名
\w :完整的工作目录名称
\W :当前工作目录名称
$ :提示字符,root为# ,

命令介绍1

常用命令格式

COMMAND [OPTIONS…] [ARGUMENTS…]
其中选项分为长选项和短选项
短选项 -a -f -h -r 等 一般可合并书写 如知名命令 rm -rf
长选项 --help 等
有些情况下长短选项存在等价关系,如ls -a = ls --all
注意事项

  • 多个选项和参数、命令质检需要使用空白字符进行分割
  • 取消和结束命令执行 ctrl+c , ctrl+d
  • 多个命令可以用 ; 分开
[root@centos7 tmp]# mkdir test;cd test
  • 一个命令可以使用续航符\分成多行书写
[root@centos7 /]# alias cp=\
> 'cp -i'

tty

显示当前已连接的终端设备

[root@centos7 ~]# tty
/dev/pts/0

/dev/console 物理终端
/dev/tty(1-6) 虚拟终端
/dev/ttyS/# 串行终端
/dev/pts/#伪终端 我当前使用Xshell远程连接虚拟机,所以显示为伪终端,如果使用图形界面(startx,xwindows,init 5)等也会显示为伪终端

type

通过type可以查看当前是否有command命令,以及命令是系统内部(当前shell自带命令)或外部命令(文件系统路径下有对应的可执行文件,可通过which command查看位置)

[root@centos7 ~]# type cd
cd is a shell builtin

[root@centos7 ~]# type tree
tree is /usr/bin/tree

通过help可以查看系统内部命令列表

enable cmd 启用内部命令
enable -n cmd 禁用内部命令
enable -n 查看所有禁用的内部命令

alias

可以查看当前Shell的命令别名

[root@centos7 ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

我们也可以使用该命令来定义别名,但仅针对当前shell进程有效且需bash进程重新读取配置文件才可生效 . /dir/configfile
alias command = ‘targetcommand’
如果需用就更改命令别名,则需要更改配置文件

针对普通用户当前,需更改当前用户家目录下配置文件,具体路径为~/.bashrc
如需对所有用户有效,则需更改家目录下对应系统配置文件:/etc/bashrc

  • unalias可以撤销别名,取消所有别名需加上参数-a
unalias [-a] name [name ...]

当我们需要使用一个已经被定义别名的原命令时,可以使用下方方法

\command
‘command’
“command”

日期和时间

date可以显示和设置系统时间
hwcolck,clock可以显示硬件时钟
-s, --hctosys 以硬件时钟为准,校正系统时钟
-w, --systohc 以系统时钟为准,校正硬件时钟
ntpdate url 使用该命令加上指定的时间服务器地址可以更新系统时间
cal可以显示日历,cal year可以显示指定年份的日历

poweroff , reboot

poweroff命令可直接断电关机
reboot可重启系统

who

who命令可以查看当前所有的登陆会话
w可查看系统当前所有的登陆会话及所做的操作
whoami显示当前登陆的用户

screen

  • 创建新screen会话
    screen -S name
  • 加入screen会话,需连接同一台主机且登陆用户相同
    screen -x name
  • 退出并关闭screen会话
    exit
  • 剥离当前screen会话
    ctrl+a,ctrl+d
  • 显示所有已经打开的screen会话
    screen -ls
  • 恢复某screen会话
    screen -r name

echo

echo可作显示字符使用,默认至标准输出

[root@centos7 ~]# echo Hello world
Hello world

-E(默认)不支持\解释功能
-n不自动换行
-e启用\字符解释

echo命令也可用来显示变量

[root@centos7 ~]# echo Hello world
Hello world

\ 常见字符解释

\a 发出警告声
\b 退格键
\c 最后不加上换行符号
\n 换行且光标移至行首
\r 回车,即光标移至行首,但不换行
\t 插入tab
\ 插入\字符

命令行扩展

把一个命令的输出打印给另一个命令的参数
echo "This system’s name is $(hostname) “
echo "i am whoami

括号扩展

简化打印重复字符串

[root@centos7 ~]# echo a{1,2,3}
a1 a2 a3

[root@centos7 ~]# echo {1..10}
1 2 3 4 5 6 7 8 9 10


[root@centos7 ~]# echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z

[root@centos7 ~]# echo {000..20..2}
000 002 004 006 008 010 012 014 016 018 020

tab键

tab键可以实现补全效果,如命令补全,路径补全,文件名补全等,如果唯一则直接补全,再次点击则给出可补全列表

history

history可查看历史命令
命令历史存于内存
正常退出时会保存

重复执行前一个命令:

方向键上 回车执行
!! 回车执行
!-1 回车执行
ctrl+p 回车执行

!:0执行前一条命令(去除参数)
!n 执行history中序号为n的命令
!-n 执行history中倒数第n个命令
ctrl+r在history中搜索命令
ctrl+g 从搜索模式退出

!$:重新调用前一个命令中最后一个参数
按住esc松手再按.
alt+.

-c清空命令历史
-d offset 删除历史中制定的第offset个命令
n 显示最近的n条历史
-a 追加本次会话新执行的命令历史列表至历史文件 append
-w /dir/*保存历史列表到制定的历史文件
-n读历史文件中未读过的行到历史列表
-p 展开历史参数成多行,但不存在历史列表中
-s 展开历史参数成一行 附加在历史列表后

命令历史存放文件 .bash_history

获得帮助

whatis command
command --help
info command
/usr/share/doc/
official document
get online help

man [#] command

1: 用户命令
2: 系统调用
3: C库调用
4: 设备文件及特殊文件
5: 配置文件格式
6: 游戏
7: 杂项
8: 管理类的命令
9: Linux 内核API

文件系统及操作

目录结构

wenjan

文件和目录 单根倒置树结构
.开头为隐藏文件

两类数据
元数据:metadata 描述数据的数据 索引 权限 时间戳等
数据:data

标准Linux文件系统 (ext4,xfs等)
centos6默认ext4
centos7默认xfs
大小写敏感

命名规则
文件名最长255字节
包括路径在内 文件名称最长4095字节
除了斜杠和NUL 所有字符都有效 但是用特殊字符的目录名和文件不推荐使用 有些字符需要用引号来引用他们

蓝色 目录
绿色 可执行文件
红色 压缩文件
浅蓝色 链接文件 (软连接 符号链接等)
灰色 其他文件
背景红色 特殊类型文件
紫色 套接字文件 (ip+端口 等)

/tmp下数据30天未发生访问会被自动删除
/usr所有人可读,除root不可操作

文件类型
- 普通文件
d 目录文件
b 块设备
c 字符设备
l 符号链接文件 (快捷方式)
p 管道文件pipe FIFO (First In,First Out)
s 套接字文件socket

命令介绍2

pwd

显示当前工作目录

[root@centos7 ~]# pwd
/root

-P 显示真实物理路径
-L(默认)显示链接路径

  • 绝对路径
    以/开始的路径,是完整的路径。
  • 相对路径
    不以/开始,相对于当前工作目录或某一目录位置,可作为简短路径

基名:basename
目录名:dirname

cd

可用作改变目录,支持绝对路径和相对路径

[root@centos7 ~]# cd /tmp
[root@centos7 tmp]# pwd
/tmp

cd /dir切换至某一目录
cd 切换至当前账户家目录
cd … 切换至父目录

ls

可用作列出目录下的内容

[root@centos7 tmp]# ls /
bin   data  etc   lib    media  opt   root  sbin  sys  usr
boot  dev   home  lib64  mnt    proc  run   srv   tmp  var

ls [参数] [目录路径]

ls -a 包含隐藏文件
ls -l 显示额外的信息
ls -R 目录递归通过
ls -ld 目录和符号链接信息
ls -1 文件分行显示
ls –S 按从大到小排序
ls –t 按mtime排序
ls –u 配合-t选项,显示并按atime从新到旧排序
ls –U 按目录存放顺序显示
ls –X 按文件后缀排序

查看文件状态

stat file

[root@centos7 tmp]# stat /etc/passwd
  File: ‘/etc/passwd’
  Size: 2385      	Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d	Inode: 135779001   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:passwd_file_t:s0
Access: 2019-03-21 03:55:30.753937197 +0800
Modify: 2019-03-21 03:55:24.819937609 +0800
Change: 2019-03-21 03:55:24.820937609 +0800

三个时间戳:
access time 访问时间 atime 读取文件内容
modify time 修改时间 mtime 改变文件内容(数据)
change time 修改时间 ctime 元数据发生改变

ctime发生改变则mtime一定发生改变,反之未必。

文件通配符

可作文件查找及过滤等用途

* 匹配零个或多个字符
? 匹配任何单个字符
~ 当前用户家目录
~mage 用户mage家目录
~+ 当前工作目录
~- 前一个工作目录
[0-9] 匹配数字范围
[a-z]:字母
[A-Z]:字母
[wang] 匹配列表中的任何的一个字符
[^wang] 匹配列表中的所有字符以外的字符

[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母
[:upper:]: 任意大写字母
[:alpha:]: 任意大小写字母
[:alnum:]:任意数字或字母
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:]:标点符号
[:print:]:可打印字符
[:cntrl:]:控制(非打印)字符
[:graph:]:图形字符
[:xdigit:]:十六进制字符

touch

可创建文件使用

[root@centos7 test]# ls
file1
[root@centos7 test]# touch file2
[root@centos7 test]# ls
file1  file2

touch [option] file

-a 改变atime和ctime
-m 改变mtime和ctime
-c 如果文件存在则不创建

cp

copy的简写,作复制文件使用

[root@centos7 test]# cp file1 file3
[root@centos7 test]# ls
file1  file2  file3

copy [option] file1 file2

-i:覆盖前提示
–n:不覆盖,注意两者顺序
-r, -R: 递归复制目录及内部的所有内容
-d:不复制原文件,只复制链接名
-f:强制操作,忽略提示警告
-u:更新文件

mv

可用作移动和重命名文件,如果移动到文件所在目录下,则为重命名文件。
一般用法 mv [option] file1 file2

-i 交互式提示
-f 强制执行

rm

可删除文件

[root@centos7 test]# ls
file1  file2  file3
[root@centos7 test]# rm file3
rm: remove regular empty file ‘file3’? 
[root@centos7 test]# ls
file1  file2  file3
[root@centos7 test]# 

rm [option] file

-i 交互式(系统默认定义别名rm=rm -i)
-f 强制删除
-r 递归删除

目录操作

tree 显示目录树

-d: 只显示目录
-L level:指定显示的层级数目
-P pattern: 只显示由指定pattern匹配到的路径

mkdir 创建目录

-p 创建父目录(如不存在的话)
-v 显示详细创建过程信息

rmdir 删除空目录

-p递归删除空父空目录
-v 显示详细删除过程信息

ln

  • 硬链接(不支持跨分区)
    ln filename linkname
    当文件引用计数为0时文件被删除

  • 软链接(相当于快捷方式)
    ln -s filename linkname
    filename作为linkname路径的相对地址
    对目标文件引用计数无影响,如果删除的话是删除软链接本身,如果删除的时候加上/则删除软链接指向的文件。

file

可以查看文件各种属性信息
file [option] file

输入输出

标准输入(STDIN)0 默认接受来自键盘的输入
标准输出(STDOUT)1 默认输出到终端窗口
标准错误(STDERR)2 默认输出到终端窗口

>覆盖重定向 >>追加重定向
> /dev/null 输出到空设备
> 把STDOUT重定向到文件
2> 把STDERR重定向到文件
&> 把所有输出重定向到文件
>file 2>&1 将错误重定向到输出重定向,同理2>file >&2,2$> = $>

[root@centos7 tmp]# ech 123 &> test1/d.log
[root@centos7 tmp]# echo 123 &>> test1/d.log
[root@centos7 tmp]# cat test1/d.log 
bash: ech: command not found...
123

多行重定向 <<

[root@centos7 tmp]# cat > test2/aa <<EOF
> 123
> 456
> 789
> EOF
[root@centos7 tmp]# cat test2/aa
123
456
789

set -C禁止覆盖重定向和强制重定向,追加重定向不影响
set +C解除锁定

tr

可用来转换和删除字符
tr [OPTION]… SET1 [SET2]

[root@centos7 sys]# tr 'a..z' 'A..Z'
asd
Asd

管道

可以将命令1的输出发给命令2做输入 command1 | command2 | command3

[root@centos7 tmp]# echo 'abc' | tr a-z A-Z
ABC

管道只能处理标准输出

tee

可重定向到多个目标

[root@centos7 /]# ls | tee ls.log
bin boot data dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[root@centos7 /]# ls
bin   data  etc   lib   ls.log mnt  proc  run   srv  tmp  var
boot  dev   home  lib64  media   opt  root  sbin  sys  usr

-a追加

用户组权限

用户

Linux用户 username/UID
root 0
系统用户 centos6:1-499 centos7:1-999
登录用户 centos6:500+ centos7:1000+
交互式登陆

Linux组 Groupname /GID
root 0
系统组 centos6:1-499,centos7:1-999
普通组 centos6:500+,centos7:1000+

安全上下文

进程所能够访问资源的权限取决于进程的运行者身份

组类别

用户的主要组 primary group
基本组/私有组
公共组/公有组
用户必须属于一个且只有一个主组
组名同用户名 且仅包含一个用户 私有组
附加组 辅助组

配置文件

/etc/passwd:用户及其属性信息(名称、 UID、主组ID等)
/etc/group:组及其属性信息
/etc/shadow:用户密码及其相关属性
/etc/gshadow:组密码及其相关属性

passwd格式

login name:登录用名(wang)
passwd:密码 (x)
UID:用户身份编号 (1000)
GID:登录默认所在组编号 (1000)
GECOS:用户全名或注释
home directory:用户主目录 (/home/wang)
shell:用户默认使用shell (/bin/bash)

login name:登录用名
passwd:密码
UID:用户身份编号
GID:登录默认所在组编号
GECOS:用户全名或注释
home directory:用户主目录
shell:用户默认使用shell

group文件格式

群组名称
群组密码
GID
以当前组为附件组的用户列表

useradd
groupadd -g id gname
直接指定GID

基础管理命令

  • 用户管理命令
    useradd
    usermod
    userdel
  • 组帐号维护命令
    groupadd
    groupmod
    groupdel

切换用户

su - 登录式切换
su 非登录式切换

su - username -c ‘command’ 用username执行命令并退出

chmod

文件权限更改操作命令
chmod *** file
read 4
write 2
exce 1
u= g= o=
eg. u=rwx ; g=— ; ug=ewx
a=ewx a=all
单一权限更改可使用±
eg.u+x ;ugo+x ; u-x

+r +x 所有加 +w属主加

参考其他文件权限改为一样
chmod --reference=参考file 需更改file

-R 递归修改
umask 反向掩码
umask ***
默认
root 022
普通用户 002

chown chgrp

改文件属主属组

chown 属主 :或. 属组 filename
同时改属主属组
如只改属组 chown :属组 filename

-R 递归修改

访问控制列表

getfacl filename
获取文件的访问控制列表

setfacl -m u:username:rwx filename
g

setfacl -x 删除
eg. setfacl -x u:username filename 无需ewx

特殊权限
SUID SGID Sticky
eg. chmod u+/-s filename
t 只能删除自己
t原有x T原无x

文本相关

  • 文件内容查看:

cat和tac分别正序倒序打印输出
less一页一页查看,more分页查看

  • *文件截取:head和tail

head 默认前十行 filename
tail 默认后十行 filename
-数字 查看 前/后 多少行
-f 追加监视

  • 按列抽取:cut

cut -d分隔符号 -f第几字段,第几字段 /file
如使用-则为第几字段到第几字段

  • 按关键字抽取:grep
    grep -E 支持扩展的正则表达式

-v取反
grep ‘a…b’ filename
a*b a可出现任意次
^$空白行(非空白字符)
^锚定行首
$锚定行尾
< \b锚定词首
> \b锚定词尾
< >限定单词(字符串)
?零次或一次
+一次或多次
.*任意长度的任意字符
[[:space:]]正则空白字符

  • 文本数据统计 wc

-l统计列
-w统计单词
-c统计字节
-m统计字符

  • 整理文本 sort 和 uniq

-r降序
-u去重

c显示重复技计数
-d显示重复的行
-u显示不重复的行

  • 比较文件 diff 和 patch

diff -u file1 file2 >patchname 生成补丁
patch file1 < patch 打补丁

文本处理工具

vim

vim是Linux环境中常用的文本编辑工具,综合功能性强于nano和vi,是vi的功能增强版,支持ASCII和Unicode编码。
vim [option] file
如果文件存在,将打开文件并启动文件编辑模式;如果文件不存在的话,将创建空文件并启用编辑。

vim的三种模式

  • 命令模式:默认模式,通过移动逛遍可以剪切/粘贴文本。
  • 编辑模式:通过光标进行文本的编辑修改操作。
  • 扩展模式:可在文本底部末行进行命令操作。

esc键可以退出当前模式,双击esc键可以返回到默认模式。
i可以在光标处从默认模式进入编辑模式。
:可以从默认模式进入扩展模式。

常用简单操作

  • 扩展模式下

:q 退出
:q! 放弃修改并退出
:wq=:x 保存退出(一般使用前者)

r filename 读文件内容到当前文件中
w filename 将当前文件内容写入另一个文件
!command 执行命令
r!command 读入命令的输出

/PATTERN ?PATTERN 分别从光标处向下/上查找匹配字段
n/N 与查找同/反方向显示匹配字段

s/查找的内容/替换的内容/修饰符(/可替换为其他字符)
可实现查找替换操作,如替换成空则相当于删除操作,但会保留换行符(即空行位置)替换的内容中可以使用后向引用。
修饰符:
i 忽略大小写
g 全局替换
d 删除

  • 命令模式下
    ZZ 保存退出
    ZQ 不保存退出
    d 删除光标处字符
    dd 删除光标整行
    #dd 多行删除
    Y 复制光标整行
    yy 复制光标整行
    #yy 多行复制
    p 粘贴在光标下方行
    P 粘贴在光标上方行
    u 撤销上次更改
    #u 撤销多次更改
    U撤销光标行的所有有更改
    ctrl+R取消最后一次撤销更改

多窗口模式

进入编辑默认模式后,可以按ctrl+w之后,按s/v开启水平/垂直分割。
窗口分割后,可以按ctrl+w,再配合方向键切换窗口。或o取消所有窗口。

配置vim

全局配置文件位置 /etc/vimrc
个人配置文件位置 ~/.vimrc

进行当前编辑下的常用配置

  • 显示行号 set nu
    取消行号 set nonu
  • 启用缩进 set ai
    关闭缩进 set noai
  • 启用高亮搜索 set hlsearch
    取消高亮搜索 set nohlsearch
  • 启用语法高亮 syntax on
    关闭语法高亮 syntax off
  • 显示当前行下划线 set cul
    关闭当前行下划线 set nocul

sed

Stream EDitor 行编辑器,可进行批量文件处理
sed [option] ‘script(地址命令)’ file
常用选项:
-n 不自动打印
-r 支持使用扩展正则表达式
-i 保存修改
-i.xxx 先备份为后缀xxx的文件再保存修改
-e 多点操作

sed -n ‘#p’ file 打印文件的第 #行
sed ‘/PATTERN/修饰符’ 匹配到的字段的行
sed 'm~n’修饰符 第m行开始的行,步长为n

修饰符:
p 打印
d 删除
= 打印后添加行号
i 行前面插入
c 替换行数据
!取反
w file 处理的行另存为

sed 同样支持 ‘s///’

包管理

rpm

rpm [option] file
-i 安装
-v 显示过程
-h 显示进度
-q name 查询已安装软件包(需完整包名)
-qa "PATTERN"查询已安装软件包(模糊包名)
-qa 查询所有安装的包
-qf 查询软件来自于哪个包
-qi 显示软件详细信息
-ql 显示软件包里包含的文件列表
-e 卸载
–replacepkgs/force 在末尾添加,用于处理软件文件缺失

mount /dev/sr0 /mnt 挂载光盘
systemctl start name 启动
systemctl stop name 停止运行
systemctl enable name 设置开机自动启动
systemctl disable name 关闭开机自动启动
systemctl status name 查看状态

yum

配置yum仓库
/etc/yum.repos.d/*.repo
[name]
name=
url=#源地址或本地光盘挂载地址
gpgcheck=0/1 #是否开启文件校验认证,0关1开,如打开则需配置gpgkey
gpgkey=

[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
gpgcheck=0

查看已配置的yum仓库列表
yum repolist

[root@centos7 yum.repos.d]# yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
epel                                                                          | 4.7 kB  00:00:00     
(1/3): epel/group_gz                                                          |  88 kB  00:00:01     
(2/3): epel/updateinfo                                                        | 1.0 MB  00:00:04     
(3/3): epel/primary_db                                                        | 6.6 MB  00:00:36     
repo id                             repo name                                                  status
base/7/x86_64                       CentOS-7 - Base - mirrors.aliyun.com                       10,019
epel                                epel                                                       13,015
extras/7/x86_64                     CentOS-7 - Extras - mirrors.aliyun.com                        382
updates/7/x86_64                    CentOS-7 - Updates - mirrors.aliyun.com                     1,459
repolist: 24,875

安装:yum install name
卸载:yum remove name

yum history 查看操作历史

[root@centos7 yum.repos.d]# yum history
Loaded plugins: fastestmirror, langpacks
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
     7 | root <root>              | 2019-03-25 08:06 | Install        |    1   
     6 | root <root>              | 2019-03-25 04:21 | Install        |    1   
     5 | root <root>              | 2019-03-22 22:19 | Install        |    5   
     4 | root <root>              | 2019-03-22 19:55 | I, U           |  161 E<
     3 | root <root>              | 2019-03-22 01:35 | Install        |    1 > 
     2 | root <root>              | 2019-03-20 18:57 | Install        |    1  <
     1 | System <unset>           | 2019-03-19 00:43 | Install        | 1382 > 
history list

yum history info # 查看每一步的详情

[root@centos7 yum.repos.d]# yum history info 7
Loaded plugins: fastestmirror, langpacks
Transaction ID : 7
Begin time     : Mon Mar 25 08:06:08 2019
Begin rpmdb    : 1393:b980e7e1922e657e14294ee8ca6aea38ff65588f
End time       :            08:06:09 2019 (1 seconds)
End rpmdb      : 1394:34c930a7549bc29ea8059479c0e9aed5d7fc3234
User           : root <root>
Return-Code    : Success
Command Line   : -y install sl
Transaction performed with:
    Installed     rpm-4.11.3-35.el7.x86_64                      @anaconda
    Installed     yum-3.4.3-161.el7.centos.noarch               @anaconda
    Installed     yum-plugin-fastestmirror-1.1.31-50.el7.noarch @anaconda
Packages Altered:
    Install sl-5.02-1.el7.x86_64 @epel
history info

yum history undo # 撤销第#步操作
yum history redo # 重做第#步操作
yum list 查看仓库中所有包列表
yum grouplist 查看目前支持的包组
yum groupinstall name 安装包组
yum groupremove name 卸载包组
yum groupinfo name 查看包组详细信息
yum install url(.rpm)通过Url安装
yum clean all 清理yum缓存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值