Linux 快捷键 系统命令 yum/rpm 文件定位 常用命令等

一、系统命令

0. Linux下快捷键

1、tab //命令或路径等的补全键,linux用的最多的一个快捷键 ⭐️
2、ctrl+a //光标迅速回到行首 ⭐️
3、ctrl+e //光标迅速回到行尾 ⭐️
4、ctrl+f //光标向右移动一个字符
5、ctrl+b //光标向左移动一个字符
6、ctrl+insert //复制命令行内容(mac系统不能使用)
7、shift+insert //粘贴命令行内容(mac系统不能使用)
8、ctrl+k //剪切(删除)光标处到行尾的所有字符 ⭐️
9、ctrl+u //剪切(删除)光标处到行首的所有字符 ⭐️
10、ctrl+w //剪切(删除)光标前的一个字符
11、ctrl+y //粘贴 ctrl+k、ctrl+u、ctrl+w删除的字符 ⭐️
12、ctrl+c //中断终端正在执行的任务并开启一个新的一行 ⭐️
13、ctrl+h //删除光标前的一个字符(相当于退格键)
14、ctrl+d //退出当前shell命令行,如果是切换过来的用户,则执行这个命令回退到原用户 ⭐️
15、ctrl+r //搜索命令行使用过的历史命令记录 ⭐️
16、ctrl+g //从ctrl+r的搜索历史命令模式中退出
17、ctrl+l //清楚屏幕所有的内容,并开启一个新的一行 ⭐️
18、ctrl+s //锁定终端,使之任何人无法输入
19、ctrl+q //解锁ctrl+s的锁定状态
20、ctrl+z //暂停在终端运行的任务,使用"fg"命令可以使暂停恢复 ⭐️
21、!! //执行上一条命令 ⭐️
22、!pw //这是一个例子,是执行以pw开头的命令,这里的pw可以换成任何已经执行过的字符 ⭐️
23、!pw:p //这是一个例子,是仅打印以pw开头的命令,但不执行,最后的那个“p”是命令固定字符 ⭐️
24、!num //执行历史命令列表的第num条命令,num代指任何数字(前提是历史命令里必须存在)⭐️
25、!$ //代指上一条命令的最后一个参数,该命令常用于shell脚本中 ⭐️
26、esc+. //注意那个".“ 意思是获取上一条命令的(以空格为分隔符)最后的部分 ⭐️
27、esc+b //移动到当前单词的开头
28、esc+f //移动到当前单词的结尾

1. 软件安装yum/rpm

yum

yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

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

# yum常用命令
============================
# 只能列出在/etc/yum.repos.d/目录下以repo结尾的文件中enable=1的仓库中所有可安装的rpm包
yum list
​
# 查看安装包的详细信息,类似于rpm -qi
yum info
[root@localhost yum.repos.d]# yum info nginx
​
yum 安装命令
# 安装任何源的rpm包:仓库中的,指定url中,本地
yum install
yum install -y nginx
yum install -y http://aa.com/MySQL/a64.rpm
​
# 安装在本地的rpm包,并且解决依赖
yum localinstall
​
## yum 误删除配置文件,重装服务
yum reinstall
​
install   安装
reinstall 重新安装
remove  卸载
localinstall 本地安装
update   升级
-y:(yes)安装免询问
​
## 卸载软件
yum remove
[root@zls ~]# yum erase samba -y
[root@zls ~]# yum remove samba -y
​
# 哪些软件需要升级
yum check-update
​
# 更新指定软件
yum update hostname -y
​
# 全部更新(十分危险)
yum update -y
​
#列出yum源可用的软件仓库
[root@zls ~]# yum repolist
​
#列出全部yum源可用和禁用的仓库
[root@zls ~]# yum repolist all
​
[root@localhost yum.repos.d]# yum-config-manager --enable zls_zabbix
​
# 如果不知道命令输入那个包,使用provides
[root@localhost ~]# yum provides */ifconfig
​
# 换源:先清除缓存
yum clean all
​
# 换源:再更新缓存(生成新的缓存)
yum makecache
​
#列出已经安装和所有可使用的软件组
[root@zls ~]# yum groups list
​
#安装一整个组的软件
yum groups install Development tools \
Compatibility libraries \
Base Debugging Tools
​
#yum删除包组
[root@zls ~]# yum groups remove -y Base
​
## yum 历史命令
[root@qls yum.repos.d]# yum history
[root@qls yum.repos.d]# yum history info 8
​
# 撤销指定的安装内容
[root@qls yum.repos.d]# yum history undo 8

