代码改变世界

TCSH编程(1)

2008-01-09 17:26  Jeff  阅读(1709)  评论(3编辑  收藏  举报

 

Shell简介

一:shell是什么

shell是一个UNIX程序,当给出一条命令时,shell解释并执行它,然后返回一个提示或是一个错误消息。

作为一个命令解释器,shell是一种编程语言,它有自己特定的语法,用户能写一种称之为批程序的特定程序,并用shell来解释执行它。

二:shell的种类

主要有三种:

Bourne Shell

程序名是sh,是最老但是使用最广泛的shell。要开始Bourne shell,只要键入sh,就可切换到该bsh模式中。

Korn Shell

Bourne家族中的另一个shellKorn Shell。向上兼容Bourne Shell,其执行程序的名字是ksh

C Shell

是加州大学伯克利分校的Bill Joy开发的,它是为替换Bourne Shell而设计的,其执行程序名为cshC Shell基于C成语语言,深受大学程序员,教授,实验室研究员的喜爱。

三:程序脚本

脚本不是复杂的程序,它是按行解释的。脚本第一句总是以#!/bin/sh开始。这段脚本通知shell使用系统上的Bourne shell解释器。

任何脚本都可能有注释,加注释需要此行的第一个字符为#,解释器对此行为不予解释。在第二行注释中写入脚本名是一个好习惯。

环境

tcsh程序启动的时候,将首先执行一个系统级的启动文件/etc/csh.cshrc,然后是用户主目录下的两个shell初始化文件:.tcshrc.login.这些文件让用户来设置它们自己的工作环境。

.tcshrc.cshrc: 包含tcsh变量设置,每次启动一个tcshshell都将执行它。别名和历史通常也在这里设置。

.login:login文件通常在第一次登陆是执行一次。通常它包括环境变量和终端设置。窗口应用程序通常从该文件启动。

变量

一,变量类别

1,局部变量:局部变量只能在创建他们的shell中被识别。如果在.tcshrc文件中设置某个局部变量,每启动一个新的tcshell,该变量都会被重置。按照惯例,局部变量应该以小写字符命名。

2,环境变量:又成为全局变量。环境变量在创建他们的shell中定义,被该shell派生出的所有shell继承。但在子shell中定义的环境变量不会回传给父shell.  

二,声明变量

和别的shell一样,tcsh也有自己的内置变量。在tcsh中一共支持三种说明变量的方式:

set:说明局部变量,既能分配数字值又能赋予字符串。

使用方法:

set temp = hello

unset temp

set (查看所有的局部变量)

@:说明局部变量,只能给说明的变量赋数字值。

使用方法:

@ temp 5

@ temp hi                          // 报错”@:expression syntax”

@ temp = ( 3 + 5 )                         //@说明变量允许用算术表达式set语句不行

unset temp

@ (查看所有的局部变量,结果和set显示的一致)

setenv:设置环境变量,允许该变量可以被它所有的子进程继承或输出给所有的子进程。

使用方法:

setenv GOOD 120

unsetenv

setenv (查看所有的环境变量)

三,查看变量

echo命令

用法:

set temp 100

echo temp        //显示结果“temp

echo $temp      //显示结果“100

四,给变量取别名

alias命令

优点(1,方便记忆   2,便于快速执行某个目录下的可执行文件。在命令行中设置的alias不会被子shell继承)

使用方法:

alias (查看现在所有的别名)

alias    别名       命令或是路径

alias       m             more

alias     emas      cd /vobs/cello/emas/

unalias 命令:删除别名

unalias m(删除m这个别名)