【深入学习linux】Linux命令格式
一、命令基本格式
命令提示符
[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命令格式的更多相关文章
- Linux - Linux 终端命令格式
Linux 终端命令格式 目标 了解终端命令格式 知道如何查阅终端命令帮助信息 01. 终端命令格式 command [-options] [parameter] 说明: command:命令名,相应 ...
- No-3.Linux 终端命令格式
Linux 终端命令格式 01. 终端命令格式 command [-options] [parameter] 说明: command:命令名,相应功能的英文单词或单词的缩写 [-options]:选项 ...
- Linux 终端命令格式
Linux 终端命令格式 一.目标 了解终端命令格式 知道如何查阅终端命令帮助信息 二. 终端命令格式 command [-options] [parameter] 说明: command:命令名,相 ...
- linux find命令格式及find命令详解
本文详细介绍了linux find命令格式及find命令案例,希望对您的学习有所帮助.1.find命令的一般形式为:find pathname -options [-print -exec -ok . ...
- [Linux] 006 命令格式与目录处理命令
1. 命令格式 命令 [-选项] [参数] 如,ls -la /etc 说明 个别命令使用不遵循此格式 当有多个选项时,可以写在一起 简化选项与完整选项 如,-a 为简化选项,--all 为完整选项 ...
- Linux终端命令格式
01.终端命令格式 command [-options] [parameter] 说明: command:命令名,响应功能的英文单词或单词的缩写 [-options]:选项,可用来对命令进行控制,也可 ...
- Linux常用命令格式
Linux命令格式 命令 选项 参数COMMAND [OPTIONS...] [ARGUMENTS...]COMMAND COMMAND COMMAND .... 选项:用于启用或关闭命令的某个或某些 ...
- Linux系统中命令提示符解释-Linux中命令格式、分类-bash中的快捷键
1.命令提示符 [root@mysqlserver01 opt]# [root@mysqlserver01 ~]# root 当前用户名 @ 固定的(格式) mysqlserver01 主机名 opt ...
- Linux crontab 命令格式与详细例子
基本格式 :* * * * * command分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示第2列表示小时1-23(0表示0点)第3列表示日期1-31第4列表示月份1-1 ...
- Linux crontab命令格式与详情例子
基本格式 : * * * * * command 分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示 第2列表示小时1-23(0表示0点) 第3列表示日期1-31 第4列表示 ...
随机推荐
- AI金融:LSTM预测股票
第一部分:从RNN到LSTM 1.什么是RNN RNN全称循环神经网络(Recurrent Neural Networks),是用来处理序列数据的.在传统的神经网络模型中,从输入层到隐含层再到输出层, ...
- vim替换字符串
1. s 命令来替换字符串 :s/vivian/sky/ #替换当前行第一个 vivian 为 sky :s/vivian/sky/g #替换当前行所有 vivian 为 sky :n,$s/vivi ...
- linux下执行python 提示module找不到 要加入系统路劲才找得到
linux/cmd中python路径导入ModuleNotFoundError: No module named 'xxx' import osimport syscurPath = os.pat ...
- 浏览器渲染html的过程
关于浏览器如何渲染html界面一直不太清晰,所以现在理一理.由于本身对前深入的东西不太清晰,这篇博客更多的是在记录. 参考:https://www.cnblogs.com/dojo-lzz/p/398 ...
- C++使用通配符查找文件(FindFirstFile)
调用 FindFirstFile 和 FindNextFile 可搜索某个目录下的相应文件. BOOL SearchFilesByWildcard(WCHAR *wildcardPath) { HAN ...
- 控制跳转的tree视图显示的列表项数量
在act_window中,定义limit字段,可以指定打开的tree视图的记录数量. limit:列表视图中每个页面的记录数.
- CentOS操作系统内核升级
一.升级内核(带aufs模块,记住一定要升级,要不然会出现很多莫名奇怪的问题,建议用yum安装) 1.yum安装带aufs模块的3.10内核(或到这里下载kernel手动安装:http://down. ...
- Git for Windows安装教程
1.国内直接从官网(http://git-scm.com/download/win)下载比较困难,速度极慢,需要翻墙. 这里提供一个国内的下载站,方便网友下载(https://npm.taobao.o ...
- loj10017. 「一本通 1.2 练习 4」传送带(三分套三分)
题目描述 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R.现在lxh ...
- 【大数据】虚拟机-Ubuntu环境
目标 1.宿主机器能相互访问 2.虚拟机能访问互联网 方法 1.VMWare--编辑---虚拟网络编辑器,选择宿主机上网网卡 2.虚拟机设置-网络适配器 3.宿主机网络设置查看 4.Ubuntu网络设 ...