yum仓库

YUM仓库主配置文件
=========================
cachedir=/var/cache/yum/basearch/releasever   //缓存目录
keepcache=0     //缓存软件包, 1启动 0 关闭
开启后可以找到下载的rpm包

[root@localhost ~]# vim /etc/yum.conf
=========================
cachedir=/var/cache/yum/basearch/releasever   //缓存目录
keepcache=0     //缓存软件包, 1启动 0 关闭
debuglevel=2   //调试级别 debug info warn error
logfile=/var/log/yum.log   //日志记录位置
exactarch=1     //检查平台是否兼容
obsoletes=1     //检查包是否废弃
gpgcheck=1     //检查来源是否合法,需要有制作者的公钥信息
plugins=1       //是否启用查询
installonly_limit=5
bugtracker_url
# metadata_expire=90m //每小时手动检查元数据
# in /etc/yum.repos.d   //包含repos.d目录

YUM仓库子配置文件
=======================
# 仓库名字
[zls-base]
# 注释:说明该仓库的作用
name=CentOS-releasever - Base - mirrors.aliyun.com
# 仓库地址:可以写变量 支持:http:// file:// ftp://
baseurl=http://mirrors.aliyun.com/centos/releasever/os/$basearch/

# 开启公钥认证(一般不用)
gpgcheck=1
# 指定公钥位置 可以是http:// 本地:file://   ftp://
gpgkey=file:///root/RPM-GPG-KEY-CentOS-7

配置本地的yum仓库
[root@qls yum.repos.d]# vim /etc/yum.repos.d/zls.repo 
[zls_repo]
name='This is aaa's repo'
baseurl=ftp://10.0.0.200/pub/
gpgcheck=0
enabled=1

rpm

包名      版本      发布次数  系统centos6    架构64       后缀   
tree-    1.5.3-     3.el     6            .x86_64       .rpm
包名:tree
版本:1.5.3
发布次数:3
系统:C6
架构:64位
后缀:rpm

包名               版本号          发布次数  系统:CentOS7    架构       后缀
yelp-tools        -3.28.0        -1.        el7           .noarch     .rpm
包名:yelp-tools
版本号:3.28.0
发布次数:1
系统:CentOS7
架构:noarch(32位和64位都兼容)
rpm 用来管理 Linux 各项套件的程序,让 Linux 易于安装,升级.

# 常用参数:
-a:查询所有套件;
-b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;
-c:只列出组态配置文件,本参数需配合"-l"参数使用;
-d:只列出文本文件,本参数需配合"-l"参数使用;
-e<套件档>或--erase<套件档>:删除指定的套件;
-f<文件>+:查询拥有指定文件的套件;
-h或--hash:套件安装时列出标记;
-i:显示套件的相关信息;
-i<套件档>或--install<套件档>:安装指定的套件档;
-l:显示套件的文件列表;
-p<套件档>+:查询指定的RPM套件档;
-q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
-R:显示套件的关联性信息;
-s:显示文件状态,本参数需配合"-l"参数使用;
-U<套件档>或--upgrade<套件档>:升级指定的套件档;
-v:显示指令执行过程;
-vv:详细显示指令执行过程,便于排错。

# 安装rpm软件包
rpm -ivh 软件包   # 直接安装
rpm --force -ivh 软件包 # 忽略报错,强制安装

--test:安装前测试
--force:强制安装
--nodeps:忽略依赖关系

# 卸载rpm软件包
rpm -e tree    

# 软件升级
-U:如果老版本存在,就升级,如果不存在就安装
-f:升级,但是老版本必须存在

