当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > bash编程教学实例

Unix/Linux
linux查看内存的大小
在linux下写的代码,用的是utf-8,结果拿到XP下运行的时候,所有的中文都成乱码
linux su和sudo命令的区别
linux cron 下的定时执行工具使用技巧
linux 查找进程及终止进程操作的相关命令
redhat linux 安装 gcc编译器
Linux Mplayer播放各种格式的电影
一起回顾一下linux常用命令
Linux 网站项目发布要做哪些配置
linux SSH配合SecureCRT的密匙完美使用方法
GD 编译出错解决方法
Facebook Open Platform编译FAQ
Linux 系统硬盘 优化
linux 挂载详解
linux crontab定时命令
Linux 系统中确保访问三级域名畅通的方法
Linux 特权帐号VS普通帐号
确保Linux系统安全的前提条件 漏洞防护
Linux 监视系统资源使用率
Red Hat Linux上使用BIND建立DNS服务器

Unix/Linux 中的 bash编程教学实例


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 103 ::
收藏到网摘: n/a

bash编程 --------------------------------------------------------------------------------時間:2004/03/02    來源:不详   Shell Script(bash)简介   众所皆知地,UNIX上以小工具著名,利用许多简单的小工具,来完成原本需要大量软体开发的工作,这一点特色,使得UNIX成为许多人心目中理想的系统平台。   在众多的小工具中,Shell Script算得上是最基本、最强大、运用最广泛的一个。它运用围之广,不但从系统启动、程式编译、定期作业、上网连线,甚至安装整个Linux系统,都可以用它来完成。
  因为ShellScript是利用您平日在使用的一些指令,将之组合起来,成为一个"程式"。如果您平日某些序列的指令下得特别频繁,便可以将这些指令组合起来,成为另一个新的指令。这样,不但可以简化并加速操作速度,甚至还可以干脆自动定期执行,大大简化系统管理工作。   *************************  Bash(GNU Bourne-AgainSHell)是许多Linux平台的内定Shell,事实上,还有许多传统UNIX上用的Shell,像tcsh、csh、ash、bsh、ksh等等,Shell Script大致都类同,当您学会一种Shell以后,其它的Shell会很快就上手,大多数的时候,一个ShellScript通常可以在很多种Shell上使用。   这里我介绍您bash的使用方法。事实上,当您"manbash"时,就可以看到bash的说明书,不过对许多人来说,这份说明书犹如"无字天书"一样难懂。这份文件,主要资料来源为"manbash",我加上一些实际日常的应用例来说明。希望这样能让那些始终不得其门而入的人们,多多少少能有点概念。   教学例子   "Hello world" Shell Script   照传统程式教学例,这一节介绍Shell Script的"Hello World"如何撰写。   *************************  #!/bin/sh   # Filename : hello   echo "Hello world!"   *************************  大家应该会注意到第一行的"#!/bin/sh"。在UNIX下,所有的可执行Script,不管是那一种语言,其开头都是"#!",例如Perl是"#!/usr/bin/perl",tcl/tk是"#!/usr/bin/wish",看您要执行的Script程式位置在那里。您也可以用"#!/bin/bash"、"#!/bin/tcsh"等等,来指定使用特定的Shell。   echo是个bash的内建指令。   *************************  接下来,执行hello这个script:   要执行一个Script的方式有很多种。   *************************  第一种 : 将hello这个档案的权限设定为可执行。   [foxman@foxman bash]# chmod 755 hello   执行   [foxman@foxman bash]# ./hello   hello world   *************************  第二种 : 使用bash内建指令"source"或"."。   [foxman@foxman bash]# source hello   hello world   或   [foxman@foxman bash]# . hello   hello world   *************************  第三种 : 直接使用sh/bash/tcsh指令来执行。   [foxman@foxman bash]# sh hello   hello world   或   [foxman@foxman bash]# bash hello   hello world   *************************  Bash执行选项   *************************  -c string : 读取string来当命令。   -i : 互动介面。   -s : 由stdin读取命令。   - : 取消往后选项的读取。   -norc : 不要读~/.bashrc来执行。   -noprofile : 不要读/etc/profile、~/.bash_profile、~/.bash_login、~/.profile等等来执行。   -rcfile filename : 执行filename,而非~/.bashrc   -version : 显示版本。   -quiet : 启动时不要哩唆。   -login : 确保bash是个login shell。   -nobraceexpansion : 不要用curly brace expansion({}符号展开)。   -nolineediting : 不用readline来读取命令列。   -posix : 改采Posix 1003.2标准。   用于自动备份的Shell Script   一个用于自动备份的Shell Script   我们先前提到,可利用Shell Script搭配crond来作定期的工作。要作定期性的工作,在UNIX上,就是与crond的搭配运用。   *************************  首先我们先来研究如何对系统进行备份。   要对系统进行备份,不外乎便是利用一些压缩工具。在许多UNIX系统上,tar及gzip是defacto的资料交换标准。我们经常可以看见一些tar.gz或tgz档,这些档案,被称为tarball。当然了,您也可以用bzip2、zip等等压缩工具来进行压缩,不必限定于gzip。但tar配合gzip是最普遍的,也是最方便的方式。   要将我们想要的资料压缩起来,进行备份,可以结合tar及gzip一起进行。方式有很多种,最常用的指令是以下这一种:   tar -c file/dir ... | gzip -9 > xxxx.tar.gz   您也可以分开来做:   tar -r file/dir ... -f xxxx.tar   gzip -9 xxxx.tar   或   tar -r file/dir ... -f xxxx.tar   gzip -9 < xxxx.tar