Linux基础命令(三)

目录

一.显示命令

1.cat

2.tac

3.rev

二.分页显示命令

1.more

2.less

三.显示内容命令

1.head

2.tail

3.wc

4.paste

5.split

6.grep

6.1.grep

6.2.正则表达式

四.压缩与解压缩

1.gzip bzip2

2.tar

五.vi编辑器

1.vi编辑器简介

2.命令模式

3.编辑模式

4.底行模式


一.显示命令

1.cat

格式:cat [选项]... [文件]...

选项说明
-n显示行号包括空行
-b跳过空白行编号
-s将所有的连续的多个空行替换为一个空行(压缩成一个空行
-A显示隐藏字符

#内核版本信息
[root@localhost 123]#cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core) 

#系统版本详细信息
[root@localhost 123]#cat /proc/version 
Linux version 3.10.0-693.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Tue Aug 22 21:09:27 UTC 2017
[root@localhost 123]#ls
aa  bb  cc.txt  dd.txt

#跳过空行编号
[root@localhost 123]#cat -b bb
     1	aa





     2	bb


     3	cc

#把空行压缩成一行
[root@localhost 123]#cat -s bb
aa

bb

cc
[root@localhost 123]#
[root@localhost 123]#ls
aa  bb  cc.txt  dd.txt
[root@localhost 123]#echo 1 > cc.txt 
[root@localhost 123]#echo 2 > dd.txt 

#可以显示多个文件,谁在前面先显示谁
[root@localhost 123]#cat cc.txt dd.txt 
1
2
[root@localhost 123]#cat dd.txt cc.txt 
2
1

#空行也会被标上行号
[root@localhost 123]#cat -n bb
     1	aa
     2	
     3	
     4	
     5	
     6	
     7	bb
     8	
     9	
    10	cc

2.tac

tac:逆向显示文本内容

[root@localhost 123]#seq 10 | tac
10
9
8
7
6
5
4
3
2
1

#逆向显示10行文件内容

3.rev

rev:将同一行的内容逆向显示

#正常显示
[root@localhost 123]#cat aa.txt 
1 2 3 4 5 6 7

a b c d e f

#逆向显示
[root@localhost 123]#tac aa.txt 
a b c d e f

1 2 3 4 5 6 7

#每一行逆向显示
[root@localhost 123]#rev aa.txt 
7 6 5 4 3 2 1

f e d c b a

#1到10逆向显示
[root@localhost 123]#echo {1..10} | rev
01 9 8 7 6 5 4 3 2 1

二.分页显示命令

1.more

more可以按页来查看文件的内容,还支持直接跳转行等功能。

参数:

+n   从笫n行开始显示。
-n   定义屏幕大小为n行。
+/pattern   在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示。
-c   从顶部清屏,然后显示。
-d   提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能。
-l   忽略Ctrl+l(换页)字符。
-p   通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似。
-s   把连续的多个空行显示为一行。
-u   把文件内容中的下画线去掉。

命令:

Enter     #向下n行,默认为1行

F键       #向下滚动一屏

空格键     #向下滚动一屏

B键       #返回上一屏

=         #输出当前行的行号

V键       #在使用more查看时,使用v调用vi编辑器

!命令     #调用Shell,并执行命令

q         #退出more

2.less

less 在查看之前不会加载整个文件

-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将"tab"键显示为规定的数字空格
/字符串:向下搜索"字符串"的功能
?字符串:向上搜索"字符串"的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页

三.显示内容命令

1.head

可以显示文件或标准输入的前面行

格式:head [OPTION]... [FILE]...

选项说明
-c指定获取前#字节
-n 正数指定获取前#行
-n 负数从文件头取到倒数第#前

head -n 具体数字 文件名 (不加具体的数字,默认开头十行)

[root@localhost 123]#touch aaa
[root@localhost 123]#vim aaa
[root@localhost 123]#
[root@localhost 123]#ls
aaa

#显示前4个字节
[root@localhost 123]#head -c 4 aaa
1
2

#显示前四行
[root@localhost 123]#head -n +4 aaa
1
2
3
4

#显示第一行到倒数第四行前
[root@localhost 123]#head -n -4 aaa
1
2
3
4
5
6
7
[root@localhost 123]#

2.tail

tail 和head 相反,查看文件或标准输入的倒数行

格式:tail [OPTION]... [FILE]...

选项说明
-f跟踪显示文件新追加的内容
-n 正数从第#行开始显示
-n 负数显示最后#行

tail -n 具体数字 文件名 (不加具体的数字,默认结尾十行)

#不显示最后3行
[root@localhost 123]#head -n -3 aaa
1
2
3
4
5
6
7
8

#只显示最后三行
[root@localhost 123]#tail -n -3 aaa
9
10


#只显示前三行
[root@localhost 123]#head -n +3 aaa
1
2
3

#从第三行开始
[root@localhost 123]#tail -n +3 aaa
3
4
5
6
7
8
9
10

补充:

生成随机密码:

cat /dev/urandom |tr -cd '[:alnum:]' |head -c12

3.wc

统计

格式:

wc [选项]... 目标文件..

选项说明
-l统计行数
-w统计单词个数
-c统计字节数

[root@localhost 123]#cat bbb
sdqwd sdfsf qwerqeklno

#默认三个全部统计
[root@localhost 123]#wc bbb 
 1  3 23 bbb

#统计行数
[root@localhost 123]#wc -l bbb
1 bbb

#统计单词个数 
[root@localhost 123]#wc -w bbb
3 bbb

#统计字节数
[root@localhost 123]#wc -c bbb
23 bbb
[root@localhost 123]#

4.paste

合并文件

[root@localhost 123]#cat user.txt pass.txt 
aaa
bb
cccc
123
456
789

#合并显示
[root@localhost 123]#paste user.txt pass.txt 
aaa	123
bb	456
cccc	789

#用分隔符:隔开显示
[root@localhost 123]#paste -d: user.txt pass.txt 
aaa:123
bb:456
cccc:789
[root@localhost 123]#

5.split

分割文件

格式:

split [-b ][-C ][-][-l ][要切割的文件][输出文件名前缀][-a ]

选项说明
-b值为每一输出档案的大小,单位为 byte
-c每一输出档中,单行的最大 byte 数
-d使用数字作为后缀
-l值为每一输出档的行数大小
-a指定后缀长度(默认为2)

[root@localhost 123]#dd if=/dev/zero of=aaa bs=100M count=1 
记录了1+0 的读入
记录了1+0 的写出
104857600字节(105 MB)已复制,0.652566 秒,161 MB/秒
[root@localhost 123]#
[root@localhost 123]#split -b 10M aaa -d -a 3 date
[root@localhost 123]#ls
aaa  date000  date001  date002  date003  date004  date005  date006  date007  date008  date009
[root@localhost 123]#

6.grep

6.1.grep

格式:grep [选项]… 查找条件 目标文件

选项说明
-i在搜索的时候忽略大小写
-n显示结果所在行号
-c统计匹配到的总行数
-o只显示符合条件的字符串,但是不整行显示,每个符合条件的字符串单独显示一行
-v输出不带关键字的行
-w匹配整个单词,如果是字符串中包含这个单词,则不作匹配
-e实现多个选项的匹配,逻辑or关系
-x只显示全列符合的列
-A #在输出的时候包含结果所在行之后的指定行数,这里指之后的x行,A:after
-B #在输出的时候包含结果所在行之前的指定行数,这里指之前的x行,B:before
-C #在输出的时候包含结果所在行之前和之后的指定行数,这里指之前和之后的x行,C:context
-R递归目录,也处理软链接
^匹配正则表达式的以“某字符串”开头的行
$匹配正则表达式的以“某字符串”结尾的行
# grep -i 'root' passwd						    忽略大小写匹配包含root的行
# grep -w 'ftp' passwd 						    精确匹配ftp单词
# grep -w 'hello' passwd 						精确匹配hello单词;自己添加包含hello的行到文件
# grep -wo 'ftp' passwd 						打印匹配到的关键字ftp
# grep -n 'root' passwd 						打印匹配到root关键字的行好
# grep -ni 'root' passwd 						忽略大小写匹配统计包含关键字root的行
# grep -nic 'root' passwd						忽略大小写匹配统计包含关键字root的行数
# grep -i '^root' passwd 						忽略大小写匹配以root开头的行
# grep 'bash$' passwd 							匹配以bash结尾的行
# grep -n '^$' passwd 							匹配空行并打印行号
# grep '^#' /etc/vsftpd/vsftpd.conf		        匹配以#号开头的行
# grep -v '^#' /etc/vsftpd/vsftpd.conf	        匹配不以#号开头的行
# grep -A 5 mail passwd 				 	    匹配包含mail关键字及其后5行
# grep -B 5 mail passwd 				    	匹配包含mail关键字及其前5行
# grep -C 5 mail passwd 					    匹配包含mail关键字及其前后5行

6.2.正则表达式

正则表达式,又称规则表达式,通常用来检索、替换那些符合某个模式(规则)的文本。

正则表达式是为字符串处理而生的,它使用特定的格式,来检测字符串中的某个特定模式。

^         # 锚定行的开始 如:'^grep'匹配所有以grep开头的行。    
$         # 锚定行的结束 如:'grep$' 匹配所有以grep结尾的行。
.         # 匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。    
*         # 匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。    
.*        # 一起用代表任意字符。   
[]        # 匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。    
[^]       # 匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。    
\(..\)    # 标记匹配字符,如'\(love\)',love被标记为1。    
\<        # 锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。    
\>        # 锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。    
x\{m\}    # 重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。    
x\{m,\}   # 重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。    
x\{m,n\}  # 重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。   
\w        # 匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。   
\W        # \w的反置形式,匹配一个或多个非单词字符,如点号句号等。   
\b        # 单词锁定符,如: '\bgrep\b'只匹配grep。  

四.压缩与解压缩

1.gzip bzip2

gzip [-9] 文件名… 提高压缩比例,但是文件较大时效率会低

bzip2 [-9] 文件名...

gzip -d .gz格式的压缩文件 d就是解压

bzip2 -d .bz2格式的压缩文件

9代表压缩比率,9最大1最小,使用以上两种压缩源文件不存在了

gzip的压缩率 要高于bzip2

2.tar

格式:

tar [选项] ... 归档文件名 源文件或目录

tar [选项] ... 归档文件名 [-C 目标目录]

选项说明
-c创建 .tar 格式的包文件
-C解压时指定释放的目标文件夹
-p打包时保留文件及目录的权限
-P打包时保留文件及目录的绝对径
-x解开.tar 格式的包文件
-f表示使用归档文件(使用tar都需要带这个选项)
-t列表查看包内的文件
-v输出详细信息
-j调用 bzip2 程序进行压缩或解压
-z调用 gzip 程序进行压缩或解压
#对当前所有文件调用gzip程序进行压缩
[root@localhost 123]#tar -zcf vv.tar *

#对vv.tar压缩包解压至opt目录下
[root@localhost 123]#tar -zxf vv.tar -C /opt

五.vi编辑器

1.vi编辑器简介

Linux 系统中“一切皆文件”,当我们在命令行下更改文件内容时,就要用到文本编辑器。

vim是vi的升级版

格式:

vim [OPTION]... ...
命令  选项       文件

vim  文件名不存在  是新建
vim  文件名存在      就是修改

vi编辑器有三种模式:分别是命令模式,编辑模式,末行模式。

①.命令或普通模式:默认模式,可以实现移动光标,剪切/粘贴文本

②.插入或编辑模式:用于修改文本

③.扩展命令或末行模式:保存,退出等搜索替代

2.命令模式

使用vi打开一个文件首先进入命令模式,是使用vi的入口,通过命令对文件进行常规的编辑操作,如:定位、复制、粘贴、翻页、删除等。

①.光标移动

功能键效果
h
l
k
j

②.行内移动

功能键效果
w向后移动一个单词
b向前移动一个单词
0行首
^行首,即不是空白字符的位置
$行尾

③.行数移动

功能键效果
gg文件顶部
G文件尾部
数字+gg移动到指定数字的行数
数字+G移动到指定数字的行数
数字移动到指定数字的行数

④.段落移动

功能键效果
{上一段
}下一段

⑤.屏幕移动

功能键效果
ctrl + b向上翻页
ctrl + f向下翻页
H屏幕顶部
M屏幕中部
L屏幕底部

⑥.复制命令

功能键效果
yw光标所在之处到字尾的字符复制到缓冲区
#yw复制#个字到缓冲区
yy复制行
#yy复制多行
p将缓冲区内的字符贴到光标所在位置

⑦.删除命令

功能键效果
x删除光标所在位置的后面一个字符
#x删除光标所在位置的后面#个字符
X删除光标所在位置的前面一个字符
#X删除光标所在位置的前面#个字符
dd删除光标所在行
#dd从光标所在行开始删除#行

⑧.更改命令

功能键效果
cc删除当前行并输入新内容
C删除当前光标到行尾,并切换成插入模式
u撤销最近的更改
U撤消光标落在这行后所有此行的更改

⑨.查找命令

功能键效果
/PATTERN从当前光标所在处向文件尾部查找
?PATTERN从当前光标所在处向文件首部查找
n与命令同方向
N与命令反方向

3.编辑模式

用于正常的文字编辑

功能键效果
i在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动
I行首插入命令
a在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
A在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本
o在当前光标所在位置之后插入随后输入的文本
O行尾插入命令

4.底行模式

快捷键功能效果
:q退出不保存
:q!强制退出不保存
:w保存
:w 新文件名另存为新文件:
:wq :zz :x保存并退出
:e 其他文件名(如果已修改需要加e!)打开新文件进行编辑
:r 其他文件名在当前文件中读入其他文件内容
!命令执行命令
:r!命令读入命令
: [替换范围] s /旧的内容/新的内容[/g]
:s /old/new替换当前行中的第一个old改为new
:s /old/new/g替换当前行中的所有old改为new
:#,# s /old/new/g#到#行所有old改为new
:%s /old/new/g%代表全文 全文替换所有old改为new
# d删除 第#行
#,# d删除#到#行
#,# y复制三到6 行
:set nu 或:set nonu加行号 不显示行号
:set cul (:set nocul )光标所在行有下划线(取消)
no hl取消高亮
:set ai对齐 回车后和上一行对齐
:set all 可以看所有的一些帮助可以看所有的一些帮助
set key=password (大X)加密码
set key=空白取消密码
set tabstop=4 (set ts=4)tab 一次为四个空格
.!命令 (who,date )将date命令插入当前行注意会覆盖当前行
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值