第一个你需要知道的Linux命令就是man命令,付费投稿计划

2020-03-28 作者:美高梅-服务器   |   浏览(139)

作为贰个程序员,在软件开辟职业生涯中或多或少会用到Linux系统,並且大概会动用Linux命令来查找要求的音信。本文将为诸位开拓者分享十三个有效的Linux命令,希望对您会有着援助。

cut命令可以让你用列只怕分隔符提取文件中的内定部分。借使你要列出文件中某列的全体内容,能够动用“-c”选项。举个例子,下边将从test.txt文件中提取第1、2列的全部内容。

ifconfig |awk '/eth/ {inter=$1;getline;sub(/inetaddr:/,"");print inter,$1}'

笔录和域

awk感到文件是有布局的,每一表现多个记下,记录由域组成,域之直接收空格,Tab或别的标识进行分隔。
域操作符$:钦点实践动作的域,$1…标志每一个域,$0代表整个记录;也足以跟变量或变量表明式
如:awk ‘BEGIN{one=1;two=2} {print $(one+two)}’ input
暗许是空格,Tab键被感觉是多个空格(也八个空格被当成二个空格)
1.能够行使-F 来改换私下认可的相间符
2.方可采纳遭逢变量FS设置分隔符
实例:
1.FS=”t”
2.FS=”t+”
记录:wazttcq
对于FS=”t” 分成七个域,waz,空域,cq;对于FS=”t+”,结果是waz,cq

 man
 touch, cat and less
 sort and grep
 cut
 sed
 tar
 find
 diff
 uniq
 chmod

/etc/passwd

du disk usage 浮现磁盘用量总计消息 侧重文件和文件夹的磁盘占用方面

sed编辑命令

sed编辑命令标示对文本实行何种管理,如打字与印刷,删除,追加,插入,替换等

选项 意义
p 打印匹配行
= 打印文件行号
d 删除定位行
a 在定位行号之后追加文本
i 在定位行号之前插入文本
c 用新文本替换定位文本行
s 使用替换模式替换相应模式
r 从另一个文件中读文本
w 将文本写入另一个文本
y 变换字符
q 第一个模式匹配完成后退出
l 显示与八进制ASCII码等价的控制字符
{} 在定位行执行的命令组
n 读取下一个输入行,用下一个命令处理新的行
h 将模式缓冲区的文本复制到保持缓冲区
H 将模式缓冲区的文本追加到保持缓冲区
x 交换模式缓冲区和保持缓冲区
g 将保持缓冲区文本复制到模式缓冲区
G 将保持缓冲区文本追加到模式缓冲区

本文由码农网 – 小峰原创翻译,转发请看清文末的转载必要,应接加入大家的付费投稿布署!

find / -name passwd

sed '/2004/ichina' mysed.txt 匹配2004 前一行 插入 china i
sed '/2004/achina' mysed.txt 相称 2003 后一行插入 china a

split

用来将大文件切割成小文件,split命令能够遵守文件的行数,字节数切割文件,并能在输出的四个文件中活动抬高编号

split [选项] 待切割的大文件 输出的小文件

选项 意义
-n 用于指定切割成小文件的行数
-b 指定切割成小文件的字节
-C 与-b类似,但是,切割时尽量维持每行的完成性

split -2 input input(默认是x) split -b100 input input split -C100 input input

9、Uniq命令

uniq命令用来过滤文件中的重复行:

语法: uniq 
uniq test.txt

root@devopscube:~# uniq test.txt
1 mike level intermediate jan
10 lucy level beginer mar
45 Dave level expert dec
4 dennis start beginner jul
7 Megan employee trainee feb
58 Mathew Head CEO nov

4 dennis start beginner jul

paste 拼接文件
paste ro.txt roc.txt
paste -d '' p3.txt p2.txt p1.txt -d 用到字符 拼接
paste -s -d '
' p3.txt p2.txt p1.txt -s 以每一种文件自个儿为一个管理单元

tr

现字符调换职能,tr能变成的sed都能产生,可是tr简单

tr [选项] 字符串1 字符串2 < 输入文件

选项 意义
-c 反选字符串1的字符集
-d 删除字符串1中出现的所有字符
-s 删除所有重复出现的字符序列,只保留一个

3、sort和grep命令

sort命令用来对文本内容张开排序。创立二个名叫test.txt的文本,並且把以下内容拷贝到该文件中:

1 mike level intermediate jan
10 lucy level beginer mar
45 Dave level expert dec
4 dennis start beginner jul
7 Megan employee trainee feb
58 Mathew Head CEO nov

上边的例子中,第二列是称呼,所以只要您想对名称列按字母排序,就可以使用“-k”选项,并标注列号,比方“-k2”:

语法: sort

sort -k2 test.txt

排序结果

root@devopscube:~# sort -k2 test.txt
45 Dave level expert dec
4 dennis start beginner jul
10 lucy level beginer mar
58 Mathew Head CEO nov
7 Megan employee trainee feb
1 mike level intermediate jan