# 查询应用相关
-q:查看指定的软件是否安装
-qa:查看系统中已安装的rpm包
-ql:查看指定软件包所安装的所有文件 包括目录
-qc:查看指定软件包的配置文件
-qf:查看一个文件或者一个目录属于哪个RPM
-q --scripts:查询rpm安装前和安装后执行的脚本

-qi:查看指定rpm软件的详细信息
-qd:查看指定软件包的man帮助

-qip:查看未安装的rpm详细信息
[root@localhost Packages]# rpm -qip zip-3.0-11.el7.x86_64.rpm 

-qlp:查看未安装的rpm会产生的目录
[root@localhost Packages]# rpm -qlp zip-3.0-11.el7.x86_64.rpm 

2. 命令补全和alias

1. 支持命令的补全
Tab
"补全选项,需要安装 bash-completion"
yum install -y bash-completion
补全命令 | 补全选项 | 补全参数
2. bash shell 特性命令alias
使用alias 作用:将复杂的命令简化处理

- 增 - 改
创建命令的别名(如果本身命令别名存在那么就是修改,不存在则创建)
alias wk='vim /etc/sysconfig/network-scripts/ifcfg-eth0'

- 删
unalias ww

- 查
查看当前系统中都有哪些别名
alias

# 别名永久生效,修改配置文件
vim ~/.bashrc
==============
加入命令例如: alias xx='rm -rf /*'


# 系统默认的一些别名
alias ll='ls -l'
alias cp='cp -i'
alias egrep='egrep --color=auto'

!!! # 使用 \ 让别名的命令不使用别名
\cp /root/a.b /root/c.b  
("默认cp=cp -i,\取消别名让cp覆盖文件的时候不询问。")

3. 获取命令的帮助

linux中两种方式获取命令帮助
- 命令 --help
- man 命令

4. 文件路径定位

特殊的三个目录:
# 使用 ll 查看文件的时候
d : 这是一个目录
- : 这是一个文件
l : 这是一个快捷方式(软链接)(link)
c : 设备文件

# 特殊目录1 : '.'
表示当前的目录

# 特殊目录2 : '..'
表示上一级目录

# 特殊目录3 : '~'
代表当前登陆用户的家目录
如果是root用户: /root
如果是alice用户: /home/alice

--绝对路径
凡是以 / 开头的路径都是绝对路径,包括 ~

--相对路径
凡是不以 / 和 ~ 开头的路径都是相对路径

# pwd 查看当前所在目录的绝对路径
[zls@zls html]$ pwd
/usr/share/nginx/html

5. 特殊符号

|  管道符
作用:将管道符左边命令的标准输出交给管道符右边命令的标准输入来处理;管道符后面的命令,可以处理管道符前面命令输出的结果。

$():执行行命令的结果
'' :执行行命令的结果

二、Linux常用命令

1. 文件管理命令

ls(ll)查看目录文件

命令的作用:查看目录和文件
ls 命令的常用选项:
-a :查看所有文件(包含隐藏文件)
-l :查看所有文件和目录的详细信息,列表方式
-r :颠倒排序显示
-t :按新旧时间排序显示
ll=ls -l

tree查看目录结构

1. 查看当前目录下所有文件的目录结构(包括隐藏文件)
tree -a

2. 查看当前目录下所有文件的目录结构(不包括隐藏文件)
tree

3. 查看当前目录下指定层级
tree -L n

4. 查看指定目录下的2层目录结构
tree -L 2 /
tree -dL 1 /opt/

-L:显示目录的层级(指定层级)
-d:List directories only 只显示目录,不显示文件

mkdir创建目录

1. 创建目录mkdir(make directory)
Usage: mkdir [OPTION]... DIRECTORY... 
Create the DIRECTORY(ies), if they do not already exist.
创建单个或多个目录如果他们不存在

2. 参数:
-m:创建目录的时候,给权限
-p:递归创建目录,如果目录已经存在,则不创建并且 (不报错)
-v:显示创建目录的信息

