动力小刚自编shell教程
文章平均质量分 62
动力小刚
Senior OraceDBA/RHCA专注于oracle管理技术微博http://weibo.com/rhca5学习讨论群:80793440
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
UNIT37 awk Integrated case
filename为以下文件,第二列用“-”隔开,以避免与FS冲突ID Name Age City Country Tel Salary Children1001 Steven 25 NY U.S.A +01-02-323222 $4900 21002 Huang-Yu 30 BJ CHN原创 2013-07-06 12:19:18 · 380 阅读 · 0 评论 -
UNIT17 Loop structure
loop 就是 script 中的一段在一定条件下反复执行的代码。在 shell script 设计中,若能善用 loop ,将能大幅度提高 script 在复杂条件下的处理能力。一.for loopfor是从一个清单列表中读进变量值,并"依次"的循环执行 do 到 done 之间的命令行。1.for var in one two threedoecho ---------原创 2013-07-05 11:57:56 · 347 阅读 · 0 评论 -
UNIT11 Built-in Variables
env|grep SHELL,set|grep SHELL,echo ${SHELL}一.SHELL标准变量LOGNAMETERMHOSTTYPE——i686 UIDSHELLMACHTYPE——i686-redhat-linux-gnuEUIDBASHOSTYP原创 2013-07-05 11:34:18 · 315 阅读 · 0 评论 -
UNIT26 VIM TIPS
一.更改文件名1.复制文件:edit copy.c:saveas move.c2.改变当前正在编辑的文件名,但不想保存该文件::edit copy.c:file move.c二.查找文件1.文件浏览器:edit .显示出来的窗口中将是当前目录下的内容。 在当前窗口中打开文件o 打开一个水平分隔的窗口显示文件原创 2013-07-05 12:26:31 · 384 阅读 · 0 评论 -
UNIT20 Array
一.创建和赋值declare -a 数组名如果不给出数组名,则显示当前定义的所有数组和数组的值。例:$declare -a names $names[0]=“David” $names[1]=“Richard” $names=(“David” ”Richard”)二.引用和销毁A=(a b c def) ,则是将 $A 定义为组数1.bas原创 2013-07-05 12:08:53 · 296 阅读 · 0 评论 -
UNIT28 SEd Basic Usage
Stream Editor主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。以下介绍的是Gnu版本的Sed。定址选定希望编辑的行的范围$ sed -n p file$ sed -n '2,$p' file$ sed ‘/music/=’ 打印行号$ sed -n '3,+1p' file原创 2013-07-05 12:38:15 · 350 阅读 · 0 评论 -
UNIT27 VIM Customize
1.vimrc文件也许你早已厌倦于手工键入那些常用的命令。要使你喜好的选项和映射一次性准备就绪,你可以把它们统统写进一个叫vimrc的文件。Vim在启动时会读取该文件。:version"命令也会列出Vim是在哪些目录寻找该文件的。对Unix和Macintosh系统而言通常是文件--这也是推荐的文件~/.vimrc对MS-DOS和M原创 2013-07-05 12:30:11 · 477 阅读 · 0 评论 -
UNIT24 VIM Multi-window operation
在不同窗口中分别编辑不同的文件或同一文件的不同部分。窗口操作极大地方便了多文件操作,提高了文本处理的效率。一.打开.创建.关闭多个窗口1.窗口操作的快捷方式Ctrl+W c关闭分屏Ctrl+W q关闭分屏Ctrl+W v左右分割Ctrl+W s上下分割ctrl+w+n水平拆分编辑一空文件ctrl原创 2013-07-05 12:20:35 · 584 阅读 · 0 评论 -
UNIT18 Select condition structure
一.if语句: if then else 提供条件测试1.格式格式1 if [ 条件 ] then 命令 fi格式2 if [ 条件 ] ; then命令 fi格式3 if [ 条件 ] then 命令1 else原创 2013-07-05 12:01:35 · 307 阅读 · 0 评论 -
UNIT15 Process Management
一.ps1.应用举例a显示所有用户的所有进程l长格式输出x显示无控制终端的进程u按用户名和启动时间显示进程r显示运行中的进程j用任务格式来显示进程ww避免详细参数被截断f用树形格式来显示进程# ps auxf |grep httpd用f原创 2013-07-05 11:50:55 · 479 阅读 · 0 评论 -
UNIT14 Redirection & PiPes
一.重定向针对终端过滤器.不对交互工具和编辑器Linux命令:筛选器ls等;编辑器vim等;交互工具mc等 流描述符缩写转向默认标准输入0Stdin与KB相连标准输出1Stdout> .1>;>>.1原创 2013-07-05 11:45:45 · 335 阅读 · 0 评论 -
UNIT19 Shell Functions
UNIT19 Shell Functions1.函数定义functionName(){命令序列;}或function functionName { COMMANDS; }2.函数调用functionNamefunctionName 位置参数3.函数返回return 用函数中执行的上一个命令的退出码返回;ret原创 2013-07-05 12:07:58 · 363 阅读 · 0 评论 -
UNIT12 Custom Variable
ApacheVersion=”httpd-2.2.p1”&&tar –xvzf $ApacheVersion.tar.gz echo Hi,${myname}mm…变量有其它英.数.底线,用{}隔开$和变量名dir2=lib&&echo /usr/$dir2/ntp变量名后接的不是英.数.底线,不必用{} 一.原创 2013-07-05 11:37:16 · 348 阅读 · 0 评论 -
UNIT35 awk Action
一.格式化输出1.print 为无格式输出语句:print expr1,expr2,...,exprNprint 语句显示每个表达式的串值,默认的ORS 和OFS 分别为\n 和Blank。# ps -e | awk ‘/ tty5 / {print “tty05: ” $4}’看终端5的用户现在干什么tty05: find原创 2013-07-06 12:13:15 · 383 阅读 · 0 评论 -
UNIT32 awk Operator
awk作为文本处理优秀工具之一,它有拥有丰富的运算符。awk运算符.表达式及功能与c语言基本相同。下面我们一起归纳总结一下所有运算符。一.字段引用$ 字段引用 空格 字符串连接符 # gawk -F"[ :]" '{ print $1 }' list.txt 同时使用两个分隔符二.字段引用x原创 2013-07-06 11:59:09 · 395 阅读 · 0 评论 -
UNIT30 SEd Command Summary
一.SEd文本转换和替代(-n和p一起用只打印变动行)$ sed -n ‘2,4s/B/567/p’ $ sed -n ‘/AA/s/237/567/’ $ sed -n ‘/AA/,/DD/s/B/567/p’ $ sed -n ‘s/La//p $ sed 's/:.*//' /etc/passwd 删除第一个冒号之后的所原创 2013-07-06 11:45:20 · 391 阅读 · 0 评论 -
UNIT33 awk Variables
一.AWK的部分内置变量(自定义变量的方法类似Shell)$0当前记录(作为单个变量)$1~$NF当前记录的第n个字段,字段间由FS分隔NF当前记录中的字段个数NR已读出的记录数,就是行号,从1开始FS输入字段分隔符,默认是空格RS输入的记录分隔符,默认为换行符OFS输出字段分隔符,原创 2013-07-06 12:00:19 · 364 阅读 · 0 评论 -
UNIT31 awk Program
Awk是文本工具中最难掌握的,它借鉴了C 语言.python 和bash的一些精华部分。awk自解释型编程语言,它支持用户自定义函数和动态正则表达式等先进功能。awk设计简单,速度表现很好,可结合Shell(w|awk…),它在命令行中使用,但多是作为脚本来使用。很多基于shell的日志分析工具可用它完成。awk是那种一旦学会了就会成为您战略编码库的主要部分的语言。awk 能够用很短的程序原创 2013-07-06 11:47:56 · 463 阅读 · 0 评论 -
UNIT25 VIM Visual mode Block operations
vim列块操作就是在可是模式下操作选择的行中的某一些列的操作,比如常见的我们需要在很多行都需要做一些重复的工作,比如在行头和行尾加相应的标签,或者需要删除行中间某一些特殊的列,那么块操作就是很好的帮手了。#vim→^v→I→#→ESC#vim→set nu→^v→(100G:当前行到第100行)→I→#→ESC一.进入和退出可视模式 vi原创 2013-07-05 12:21:12 · 454 阅读 · 0 评论 -
UNIT23 VIM Substitute
一.:[address]s/from/to/[flags]1.基本范例:s/^\/these/ 用these替换当前行中第1个the:s/part1 /part2/g 用part2替换当前行中所有的part1:%s/part1/part2 用part2替换所有行中每行第1个part1:%s/原创 2013-07-05 12:18:26 · 446 阅读 · 0 评论 -
UNIT22 VIM cursor moving
1.以Word为单位的光标移动w 往右移一个word 3w向右移动3个wordb 往左一个word"e"命令会将光标移动到下一个word的最后一个字符."ge"命令会将光标移动到前一个word的最后一个字符上。2.将光标移到行首或行尾"$"命令将光标原创 2013-07-05 12:16:02 · 501 阅读 · 0 评论 -
UNIT21 VIM Introduction
由于被广泛移植,无论是DOS,还是AIX,都能见到VI的身影。作为开源世界最重要的编辑器之一(另一个是 Emacs),VI以其强大的功能和无穷的魅力将使您终生受益。vim 是一个『程序开发工具』,它加入了很多额外的功能,例如支持正则表示法的搜寻架构.多档案编辑.区块复制等等。一.VI/vim的历史ed是Unix上最古老的编辑器,它最初是Unix之父Ken Thompso原创 2013-07-05 12:13:58 · 650 阅读 · 0 评论 -
UNIT16 Auto http&ftp&rsync
一.ftp命令自动传输1.手动FTPftp ftp.kernel.organonymouszcs@example.comcd pubget READMEquit2.半自动FTP#cat getreadme.ftp ftp ftp.kernel.organonymouszcs@example.comc原创 2013-07-05 11:54:00 · 378 阅读 · 0 评论 -
UNIT13 Here Document
一.变量替换及抑制Here Document也支持变量替换——在输入的内容中如果有变量,bash在转向前,会先替换变量值。to=’To:you@example.com.cn’em=’20090310.txt’Cat >$em //表示这个Here Document拥有和双引号一样的特性,即支持变量扩展。$ToHERE#vim e.sho原创 2013-07-05 11:40:50 · 346 阅读 · 0 评论 -
UNIT02 File Finder
find [-option] [action] 直接搜寻硬盘实时.递归.根据i节点信息查找文件时间花费很大!whereis与locate是利用数据库来搜寻数据而没有搜寻实际的硬盘文件,所以相当的快速,比较省时间!所以通常使用whereis或者locate来检查,如果真的找不到了,才以find来搜寻。一.与时间有关的参数(-atime,-ctime,-mtime)原创 2013-07-04 12:25:01 · 372 阅读 · 0 评论 -
UNIT05 Script Execute Principle
一、父Shell和子Shell1、login shell和父shell登陆主机后,在执行Script之前,我们所处的环境已经是在一个Bash Shell之中。这个Shell叫做login Shell是将来我们执行任何Script的上层环境,又叫做父shell。2、父shell和子shell执行某个Script时,父shell会根据script的第一行#!后指定的shell程序开启(原创 2013-07-04 11:13:53 · 99 阅读 · 0 评论 -
UNIT10 grep Family : grep.egrep.fgrep
一.grep家族1.grep使用基本正则元字符集。标准的grep 在默认情况下也支持以反斜杠开头的扩展正则元字符集。例如:\?,\+,\{,\|,\(,\);前面没有反斜杠的扩展元字符集对于标准的grep 无特别的含义。2.egrep 是grep的扩展,用的是正则表达式元字符集的扩展集。3.fgrep 就是fixed grep 或者fast grep,元字符只表示其自身的字面意义。原创 2013-07-04 13:09:34 · 470 阅读 · 0 评论 -
UNIT08 One hour Mastering RE
^ 和 $ 他们是分别用来匹配字符串的开始和结束,以下分别举例说明 "^The": 开头一定要有"The"字符串; "of despair$": 结尾一定要有"of despair" 的字符串; 那么,"^abc$": 就是要求以abc开头和以abc结尾的字符串,实际上是只有abc匹配 '*', '+',和 '?', 他们用来表示一个字符可以出现的次数或者顺序.原创 2013-07-04 12:59:19 · 354 阅读 · 0 评论 -
UNIT06 Shell Mata-Characters
\回车,续行符\跳脱符,将元字符还原成一般字符>,>>输出重定向输入重定向!调用历史记录;!逻辑运算中的not/路径分割符|两个命令之间的管道;分割执行多个命令原创 2013-07-04 12:49:45 · 364 阅读 · 0 评论 -
UNIT01 Shell Introduction
一、Linux支持的SHELL1、shell=命令解释器+脚本语言编程环境shell是系统维护的重要工具,便于自动批量处理大量任务。BNU BASH 1998年诞生, 兼容Bourne Shell(sh),2009年2月推出4.0,其官网为www.gnu.org/software/bash。2、显示支持的shell(cat /etc/shells)/bin/sh原创 2013-07-04 11:57:27 · 375 阅读 · 0 评论 -
UNIT08 RE with reference to Table
字符说明Basic RegExExtended RegExpython RegExPerl regEx转义 \\\\^匹配行首,例如'^dog'匹配以字符串dog开头的行(注意:awk 指令中,'^'则是匹配字符串的开始)原创 2013-07-04 11:18:05 · 96 阅读 · 0 评论 -
UNIT39 Shell level test
一.OVERVIEW 篇1. 有很多种 shell, 你熟悉几种? 各个 shell 的 home page 在那里? 2. 为什么说 zsh 是目前为止功能最为强大的 shell.3. 为什么说 pdksh 功能较弱? 4. ksh88 与 ksh93 有何区别? 5. 为什么 shell 编程最好用 ksh? 6. 你的系统都有哪些 shell? 版原创 2013-07-06 12:29:22 · 412 阅读 · 0 评论 -
UNIT38 awk常见应用
一.awk 查看ip连接数处理文本,是awk的强项了。 无论性能已经速度都是让人惊叹! $ awk 'BEGIN{ while("netstat -an"|getline){ if( $5 ~ /[1-255]/) { split($5,t1,":"); tarr[t1[1]]++;原创 2013-07-06 12:21:44 · 436 阅读 · 0 评论 -
UNIT36 awk Built-in function
内部函数1.内部算数函数(执行与 C 语言中名称相同的子例程相同的操作)atan2(x,y)y,x范围内的余切sin(x)正弦cos(x)余弦函数sqrt(x)平方根exp(x)求幂srand(x)x是rand()函数的种子原创 2013-07-06 12:16:28 · 388 阅读 · 0 评论 -
UNIT34 awk Patten
# awk '{print ($1 > 5 ? "ok "$1: "error"$1)}' test //$1大于5打印okO.‘模式’是一种表达式1./(RE)/:加圆括号以确保正确的值。2.比较表达式中两操作数都是数进行数值比较,否则进行串比较。3.awk字符类是一种特殊的方括号表达式,此概念来自于POSIX 标准,用于描述具有某种特定属性的字符集合。常用字符类有:原创 2013-07-06 12:05:33 · 395 阅读 · 0 评论 -
UNIT19 One hour Mastering RE
^ 和 $ 他们是分别用来匹配字符串的开始和结束,以下分别举例说明 "^The": 开头一定要有"The"字符串; "of despair$": 结尾一定要有"of despair" 的字符串; 那么,"^abc$": 就是要求以abc开头和以abc结尾的字符串,实际上是只有abc匹配 '*', '+',和 '?', 他们用来表示一个字符可以出现的次数或者顺序.原创 2013-07-04 11:17:09 · 91 阅读 · 0 评论 -
UNIT02 File Finder
UNIT02 File Finderfind [-option] [action] 直接搜寻硬盘实时、递归、根据i节点信息查找文件时间花费很大!whereis与locate是利用数据库来搜寻数据而没有搜寻实际的硬盘文件,所以相当的快速,比较省时间!所以通常使用whereis或者locate来检查,如果真的找不到了,才以find来搜寻。一、与时间有关的参数(-atime,-ct原创 2013-07-04 11:09:41 · 108 阅读 · 0 评论 -
UNIT04 grep Family : grep、egrep、fgrep
一、grep家族1、grep使用基本正则元字符集。标准的grep 在默认情况下也支持以反斜杠开头的扩展正则元字符集。例如:\?,\+,\{,\|,\(,\);前面没有反斜杠的扩展元字符集对于标准的grep 无特别的含义。2、egrep 是grep的扩展,用的是正则表达式元字符集的扩展集。3、fgrep 就是fixed grep 或者fast grep,元字符只表示其自身的字面意义。原创 2013-07-04 11:19:27 · 110 阅读 · 0 评论 -
UNIT03 Format Control Character
一、转义字符转义字符含义转义字符含义\aalert BEL \b退格键(Back Space)\fFormFeed换页仅影响打印机\nNewline, 回车换行\rreturn,回车回行首原创 2013-07-04 11:12:44 · 89 阅读 · 0 评论 -
UNIT05 Script Execute Principle
一.父Shell和子Shell1.login shell和父shell登陆主机后,在执行Script之前,我们所处的环境已经是在一个Bash Shell之中。这个Shell叫做login Shell是将来我们执行任何Script的上层环境,又叫做父shell。2.父shell和子shell执行某个Script时,父shell会根据script的第一行#!后指定的shell程序开启(原创 2013-07-04 12:43:14 · 421 阅读 · 0 评论
分享