先是列是数字,要是您想按数字排序,能够使用“-h”选项。若是数字在不一样列上,你能够在“-h”选项后使用“-k”选项:

root@devopscube:~# sort -h test.txt  
1 mike level intermediate jan
4 dennis start beginner jul
7 Megan employee trainee feb
10 lucy level beginer mar
45 Dave level expert dec
58 Mathew Head CEO nov

末尾一列是月份,你能够动用“-M”选项来让文件内容按月度排序:

root@devopscube:~# sort -k5 -M test.txt
1 mike level intermediate jan
7 Megan employee trainee feb
10 lucy level beginer mar
4 dennis start beginner jul
58 Mathew Head CEO nov
45 Dave level expert dec

注:倘诺你想淹没重复的行,可以在sort命令后选取“-u”选项。

行使“-r”选项,是文件倒序排列:

root@devopscube:~# sort -h -r test.txt
58 Mathew Head CEO nov
45 Dave level expert dec
10 lucy level beginer mar
7 Megan employee trainee feb
4 dennis start beginner jul
1 mike level intermediate jan

Grep命令:

Grep命令极度苍劲,系统管理员平日会用到它。grep命令能够在文件中寻觅钦赐格式的字符串,同一时候对其张开正规输出。

语法: grep "<search string>" <filename> 
        grep "Mathew" test.txt

root@devopscube:~# grep "dennis" test.txt
4 dennis start beginner jul

地方命令的输出结果是满含该子字符串的,假诺您想搜寻完整的单词,你须要加上“-i”选项。同不常间,也得以用grep命令在多个公文中检索字符串,命令代码如下:

grep "dennis" test1.txt test2.txt test3.txt

理所必然你也能够用正则表明式来匹配字符串。

7 Megan employee trainee feb

awk 'BEGIN {OFS=FS=":" NR==FNR {a[$1]=$2} NR>FNR{$2=a[$1];print}' shadow passwd
OFS 输出字段分隔符 FS 字段分隔符

sed定位文本行

选项 意义
x x为指定行
x,y 指定行范围
/pattern/ 包含模式的行
/pattern/pattern/ 包含两个模式的行
/pattern/,x 从与pattern的匹配行到x之间的行
x,/pattern/ 从x开始到pattern的匹配行
x,y! 不包括x和y的行

1、man命令

先是个你需求通晓的Linux命令正是man命令,该命令能够显示钦赐命令的用法和描述。比如您想清楚ls命令的用法和选拔,能够在极端实行“man ls”:

语法: man <command name>
man ls

root@devopscube:~# man ls
LS(1)                            User Commands                           LS(1)
NAME
       ls - list directory contents
SYNOPSIS
       ls [OPTION]... [FILE]...
DESCRIPTION
       List  information  about  the FILEs (the current directory by default).
       Sort entries alphabetically if none of -cftuvSUX nor --sort  is  speciâ
       fied.
       Mandatory  arguments  to  long  options are mandatory for short options
       too.
       -a, --all
              do not ignore entries starting with .

too.

tar -czvf finame.tar.gz directory 打包 压缩
-c 打包

join

接连几日来操作将五个文本中持有雷同域的笔录采用出来,再将那个记录全数的域放到一行(包罗来自多个文件的全体域)
小心:文件必得有序

选项 意义
-a1或-a2 除了显示以共同域进行连接的结果外,-a1表示还显示第一个文件中没有共同域的记录,-a2则表示显示第二个文件中没有共同域的记录
-i 比较域内容时,忽略大小写差异
-o 设置结果显示的格式
-t 改变域分隔符
-v1或-v2 与-a类似,但是,不显示以共同域进行连接的结果
-1和-2 -1用于设置文件1用于连接的域,-2用于设置文件2用于连接的域

join [选项] file1 file2
有点像sql中的join

join -t: teacher.db teacher_hobby.db
默许第贰个域相比较,相等就总是。 -a有一点点像左外连接,右外连接
-a1 左连接 -a2右连接 -o表示展现这一个域(sql中的字段)
表示方法为 -o1.n 2.n -i忽视大小写 -t设置域分隔符 -v取反,即不出示合作域
用法与-a相符,-v1 -v2 -1,-2代表用来延续的域

8、diff命令

diff命令用来搜索2个文本的分裂点。diff命令通过深入分析文件内容,然后将不一样的行打字与印刷出来,上面包车型地铁事例能够搜索五个文件test和test1的区别点:

语法: diff <filename1> <filename2>
        diff test.txt test1.txt

root@devopscube:~# diff test.txt test1.txt
7c7
< 59 sdfsd
---
> 59 sdfsd  CTO dec

7 Megan employee trainee feb

split 拆分文件
split -b 400M toykohot.avi -b 钦点每一个拆分文件的大大小小 -d 钦命数字
split -b -C -l 要切割的文本 输出的文本名前缀 -a
md5sum hot.avi md5 验证文件
sha1 hot.avi