3. 创建多个目录
mkdir /a1 /tmp/a1 /usr/local/a1
mkdir a1 a2 a3 a4 a5 a6 a7
mkdir a{1,2,3}
mkdir a{10..100}
mkdir /tmp/xxx yyy

4. 使用一条命令,创建出多个目录
mkdir -pv
/{home/{zls/test{1,2},oldboy/test},root/{test/test{1,2},abc},tmp/old{boy,girl},backup}

touch创建文件

# 创建文件
Usage: touch [OPTION]... FILE...
1.创建,如果文件已存在,则修改它的`修改时间`和`访问时间`和`改变时间`,不存在则创建(不会报错)

2.必须创建在已经存在的目录中

3.创建相同文件,不会被覆盖

4.在Linux中,一切皆文件,没有后缀的区别,后缀是为了给人看的

cp 复制

# 复制文件或者目录命令
语法:copy
cp -T 源文件 目标文件(必须起个名字)
cp -t 目标路径(也可以写名字) 源文件   #反向cp

copy : 拷贝,复制
Usage: cp [OPTION]... SOURCE... DIRECTORY
cp ./wwwww /tmp
cp ./wwwww /tmp/zls

# 注意,上面的命令
1.如果zls存在,并且是一个目录,会将wwwww放到/tmp/zls目录下
2.如果zls不存在,那么会将wwwww放到/tmp目录下,并且改名叫zls
3.如果zls存在,并且是一个文件,会将wwwww放到/tmp目录下,并且覆盖原有的zls文件内容

[root@zls ~]# cp /etc/hosts /opt/
cp: overwrite ‘/opt/hosts’?
是否要覆盖?
注意:cp命令,无法直接拷贝目录,并且不加-p会修改文件的属性为当前操作用户属主和属组。

cp 源文件 目标路径(也可以改名)
-a:相当于 -r -p ,既做到了递归拷贝,又保持了文件的属性
-i:如果拷贝过程中,出现重复文件名,则询问是否要覆盖
-r:递归拷贝文件 -R --recursive
-p:在拷贝文件的过程中,保持文件原有的属性
-v:显示拷贝的过程
-t:将源文件和目标,反过来
-f:强制拷贝

mv 移动

# 文件移动命令
语法:move
Usage: mv [OPTION]... SOURCE... DIRECTORY
mv [选项] 源文件 目标目录(改名)
[root@zls ~]# mv zls zls1

1.zls1是否存在,如果存在,并且是个目录,则将zls文件移动到zls1目录中
2.zls1是否存在,如果不存在,则将zls文件改名为zls1
3.zls1是否存在,如果存在,并且是个文件,则会询问是否要覆盖

# 注意:
1.mv命令,可以直接移动目录,不需要递归,mv不会修改文件的属性
2.mv 后面可以写 n个文件,但是最后一个必须是目录
3.文件不能覆盖目录,但是可以放入目录里面,目录不能覆盖文件,并且也不能放到文件里面

-i:在移动的过程中,如果存在相同的文件名,则询问是否要覆盖
-f:强制移动
-t:将源文件和目标,反过来

rm 删除

# 文件删除命令
语法:remove
Usage: rm [OPTION]... FILE...
rm [选项] 文件名
-d:删除目录(空目录)
-r:递归删除 -R, --recursive
-f:force 强制删除
-i:在删除文件之前,会询问是否真的要删除(一个一个文件问)
-I:也询问,但是只问一次
-v:显示删除的过程

# 注意:
1.在Linux中,没有回收站,所以rm会永久删除文件
2.删除文件的时候,尽量使用 rm -f
3.如果文件或者目录不存在,也不会报错

