一、命令基本格式

命令提示符

[root@localhost ~]# 

root 代表当前登录用户,Linux当中管理员账号是 root

localhost 代表主机名

~ 代表当前所在目录(家目录),对于管理员来说他的家目录就是 /root ,普通用户家目录就是 /home/用户名 这个目录下,比如 test ,那么他的家目录就是 /home/test

# 代表超级用户的提示符,普通用户的提示符是 $

pwd

pwd 命令可以查看当前所在目录的位置信息

cd /home/local/src/

cd 命令就是进入指定目录

命令格式

命令 [选项] [参数]

注意:

  1.个别命令使用不遵循此格式;

  2.当有多个选项时,可以写在一起;比如某个命令既有 -a 也有 -l ,那么就可以写成 -al ;

  3.简化选项和完整选项,-a 等于 --all

查询目录中内容:ls

ls [选项] [文件或目录]
选项:
-a 显示所有文件,包含隐藏文件
-l 显示详细信息
-d 查看目录属性
-h 人性化显示文件大小
-i 显示inode
[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# ls -l
总用量
-rw-------. root root 10月 : anaconda-ks.cfg

解释下权限

-rw-r--r--
- 文件类型( - : 文件, d : 目录, l : 软链接文件 )
rw- r-- r--
u所有者 g所有组 o其他人
r读 w写 x执行

第一位来区分文件类型,除开(-、d、l)还有其他的四种:块设备文件、字符设备文件、套接字文件和管道文件。

除开第一位,还有九位,每三位为一组,比如这里(rw-(u所有者)、r--(g所有组)、r--(o其他人))。

然后后面 “.” 代表ACL权限

然后后面 “1” 数字1代表引用计数,代表这个文件被调用几次

然后后面 “root” 代表文件的u所有者

然后后面 “root” 代表文件的g所有组

然后后面 “1615” 代表文件的大小,单位是字节,可以使用 ls -lh,-h表示人性化显示大小,后面统计大小的命令基本都支持 -h

然后后面 “10月 21 05:16” 最后一次修改时间

然后最后一列表示文件名

另外扩展:Linux里面隐藏文件一般都用 “.” 开头,可以使用 ls -a 进行查看隐藏文件;ls -d 只是查看目录本身的属性,而不是查看目录下的文件信息;ls -i 查看当前目录下所有的inode的id号,id号就是为了系统能快速找到文件索引设置的。ll 命令相当于 ls -l 。

二、文件处理命令

目录处理命令

建立目录:mkdir

mkdir -p [目录名]
-p 递归创建
命令英文愿意:make directories

-p 是选项,表示创建多级目录都不存在的时候需要使用-p来进行递归创建,比如 mkdir -p /a/b/c

切换所在目录:cd

cd [目录]
命令英文原意:change directory 简化操作
cd 进入当前用户的家目录
cd ~ 进入当前用户的家目录
cd - 进入上次目录
cd .. 进入上一级目录
cd . 进入当前目录

扩展提升:Ctr+L进行清屏

相对路径:参照当前所在目录,进行查找,如:[root@localhost ~]# cd ../usr/local/src/

绝对路径:从根目录开始指定,一级一级递归查找。在任何目录下,都能进入指定位置,如:[root@localhost ~]# cd /etc/

使用Tab来进行目录文件补全,也可以使用命令补全

查询所在目录位置:pwd

pwd
命令英文原意:print working directory

删除空目录:rmdir(一般不会用)

rmdir [目录名]
命令英文原意:remove empty directories

删除文件或目录:rm(推荐使用)

rm -rf [文件或目录]
命令英文原意:remove
选项:
-r 删除目录或者文件
-f 强制

rm 文件,只能删除文件

rm -r 目录名,但是会询问是否删除,如果确定都需要删除,那么就可以直接使用 rm -rf 目录名,会强制删除下面所有

复制命令:cp

cp [选项] [原文件或目录] [目标目录]
命令英文原意:copy
选项:
-r 复制目录
-p 连带文件属性复制
-d 若源文件是链接文件,则复制链接属性
-a 相对于 -pdr

cp 文件 目标文件,只能复制文件

cp -r 目录名 目标目录

cp -a xxx xxx,-a 等同于 -pdr ,与源文件或者目录日期时间都一模一样了。

剪切或改名命令:mv

mv [原文件或目录] [目标目录]
命令英文原意:move

同一个目录mv就可以进行改名,不同目录使用mv就进行剪切。

常用目录的作用

/ 根目录
/bin 命令保存目录(普通用户就可以读取的命令)
/boot 启动目录,启动相关文件
/dev 设备文件保存目录
/etc 配置文件保存目录
/root 超级用户的家目录
/home 普通用户的家目录
/lib 系统库保存目录
/mnt 系统挂载目录
/media 挂载目录
/tmp 临时目录
/sbin 命令保存目录(超级用户才能使用的目录)
/proc 直接写入内存的
/sys
/usr 系统软件资源目录
/usr/bin/ 系统命令(普通用户)
/usr/sbin/ 系统命令(超级用户)
/var 系统相关文档内容

根目录下的bin和sbin,usr目录下的bin和sbin,这四个目录都是用来保存系统命令的。

根目录下的bin和usr目录下的bin下的命令,任何用户都可以去使用并执行。

根目录下的sbin和usr目录下的sbin下的命令,只有root才能执行的命令。

根目录下的lib目录下,都是一些函数库,不是所有功能都写到了linux系统里,有些是通过函数库来进行动态调用使用的,提升Linux系统效率。

根目录下的mnt、media、misc都表示外接存储设备的盘弧,misc一般是外接磁带机的挂载目录,media一般是外接光盘的挂载目录,mnt一般是外接u盘或者移动硬盘的挂载目录。老版的linux系统下没有media和misc的,所以习惯性将所有的挂载点都放入mnt目录了。

根目录下的proc和sys目录不能直接操作,这两个目录保存的是内存的过载点。

一般推荐使用目录有:可以在家目录root 或者 home,以及tmp目录下随便放内容。

文件处理命令

链接命令

链接命令:ln

ln -s [原文件] [目标文件]
命令英文原意:link
功能描述:生成链接文件
选项:-s 创建软链接

硬链接特征:

1. 拥有相同的i节点和存储block块,可以看做是同一个文件

2. 可通过i节点识别

3.不能跨分区

4.不能针对目录使用

ln /root/xxx.cfg /tmp/硬链接名称,使用之后引用计数为增加1,而且通过  ls -i /root/xxx.cfg /tmp/硬链接名称 发现它们的 i 节点相关,无论你是否重命名还是删除都可以正常使用。

软链接特征:

1. 类似Windows快捷方式

2. 软链接拥有自己的i节点和Block块,但是数据块中只保存原文件的文件名和i节点号,并没有实际的文件数据

3. lrwxrwxrwx l软链接(是l 不是大写 i),软链接文件权限都为rwxrwxrwx

4. 修改任意文件,另一个都改变

5. 删除原文件,软链接不能使用

ln -s /root/xxx.cfg /tmp/软链接名称

echo  >> /root/xxx.cfg
cat /tmp/软链接名称
cat /tmp/硬链接名称
echo 2222 >> /tmp/软链接名称
cat /tmp/硬链接名称
cat /root/xxx.cfg
echo 3333 >> /tmp/硬链接名称
cat /root/xxx.cfg
cat /tmp/软链接名称
rm -rf /root/xxx.cfg

这里无论修改软、硬链接都会使文件进行改变,都能看到改变的值。删除原文件,硬链接没有任何变化,软链接失效。

ln -s /root/csb /tmp/
ln -s sb /tmp/

前往/tmp/目录发现,csb可以,但是sb却找不到,说明软链接一般要指定绝对路径。

三、文件搜索命令

文件搜索命令 locate

locate 文件名
在后台数据库中按文件名搜索,搜索速度比较快 /var/lib/mlocate
#locate命令所搜索的后台数据库 updatedb
更新数据库

locate xxx.log ,在mlocate数据库搜索 xxx.log 文件,可以找到;但是如果 touch yyy.log,你再使用locate yyy.log 发现找不到对应的文件了,原因:因为locate命令不会直接在系统中搜索,而是在/var/lib/mlocate这个数据库进行搜索,又由于mlocate数据库不是实时更新的,每一天更新一次,所以新建文件需要使用locate进行搜索,必须使用updatedb进行手动更新mlocate数据库。

locate locate

搜索跟locate相关的文件。可能根据Linux系统不同,locate数据库的名字可能不同:比如 slocate、mlocate、locatedb。

locate 只能按照文件名进行搜索。

touch /tmp/yyy.log
updatedb
locate yyy.log

locate yyy.log 发现只能找到 /root/yyy.log,而找不到 /tmp/yyy.log,原因:locate 命令是按照 /etc/updatedb.conf 配置文件进行配置搜索的,发现 /tmp 在不搜索路径里面。

PRUNE_BIND_MOUNTS = "yes"
# 开启搜索限制,yes的时候,下面三个配置全部生效,反之亦然
PRUNEFS =
# 搜索时,不搜索文件系统
PRUNENAMES =
# 搜索时,不搜索文件类型
PRUNEPATHS =
# 搜索时,不搜索的路径

注意了:centos7默认是没有安装mlocate的,所以无法使用这两个命令 locate,updatedb

yum install mlocate

命令搜索命令 whereis 与 which

whereis 和 which  只能搜索外部安装的一些命令,不能搜索系统命令

whereis 命令名
# 搜索命令所在路径及帮助文档所在位置
选项:
-b : 只查找可执行文件
-m : 只查找帮助文件
[root@localhost ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls..gz

ls的运行路径在 /usr/bin/ls ,帮助文档:/usr/share/man/man1/ls.1.gz

whoami 查询我是谁,whatis ls 查看ls命令是干什么的

which 文件名
# 搜索命令所在路径及别名
[root@localhost ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
[root@localhost ~]# which pwd
/usr/bin/pwd

PATH环境变量

PATH环境变量:定义的是系统搜索命令的路径
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

环境变量就是为了让系统可以去这些路径去寻找相应可执行命令,如果上述环境变量的路径中未找到相关命令就会提示 -bash: lsss: command not found

文件搜索命令 find

find [搜索范围] [搜索条件]
# 搜索文件 find / -name install.log
# 避免大范围搜索,会非常耗费系统资源
# find是在系统当中搜索符合条件的文件名。如果需匹配,使用通配符匹配,通配符是完全匹配
Linux 中的通配符

*   匹配任意内容
? 匹配任意一个字符
[] 匹配任意一个中括号内的字符

find /root -name "install.log*",会匹配出install.log和install.log.syslog

find /root -name "ab[cd]",会匹配出abc和abd

find /root -name "*[cd]",会匹配出以c或者d结尾的文件

find /root -iname install.log
# 不区分大小写
find /root -user root
# 按照所有者搜索
find /root -nouser
# 查找没有所有者的文件

find /root -nouser 搜索没有所有者的文件,一般可以认为是垃圾文件,但是有两种情况:一是内核产生的文件比如proc和sys里面的文件可能没有所有者,二是插入U盘可能会不存在所有者。

find /var/log/ -mtime +
# 查找10天前修改的文件 - 10天内修改的文件
10天当天修改的文件
+ 10天前修改的文件 atime 文件访问时间
ctime 改变文件属性
mtime 修改文件内容

find /var/log -mtime +10 ,搜索10天前的日志,如果不需要就可以进行删除了。

find . -size 25k
# 查找文件大小是25kb的文件 -25K 小于25KB的文件
25K 等于25KB的文件
+25K 大于25KB的文件 find . -inum
# 查找i节点是262422的文件

find . -size 2M,表示查找文件大小是2MB的文件。不能是小写m,只能是大写M。而且必须带单位,如果不带单位会按照扇区块512KB进行查找。

find /etc -size +20k -a -size -50k
# 查询/etc/目录下,大于20KB并且小于50KB的文件
-a and 逻辑与,两个条件都满足
-o or 逻辑或,两个条件满足一个即可 find /etc -size +20k -a -size -50k -exec ls -lh {} \;
# 查找/etc/目录下,大于20KB并且小于50KB的文件,并显示详细信息
# -exec/-ok命令{}\;对搜索结果执行操作

字符串搜索命令 grep

grep [选项] 字符串 文件名
# 在文件当中匹配符合条件的字符串
选项:
-i 忽略大小写
-v 排除指定字符串

grep "size" xxx.log,包含size关键字的信息

grep -v "size" xxx.log,不包含size关键字的信息

find 命令与 grep 命令的区别

1. find 命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配

2. grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式时包含匹配

四、帮助命令

帮助命令man

man 命令
# 获取指定命令的帮助 man ls
# 查看ls的帮助

如果要搜索关键字,比如这里搜索 -d,只需要 /-d 进行搜索,然后使用 n 键进行下一个,shift+n(也就是大写 N) 进行上一个。

man命令它几个帮助级别:

 : 查看命令的帮助
: 查看可被内核调用的函数的帮助
: 查看函数和函数库的帮助
: 查看特殊文件的帮助(主要是/dev目录下的文件)
: 查看配置文件的帮助
: 查看游戏的帮助
: 查看其他杂项的帮助
: 查看系统管理员可用命令的帮助
: 查看和内核相关文件的帮助

查看命令拥有那个级别的帮助

man -f 命令
相当于
whatis 命令 举例:
man - passwd
man - null
man - ifconfig

查看和命令相关的所有帮助

man -k 命令
相当于
apropos 命令 例如:
apropos passwd

man -k passwd 输出所有有passwd关键字的命令和命令帮助文档

其他帮助命令

选项帮助

命令 --help
# 获取命令选项的帮助 例如:
ls --help

shell内部命令帮助

help shell 内部命令
# 获取shell 内部命令的帮助 例如:
whereis cd
# 确定是否是shell内部命令
help cd
# 获取内部命令帮助

shell 其实是Linux的解释器,比如说将 ls 翻译成 0101进行执行

怎么判断一个命令是系统自带的还是后来安装的,只需要使用whereis 命令进行查看,如果找到了就证明是系统自带的,如果找不到就是后来安装的。

详细命令帮助info

info 命令
- 回车:进入子帮助页面(带有*号标记)
- u:进入上层页面
- n:进入下一个帮助小节
- p:进入上一个帮助小节
- q:退出

五、压缩和解压缩命令

常用压缩格式:.zip,.gz,.bz2

.zip格式压缩

zip 压缩文件名 源文件
# 压缩文件 zip -r 压缩文件名 源目录
# 压缩目录

.zip格式解压缩

unzip 压缩文件
# 解压缩.zip文件

这种格式和windows是通用的,可以解压windows下的xxx.zip,windows也可以解压缩linux的xxx.zip文件。

centos7mini版没有zip和unzip命令,需要安装下:

yum install zip unzip

.gz格式压缩

gzip 源文件
# 压缩为.gz格式的压缩文件,源文件会消失 gzip -c 源文件 > 压缩文件
# 压缩为.gz格式,源文件保留
# 例如:gzip -c xxxx > xxxx.gz gzip -r 目录
# 压缩目录下所有的子文件,但是不能压缩目录

“>”是将命令的结果写入指定文件

.gz格式解压缩

gzip -d 压缩文件
# 解压缩文件 gunzip 压缩文件
# 解压缩文件 gunzip -r 目录
# 解压缩目录下面的文件

.bz2格式压缩

bzip2 源文件
# 压缩为.bz2格式,不保留源文件 bzip2 -k 源文件
# 压缩之后保留源文件 注意:bzip2命令不能压缩目录

.bz2格式解压缩

bzip2 -d 压缩文件
# 解压缩,-k保留压缩文件 bunzip2 压缩文件
# 解压缩,-k保留压缩文件

常用压缩格式:.tar.gz,.tar.bz2

打包命令tar

tar -cvf 打包文件名 源文件
选项:
-c : 打包
-v : 显示过程
-f : 指定打包后的文件名
例如:
tar -cvf xxxx.tar xxxx

这里打包后变成xxxx.tar,然后可以使用 gzip xxxx.tar 进行压缩就可以压缩成 xxxx.tar.gz 的格式了。然后可以使用 bzip2 xxxx.tar 进行压缩就可以压缩成 xxxx.tar.bz2 的格式了。

解打包命令

tar -xvf 打包文件名
选项:
-x : 解打包
例如:
tar -xvf xxxx.tar

.tar.gz压缩格式

其实.tar.gz格式是先打包为.tar格式,再压缩为.gz格式

tar -zcvf 压缩包名.tar.gz 源文件
选项:
-z : 压缩为.tar.gz格式 tar -zxvf 压缩包名.tar.gz
选项:
-x : 解压缩.tar.gz格式

.tar.bz2压缩格式

tar -jcvf 压缩包名.tar.bz2 源文件
选项:
-z:压缩为.tar.bz2格式 tar -jxvf 压缩包名.tar.bz2
选项:
-x:解压缩.tar.bz2格式

可以指定解压缩到某个目录下:

tar -jxvf xxxx.tar.bz2 -C /tmp/

压缩的时候可以指定多个目录和文件:

tar -zcvf test.tar.gz 目录名 文件名

如果要指定压缩到某个目录下:

tar -zcvf /tmp/test.tar.gz 目录名 文件名

如果只是想查看下压缩文件的内容,不解压出来:

tar -ztvf xxxx.tar.gz

-t 就是测试的意思,不解压

六、关机和重启命令

1. shutdown命令

[root@localhost ~]# shutdown [选项] 时间
选项:
-c : 取消前一个关机命令
-h : 关机
-r : 重启

shutdown -r now 立即重启,可以用 date 查看当前系统时间

# 当前05:30进行重启
shutdwn -r :
# 这里会一直等待重启,什么操作都不可以了,需要加一个后台符,让它在后台进行运行
shutdown -r : &

如果我想取消这次重启操作,就可以使用:

shutdown -c

2.其他关机命令

halt
poweroff
init

3.其他的重启命令

reboot
init

4.系统运行级别

 关机
单用户
不完全多用户,不含NFS服务
完全多用户
未分配
图形界面
重启

系统运行级别

cat /etc/inittab
# 修改系统默认运行级别
id::initdefault: runlevel
# 查询系统运行级别

5.退出登录命令

logout

七、其他常用命令

挂载命令

1.查询与自动挂载

mount
# 查询系统中已经挂载的设备 mount -a
# 依据配置文件/etc/fstab的内容,自动挂载

2.挂载命令格式

mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点

选项:
-t 文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4、xfs等文件系统
-o 特殊选项:可以指定挂载的额外选项

光盘用的文件系统类型是:iso9660

-o 特殊选项如下:

参数 说明
atime/noatime 更新访问时间/不更新访问时间。访问分区文件时,是否更新文件的访问时间,默认为更新
async/sync 异步/同步,默认为异步
auto/noauto 自动/手动,mount -a命令执行时,是否会自动安装/etc/fstab文件内容挂载,默认为自动
defaults 定义默认值,相当于rw,suid,dev,exec,auto,nouser,async这七个选项
exec/noexec 执行/不执行,设定是否允许在文件系统中执行可执行文件,默认是exec允许
remount 重新挂载已经挂载的文件系统,一般用于指定修改特殊权限
rw/ro 读写/只读,文件系统挂载时,是否具有读写权限,默认是rw
suid/nosuid 具有/不具有SUID权限,设定文件系统是否具有SUID和SGID权限,默认具有
user/nouser 允许/不允许普通用户挂载,设定文件系统是否允许普通用户挂载,默认是不允许,只有root可以挂载分区
usrquota 写入代表文件系统支持用户磁盘配额,默认不支持
grpquota 写入代表文件系统支持组磁盘配额,默认不支持
cd /home/

vi hello.sh

#!/bin/bash

echo "hello world"

赋予执行权限: chmod 755 hello.sh,就可以直接执行该脚本

mount -o remount,noexec /dev/mapper/centos-home /home/
# 重新挂载 /home 分区,并使用noexec权限

重新挂载/home分区之后,由于noexec权限,所以前面的hello.sh就不能直接进行执行,权限不够了。

这里必须改回来:

mount -o remount,exec /dev/mapper/centos-home /home/

3.挂载光盘

mkdir /mnt/cdrom/
# 建立挂载点 mount -t iso9660 /dev/cdrom /mnt/cdrom/
# 挂载光盘 mount /dev/sr0 /mnt/cdrom/
# 由于 /dev/cdrom 是 /dev/sr0 的软链接,都可以写,但是建议写 /dev/sr0,而且默认系统知道光盘的文件类型为iso9660,所以可以不用写

如果你是真实机就需要找一张光盘放入,这里用虚拟机进行演示则需要双击光盘选项。

4. 卸载命令

umount 设备文件名或挂载点

umount /mnt/cdrom

如果当前正在这个目录进行操作或者在这个目录中,卸载会报错:设备正忙。需要退出该目录再进行卸载。

5.挂载U盘

fdisk -l
# 查看硬盘设备文件名 mount -t vfat /dev/sdb1 /mnt/usb/ 注意:Linux默认是不支持NTFS文件系统的

vfat 文件系统指的是windows下的fat32文件系统,fat32基本淘汰了,只支持不超过4G的单个文件,如果非要用NTFS文件系统,需要安装 NTFS-3G 的软件。

用户登录查看和用户交互命令

查看登录用户信息

w 用户名
命令输出:
USER : 登录的用户名;
TTY : 登录终端;
FROM : 从哪个IP地址登录
LOGIN@ : 登录时间
IDLE : 用户闲置时间
JCPU : 指的是和该终端连接的所有进程占用的时间。这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间;
PCPU : 是指当前进程所占用的时间;
WHAT : 当前正在运行的命令

who

who
命令输出:
-用户名
-登录终端
-登录时间(登录来源IP地址)

查询当前登录和过去登录的用户信息

last

last命令默认是读取 /var/log/wtmp文件数据
命令输出:
-用户名
-登录终端
-登录IP
-登录时间
-退出时间(在线时间)

查询所有用户的最后一次登录时间

lastlog

lastlog命令默认是读取/var/log/lastlog文件内容
命令输出:
-用户名
-登录终端
-登录IP
-最后一次登录时间

yum命令详解

Yum: 即Yellowdog Update Modifier,是一种基于rpm的包管理工具

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仓库

显示所有仓库

yum repolist all

显示可用的仓库

repolist enabled

显示不可用的仓库

repolist disabled

显示应用程序包

显示所有的程序包

yum list

yum list all [vathe@localhost ~]$yum list tre?
Installed Packages
tree.x86_64 1.6.-.el7 @base 还支持通配符格式的查询

显示可安装的程序包

yum list available

[vathe@localhost ~]$yum list available php
Available Packages
php.x86_64 5.4.-.el7 base

显示可更新或已安装的程序包

yum list updates

yum list installed

显示仓库中最近增加的程序包

yum list recent

安装程序包

#安装 tree 程序
yum install tree

升级程序包

yum update tree

卸载程序包

yum remove tree

yum erase tree

查看程序包信息

yum info tree

查看文件的来源

查看某一文件来自于那个程序包

[vathe@localhost ~]$yum provides /bin/mv
coreutils-8.22-.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts
Repo : base
Matched from:
Filename : /bin/mv #表示/bin/mv文件来自于coreutils-8.22-.el7.x86_64程序包

清理本地缓存

yum clean all 

#清楚插件缓存
yum clean plugins

构建缓存

yum makecache

搜索

[vathe@localhost ~]$yum search php
============================================== N/S matched: php ===============================================
graphviz-php.x86_64 : PHP extension for graphviz
php.x86_64 : PHP scripting language for creating dynamic web sites
php-bcmath.x86_64 : A module for PHP applications for using the bcmath library
...

查看指定包所依赖的capabilities

[vathe@localhost ~]$yum deplist php
package: php.x86_64 5.4.-.el7
dependency: httpd
provider: httpd.x86_64 2.4.-.el7.centos
...

查看yum事务历史

[root@localhost ~]# yum history
Repository 'base' is missing name in configuration, using id
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
| Vathe Su <vathe> | -- : | Install |
| System <unset> | -- : | Install |
history list

包组相关的命令

yum groupinstall    # 安装包组

yum groupupdate     #更新包组

yum grouplist       #显示包组

yum groupremove     #移除包组

yum groupinfo       #查看包组信息

这些命令和上面的命令用法类似,只是针对于包组而言

yum命令使用实战举例git的安装

使用yum安装git,不一定是最新版本:

yum install -y git

此方法简单,并且会自动安装依赖的包,而且会从源里安装最新的版本(不过不一定是最新的git)。

源码安装可以参考:https://blog.csdn.net/xwj1992930/article/details/96428998

顺便讲讲git的简单使用:

.进入某一目录,Linux直接用命令行,Windows右键使用“Git Bash Here”

.拷贝远端代码到本地
git clone 地址 .解决git pull/push每次都需要输入密码问题 和 HttpRequestException encountered
git config --global credential.helper store 安装git后
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com" $ ssh-keygen -t rsa -C "youremail@example.com" 创建ssh key,用于和github通信
(秘钥存储于C:\Users\\.ssh,把公钥id_rsa.pub存储于github) 创建版本库
$ pwd 命令用于显示当前目录(没啥用)
$ git init 把这个目录变成Git可以管理的仓库(后续新建提交和ssh克隆需要) 操作版本库
$ git add 文件名 添加文件(新增或者更改都需要先add)
$ git commit -m "说明" 提交到本地版本库 $ git status 查看仓库状态
$ git diff 文件名 查看修改的地方 版本回退(从一个commit恢复)
$ git log 查看版本历史
$ git reset --hard HEAD^ 回退到上个版本
$ git reset --hard 1094a 回退到特定版本号(commit以后回退)
$ git reflog 记录每一次命令 $ git checkout -- file 直接丢弃工作区的修改(add以前回退)
$ git reset HEAD <file> 添加到了暂存区时,想丢弃修改(add以后回退) 删除文件
$ git rm file(已经add/commit,在目录中删除) $ git checkout -- file 删错了回退 远程仓库
$ git remote add origin git@server-name:path/repo-name.git 关联远程库
$ git push -u origin master 第一次的push
$ git push origin master 常用的push,本地分支会在服务器上新建分支
$ git pull 需要有关联的分支,第一次下拉最好新建一个空文件夹
$ git branch --set-upstream-to=origin/远程分支 本地分支 关联分支 $ git clone git@server-name:path/repo-name.git 克隆(不需要另建文件夹) 分支
$ git branch -a 查看所有分支
$ git branch -vv 查看分支关联
$ git branch dev 创建分支
$ git checkout dev 切换分支
$ git merge dev 合并某分支到当前分支
$ git merge --no-ff -m "msg" dev 普通模式合并,合并后的历史有分支
$ git branch -d dev 删除分支
$ git checkout -b dev 创建并切换分支 合并分支,无法merge
$ git stash save 名字 暂存工作状态
$ git pull origin dev 拉下来
$ git stash list 查看已经暂存的状态
$ git stash pop stash@{} 将暂存状态merge到当前分支
还有冲突时,手动修改文件,然后add/commit
$ git log --graph 分支合并图 bug分支issue
$ git stash 暂存工作状态
$ git stash list 查看暂存工作状态
$ git stash pop 恢复暂存状态并删除状态 开发分支feature
$ git branch -D <name> 强制删除未合并的分支 rebase
$ git rebase 本地未push的分叉提交历史整理成直线 标签
$ git tag 标签名 打在最新提交的commit上
$ git tag 查询所有标签
$ git tag 标签名 f52c633 给特定的commit打标签
$ git tag -a 标签名 -m "msg" commit的id 给标签设置说明
$ git show 标签名 查询标签内容
$ git tag -d 标签名 删除标签
$ git push origin 标签名 推送某个标签到远程
$ git push origin --tags 推送所有标签
$ git push origin :refs/tags/<tagname> 可以删除一个远程标签。

【深入学习linux】Linux命令格式的更多相关文章

  1. Linux - Linux 终端命令格式

    Linux 终端命令格式 目标 了解终端命令格式 知道如何查阅终端命令帮助信息 01. 终端命令格式 command [-options] [parameter] 说明: command:命令名,相应 ...

  2. No-3.Linux 终端命令格式

    Linux 终端命令格式 01. 终端命令格式 command [-options] [parameter] 说明: command:命令名,相应功能的英文单词或单词的缩写 [-options]:选项 ...

  3. Linux 终端命令格式

    Linux 终端命令格式 一.目标 了解终端命令格式 知道如何查阅终端命令帮助信息 二. 终端命令格式 command [-options] [parameter] 说明: command:命令名,相 ...

  4. linux find命令格式及find命令详解

    本文详细介绍了linux find命令格式及find命令案例,希望对您的学习有所帮助.1.find命令的一般形式为:find pathname -options [-print -exec -ok . ...

  5. [Linux] 006 命令格式与目录处理命令

    1. 命令格式 命令 [-选项] [参数] 如,ls -la /etc 说明 个别命令使用不遵循此格式 当有多个选项时,可以写在一起 简化选项与完整选项 如,-a 为简化选项,--all 为完整选项 ...

  6. Linux终端命令格式

    01.终端命令格式 command [-options] [parameter] 说明: command:命令名,响应功能的英文单词或单词的缩写 [-options]:选项,可用来对命令进行控制,也可 ...

  7. Linux常用命令格式

    Linux命令格式 命令 选项 参数COMMAND [OPTIONS...] [ARGUMENTS...]COMMAND COMMAND COMMAND .... 选项:用于启用或关闭命令的某个或某些 ...

  8. Linux系统中命令提示符解释-Linux中命令格式、分类-bash中的快捷键

    1.命令提示符 [root@mysqlserver01 opt]# [root@mysqlserver01 ~]# root 当前用户名 @ 固定的(格式) mysqlserver01 主机名 opt ...

  9. Linux crontab 命令格式与详细例子

    基本格式 :* * * * * command分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示第2列表示小时1-23(0表示0点)第3列表示日期1-31第4列表示月份1-1 ...

  10. Linux crontab命令格式与详情例子

    基本格式 : * * * * * command 分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示 第2列表示小时1-23(0表示0点) 第3列表示日期1-31 第4列表示 ...

随机推荐

  1. Qt NetWork即时通讯网络聊天室(基于TCP)

    本文使用QT的网络模块来创建一个网络聊天室程序,主要包括以下功能: 1.基于TCP的可靠连接(QTcpServer.QTcpSocket) 2.一个服务器,多个客户端 3.服务器接收到某个客户端的请求 ...

  2. IOS基础:Objective-C 字符串处理

    //一.NSString/*----------------创建字符串的方法----------------*/ //1.创建常量字符串.NSString *astring = @"This ...

  3. ApplicationContext的名称解释

    如果说BeanFactory是Spring的心脏,那么Application就是完整的身躯.ApplicationContext就是由BeanFactory派生出来的. 1.ApplicationCo ...

  4. Mysql 游标初识

    MySql 游标初识 认识 游标(cursor), 按字面意思可理解为, 游动的标识, 或者叫做"光标", 这样更容易理解. 就好比现有一张表存储了n行记录, 然后我想每次取出一行 ...

  5. win10 LTSC系统 安装应用商店和纸牌合集,解决从应用商店安装Solitaire Collection纸牌打开空白的问题

    家里台式机换了win10系统,想给老妈玩那个纸牌游戏(我也超喜欢的!. 发现这个系统没有自带纸牌游戏Microsoft Solitaire Collection, 过分的是,连应用商店都没有...呵呵 ...

  6. python中的exec()函数和eval()函数

    exec()函数 exec函数用于执行存储在字符串中的python语句 >>> exec("x=1") >>> x 但有时候,直接这样执行可能会 ...

  7. 【解决】挂载NFS服务时,不同共享客户端间的数据不同步

    问题现象 当您用台 ECS 挂载同一个 NFS 文件系统,在 ECS-A 上 append 写文件,在 ECS-B 用 tail -f 观察文件内容的变化.在 ECS-A 写完之后,在 ECS-B 看 ...

  8. discuz添加标签聚合页

    discuz使用视频教程前段时间把discuz原本的标签聚合页修改了一下,原本的标签聚合页只显示100条最新的标签,把它修改成了所有标签都显示,并加上分页. 修改方法: 1.修改/source/mod ...

  9. Linux 防火墙 | Linux 服务器如何开放端口 配置防火墙

    sudo ufw status(如果你是root,则去掉sudo,ufw status)可检查防火墙的状态,我的返回的是:inactive(默认为不活动).sudo ufw version防火墙版本: ...

  10. 金融类openapi

    股市URL解析 http://money.finance.sina.com.cn/moneyflow/?stockName=上证指数&symbol=sh000001&stockSymb ...