shell脚本参考手册

本文为在学习《shell脚本入门与指南》一书的记录之用,里面记录了一些shell脚本,以备日后参考。

shell脚本基本元素:

1.shell的最基本工作就是执行命令,每键入一到命令,shell就会执行。

2.格式很简单,以空白(space或者tab)隔开命令行的各个部分。

3.命令名称放在第一项,通常后面跟着选项,任何额外的参数放在最后。(命令名称 选项 参数)

4.选项的开头是一个(-)符合(括号不是),后面接着是一个字母,选项可有可无,有可能需要加上参数。

5.不需要参数的选项可以合并,比如ls -lt whizprog.c比ls -l -t whizprog.c更方便。

6.长选项的时候越来越普遍,长选项开始是一个(--)符号(括号不是)。

7.分号(;)可以用来分隔同一行里的多条命令。shell会一次执行这些命令。

8.如果你使用&符号而不是分号,则shell将在后台执行其前面的命令。

9.shell识别三种基本命令:内建命令,shell函数以及外部命令。

10.shell会沿着查找路径$PATH;来查看命令,这是一个以冒号(:)分隔的目录列表。

11.shell脚本中以#开头的为注释。

12.在shell脚本中定义参数的时候使用$1,当参数超过9的时候,数字应该是括号({10})括起来,${10},这样在使用shell脚本的时候就可以传递参数进来了。

-------------------------------------------------------------------------------------------------

1.who   告诉你当前系统有谁在登录
eg:$ who
-------gavin-guo pts/1  2014-12-31 09:31


2.wc -l/-w/-c  wc字数计算程序,可以算出行数,字数,字符数


3.|(管道)符号可以在两个程序之间建立管道
eg:who | wc -l  who的输出,成了wc的输入,结果是列出已登录用户的个数

who | wc -w  当前登录用户的信息的字数
who | wc -c  当前登录用户的信息的字符数


4.#!  当一个文件是以#!开头时,内核会扫描该行的其余部分,看是否存在可用来执行程序的计时器的完整路径。
eg:一般shell脚本都是以#!/bin/sh或者#!/bin/bash开头的。


5.cat > filename  复制终端的输入到filename中,如果不存在filename则新建,Ctrl-D表示end-of-file。


6.cat filename  把filename中的信息打印到终端。


7.chmod +x filename  改变文件的权限,有的是时候可能需要在前面加上sudo请求root权限。
eg:sudo chmod 777 filename   之后再使用ls,可以看到filename文件成绿色状态。


8.chmod -R +x filename  如果是个文件夹的话,可以使用-R来循环改变包含的每个文件的权限。


9.ls  列出当前文件夹目录中的所有文件。


10.cp sourcefilepath targetfilepath 复制文件,源一般应该是文件,目标应该是文件夹。


11.mv sourcefilepath targetfilepath 移动文件


12.rm [-r] [-rf] sourcefilepath    删除文件。-r表示在删除文件夹的时候循环删除其中所有文件,-rf表示强制删除。


13.cd targetfilepath                改变当前路径


14.echo  [-n]  [param] 将参数打印到标准输出上并且以换行符结束,-n可选,选择则不输出最后的换行符,param中可以添加转移字符,但是不是所有的unix都支持。


15.printf  format_string [paramlist]  讲format_string打印到标准准输出换行符要自己使用\n,中间可以使用%s(字符串),%d(整型)占位符来接收paramlist参数列表中的参数,当参数多余占位符,则会循环打印,知道使用完所有的参数。

eg:printf ”name:%s,age:%d\n“ 小明 10 小吴

name:小明,age:10

name:小吴,age:0


16.<  改变标准输入cat < gavin,讲gavin文件中的内容打印到标准输出


17.> 改变标准输出cat > gavin,将获取的输入输出到gavin文件中


18.>> 附加到文本cat >> gavin,附件内容到gavin文件中


19.grep [options...] pattern-spec [files...]  匹配文本中含有指定字符的行,当指定多个文件的时候,输出会在匹配的行前面加上文件名和冒号。

options有下面的选项:

-E 使用扩展正则表达式进行匹配,grep -E可取代传统的egrep。

-F 使用固定字符串进行匹配,grep -F可取代传统的fgrep。

-e pat-list

-f pat-file  从pat-file文件读取模式作匹配。

-i 模式匹配的时候忽略字母大小写

-q 不显示匹配成功的行。

-s 不显示错误信息。

-v 显示不匹配模式的行。


20.cut -c list [file...]

cut -f list [-d delim] [file..]

剪下输入字符中指定的字段或者指定的范围。

-c list以字符为主,执行剪下的操作,list为字符编号(以逗号隔开1,3就获取下标为1和3的字符,下标从1开始)或者一段范围(用-隔开)。

eg:abcdefghijklmn      $cut -c 1,3-6,9   输出为acdefgj

-d delim  通过-f选项,以delim作为定界符,在unix系统中一般是(space,tab,:),默认的是tab。

-f  list   以字段为主,做剪下的操作,list为字段编号(注意不是字符编号)或一段范围的列表。

eg   ab:cd:ef:gh    $cut -f 1,3 -d :   输出为ab:ef


21.join 参考另外一篇博客:http://blog.csdn.net/jiguangcanhen/article/details/42296127



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值