=====
rm -fr /tmp/*  #删除/tmp目录下面的所有内容,但是/tmp目录本身还在
rm -fr /tmp/   #删除/tmp目录下面的所有内容,包括/tmp目录本身也会被删除
===== 区别很大

cat文件查看

# 文件查看命令
语法:cat 
Usage: cat [OPTION]... [FILE]...
cat [选项] 文件名
-A:相当于-v -E -T
-n:查看文件并显示出文件的行数(空行也编号)
-T:以^I,标注文件中的TAB键
-t:相当于 -v -T
-E:以$符,标注一行的结尾
-e:相当于 -E -v
-b:空行不给编号
-v: 除了了tab和结尾不不显示以外,其他中文,使用特殊符号表示

# 创建并输入文档内容
[root@zls ~]# cat >> menu <<eof 
> 1.苹果
> 2.梨
> 3.香蕉
> eof

# tac 把文件反过来看

tail动态追踪

# 动态追踪查看
tail -f   多用于查看日志
语法:tail [选项] 文件
作用:动态查看一个文件的后N行,默认是后十行

# 显示/etc/services文件的后十行内容
[root@localhost ~]# tail /etc/services
-n:指定显示文件后数多少行内容(n可以省略)

[root@localhost ~]# tail -f /var/log/messages
-f:追踪文件的末尾,实时查看日志的新内容
-c:显示后数N个字符,(空格也算字符)
-F: -f --retry

grep过滤查看

# 文件过滤查看
语法:grep [选项] 文件
作用:过滤关键字,并且把关键字所在行的内容都打印出来

# 过滤出b.txt中,含有'风'所在行的内容都打印出来
[root@localhost ~]# grep '风' b.txt
江山风景美如画,
一句卧槽风好大。

# 过滤以卧开头的那行内容, ^(表示以什么开头)
[root@localhost ~]# grep '^卧' b.txt
卧槽
^: 以....开头
: 以....结尾
# 过滤以大结尾的内容
[root@localhost ~]# grep '大' b.txt
一句卧槽风好大

#   . 表示任意字符
grep '.' b.txt

#   * 匹配多次
grep '.*' b.txt

# grep选项:
-r:递归查找(常用)
-n:过滤文件内容,并且打印出行号
-o:只显示关键字内容,不显示其他内容
-i:不区分大小写
-v:取反
-w:精确匹配
-A(after):查找关键字,并且显示关键字后N行内容
-B(before):查找关键字,并且显示关键字前N行内容
-C(center):查找关键字,并将关键字放在中间,显示前后N行内容

# 正则表达式,(以ASCII码表为排序基础)
[root@localhost ~]# grep '[a-z]' b.txt
My name is zls
18 years old
[root@localhost ~]# grep '[a-Z]' b.txt
My name is zls
18 years old
[root@localhost ~]# grep '[A-z]' b.txt
grep: Invalid range end
[root@localhost ~]# grep '[z]' b.txt
My name is zls

其他查看命令

# more
语法:more [选项] 文件
回车:按行往下看
空格:按页往下看
n:向下查找
/:/xxx 搜索文件中含有xxx的内容行
q:退出

# less
语法:less [选项] 文件
回车:按行往下看
空格:按页往下看
/:搜索内容,并高亮显示
n:向下查找关键字
N:向上查找关键字
gg:回到第一行
G:跳转到最后一行
冒号:指定翻页行数
q:退出

# head
语法:head [选项] 文件
作用:查看一个文件的前N行,默认是前十行。

rz sz上传下载

# 文件上传下载命令
需要安装  yum install -y lrzsz

# 上传
rz

# 下载 (把虚拟机里面的文件,下载到我们的物理机上windows)
sz 
sz a.txt

# 从网络下载 wget
-O : 指定要下载的位置,文件名

find 查找

# 语法
find 位置 参数 文件名 动作参数

# 文件查找-find
根据文件名查找文件

# 条件参数
-a:and 和,并且
-o:or 或者
!:取反

# 动作参数
-ls  查看找出的文件相信信息
-delete  删除
-exec
-print:打印出查找的内容,find默认就会打印
-ok
find的动作很少用。

示例://创建文件
touch /etc/sysconfig/network-scripts/{ifcfg-eth1,IFCFG-ETH1}

===============
"根据名字查找 -name "
//查找/etc目录下包含ifcfg-eth0名称的文件
[root@zls ~]# find /etc -name "ifcfg-eth0"
​
"-i 忽略大小写"
[root@zls ~]# find /etc -iname "ifcfg-eth1"

//查找/etc目录下包含ifcfg-eth名称所有文件
[root@zls ~]# find /etc/ -name "ifcfg-eth*"
[root@zls ~]# find /etc -iname "ifcfg-eth*"
​
//查找包含eth的文件
[root@localhost opt]# find /opt/ -name '*eth*'
[root@localhost opt]# find /opt/ -iname '*eth*'

===============
"根据文件的大小查找"
-size n[cwbkMG]
  'b'   block
  'c'   bytes 字节
  'w'   words 单词
  'k'   kb
  'M'   MB
  'G'   GB
​
查找大于5M的文件
 find /etc/ -size +5M
/etc/udev/hwdb.bin
​
查找等于5M的文件
 find /etc/ -size 5M
​
查找小于5M的文件
 find /etc/ -size -5M
​
## 大小结合name查找
find /etc/ -size -5M -name '*.sh'
​
在/etc 找到 .sh 和 .db 结尾的 小于5M的文件
find /etc/ -size -5M -name '*.sh' -o -name '*.db'
​
在/etc/ 找到 大于3M 小于5M 名字以.sh结尾和.conf结尾
find /etc/ \( -size +3M -a -size -6M \) -a \( -name '*.sh' -o -name '*.conf' \)
​
在/etc 目录下找到小于5M 并且 文件名不是以 .sh 结尾 或者 不是以 .db结尾
find /etc/ -size -5M ! \( -name '*.sh' -o -name '*.db' \)

===============
"根据文件类型查找"
f:文件
d:目录
l:软连接
s:socket
p:管道文件
b:块设备
c:字符设备
​
find / -type f
find / -type d
find / -type b
find / -type f -ls
find / -type f|head -5|xargs ls -l

===============
"根据日期查找-mtime"
找七天之前的文件,(不包含今天)
[root@localhost ~]# find /opt/ -mtime +7 -name '*.txt'
​
找最近七天的文件
[root@localhost ~]# find /opt/ -mtime -7 -name '*.txt'
​
找第七天的(不包含今天)
[root@localhost ~]# find /opt/ -mtime 7 -name '*.txt'
​
# 生产需求:只保留N天的备份,其余的都删除
find /opt/ ! -mtime -7 -name '*.txt' -delete
find /opt/ ! -mtime -30 -name '*.txt' -delete

===============
"根据用户查找文件"
-user:查找属主是X个用户
-group:查找属组是X个组
-nouser:查找没有用户
-nogroup:查找没有组
​
[root@localhost opt]# find ./ -user zls|xargs ls -l
-rw-r--r--. 1 zls qiandao 0 Apr 16 00:36 ./file1
-rw-r--r--. 1 zls zls     0 Apr 16 00:36 ./file3
​
[root@localhost opt]# find ./ -user zls -group qiandao
./file1
​
[root@localhost opt]# find ./ -user zls -o -group qiandao
./file1
./file3
./file4

==========
"根据深度查找 -maxdepth level "
find /etc/ -maxdepth 2 -type f -name '*.conf'

===========
"根据文件权限查找 -perm "
精确查找
find /opt/ -perm 644
​
包含指定权限的文件
find /opt/ -perm -222
​
============
"find结合动作"
1.查看
[root@localhost ~]# find /etc/ -size +5M -ls
​
2.删除
find /tmp/ -size +5M -delete
-delete 可以用xargs代替
find /opt/ -type d ! -name 'opt'|xargs rm -fr

3.拷贝找到的文件到/tmp下
find /opt/ -mtime +5 |xargs cp -t /tmp/
find /opt/ -mtime +5 -exec cp {} /tmp/ \;
find /opt/ -mtime +5 |xargs -I {} cp {} /tmp/
find /opt/ -name '*.txt' -ok cp {} /tmp/ \;

===========
"find 结合xargs"
#拷贝
find / -type f |xargs cp -t /tmp
#查看
find / -type f |xargs ls -l
#替换
find / -type f |xargs sed -i 's###g'
#移动
find / -type f |xargs mv -t /tmp
#删除
find / -type f |xargs rm -fr

其他查找

# 1.文件查找命令 locate
用于查找符合条件的文档或目录,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。
yum install -y mlocate  #安装命令支持
locate 文件名
updatedb (需要更新mlocate数据库) 否则新建的文件会找不到(tmp文件夹不查找)

[root@localhost opt]# locate /etc/sh
/etc/shadow
/etc/shadow-
/etc/shells

# 2. 查找命令的命令 which
[root@localhost opt]# which netstat
/usr/bin/netstat    # 显示netstat的命令所在的路径

# 3. 查找命令 type
[root@localhost ~]# type -a ls
ls is aliased to 'ls --color=auto'
ls is /usr/bin/ls  
# ls是`ls --color=auto'的别名,ls是在路径 /usr/bin/ls

# 查找命令 whereis
[root@localhost ~]# whereis ifconfig
ifconfig: /usr/sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
# 显示ifconfig的命令所在的路径
# 显示包含ifconfig的文件所在的路径

2. 字符串处理的命令

cut字符截取

用法:cut [选项]... [文件]...
-d:指定分隔符
-f:指定区域
-c:按照字符截取

[root@localhost ~]# cut -d '.' -f 1-4 ip
[root@localhost ~]# cut -d ' ' -f 2,6 info.txt |cut -d ',' -f 2
18 133411023

sort字符排序

注意:什么都不加,默认按照首字母排序
用法:sort [选项]... [文件]...
-t:指定分隔符(默认空格为分隔符)
-k:指定按照哪一列排序
-n:按照阿拉伯数字大小排序(默认是按照数字的首个字符排序)
-r:倒叙
[root@localhost ~]# cat sort.txt
b:3
c:2
a:4
e:5
d:1
f:11

[root@localhost ~]# sort sort.txt
a:4
b:3
c:2
d:1
e:5
f:11

[root@localhost ~]# sort -t ':' -k 2 -n sort.txt
d:1
c:2
b:3
a:4
e:5
f:11

[root@localhost ~]# sort  -nrk 2 -t ':' sort.txt

uniq字符去重

用法:uniq [选项]... [文件]
注意:去重,必须在排好序之后才能去重
-c:count 统计,计数,重复的值有多少
[root@localhost ~]# sort uniq.txt
    123
    123
    456
    456
    789
    abc
    abc
    abc
    abc
[root@localhost ~]# sort uniq.txt|uniq
    123
    456
    789
    abc
[root@localhost ~]# sort uniq.txt|uniq -c
  2 123
  2 456
  1 789
  4 abc     

tr字符替换

[root@localhost ~]# cat info.txt
I'm zls,18 years old QQ 133411023
[root@localhost ~]# cat info.txt |tr 'QQ' 'qq'
I'm zls,18 years old qq 133411023

wc统计命令

注意:在wc命令,什么选项都不加的情况下,统计出文件的行数,单词数,和字符数
-l:按照行数统计
-w:按照单词数统计
-c:按照字符数统计

[root@localhost ~]# wc /etc/services
11176  61033 670293 /etc/services

[root@localhost ~]# wc -l /etc/services
11176 /etc/services

[root@localhost ~]# wc -w /etc/services
61033 /etc/services

[root@localhost ~]# wc -c /etc/services
670293 /etc/services

3. 压缩相关命令

#格式     对应压缩工具
.zip     zip压缩工具
.gz      gzip压缩工具,只能压缩文件,会删除源文件(通常配合tar使用)
.bz2     bzip2压缩工具,只能压缩文件,会删除源文件(通常配合tar使用)
.tar.gz  先使用tar命令归档打包,然后使用gzip压缩
.tar.bz2 先使用tar命令归档打包,然后使用bzip压缩

gzip(gzip -d)

.gz 
Usage: gzip [OPTION]... [FILE]...
1. gzip 只能压缩文件,不能压缩目录
2. gzip 压缩文件之后,源文件会消失
3. gzip 解压文件后,压缩包会消失
4. gzip 压缩文件,后面可以跟多个文件名,但是会分别压缩一个包
5. 使用zcat可以直接查看压缩包中文件内容
6. 打包的文件在哪个路径下,然后就把包放在源文件所在的目录中

# 解压
[root@localhost ~]# gzip -d file1.gz

# 单个文件压缩
[root@localhost ~]# gzip file1

# 多个文件压缩
[root@localhost ~]# gzip file2 file3
​
# file 查看文件类型
[root@localhost ~]# file file1.gz
[root@lb01 ~]# file anaconda-ks.cfg 
anaconda-ks.cfg: ASCII text

zip (unzip)

Usage:zip [option] [filename] [file]...
1.zip 压缩文件,源文件不会消失
2.zip 解压后,如果目录下存在和压缩包内相同的文件名,则询问是否覆盖
3.zip 压缩目录,什么参数都不加的情况下,只能打包空目录,如果想要打包目录下所有内容加 -r参数
4.如果打包的是绝对路径,那么会把绝对路径的内容都打包进去,并且删除/,打包,在哪个目录下执行,就会打包到哪个目录下
​
zip 行李箱 衣服...
-r: 递归打包
-q: 不输出打包过程
​
# 打包单个文件
[root@localhost ~]# zip f.zip file1
​
# 打包多个文件
[root@localhost ~]# zip f.zip file1 file8
​
# 打包目录
[root@localhost ~]# zip -r zls_dir.zip /root/zls_dir

tar 归档打包解压

用法: tar [选项...] [FILE]...
c:创建新的归档文件(create)
f:指定包文件名(行李箱),如果是多个选项,f一定要放在最后

x:解压归档文件
v:显示过程
z:归档之后使用gzip压缩
P:不删/ ,使用绝对路径打包
t:查看压缩包中的压缩项目
C:指定解压路径
h:打包软链接
X:将要排除的目录或者文件,写到文件中,然后使用X指定该文件,即可排除
--exclude:直接写要排除的文件或者目录
-r 表示增加文件,把要增加的文件追加在压缩文件的末尾。
-t 表示查看文件,查看文件中的文件内容

#将目录/etc/sysconfig/目录下的文件添加到文件sysconfig.tar文件中去。
tar -rvf sysconfig.tar /etc/sysconfig/

#查看压缩文件sysconfig.tar文件里面的内容
tar -tvf sysconfig.tar

#解压文件sysconfig.tar,将压缩文件sysconfig.tar文件解压到当前文件夹内
tar xvf sysconfig.tar

# tar调用程序进行压缩与解压缩。
1.tar调用gzip。
.gz结尾的文件就是调用gzip程序进行压缩的文件,相反文件以.gz结尾的文件需要使用gunzip来进行解压。tar中使用-z参数
来调用gzip程序。

2.将目录/etc/sysconfig/打包成一个tar文件包,通过使用-z参数来调用gzip程序,对目录/etc/sysconfig/进行压缩,压缩成文件sysconfig.tar.gz,并且将压缩成的文件放在当前文件夹内。
tar  -czvf  sysconfig.tar.gz /etc/sysconfig/

========案例=========
1.使用gzip命令对文件进行压缩、解压
压缩:gzip filename
解压:gzip -d filename

2.如何用zip命令对文件以及目录进行压缩、解压
压缩文件:zip 包名.zip file1 file2  file3
压缩目录:zip -r  包名.zip dir
解压:unzip 包名.zip

3.创建一个自己名字的文件至/opt目录
touch /opt/zls

4.打包opt整个目录,并命名test_opt.tar.gz
tar zcf test_opt.tar.gz /opt

5.查看打包好的test_opt.tar.gz里的文件
tar tf test_opt.tar.gz

6.将打包好的test_opt.tar.gz内容指定解压至/tmp目录
tar xf test_opt.tar.gz -C /tmp

7.打包etc一级目录下的所有文件,不要目录只要文件
[root@localhost etc]# cd /etc && tar zcfh etc_2.tgz (ls -F /etc |grep -v '/')
显示排除以$结尾的
Copyright © 2009 - Now . XPBag.com . All rights Reserved.
夜心的小站 » Linux 快捷键 系统命令 yum/rpm 文件定位 常用命令等

提供最优质的资源集合

立即查看 了解详情