shell脚本参考手册
2014-12-31 09:58
253 查看
本文为在学习《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 参考另外一篇博客:/article/9522030.html
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 参考另外一篇博客:/article/9522030.html
相关文章推荐
- Lua脚本语法说明(5.1 参考手册)
- TORQUE脚本的全局变量参考手册(List of script globals linked to engine code)
- Shell脚本编程总结及速查手册
- bash参考手册之五(shell变量)
- bash参考手册之三(基本的Shell特性)续四
- bash参考手册之五(shell变量)续一
- 面向对象脚本语言 Ruby 参考手册
- 10、MySQL 8.0参考手册 4.5.7 mysqlsh - MySQL Shell
- bash参考手册之三(基本的Shell特性)续六
- Shell脚本编程总结及速查手册
- bash参考手册之四(shell内建命令)续四
- bash参考手册之四(shell内建命令)续五
- bash参考手册之三(基本的Shell特性)续一
- shell 脚本参考
- bash参考手册之三(基本的Shell特性)续五
- bash参考手册之五(shell变量)续三
- bash参考手册之四(shell内建命令)续三
- [Linux系统]Shell 基本命令参考手册
- linux运维初级班shell脚本编程考试及参考答案20110523
- bash参考手册之三(基本的Shell特性)续二