1,什么是Shell
Shell 是kernel的一个外壳,是一个命令解析器,负责用户与内核的交互。
2,Shell脚本
Shell脚本类似于批处理,可以方便的执行大量命令。
3,编写shell脚本
(1),用编辑器打开一个文件,首行固定格式,加入:
#!/bin/bash。
#注释,第一行格式固定
一个好的程序文件,添加注释是很重要的,即使很长时间不用,当再次使用时,也能很容易的回想起此程序的功能。
(2),编写shell脚本。
这个就是最主要学习的地方,至于怎么学习,学习什么,只有之后用心了。建议从最简单的Linux命令开始学习。
4,运行shell
(1),赋予文件执行的权限。
chmod +x file1name
(2),执行shell文件
在终端下输入:
./ filename
Remark:以上3,4两步都是在终端下操作。当然如果编写能力很强第3步可以在其他编辑器中编写。
以下为一些常用命令和符号:
- 管道操作符 (|) ,将一个命令的输出作为另外一个命令的输入。
grep "hello" file.txt | wc -l
在file.txt中搜索包含有”hello”的行并计算其行数。
在这里grep命令的输出作为wc命令的输入。
- 重定向:将命令的结果输出到文件,而不是标准输出(屏幕)。
> 写入文件并覆盖旧文件
>> 加到文件的尾部,保留旧文件内容。
- 反短斜线(`)——键盘Esc键下面的按键对应的英文符号,使用反短斜线可以将一个命令的输出作为另外一个命令的一个命令行参数。
find . -mtime - -type f -print
用来查找过去24小时(-mtime –2则表示过去48小时)内修改过的文件。
如果您想将所有查找到的文件打一个包,则可以使用以下脚本:
#!/bin/sh
# The ticks are backticks (`) not normal quotes ('):
tar -zcvf lastmod.tar.gz `find . -mtime - -type f -print`
- 通常用" [ ] "来表示条件测试。注意这里的空格很重要。要确保方括号的空格。
[ -f "somefile" ]
判断是否是一个文件
[ -x "/bin/ls" ]
判断/bin/ls是否存在并有可执行权限
[ -n "$var" ]
判断$var变量是否有值
[ "$a" = "$b" ]
判断$a和$b是否相等
[ -r "$mailfolder" ]
判断$mailfolder是否可读
[ -d $TARGET_DIR ]
判断$TARGET_DIR是否是一个文件夹
特殊的变量$1,该变量包含了传递给该程序的第一个参数值。
$? :是上一条命令的返回码。
[ $? -eq ]
测试上一条命令的是否执行成功.
- 特殊的变量$*,该变量包含了所有输入的命令行参数值。
- 特殊的变量$#,表示命令参数个数。
- 转义字符——反斜杆(\)。在向程序传递任何参数之前,程序会扩展通配符和变量。这里所谓扩展的意思是程序会把通配符(比如*)替换成合适的文件名,把变量替换成变量值。为了防 止程序作这种替换,您可以使用引号。单引号更严格一些,它可以防止任何变量扩展;双引号可以防止通配符扩展但允许变量扩展;还有一种防止这种扩展的方法,那就是使用转义字符——反斜杆(\)。
shell脚本编写步骤及其常用命令和符号的更多相关文章
-
Shell脚本基础及基本常用命令
1.概述 脚本语言(shell.python):解释性语言,用解释器解释 运行效率低 | c.java:描述性语言,运行效率高 以.sh结尾会有高亮显示 执行: sh hello.sh 或者 chmo ...
-
shell脚本编写方法
shell脚本编写就如同一门语言,涉及到运行环境.基本语法.变量定义.函数.参数(系统参数).条件判定.执行流程控制 等等问题. 本文就以下几个方面进行描述: 运行环境: shell shebang ...
-
Shell awk文本处理,shell脚本编写
Shell awk文本处理,shell脚本编写 一:内容包含awk.变量.运算符.if多分支 <a>语法糖: awk [options] 'commands' files option - ...
-
7. Shell 脚本编写
一.Shell 脚本编写 1.提示用户输入一个字符串,如果是 hello,打出 yes,并每秒输出 "hello,world",否则就输出 no,实现如下: #!/bin/bash ...
-
Linux Shell脚本入门--wget 命令用法详解
Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...
-
基于数组的shell脚本编写
基于数组的shell脚本编写 2017年08月17日 22:56:36 momokuku123 阅读数:369 数据:变量,文件,数组 变量:存储单个元素的内存中的一块存储空间 数组:存储多个元素的内 ...
-
Linux Shell脚本入门--cut命令
Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [root@www ~]# cut -d'分隔字符' -f fields &l ...
-
shell脚本中判断上一个命令是否执行成功
shell脚本中判断上一个命令是否执行成功 shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败.结合if-else语句实现判断上一个命令是否执行成功. 示例 ...
-
shell脚本编写mind
首先我们要缩小这个问题的范围 如果在面试中被问到这样的问题,说说shell脚本编写思路 如:你是在公司主要负责zabbix监控的 对答如下:shell脚本这个说法挺广的,您看我这么跟您说吧,我在平时工 ...
随机推荐
-
在Mac上安装IntelliJ IDEA
这篇文章旨在介绍如何在Mac系统上安装IntelliJ IDEA,至于IntelliJ IDEA的介绍和使用方法,大家另行查阅,本篇的文章不再详细阐述. 简短解说,IntelliJ IDEA是可以用来 ...
-
Leetcode 232 Implement Queue using Stacks STL
本题用两个栈实现队列,用栈的基本操作去实现队列的所有基本操作push(),pop(),peek()以及empty() sa作为输入栈,sb作为输出栈,将sa输入元素的反转过来放到sb中 push与sa ...
-
141029 V7 异步通知测试,15分钟循环代码重构,同步更新payInfo测试,支付成功timer测试成功说明
支付成功之后的1分钟定时任务:测试成功. 2014-10-29 17:16:06,892 DEBUG [http-bio-8086-exec-1] org.springframework.web.se ...
-
CentOS6.4安装LAMP环境
1.配置防火墙,开放80.3306端口 vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport - ...
-
.NET基本权限管理框架源代码
有兴趣的朋友欢迎加群讨论:312677516 1.菜单导航管理 2.操作按钮 3.角色管理 4.部门管理 5.用户管理(用户权限) 6.用户组管理(设置成员,用户组权限) 7.系统配置(动态配置系统参 ...
-
几款web版整合(QQ、msn、icq、yahoo通、Gtalk等)即时聊天http://hi.baidu.com/ejie/blog/item/e89794ef9a9431efce1b3ebd.html
直到近期为止,我们经常使用的即时聊天工具(QQ.msn等)了Web版,大家不用下载庞大软件,直接打开网页就能够与自己的好友聊天,很方便.在此将时汇总,便于大家查找,节约大家一点时间. 此都是官 ...
-
C++中的左值和右值
左值和右值的定义 在C++中,能够放到赋值操作符=左边的是左值,能够放到赋值操作符右边的是右值.有些变量既能够当左值又能够当右值.进一步来讲,左值为Lvalue,事实上L代表Location,表示在内 ...
-
MFC加载PNG图片并实现双缓冲
因为PNG包含Alpha通道,所以不同于BITMAP,在MFC中使用CImage类对其进行处理,通常使用load和draw成员函数. 所以标题的论述可以进一步解释为,使用CImage实现双缓冲. 通常 ...
-
CF520E Pluses everywhere
题目大意 给定一个 n 位的十进制数,可以在数字之间加 k 个' + ',得到一个式子,求每种方案的这个式子的和 分析: 容易想到将式子的和转化为每个数字的贡献值之和. 设数组a为:a(n-1),a( ...
-
【iCore4 双核心板_FPGA】例程十一:FSMC总线通信实验——独立地址模式
实验原理: STM32F767上自带FMC控制器,本实验将通过FMC总线的地址独立模式实现STM32与FPGA 之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC ...