- 浏览: 2181070 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (682)
- 软件思想 (7)
- Lucene(修真篇) (17)
- Lucene(仙界篇) (20)
- Lucene(神界篇) (11)
- Solr (48)
- Hadoop (77)
- Spark (38)
- Hbase (26)
- Hive (19)
- Pig (25)
- ELK (64)
- Zookeeper (12)
- JAVA (119)
- Linux (59)
- 多线程 (8)
- Nutch (5)
- JAVA EE (21)
- Oracle (7)
- Python (32)
- Xml (5)
- Gson (1)
- Cygwin (1)
- JavaScript (4)
- MySQL (9)
- Lucene/Solr(转) (5)
- 缓存 (2)
- Github/Git (1)
- 开源爬虫 (1)
- Hadoop运维 (7)
- shell命令 (9)
- 生活感悟 (42)
- shell编程 (23)
- Scala (11)
- MongoDB (3)
- docker (2)
- Nodejs (3)
- Neo4j (5)
- storm (3)
- opencv (1)
最新评论
-
qindongliang1922:
粟谷_sugu 写道不太理解“分词字段存储docvalue是没 ...
浅谈Lucene中的DocValues -
粟谷_sugu:
不太理解“分词字段存储docvalue是没有意义的”,这句话, ...
浅谈Lucene中的DocValues -
yin_bp:
高性能elasticsearch ORM开发库使用文档http ...
为什么说Elasticsearch搜索是近实时的? -
hackWang:
请问博主,有用solr做电商的搜索项目?
Solr中Group和Facet的用法 -
章司nana:
遇到的问题同楼上 为什么会返回null
Lucene4.3开发之第八步之渡劫初期(八)
上篇散仙说了如何在linux里面构建更好的交互式shell,本篇来看下linux里面的文本处理工具sed和gawk,在linux里面最常用的就是这两个命令。
sed编辑器是一个流编辑器,与vim交互式的编辑器不同,sed编辑器需要提前提供一组规则来编辑数据流。
sed的命令格式如下sed options script file
(1) -e script 在处理输入时,将script中指定的命令添加到运行的命令中
(2) -f file 在处理输入时,将file中指定的命令添加到运行的命令中
(3) -n 不要为每个命令生成输出,等待print命令来输出
在上例中,s命令,会用斜线间指定的第二个文本字符串来替换第一个文本字符串,下面看下如何对一个文件修改替换:
sed编辑器,并不会修改原来的文件,只会将修改后的数据发送到STDOUT,如果你查看原来的文件,会发现原来的数据还存在。
下面在来看下如何在sed里面使用多个sed命令:
注意is和are的空格,有时候,不生效,可以加个空格测试!
我们也可以将脚本,放在一个文件里,来使用:
下面介绍下gawk,sed有自身的限制,所以gawk可以很好弥补这个缺点,gawk是Unix中原始的awk程序的GNU版本,gawk让流编辑迈上了一个新的台阶,它提供了一种编程语言,而不只是编辑命令,在gawk中,你可以:
(1)定义变量保存数据
(2)使用算术和字符串操作符来处理数据
(3)使用结构化编程概念,比如if-then语句和循环,来数据处理,增加逻辑
(4)提取数据文件中的数据元素,并将他们按另一顺序重新放置,从而生成格式化报告
gawk的命令格式:
gawk options program file
1, -F fs 指定行中分隔数据字段分隔符
2,-f file 指定读取的文件名
3,-v var=value 定义gawk程序中的一个变量和默认值
4,-mf N 指定要处理数据文件中的最大字段数
5,-mr N 指定数据文件中最大数据行数
6, -W keyword 指定gawk的兼容模式或警告等级
gawk程序脚本用一对花括号,来定义,你必须将脚本命令放在两个括号里,由于命令行假设脚本是单个字符串,所以你必须将脚本放在单引号里面:
当写完这个脚本时,直接回车运行,你会失望,因为你没有指定任何文件,默认是从控制台读入数据的,只有你输入一行数据,按回车,它才会打印,退出可以使用Ctrl+D命令来退出!
gawk的数据字符变量,默认情况下:
$0代表整个文本行
$1代表文本行里面的第一个字段
$2代表文本行里面的第二个字段
$n代表文本行里面的第n个字段
当它在读取以行文本时,默认的分隔符,是任意的空白字符,也就是空格:
下面看下指定分隔符的例子:
下面看下如何使用多个命令:
下面看下,如何将gawk程序,存储在文件里,并从文件里执行:
也可以在程序里面指定多个命令,如果这样,只需要将每个命令放新的行即可:
在数据处理前,执行某个命令:
执行这个命令不需要等待,控制台输入
多个命令之间,用大括号分开即可!
上面简单的几个例子,gawk使用起来非常给力!
上面散仙简单介绍了sed 的命令,下面来看下sed更多的参数:
s/pattern/replacement/flags
最后的参数可以有如下:
数字代表替换第几处的地方
g代表全局替换所有的地方
p表示将内容打印出来
w file将替换结果写入一个文件
全局替换:
-n命令会禁止sed编辑输出,-p会替换标记输出修改的行
-w会将修改存入一个新文件:
如果遇到特殊的字符,则需要转义,使用/进行转义,这个在各种编程语言里都是这样。
在sed里面可以使用!符作为分隔,例如: /bin/bash!/bin/csh!
sed支持更灵活的字符操作:
可以使用行寻址:
例如: sed '2s/dog/cat/' data1 这个例子只会改变第二行的数据
sed '2,4s/dog/cat/' data1 这个代表一个范围
如果不知道到底多少行可以使用
sed '2,$s/dog/cat/' data1 代表以2开头,所有的行
下面看下sed 的删除命令:
sed 'd3' file 代表删除某个文件的第3行,如果什么也不加,则会删除所有
也可以指定范围删除sed '2,3d' file
或者某个范围到结尾删除 sed '3,$d' file
此外也可以在查找中删除:
sed '/number 1/d' file 代表删除number 1所在的行
下面看下插入和附加文本:
插入insert
追加append
插入
追加命令:
插入同样可以指定行数前面 :
sed '3i\some text' 会插入在第三行前面
sed '3a\some text' 会拼接在第三行后面
怎么才能直接追加到最后一行:
sed '$a\ some text '
下面看下修改行:
sed '3c\这是修改的行'
也可以在查询中修改
sed '/number 3/c\ some text '
也可以在地址区间修改 sed '2,3c\ some text '
除以之外,还有一个转换命令y:
另外,在sed中,p命令可以打印文本行
=号可以打印行号
l命令用来列行
-n命令可以用来禁止其他的行,只显示匹配上的行
sed -n '/number/p' file
sed -n '2,3p' file
查找含数字3的行,然后执行两条命令,打印当前行,然后替换在打印
l命令会列出行
sed -n '1,3w test' file 代表将文件file的1-3行的数据写入test文件里面,=n参数代表在写入过程中,不会将输出流在控制台显示
另外sed '3r data12' data7 代码从data7里面读入前行文件插入到data12里面
同样在查询时,也使用 sed '/number 2/r data12 ' data7
在文本末尾添加数据:
sed '$r data12' data7
sed编辑器是一个流编辑器,与vim交互式的编辑器不同,sed编辑器需要提前提供一组规则来编辑数据流。
sed的命令格式如下sed options script file
(1) -e script 在处理输入时,将script中指定的命令添加到运行的命令中
(2) -f file 在处理输入时,将file中指定的命令添加到运行的命令中
(3) -n 不要为每个命令生成输出,等待print命令来输出
[search@h1 819]$ echo "this is a test" | sed 's/test/big test/' this is a big test [search@h1 819]$
在上例中,s命令,会用斜线间指定的第二个文本字符串来替换第一个文本字符串,下面看下如何对一个文件修改替换:
[search@h1 819]$ cat abc.txt this is cat this is a cat this is a big cat this is cat [search@h1 819]$ sed 's/cat/dog/' abc.txt this is dog this is a dog this is a big dog this is dog [search@h1 819]$
sed编辑器,并不会修改原来的文件,只会将修改后的数据发送到STDOUT,如果你查看原来的文件,会发现原来的数据还存在。
下面在来看下如何在sed里面使用多个sed命令:
[search@h1 819]$ cat abc.txt this is cat this is a cat this is a big cat this is cat [search@h1 819]$ sed -e 's/ is/ are/; s/cat/dog/' abc.txt this are dog this are a dog this are a big dog this are dog [search@h1 819]$
注意is和are的空格,有时候,不生效,可以加个空格测试!
我们也可以将脚本,放在一个文件里,来使用:
[search@h1 819]$ cat abc.txt this is cat this is a cat this is a big cat this is cat [search@h1 819]$ cat script s/cat/dog/ s/ is/ are/ [search@h1 819]$ sed -f script abc.txt this are dog this are a dog this are a big dog this are dog [search@h1 819]$
下面介绍下gawk,sed有自身的限制,所以gawk可以很好弥补这个缺点,gawk是Unix中原始的awk程序的GNU版本,gawk让流编辑迈上了一个新的台阶,它提供了一种编程语言,而不只是编辑命令,在gawk中,你可以:
(1)定义变量保存数据
(2)使用算术和字符串操作符来处理数据
(3)使用结构化编程概念,比如if-then语句和循环,来数据处理,增加逻辑
(4)提取数据文件中的数据元素,并将他们按另一顺序重新放置,从而生成格式化报告
gawk的命令格式:
gawk options program file
1, -F fs 指定行中分隔数据字段分隔符
2,-f file 指定读取的文件名
3,-v var=value 定义gawk程序中的一个变量和默认值
4,-mf N 指定要处理数据文件中的最大字段数
5,-mr N 指定数据文件中最大数据行数
6, -W keyword 指定gawk的兼容模式或警告等级
gawk程序脚本用一对花括号,来定义,你必须将脚本命令放在两个括号里,由于命令行假设脚本是单个字符串,所以你必须将脚本放在单引号里面:
[search@h1 819]$ gawk '{ print "我是第一个gawk程序! "}' a 我是第一个gawk程序! a 我是第一个gawk程序! a 我是第一个gawk程序
当写完这个脚本时,直接回车运行,你会失望,因为你没有指定任何文件,默认是从控制台读入数据的,只有你输入一行数据,按回车,它才会打印,退出可以使用Ctrl+D命令来退出!
gawk的数据字符变量,默认情况下:
$0代表整个文本行
$1代表文本行里面的第一个字段
$2代表文本行里面的第二个字段
$n代表文本行里面的第n个字段
当它在读取以行文本时,默认的分隔符,是任意的空白字符,也就是空格:
[search@h1 819]$ cat abc.txt this is cat this is a cat this is a big cat this is cat [search@h1 819]$ gawk ' { print $1 }' abc.txt this this this this [search@h1 819]$
下面看下指定分隔符的例子:
[search@h1 819]$ gawk -F: ' { print $1} ' /etc/passwd root bin daemon adm lp sync shutdown halt mail uucp operator games gopher ftp nobody vcsa saslauth postfix sshd mysql search [search@h1 819]$
下面看下如何使用多个命令:
[search@h1 819]$ echo "my name is solr" | gawk '{ $4="hadoop"; print $0 }' my name is hadoop [search@h1 819]$
下面看下,如何将gawk程序,存储在文件里,并从文件里执行:
[search@h1 819]$ cat script2 { print $1 "'s 目录是 " $6 } [search@h1 819]$ gawk -F: -f script2 /etc/passwd root's 目录是 /root bin's 目录是 /bin daemon's 目录是 /sbin adm's 目录是 /var/adm lp's 目录是 /var/spool/lpd sync's 目录是 /sbin shutdown's 目录是 /sbin halt's 目录是 /sbin mail's 目录是 /var/spool/mail uucp's 目录是 /var/spool/uucp operator's 目录是 /root games's 目录是 /usr/games gopher's 目录是 /var/gopher ftp's 目录是 /var/ftp nobody's 目录是 / vcsa's 目录是 /dev saslauth's 目录是 /var/empty/saslauth postfix's 目录是 /var/spool/postfix sshd's 目录是 /var/empty/sshd mysql's 目录是 /var/lib/mysql search's 目录是 /home/search [search@h1 819]$
也可以在程序里面指定多个命令,如果这样,只需要将每个命令放新的行即可:
[search@h1 819]$ cat s3 { text = "的目录是 " print $1 text $6 } [search@h1 819]$ gawk -F: -f s3 /etc/passwd root的目录是 /root bin的目录是 /bin daemon的目录是 /sbin adm的目录是 /var/adm lp的目录是 /var/spool/lpd sync的目录是 /sbin shutdown的目录是 /sbin halt的目录是 /sbin mail的目录是 /var/spool/mail uucp的目录是 /var/spool/uucp operator的目录是 /root games的目录是 /usr/games gopher的目录是 /var/gopher ftp的目录是 /var/ftp nobody的目录是 / vcsa的目录是 /dev saslauth的目录是 /var/empty/saslauth postfix的目录是 /var/spool/postfix sshd的目录是 /var/empty/sshd mysql的目录是 /var/lib/mysql search的目录是 /home/search [search@h1 819]$
在数据处理前,执行某个命令:
[search@h1 819]$ gawk 'BEGIN { print "你好,hadoop" }' 你好,hadoop [search@h1 819]$
执行这个命令不需要等待,控制台输入
[search@h1 819]$ gawk 'BEGIN { print "开始读取了:" } {print $0 } END { print "打印结束了"} ' abc.txt 开始读取了: this is cat this is a cat this is a big cat this is cat 打印结束了 [search@h1 819]$
多个命令之间,用大括号分开即可!
[search@h1 819]$ cat s BEGIN { print "我们要加个列头" print "用户ID shell " print "------- ------" FS=":" } { print $1 " " $7 } END { print "结束了....." } [search@h1 819]$ gawk -f s /etc/passwd 我们要加个列头 用户ID shell ------- ------ root /bin/bash bin /sbin/nologin daemon /sbin/nologin adm /sbin/nologin lp /sbin/nologin sync /bin/sync shutdown /sbin/shutdown halt /sbin/halt mail /sbin/nologin uucp /sbin/nologin operator /sbin/nologin games /sbin/nologin gopher /sbin/nologin ftp /sbin/nologin nobody /sbin/nologin vcsa /sbin/nologin saslauth /sbin/nologin postfix /sbin/nologin sshd /sbin/nologin mysql /bin/bash search /bin/bash 结束了.....
上面简单的几个例子,gawk使用起来非常给力!
上面散仙简单介绍了sed 的命令,下面来看下sed更多的参数:
s/pattern/replacement/flags
最后的参数可以有如下:
数字代表替换第几处的地方
g代表全局替换所有的地方
p表示将内容打印出来
w file将替换结果写入一个文件
[search@h1 819]$ cat t.txt this name is name this name is hadoop [search@h1 819]$ sed 's/name/hadoop/2' t.txt this name is hadoop this name is hadoop [search@h1 819]$ sed 's/name/solr/2' t.txt this name is solr this name is hadoop [search@h1 819]$
全局替换:
[search@h1 819]$ cat t.txt this name is name this name is hadoop [search@h1 819]$ sed 's/name/solr/g' t.txt this solr is solr this solr is hadoop [search@h1 819]$
[search@h1 819]$ cat t.txt this name is name this name is hadoop [search@h1 819]$ sed 's/name/solr/p' t.txt this solr is name this solr is name this solr is hadoop this solr is hadoop [search@h1 819]$ sed -n 's/name/solr/p' t.txt this solr is name this solr is hadoo
-n命令会禁止sed编辑输出,-p会替换标记输出修改的行
-w会将修改存入一个新文件:
[search@h1 819]$ sed 's/name/solr/w tt' t.txt this solr is name this solr is hadoop [search@h1 819]$ cat tt this solr is name this solr is hadoop [search@h1 819]$
如果遇到特殊的字符,则需要转义,使用/进行转义,这个在各种编程语言里都是这样。
在sed里面可以使用!符作为分隔,例如: /bin/bash!/bin/csh!
sed支持更灵活的字符操作:
可以使用行寻址:
例如: sed '2s/dog/cat/' data1 这个例子只会改变第二行的数据
sed '2,4s/dog/cat/' data1 这个代表一个范围
如果不知道到底多少行可以使用
sed '2,$s/dog/cat/' data1 代表以2开头,所有的行
下面看下sed 的删除命令:
sed 'd3' file 代表删除某个文件的第3行,如果什么也不加,则会删除所有
也可以指定范围删除sed '2,3d' file
或者某个范围到结尾删除 sed '3,$d' file
此外也可以在查找中删除:
sed '/number 1/d' file 代表删除number 1所在的行
下面看下插入和附加文本:
插入insert
追加append
插入
[search@h1 819]$ echo "1" | sed 'i\"one"' "one" 1 [search@h1 819]$
追加命令:
[search@h1 819]$ echo "line2" | sed 'a\ line3' line2 line3 [search@h1 819]$
插入同样可以指定行数前面 :
sed '3i\some text' 会插入在第三行前面
sed '3a\some text' 会拼接在第三行后面
怎么才能直接追加到最后一行:
sed '$a\ some text '
下面看下修改行:
sed '3c\这是修改的行'
sed '3i\some text' 会插入在第三行前面
也可以在查询中修改
sed '/number 3/c\ some text '
也可以在地址区间修改 sed '2,3c\ some text '
除以之外,还有一个转换命令y:
[search@h1 819]$ echo "this 1 a test of 1 try" | sed 'y/123/456/' this 4 a test of 4 try [search@h1 819]$
另外,在sed中,p命令可以打印文本行
=号可以打印行号
l命令用来列行
[search@h1 819]$ echo "test a test" | sed 'p' test a test test a test [search@h1 819]$ echo "test a test" | sed '=' 1 test a test [search@h1 819]$
-n命令可以用来禁止其他的行,只显示匹配上的行
sed -n '/number/p' file
sed -n '2,3p' file
查找含数字3的行,然后执行两条命令,打印当前行,然后替换在打印
sed -n '/3{p s/ is/ test/p }' bb
l命令会列出行
[search@h1 819]$ sed -n 'l' bb this is 3 txt$ this is 4 text$ this is a text$ this name hadoop$ [search@h1 819]$
sed -n '1,3w test' file 代表将文件file的1-3行的数据写入test文件里面,=n参数代表在写入过程中,不会将输出流在控制台显示
另外sed '3r data12' data7 代码从data7里面读入前行文件插入到data12里面
同样在查询时,也使用 sed '/number 2/r data12 ' data7
在文本末尾添加数据:
sed '$r data12' data7
发表评论
-
备忘几个有用的shell脚本
2015-04-07 21:59 1506(1)在shell下,操作hadoop目录,批量命名或删除, ... -
shell脚本杂记(五)
2014-09-22 19:48 20241,找出多个文件所占用的磁盘空间 du f1 f2 [roo ... -
shell脚本杂记(四)
2014-09-19 20:03 17131,wget是一个用于文件 ... -
shell自动化部署批量建立用户和批量SSH配置
2014-09-18 18:29 3626在linux下面,shell脚本熟练使用,有时候可以帮助我们解 ... -
shell自动化部署神器expect
2014-09-17 21:08 4694Shell可以实现简单的控制流功能,如:循环、判断等。但是对于 ... -
shell脚本杂记(三)
2014-09-16 19:58 16161,我们先来熟悉下正则表达式一些字符含义的基础 ^行起始标记 ... -
shell脚本杂记(二)
2014-09-15 21:25 20251,求两个文件的交集comm a.txt b.txt -1 - ... -
shell脚本杂记(一)
2014-09-12 21:50 20381,登陆系统时,$代表 ... -
跟散仙学shell编程(十五)
2014-08-27 21:24 1844上篇文章,散仙简单介绍了,如何在Linux下以shell脚本的 ... -
跟散仙学shell编程(十四)
2014-08-26 20:59 1933上篇散仙简单介绍了linu ... -
跟散仙学shell编程(十三)
2014-08-25 20:02 1320上篇散仙主要了讲述了gawk进阶的一些用法,本篇我们来了解下载 ... -
跟散仙学shell编程(十二)
2014-08-22 21:27 1581上篇文章散仙写了关于sed进阶,本篇我们来看下在linux中另 ... -
跟散仙学shell编程(十一)
2014-08-21 21:45 1659上篇散仙写了关于shell里面正则的基础知识,本篇我们来特意学 ... -
跟散仙学shell编程(十)
2014-08-20 21:22 1322上篇文章,散仙简单介绍了在linux中,使用sed和gawk编 ... -
跟散仙学shell编程(八)
2014-08-18 21:50 1633上篇散仙说了linux里面函数的使用,本篇我们来看下如何在sh ... -
跟散仙学shell编程(七)
2014-08-15 21:46 1807上篇散仙在文章里描述了如何处理linux信号和脚本控制,本节我 ... -
跟散仙学shell编程(六)
2014-08-14 21:53 2099上篇介绍了linux里面的处理数据的方式,本篇散仙来说下,如何 ... -
跟散仙学shell编程(五)
2014-08-13 21:41 1669上一篇写的是处理用户输入,本篇散仙要写的是linux里面的标准 ... -
跟散仙学shell编程(四)
2014-08-12 21:46 1532上篇介绍了for循环命令 ... -
跟散仙学shell编程(三)
2014-08-11 21:38 1745散仙在上一篇文章里写了关于如何使用if-else以及case等 ...
相关推荐
跟老男孩学Linux运维:Shell编程实战 PDF跟老男孩学Linux运维:Shell编程实战 PDF
《跟老男孩学Linux运维:Shell编程实战》分为五大部分:部分为第1章~第4章,此部分着重介绍新手如何学好Shell编程。涉及的内容包括Shell编程的入门介绍、基础知识、运行原理、编程语法、编程习惯、变量知识以及变量...
资深运维架构实战专家及教育培训界*专家十多年的运维实战经验总结,全面系统地讲解运维工作中Shell编程所需的知识点和Shell编程的各种企业级案例。
《LINUX与UNIX Shell编程指南》是一本专为初学者设计的shell编程教程,它深入浅出地介绍了在Linux和UNIX系统中如何使用Shell进行高效自动化任务处理。Shell编程是Linux和UNIX系统中的核心技术,它允许用户通过命令行...
Windows Shell 编程.pdf 看过一些对windows 外壳的扩展程序,在使用上一般都是直接利用windows的外壳API做一些工作,因为外壳操作需要一些比较专业的知识,因此,大部分编程人员特别是使用集成编程环境的程序人员对...
Shell编程是Linux/Unix系统中不可或缺的一部分,它是一种命令行解释器,允许用户与操作系统进行交互,执行系统命令,以及编写脚本自动化任务。在本文中,我们将深入探讨Shell编程的基础知识,包括基本命令、变量、...
Shell 编程中文手册 本手册涵盖了 Shell 编程的基础知识,包括 Shell 概述、Shell 解析器、Shell 脚本入门、Shell 中的变量等。 Shell 概述 Shell 是一种命令行接口,允许用户与操作系统进行交互。学习 Shell ...
《shell编程入门教程》、《shell脚本专家指南》以及《UNIX.shell编程24小时教程》会提供详尽的实例和练习,帮助你巩固所学并深化理解。 总之,Shell编程是Linux/Unix环境中不可或缺的技能,它能够提高工作效率,...
shell编程题目练习,练习基本的shell编程,学习脚本语言,提高效率
跟老男孩学Linux运维:Shell编程实战 完整版 pdf
"Linux与UNIX Shell编程指南" Linux与UNIX Shell编程指南是计算机科学领域中一本经典的指南手册,旨在帮助读者快速掌握Linux与UNIX操作系统下的shell编程技术。下面是从该书中生成的相关知识点: 1. Shell概述 ...
13Linux下Shell编程之While case演练 14Linux下Shell编程之While case演练 15Shell编程之函数及脚本案例讲解 16Shell编程之函数及脚本案例讲解 17Linux下Shell编程FIND、SED命令实战 18Linux下Shell编程FIND、SED...
这是一套完整的Unix培训教材,包括Unix常用命令及SHELL编程基础与高级技巧,PDF格式,共30个文件。另有2个Word文档。包内文件清单如下: 01_Shell-文件安全与权限.PDF 02_Shell-使用find和xargs.PDF 03_Shell-...
《Windows Shell 编程指南与实例》是一本深入探讨Windows操作系统壳层编程技术的专业书籍。在Windows系统中,Shell指的是用户界面,它为用户提供与操作系统交互的环境,包括桌面、开始菜单、快捷方式等。Shell编程则...
6本pdf及chm的shell 编程的书 6本pdf及chm的shell 编程的书 6本pdf及chm的shell 编程的书 6本pdf及chm的shell 编程的书 6本pdf及chm的shell 编程的书
shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人...
**Shell编程介绍** Shell编程是Linux/Unix操作系统中的一种脚本语言,用于自动化日常任务,交互式地控制操作系统,以及实现系统级别的程序间交互。它提供了命令行接口(CLI)来执行各种系统命令,使用户能够高效地...
Shell学习的好帮手Shell学习的好帮手Shell学习的好帮手Shell学习的好帮手Shell学习的好帮手