shell编程01—shell基础
01.学习shell编程需要的知识储备
1.vi、vim编辑器的命令,vimrc设置
2.命令基础,100多个命令
3.基础、高端的网络服务,nfs,rsync,inotify,lanmp,sersync,sshkey批量分发管理
02.shell脚本概念
1.什么是shell
shell是一个命令解释器,在操作系统的最外层,负责直接与用户对话,将用户的输入解释给操作系统,并输出操作系统各种各样的处理结果,输出到屏幕返回给用户。这种对话方式可与是交互式的(键盘输入命令,可以立即得到shell的回应),或者是非交互(脚本)的方式
2.什么是shell脚本
当命令或语句不在命令行中执行,而是通过一个程序文件执行时,该程序就被称为shell程序或shell脚本,shell程序类似Dos下的批处理程序(*.bat)
用户可以在shell脚本中输入一系列的命令或语句。这些命令、变量流程控制语句等有机结合在一起就形成功能强大的shell程序
3.示例
#!/bin/bash
echo "Hello World !"
03.shell程序在运维工作中的地位
shell擅长处理纯文本类型数据,linux中几乎所有配置文件、日志文件(nfs、rsync、httpd、nginx、lvs等)都是纯文本文件。shell脚本在linux中作用巨大
04.shell脚本语言的种类和说明
1.在unix/linux中主要有两大类
Bourne shell (包括sh、ksh、bash):Bourne shell (sh),Kor n shell (ksh),Bourne Again shell (bash),POSIX shell (sh)
C shell (包括csh、tcsh):C shell,TENEX/TOPS C shell
2.shell脚本语言是弱类型语言,定义变量的时候不需要指定类型,处理的时候如果定义的不对,就会报错。比如让字符串和整型数想加
3.较为通用的shell有标准的Bourne shell(sh)和C shell,其中Bourne shell已被Bourne Again shell(bash)取代
4.shell的优势在于处理操作系统底层的业务(大量命令为它支撑,2000多个命令都是shell支撑)
05.常用操作系统的默认shell
Linux 是 Bourne Again shell (bash)
UNIX:Solaris、FreeBSD 缺省的是Bourne shell (sh),AIX 是Korn shell (ksh) ,HP-UX 是POSIX shell(sh)
查看命令:echo $SHELL(系统变量都是全大写)
06.shell脚本的建立和执行
1.shell脚本(bash shell程序)通常是在编辑器(如vi/vim)中编写,由Unix/linux命令、bash shell命令、程序结构控制语句和注释等内容组成
2.脚本开头第一行

3.shell脚本的执行方式:
1)作为可执行程序
代码保存为test.sh,并cd到相应目录:
chmod +x ./test.sh #使脚本具有执行权限
./test.sh #执行脚本
注意,一定要写成./test.sh,而不是test.sh,运行其它二进制的程序也一样,直接写test.sh,linux系统会去PATH里寻找有没有叫test.sh的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在PATH里,你的当前目录通常不在PATH里,所以写成test.sh是会找不到命令的,要用./test.sh告诉系统说,就在当前目录找。
2)作为解释器参数
这种运行方式是,直接运行解释器,其参数就是shell脚本的文件名,如:
/bin/sh test.sh
这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。
shell编程01—shell基础的更多相关文章
- (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹
原文 (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) Windows Shell 编程,即 Windows ...
- 【Shell编程】Shell程序设计
1.Shell简介 作为Linux灵感来源的Unix系统最初是没有图形化界面的,所有的任务都是通过命令行来实现的.因此,Unix的命令行系统得到了很大的发展,逐步成为一个功能强大的系统. Sh ...
- 【shell编程】之基础知识-语法
一.shell变量 1.定义变量 定义变量时,变量名不加美元符号($,PHP语言中变量需要), 如: your_name="runoob.com" 注意,变量名和等号之间不能有空格 ...
- 【shell编程】之基础知识了解shell
一.什么是shell Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了 ...
- Linux - 简明Shell编程01 - 第一个脚本(HelloShell)
脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash echo "hell ...
- Shell编程-条件测试 | 基础篇
什么是Shell Shell是一个命令解释器,它会解释并执行命令行提示符下输入的命令.除此之外,Shell还有另一个功能,如果要执行多条命令,它可以将这组命令存放在一个文件中,然后可以像执行Linux ...
- 【shell编程】之基础知识-常用命令
一.Shell echo命令 Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出.命令格式: echo string 您可以使用echo实现更复杂的输出格式控制. ...
- Linux shell编程02 shell程序的执行 及文件权限
第一个shell脚本 1. shell编程的方式 交互式shell编程 非交互式shell编程:执行的语句存放到一个文件 shell脚本:可以任意文件名,建议扩展名为sh 2. ...
- shell编程技术之-基础知识
一.脚本结构 linux下shell的脚本,是将一系列命令序列写在一个文本文件,而这个文本文件时可执行的.相对命令行来说,开发效率提高.因此他的构架有2部分构成#!和命令序列.其中#!指明此脚本是用哪 ...
随机推荐
- IE浏览器 ajax传参数值为中文时出现乱码的解决方案
找了很多方法,发现就这个方法简单.直接.方便,直接推荐哦! 在汉字的位置加个保护措施:encodeURIComponent(parentid) 举个栗子>>> $.ajax({ ...
- c++ windows与linux通信中文乱码问题解决方法
在linux中默认编码方式是UTF-8,在Windows下默认编码方式时GB2312.因此,在Windows和Linux进行通信的时候,如果没有进行转码则会出现乱码问题.因此,需要进行UTF-8和GB ...
- winform右键菜单
public partial class Form1 : Form { ContextMenuStrip cms; Bitmap bm ; public Form1() { InitializeCom ...
- 避免关注底层硬件,Nvidia将机器学习与GPU绑定
Nvidia释放的一组cuDNN的库,有效的实现了其与多种深度学习框架的整合.基于cuDNN,加速了代码的运行,同时让研究员避免去关心底层硬件性能. 关键字: 编程语言语音识别Nvidia 原文链接: ...
- 当使用junit4 对spring框架中controller/service/mapper各层进行测试时,需要添加的配置
@RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration @ContextConfiguration(locations = {&quo ...
- vc++如何创建程序-构造函数
如果给Animal带参,则提示没有缺省的构造函数了,缺省就是不带参数的 改进:从子类当中向基类传递代参的,这样他就会给Animal传递400,300 对一个常量来调用 #include<iost ...
- 【转】VGG网络结构及参数
VGG网络 VGG16输入224*224*3的图片,经过的卷积核大小为3x3x3,stride=1,padding=1,pooling为采用2x2的max pooling方式: 1.输入224x2 ...
- Python爬虫3-----浏览器伪装
1.浏览器伪装技术原理 当爬取CSDN博客时,会发现返回403,因为对方服务器会对爬虫进行屏蔽,故需伪装成浏览器才能爬取.浏览器伪装一般通过报头进行. 2.获取网页的报头 3.代码: import u ...
- RESTful API设计方法
1.如果已经开始逐步的接触到了RESTful API设计方法的朋友,首先要对HTTP/HTTPS有一个大致的了解,虽然本身和RESTful API没有什么关系.但是对于增加网站的安全性还是十分重要的, ...
- HDU-1695 GCD(求一个区间内与一个数互质的个数)
题意: 给你一个T,是样例的个数,接下来是五个数l1,r1,l2,r2,k 前四个数代表两个区间(l1,r1),(l2,r2)这个题l1=1,l2=1; 取x1属于(1,r1),x2属于(1,r2) ...