Shell基本知识

1、为什么学习和使用Shell编程
对于一个合格的系统管理员来说,学习和掌握Shell编程是非常重要的。通过编程,可以在很大程度 上简化日常的维护工作,使得管理员从简单的重复劳动中解脱出来。
shell程序的特点:
1、简单易学
2、解释性语言,不需要编译即可执行

 2、 什么是Shell

在学习Shell编程之前,必须弄清楚什么是Shell。为了能够使读者在学习具体的Shell编程之前对 Shell有个基本的了解,本节将对Shell进行概括性的介绍,包括Shell的起源和功能。
1shell的起源
1964年,美国AT&T公司的贝尔实验室、麻省理工学院及美国通用电气公司共同参与开始研发一套 可以安装在大型主机上的多用户、多任务的操作系统,该操作系统的名称为Multics
1970年,丹尼斯里奇和汤普逊启动了另外一个新的多用户、多任务的操作系统的项目,他们把这 个项目称之为UNICS
1973年,使用C语言重新编写了Unix。通过这次编写,使得Unix得以移植到其他的小型机上面。
1979年,第一个重要的标准UNIX ShellUnix的第7版中推出,并以作者史蒂夫伯恩(Stephen Bourne)的名字命名,叫做Bourne Shell,简称为sh。 20世纪70年代末,C Shell作为2BSD UNIX的一部分发布,简称csh。 之后又出现了许多其他的Shell程序,主要包括Tenex C Shelltcsh)、Korn Shellksh)以及
GNU Bourne-Again shellbash)。
2 shell的功能
Shell又称命令解释器,它能识别用户输入的各种命令,并传递给操作系统。它的作用类似于
Windows操作系统中的命令行,但是,Shell的功能远比命令行强大的多。在UNIX或者localhost中,
Shell既是用户交互的界面,也是控制系统的脚本语言。

 

3shell的分类
Bourne Shell:标识为sh,该ShellSteve Bourne在贝尔实验室时编写。在许多Unix系统中,该 Shell是root用户的默认的Shell。 Bourne-Again Shell:标识为bash,该ShellBrian Fox1987年编写,是绝大多数localhost发行
版的默认的Shell
Korn Shell:标识为ksh,该Shell由贝尔实验室的David Korn在二十世纪八十年代早期编写。它完 全向上兼容 Bourne Shell 并包含了C Shell 的很多特性。
C Shell:标识为csh,该ShellBill JoyBSD系统上开发。由于其语法类似于C语言,因此称为C Shell。

 如何查看当前系统支持的shell

[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
如何查看当前系统默认shell
[root@localhost ~]# echo $SHELL
/bin/bash
4、 作为程序设计的语

 

        Shell不仅仅是充当用户与UNIX或者localhost交互的角色,还可以作为一种程序设计语言来使用。 通过Shell编程,可以实现许多非常实用的功能,提高系统管理的自动化水平。
          如果有一系列经常需要使用的命令,把它存储在一个文件里,shell可以读取这个文件并顺序执行其 中的命令,我们把这样的文件就叫shell脚本。shell脚本按行解释文件里的命令

 5、shell脚本的书写规范

通常情况下,我们会给shell脚本起名为filename.sh
第一行写声明,声明当前的shell脚本使用哪个命令解释器去解释: #!/bin/bash
除了第一行以外的以#开头的行都为注释
shell脚本的作者
shell脚本的创建时间
脚本的作用,命令的说明
编辑.sh文件时自动生成关于脚本文件说明的注释
[root@localhost ~]# cat /root/.vimrc
autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()"
func SetTitle()
if expand("%:e") == 'sh'
call setline(1,"#!/bin/bash")
call setline(2,"#########################")
call setline(3,"#File name:".expand("%"))
call setline(4,"#Version:v1.0")
call setline(5,"#Email:admin@test.com")
call setline(6,"#Created time:".strftime("%F %T"))
call setline(7,"#Description:")
call setline(8,"#########################")
call setline(9,"")
endif
endfunc

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fatsheep洋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值