格式化输出

awk的一大效用是产生报表,报表就需求依照预定的格式化输出
printf(格式调控符,参数卡塔尔国

修饰符 意义
- 左对齐
width 域的步长
.prec 小数点右边的位数
0 1 2 3 4 5 6 7
格式符 %c %d %e %f %o %x %s

10、chmod命令

chmod命令用来更改文件的读/写/试行权限,权限数值如下所示:

4 - read permission
2 - write permission
1 - execute permission
0 - no permission

上边的通令能够给test.txt文件赋最高的权杖:

chmod 755 test.txt

设若你对本文有任何的主张和见解,招待给出你的点评,作者很希望!

让我们将test.txt文件打包:

gzip -3 erro.jpg

uniq

用于去除文本文件中的三回九转的再度行,相像sort -u

选项 意义
-c 只打印每行在文本中重复出现的次数
-d 只显示有重复的记录,每个重复记录只出现一次
-u 只显示没有重复的记录

计算文件中的单词数
cat input | sed ‘s/./ /g;s/=/ /g;s/,/ /g;s/// /g;s/ /n/g;s/t/n/g’| sed ‘/^$/d’|sort| uniq -c | sort -nr

4、cut命令

cut命令能够让你用列或然分隔符提取文件中的钦命部分。假如您要列出文件中某列的全体内容,能够动用“-c”选项。比方,上面将从test.txt文件中提取第1、2列的全部内容。

cut -c1-2 test.txt

root@devopscube:~# cut -c1-2 test.txt
1
10
45
4
7
58

假定您愿意从文件中领取内定的字符串,那么你可以行使分隔符选项“-d”和“-f”选项选中列。举个例子,大家能够动用cut命令提取names列:

cut -d' ' -f2 test.txt

root@devopscube:~# cut -d' ' -f2 test.txt
mike
lucy
Dave
dennis
Megan
Mathew

上面的例证从/etc/passd file中领到users列:

cut -d':' -f1 /etc/passwd

比方,在test.txt文件中用“michael”替换“mike”:

sort -n -k 2 -t : fruit.txt -k 钦点要针对性的那一列举办排序 , -t 钦命间隔符

Linux文本管理命令

6、tar命令

tar命令用来压缩和解压缩文件,当中平日会用到“-cf”和“-xf”选项。

语法: tar <options> <archive-name> <file/folder name>

让大家将test.txt文件打包:

tar -cf test.tar test.txt

root@devopscube:~# tar -cf test.tar test.txt
root@devopscube:~# ls
test.tar  test.txt

用“-C”选项将刚刚打包好的test.tar文件解压缩至“demo”目录:

tar -xf test.tar -C /root/demo/

root@devopscube:~# tar -xf test.tar -C /root/demo/
root@devopscube:~# cd demo/
root@devopscube:~/demo# ls
test.txt

10 lucy level beginer mar

sed stream editor 流编辑器 是一个面向 行管理的工具,它以 行 为管理单位,针对每一行举行拍卖,管理后的结果会输出到职业输出(STDOUTState of Qatar,sed 不会修正 被读取的文件
而是将 原内容 或修正后的内容输出到专门的工作输出中。专门的学问规律,每一次拍卖一行内容,管理时,sed会把要管理的行存款和储蓄在缓冲区中,接着用sed 命令管理缓冲区中的内容,管理完了后,把缓冲区的剧情送往显示器。接着 管理下一行,那样不断重复,直到文件末尾,这么些缓冲区被称为 ”方式空间“

Grep

一应俱全寻找正则表达式并把行打字与印刷出来(Global search Regular Expression and Print out the line)
grep [选项][模式][文件…]

图片 1

4 dennis start beginner jul

应用tcpdump 嗅探 80 端口的访谈

AWK

awk的中央语法与C语言相符,与sed的成效相仿,用来管理公事,awk能够从文件或字符串中基于钦赐准绳浏览和抽出消息,在收取音讯的功底上,工夫开展其余文件操作
新型的awk是gawk,能够兑现数据检索,抽取文件中数量,创造管道流命令

5、sed命令

sed 是一种在线编辑器,它叁回拍卖一行内容。管理时,把当前管理的行存款和储蓄在一时缓冲区中,称为“格局空间”(pattern space),接着用sed命令处理缓冲区中的内容,管理完了后,把缓冲区的剧情送往显示屏。接着处理下一行,那样持续重复,直到文件末尾。文件内容并未有改造,除非您利用重定向存款和储蓄输出。

假定你想通过寻觅替换文件中的内定内容,你能够应用“s”选项来搜寻到它然后将它替换。

语法: sed 's/<old-word>/<new-word>/' test.txt

譬喻说,在test.txt文件中用“michael”替换“mike”:

sed 's/mike/michael/' test.txt

root@devopscube:~# sed 's/mike/michael/' test.txt
1 michael level intermediate jan
10 lucy level beginer mar
45 Dave level expert dec
4 dennis start beginner jul
7 Megan employee trainee feb
58 Mathew Head CEO nov

用作三个程序猿,在软件开拓专业生涯中或多或少会用到Linux系统,並且大概会利用Linux命令来寻找要求的音讯。本文将为诸位开拓者分享十贰个有效的Linux命令,希望对您会怀有利于。

sed '/2/d' roc.txt
sed -n '/4/p' roc.txt -n 警示sed ,只输出 明确要出口的行
/d 代表删除行 ; /p 打字与印刷该行 ; /r 读取内定文件的剧情 /w 写入钦点文件 /a 在底下插入新行新剧情 /g 替换 s/ 删除

grep命令族

grep
规范grep命令,扶持核心正则表明式 egrep
扩张grep命令,扶持中央和扩展正则表明式
等价于grep -E fgrep
火速grep命令,不帮忙正则表明式,依照字面意思进行相称
等价于grep -F

7、find命令

find命令用来寻找文件,可以用“-name”选项来搜索钦定名称的文书:

find -name  find -name test.txt

root@devopscube:/home/ubuntu# cd ~
root@devopscube:~# find -name test.txt
./demo/test.txt
./test.txt

您也得以用“/ -name”来找寻内定名称的文件夹:

find / -name passwd

root@devopscube:~# find / -name passwd
/etc/cron.daily/passwd
/etc/pam.d/passwd
/etc/passwd
/usr/share/lintian/overrides/passwd

45 Dave level expert dec

find . 当前目录 -name [pattern] -type f d l b c p s [pattern] -regex '.* '

表达式

支持加(+),减(-),乘(*),除(/),模(%),乘方(^或**),自增(++x,x++)
叁个表明式可由数值,字符常量,变量,操作符,函数和正则表明式

2、touch,cat和less命令

touch命令能够在Linux系统中创建大小为0的自由等级次序文件,作为程序开采者,当你要求在Linux服务器上创立文件时,能够运用touch命令:

语法: touch <filename>
touch demo.txt

root@devopscube:~# touch demo.txt
root@devopscube:~# ls
demo.txt

cat命令用来查阅文件的原委,可是接收cat命令并不能够编辑文件的内容,它独自是足以浏览文件内容。cat命令不接济键盘上下键翻页。

语法: cat <filename>
cat demo.txt

同等的less命令也能够让您浏览文件,less命令相当的慢,何况协助上下键查看文件的起来和末段。然则more命令和它好像,只是more命令只好用enter键达成文件的迈入翻页,不援救回落。

语法: less <filename>
        more <filename>

less demo.txt
more demo.txt

sort and grep

awk 'BEGIN {T=" "} /worktime/ {print T;T=$0; next}{T=T" "$0} END{print T}' input.txt

sort

rt:对文本举办排序。将输入文件作为由多条记下组成的数据流,而记录由可变宽度的字段组成。,以换行符作为定界符,sort命令与awk形似,可将记录分成多少个域实行管理,暗中同意的域分隔符是空格符

sort [选项] [输入文件]

选项 意义
-c 测试文件是否已经被排序
-k 指定排序的域
-m 合并两个已排序的文件
-n 根据数字大小进行排序
-o[输出文件] 将输出写入到指定的文件,相当于将输出重定向到指定文件
-r 将排序结果逆向显示
-t 改变域分隔符
-u 去除结果中的重复行

sort -t: input sort -t: -k3 input sort -t: -k3n input
-n常常不独立使用,常常坐落于域号之后 sort -t: -k3nr input sort -t: -u input sort -t: -k3n -o output input sort -t: -c input sort -t: -m input1 input2
input1和input2必需有序

以下就是明日大家要介绍的Linux命令:

58 Mathew Head CEO nov

对于 bzip2 压缩包
tar -xjvf fina.tar.bz2 解压

模式

字符串、变量、正则表达式

留心:只要情势中隐含空格,就需求动用双引号将形式引入来

接下去让我们逐一来详细介绍。

chmod命令用来改换文件的读/写/施行权限,权限数值如下所示:

mv filenme newFilename
cp file newfilename

正则表明式

POSIX标团长正则表明式分为两类
1.着力的正则表明式
2.恢弘的正则表达式
多数Linux应用和工具仅援救中央的正则表明式

less demo.txt

which java
where java

基准语句和循环语句

if() 动作1 [else 动作2]
while() 动作
do 动作 while()
for()动作

find命令用来寻觅文件,能够用“-name”选项来搜索钦赐名称的文书:

find . -perm 663 按权限搜索
find -exec args {} ;
find . -type f -size +40m
find , -type f -a -size +30k and -o or

实例

-w和-x选项
grep命令方式支持正则表明式,正则表明式的元字符被解释成极其含义;
-w选项表示优秀整词,即以情势的字面意义去解释
如:
grep cer* *.pem
grep -w cer* *.pem
-x 是特别整行
-w 使用不方便人民群众,最棒和 -F 一齐行使

10 lucy level beginer mar

tmux tmux new -s roclinux ctrl +b c 0
shopt expand_alias
--login

实例

对此七个域的接连,使用awk

awk ’
//(N揽胜极光表示读取的记录数,FN奥迪Q5表示在近来文件中的记录数,独有首先个文件能力使得NOdyssey==FNR)
NR==FNR
{
a[$1 FS $2]=$0;
//约等于break,本行管理终结,管理下一行
next;
}
//最终实践到那边时,a中存放的是文本1中的记录
//当文件2的$1 FS $2在a中证实八个公文这两行相像
$1 FS$2 in a
{
//将点名列相等的记录存款和储蓄在b中
b[FNR]=a[$1 FS $2] FS $3
}
END
{
//打印
//awk中的数组是事关数组
for(i=1;i<=FNR;i++)
if(i in b)
print b[i]
}’
test1 test2

4、cut命令

xargs excute argument 从典型输入中读取内容,并将此内容传递给它要扶持的吩咐,并视作哪个命令的参数来进行

主导正则表明式

符号 意义
* 0个或多个字符
. 匹配任意字符
^ 行首,在[]中表示非
$ 行尾
[] 匹配字符集合
转义字符
<> 精确匹配符号
{n} 匹配n次
{n,} 匹配至少n次
{m,n} 匹配m~n次

7 Megan employee trainee feb

重定向
grep egrep fgrep

系统变量

变量 意义
$n 当前记录的第n个域,域间由FS分隔
$0 记录的所有域
FS 字段分隔符,默认空格
RS 记录分隔符,默认换行
NR 当前记录数
NF 当前记录中的域数量
OFS 输出域分隔符,默认空格
ORS 输出记录分隔符,默认换行
FILENAME 当前文件名
ARCC 命令行参数的数量
ARGIND 命令行中当前文件的位置(从0开始标号)
ARGV 命令行参数数组
CONVEMT 数字转换格式
ENVIRON 环境变量关联数组
ERRNO 最后一个系统错误的描述
FILEDWIDTHS 字段宽度列表,以空格键分隔
FIR 浏览文件的记录数
IGNORECASE 布尔变量,如果为真,则进行忽略大小写的匹配
OFMT 数字的输出格式
RLENGTH 由match函数匹配的字符串长度
RSTART 由match函数所匹配的字符串的第一个位置
SUBSEP 数组下标分隔符,默认值是34

sed 是一种在线编辑器,它叁次拍卖一行内容。管理时,把当下拍卖的行存款和储蓄在临时缓冲区中,称为“情势空间”(pattern space),接着用sed命令管理缓冲区中的内容,管理完了后,把缓冲区的源委送往显示器。接着管理下一行,那样不断重复,直到文件末尾。文件内容并不曾 退换,除非你选取重定向存款和储蓄输出。

read -p "提示语 " 变量
read -t 时间second
read -s 保密方式

AWK编制程序模型

awk程序由几个主输入循环维持,主输入循环自动依次读取文件行,用技士定义的拍卖公事行的动作管理,循环实行直到终止条件。
与C,C++,Java的两样是,技师不要求关切张开文件,读取文件行,关闭文件的动作,而只关怀管理行的试行动作。

图片 2

下边包车型地铁例证从/etc/passd file中领到users列:

who |cut -b 3 -b 以字节 为单位领取
who |cut 3-5,8
cut -c 以字符为单位领取内容
cut -c 3 roc.txt
cut -d : -f 1,3-5,7 -d 以什么为间隔, -f filed 要提取的域

实例

sed -n ‘1p’ file sed -e ‘/^f*/p’ -e ‘/^f*/=’ file 定位命令
相配元字符
sed -n ‘/./p’ input
sed -n ‘/$/p’ input 使用元字符举办相配
sed -n ‘p′input(注意:在sed命令注重味最终一行)
sed -n ‘/^$/p’ input (相配空行)
sed -n ‘/.*bus/p’ input !符号
sed -n ‘2,10!p’ input 使用行号与首要字相称限制行范围
sed -n ‘/seugrid/,$p’ input
sed -n ‘3,/seugrid/p’ input

编写命令

插入文本
sed ‘钦点地址itext’ input (在钦点地方在此之前插入)
sed ‘内定地址atext’ input (在内定地方然后插入)
sed ‘/i/iinputnsecond’ (插入两行input和second)
sed ‘/i/ainputnsecond’ 校正文件
sed ‘钦点地址ctext’ input (将整个相配行改过为新文本行)
sed ‘/Certificate/cNew line:’ input 删除文本
sed ‘钦赐地点d’ input (删除内定行) 替换文本
sed ‘s/被替换字符串/新字符串/[更换选项]’
sed ‘s/被替换字符串/新字符串/number[交替选项]’(表示第number(1~512)次匹配)

选项 意义
g 全部替换
p 与-n选项结合,只打印替换行
w 文件名 表示将输出定向到一个文件

写入新文件
sed ‘钦定地点w file’ input
sed ‘1,5w file’ input
sed ‘/Certificate/w file’ input 从文件读入文本
sed ‘钦赐地址r file’ input 退出命令
sed ‘钦定地点q’ input 转换命令
sed ‘y/被交替字符连串/转换的字符类别/’ 输入文件
五个体系长度必需一致
sed ‘y/fmg/FMG/’ input 展现调控字符
突显退格符,F1键,shift键等
sed -n l input
sed -n ‘钦命地方l’ input 在一定行实施命令组
sed -n -e ‘/Certificate/p’ -e ‘/Certificate/=’ input
sed -n ‘/Certificate/{p;=}’ input 高端编辑命令
拍卖相称行的下一行
sed ‘/Certificate/{n;s/11/99/;}’ input sed缓冲区的管理
sed ‘/Subject/h;/seugrid/x;$G’ input
1.相称Subject,并将相称行写入保持缓冲区
2.匹配seugrid,将保持缓冲区和方式缓冲区调换
3.到结尾行,将保持缓冲区追加到形式缓冲区 利用分号分隔多个编辑命令
上例已经应用了这种代表

find -name  find -name test.txt

表面调用 getline 援引外部数据 ,system 调用shell 中的命令

文本处理命令

文本处理命令蕴涵对文本记录的排序、文件的联结和分隔等。具体命令:sort,uniq,join,cut,paste,split,tr,tar。这么些命令实现了对文件记录排序,总结,归拢,提取,粘贴,分隔,过滤,压缩和平解决压等职能。与sed,awk构成了Linux文本管理的享有命令和工具

45 Dave level expert dec

sort -t ' ' -k 1.2 facebook.txt 对第一列 的第一个假名开端到本行的结尾一个字符截至的字符串进行排序

cut

cut命令用于从正式输入或文本文件中按域或按行提取文本

选项 意义
-c 指定提取的字符数或字符范围
-f 指定提取的域数或域范围
-d 改变域分隔符

-c按字符提取文本
cut -c2 input
cut -c1,5 input(提取第1个和第5个字符)
cut -c1-5 input(提取1~5那多少个字符) -f按域提取文本 -d相仿sort和join中的-t

touch命令能够在Linux系统中成立大小为0的任意等级次序文件,作为程序开辟者,当你须要在Linux服务器上开创文件时,能够应用touch命令:

tar -cjvf fina.tar.bz2 fina/ 压缩

tar

归档命令,实现了打包和平解决压文件

tar [选项] 文件名或目录名

选项 意义
-c 创建新的包
-x 解压文件
-t 列出包内容
-f 使用压缩文件或设备,该选项通常是必须的
-z 用gzip压缩和解压缩文件,若加上此选项创建压缩包,那么解压缩时也需要加上此选项
-j bz2
-v 查看过程
-r 向宝中添加文件

gzip 压缩文件

root@devopscube:~# sort -h test.txt  

grep "bash$" "^leo" /ect/ 管理正则
grep -w "bash" /etc 处理词
grep -c "root" /etc/pad

选项

选项 意义
-n 不打印所有行到标准输出
-f 表示正在调用sed脚本文件
-e 表示将下一个字符串解析为sed编辑命令,如果只传递一个编辑命令给sed,可以省略-e

more demo.txt

awk '{getline;print}' test getline 左右一贯不 < | ,getline 是对当下展开的公文操作,表示读取行的下一行数据,并把读取到的数额赋值给$0,同不经常候立异NF N景逸SUV FNQX56

推而广之正则表达式

符号 意义
? 匹配0个或1个
+ 匹配1个或多个
() 表示一个字符集合或用在expr中
| 表示或

./test.txt

bzip2 error.jpg 压缩 会删除源文件

选项

选项 意义 整词
-c 只输出匹配行的数量 count
-i 搜索时忽略大小写 ignore
-h 查询多文件时不显示文件名  
-l 只列出符合匹配的文件名,而不列出具体的匹配行 list
-n 列出所有的匹配行,并显示行号 number
-s 不显示不存在或无匹配文本的错误信息  
-v 显示不包含匹配文本的所有行 reverse
-w 匹配整词 word
-x 匹配整行  
-r 递归搜索,不仅搜索当前工作目录,而且搜索子目录 recursion
-q 禁止输出任何结果,以退出状态表示搜索是否成功 quit
-b 打印匹配行距文件头部的偏移量,以字节为单位 byte
-o 与-b选项结合使用,打印匹配的词距文件头部的偏移量,以字节为单位  
-E 支持扩展的正则表达式 Extract
-F 不支持正则表达式,按照字符串的字面意思进行匹配  

root@devopscube:~# uniq test.txt

wc 总结字数
wc -c roc.txt 以字节 byte
wc -m ro.txt 以字符char 来计数
wc -l ro.txt 以 行line
wc -w ro.txt 以 词 word
wc -L ro.txt 能够来得三个文本中最长行的长度
wc rot.txt 显示行数 词数 字节数 文件名称

AWK调用

Shell中调用
awk [-F 域分隔符] ‘awk程序段’ 输入文件 将awk程序段插入脚本文件
awk -f awk脚本文件 输入文件 将脚本文件设置为可实践
./awk脚本文件 输入文件

用“-C”选项将刚刚打包好的test.tar文件解压缩至“demo”目录:

cat ab.txt |xargs -E "korea" echo
date
time 总括 命令执行时间 time -v ls
sleep 5s 6m 7h 5d date; sleep 4s ;date
sleep 0.003s

数组

array[index]=value
1.提到数组
关联数组是指数组的目录能够是字符串,也足以是数字
提到数组的值无须以延续的地点实行仓库储存。
awk的有所数组都以关乎数组。使用的数字索引并不代表数组存款和储蓄地方消息
访问数组:
for(variable in array) do something with array[variable]
认清数组中是或不是存在某元素
if(index in array) do
2.split函数
split(r,s,t卡塔尔:以t为分隔符,将r字符串拆分为字符串数组,并贮存在s中
awk ‘BEGIN{print split(“abc/def/ghi”,str,”/”);for(i in str) print str[i]}’

自然你也能够用正则表明式来匹配字符串。

sort -u -r seq.txt -r颠倒顺序,逆序 降序

放到字符串函数

函数名 意义
gsub(r,s) 在输入文件中用s替换r,作用域为$0
gsub(r,s,t) 在t中用s替换r,可以作用于某个域$n
index(s,t) 返回s中字符串第一个t的位置
length(s) 返回s的长度
match(s,t) 测试s是否包含匹配t的字符串
split(r,s,t) 用t分隔r,生成数组s,生成数组的元素个数
sub(r,s,t) 将t中第一次出现的r替换为s
substr(r,s) 返回字符串r中从s开始的后缀部分
substr(r,s,t) 返回字符串r中从s开始长度为t的后缀部分

diff命令用来搜索2个公文的分裂点。diff命令通过解析文件内容,然后将不一致的行打字与印刷出来,下面包车型客车例子可以找寻四个文本test和test1的分歧点:

ln source.txt hardsource.txt 不相同意链接到目录 不可能跨文件系统
ln -s source.txt softsource.txt

提到和布尔运算符

运算符 意义
<  
>  
~ 匹配正则表达式
!~ 不匹配正则表达式
ll  
&&  
!  

grep "Mathew" test.txt

echo "helo world " |sed 's/ (helo) .*/world 1/'
world helo

Linux文本管理总结

Linux文本处理命令 应用
grep 全面搜索正则表达式并把行打印出来,grep命令族:grep,egrep,fgrep
sed 流编辑,将一系列编辑命令作用于缓冲区中输入文件的副本,从而实现输入文件的各种编辑操作
awk 特点是处理结构化文件,所谓结构化,指划分为域和记录的文件
sort 对文本进行排序
uniq 去除文本的连续重复行,也可以统计重复行的数量
join 类似数据库中的连接操作
cut 从标准输入或输入文件中按行或按域提取文本
paste 用于将多个文件或标准输出中的内容粘贴而形成新的文件
split 用于将大文件切割成小文件
tr 实现字符替换功能,可以实现文本文件的过滤功能
tar 归档命令,和gzip用于实现Linux系统文件的压缩和解压

 

正则表明式 POSIX标军长正则表明式分为两类 1.中坚的正则表达式 2.扩展的正则表达式 一大半Linux应用和工具仅辅助大旨的...

4 dennis start beginner jul

tar -zxvf filename.tar.gz -C /usr/local/
-x 举办拆包
-z 使用gzip 压缩或许解压缩
-v view 直播解压进程
-f file 指定 文件

实例:测试~运算符

awk ‘BEGIN{FS=”:”} $1~/root/’ input awk 条件语句
与C类似,有if,if/else,if/else if/else
awk ‘BEGIM{FS=”:”}{if(1 /root/)print0}’ passwd

root@devopscube:~# tar -cf test.tar test.txt

zip -r zdata.zip note.txt soft/
unzip -d newzip/ zdata.zip

sed

sed,stream editor,流编辑器,将一密密麻麻编写制定命令效能于一群众文化艺术件文件
适用处合:

编纂相对人机联作式编辑器来讲太大的公文 编辑命令太复杂,在人机联作式文本编辑器中难以输入的意况对文本扫描二次,不过急需实施八个编辑函数的情形

两种调用方式

sed [选项] ‘sed命令’ 输入文件 sed [选项] -f sed脚本 输入文件 ./sed脚本文件 输入文件


sed 'y /ei/ie' mysed.txt y正是固守字符顺序,达成上下的替换 y/source /dist 而 s的语法是
s/regexp/replacement

实例

awk ‘BEGIN{FS=”:”;OFS=”:”} gsub(/root/,”gridsphere”,$1)’ input awk ‘BEGIN{FS=”:”;OFS=”:”} gsub(/root/,”gridsphere”){print $0}’ input awk ‘BEGIN{print index(“gridsphere”,”ph”)}’ awk ‘BEGIN{print length(“gridsphere”)}’ awk ‘BEGIN{print match(“hello”,/h.*/)}’

root@devopscube:~# find / -name passwd

dd if=/dev/sda2 of=/root/sda.img
dd if=/dev/mem of=/root/mem.img count=1 bs=1440k
dd if=/dev/zero if=/dev/null if=/dev/urandom

向awk脚本传递参数

awk脚本内的变量可以在指令行中举办赋值,落成awk脚本传递参数,变量赋值放在脚本之后、输入文件在此以前,如
awk脚本 parameter=value 输入文件
awk传递的参数能够是自定义的,也能够是系统变量

grep "dennis" test1.txt test2.txt test3.txt

-f 小写字母转大写
-c 检查文件是或不是排序 ,乱序则输出 第一行
-C 检查文件是还是不是排序,乱序则不出口
-M 按月度排序
-b 忽略空白
sort -n -t ; -k 2 -k 3 force.txt ,五个排序 列,有前后相继,都以升序
sort -n -t ' ' -k 3r -k 2 faco.txt ,多少个 排序 , 3降序,然后相仿的按 2 升序

AWK编程

4

cat cat -n [显示行号]
touch
vi esc i / :wq dd u
vim
pwd
df -h
cd .. cd /usr cd ./ cd ~
tar -xzvf filename.tar.gz -C /usr/directory
useradd username
groupadd
chmod 777 filename
chmod u-x g+x o-r
chown hadoop filename
uname -a

paste

用来将文件文件或专门的工作输出中的内容粘贴到新的文件,它能够以往自不一样文件的多少粘贴到联合,变成新的文本。若是三个文本的行数差别,少的不得了为空

paste [选项] 文件1 文件2…

选项 意义
-d 默认域分隔符是空格或Tab键,设置新的域分隔符
-s 将每个文件粘贴成一行
- 从标准输入中读取数据

/etc/pam.d/passwd

grep -L "fires" *.txt 不存在

AWK情势匹配

awk由格局和动作结合。情势是一组用于测量试验输入行是否须要进行语句,动作则是饱含语句,函数和表达式的实行进度。即情势决定动作哪天触发事件,动作实践对输入行管理
如:awk ‘/^$/{print “this is a blank line.”}’ input

uniq

awk 'NR==FNR &&FNR==1 {print FILENAME, $0} NR>FNR &&FNR==8{print FILENAME ,$0}' INT.txt in.txt

通配符

bash Shell自个儿不扶植正则表明式,使用正则表明式的是shell命令和工具,如grep,AWK,sed等。但是bash Shell能够使用正则表明式中的一些元字符达成通配。

符号 意义 示例 解释
* 任意字符 Phi*ip.rtf 以Phi开头,以ip.rtf结尾的文件
? 一个任意字符 ls -l 0?.pem 列出0开头且文件为两个字符的pem文件
[] 表示范围 ls -l [a-h].awk 列出以a-h开头的awk文件
{} 一组表达式的组合 ls -l {[a-h]*.awk,0?.pem} 匹配[a-h]*.awk或0?.pem的文件
^ 取反 ls -l [a-h]*.[^awk]* 以a-h开头,且不是awk类型的文件

dennis

expr 总计 注意要有空格
expr match "str" "regex"
expr substr "str" index count
expr index "str" "substr"
expr length "str"

实例

1.总括空白行数
awk ‘/^$/{x+=1}END{print x}’ input
2.总结平均成绩
awk ‘BEGIN{FS=”,”}{total=4+5+6+7;avg=total/4;print $1,avg}’ input

cut -c1-2 test.txt

awk 'NR%3!=0 {T={T " "$0卡塔尔国;next} {print T,$0; T=" "}' in.txt 其实是一个if do else done
把 T 作为一个变量 ,中间存在赋值 操作

sed命令

经常说来由定点文本行和sed编辑命令两局地组成,sed编辑命令对定点文本行进行各个处理

man

du -sh summarize human
du -ch total human
du -ah .
du -sh *|sort -nr
du -h ab.txt

do not ignore entries starting with .

history -c -w

root@devopscube:~# cut -c1-2 test.txt

file -f filename 查看文件内容
file -i filename 查看全码
file -b filename 隐蔽文件名
file -F “=》” filename
file -L filename 查看软链接

58 Mathew Head CEO nov

sort -u seq.txt -u 消灭重复

本文由美高梅赌堵59599发布于美高梅-服务器,转载请注明出处:第一个你需要知道的Linux命令就是man命令,付费投稿计划

关键词: