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

这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。

时间: 2024-10-12 05:35:52

shell编程01—shell基础的相关文章

shell编程技术之-基础知识

一.脚本结构 linux下shell的脚本,是将一系列命令序列写在一个文本文件,而这个文本文件时可执行的.相对命令行来说,开发效率提高.因此他的构架有2部分构成#!和命令序列.其中#!指明此脚本是用哪个解析器来解析. 例如: 二.基础知识 2.1 变量 shell本允许用户设置和使用自己的变量,变量可以是数字或者字符串,用户无需指定其类型,也无需在使用前定义. 例如: 1 #!/bin/bash 2 3 #2.2 4 a="hello word" 5 b=5 6 echo "

Linux shell编程命令-Linux基础环境命令学习笔记

1.正则表达式 1)^开始 *前一个字符重复0次以上 + 1次以上 ? 0次或者1次 . 一个任意字符(.*连用) {m,n} m到n次 [0-9][a-z] 任意数字或字母 $结束字符 2)sed和awk命令 sed '匹配条件/执行的动作' /etc/passwd sed 's/old/new/g' awk -F: '{print $1}' /etc/passwd 1表示第一列,2表示第二列 -F:表示分隔符为: 2.变量 1)环境变量 系统环境变量(/etc/profile) 用户环境变量

Shell编程之--“grep-awk-sed” 基础用法汇总-菜鸟入门级

【转】shell 教程——01 Shell简介:什么是Shell,Shell命令的两种执行方式

Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. 它虽然不是Unix/Linux系统内核的一部分,但它调用了系统核心的大部分功能来执行程序.建立文件并以并行的方式协调各个程序的运行.因此,对于用户来说,shell是最重要的实用

Shell编程之三 —— shell script 脚本(未完待续)

1.脚本的语法构成: shell script 是利用 shell 的功能所写的一个『程序(program)』,这个程序是使用纯文本文件(文件后缀名最好为sh文件,方便我们管理),将一些 shell 的语法与指令(含外部指令)写在里面, 搭通配符.配正规表示法.管线命令与数据流重定向.条件判断.循环逻辑等功能,以达到我们所想要的处理目的. 构成(常见):shell语法和外部指令   通配符     [a-z]  [A-Z]     ?    *          正规表达式      管线命令

Linux Shell编程实战---Shell中的文本切片技术

Shell中的文本切片技术 在shell中竟然也是有字符串切片这个东西存在的,一直在python中运用切片,下面记录一下shell中切片的用法. (1).替换变量内容中的部分文本 $var="This is a line of text" $ echo${var/line/REPLACED} This is aREPLACED of text" line被替换成REPLACED. (2).指定字符串的起始位置和长度来生成子串 语法如下: ${variable_name:sta

Linux Shell编程实战---shell实现图片下载神器

$ cat dowonload_image.sh  #!/bin/bash ######################################### #图片下载器                              # #script_name: dowonload_image.sh         # #author:weixiaoxin write by 2017-09-20   #      #########################################

并发编程(01)--多线程基础

1.关于多线程 1.1 线程与进程的区别 进程:系统中每一个正在运行的程序都是一个进程,每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元 线程:是一组指令的集合,控制着进程的执行,一个进程中至少有一个线程 1.2 为什么用多线程 使用多线程可以将执行时间长的程序中的任务放到后台去处理,在一些需要等待的任务上如文件读写.网络分发数据等,使用多线程就可以更好的利用CPU的资源,从而提高程序运行的效率 2. 线程的状态 线程有5种状态:新建.就绪.运行.阻塞.死亡,如下图所示:

shell编程基础知识

什么是shell shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出屏幕返回给用户 shell对话方式 交互的方式:从键盘输入命令,通过/bin/bash的解析,可以立即得到shell的回应,一问一答的方式 非交互式:shell脚本 为什么使用shell编程! shell编程是实现linix.UNIX系统管理及自动化运维必备的重要工具,可以把繁琐重复的命令写到shell脚本中执行,节约时间,有效的提高运维人员