Shell简介
一:shell是什么
shell是一个UNIX程序,当给出一条命令时,shell解释并执行它,然后返回一个提示或是一个错误消息。
作为一个命令解释器,shell是一种编程语言,它有自己特定的语法,用户能写一种称之为批程序的特定程序,并用shell来解释执行它。
二:shell的种类
主要有三种:
Bourne Shell
程序名是sh,是最老但是使用最广泛的shell。要开始Bourne shell,只要键入sh,就可切换到该bsh模式中。
Korn Shell
Bourne家族中的另一个shell是Korn Shell。向上兼容Bourne Shell,其执行程序的名字是ksh
C Shell
是加州大学伯克利分校的Bill Joy开发的,它是为替换Bourne Shell而设计的,其执行程序名为csh。C Shell基于C成语语言,深受大学程序员,教授,实验室研究员的喜爱。
三:程序脚本
脚本不是复杂的程序,它是按行解释的。脚本第一句总是以#!/bin/sh开始。这段脚本通知shell使用系统上的Bourne shell解释器。
任何脚本都可能有注释,加注释需要此行的第一个字符为#,解释器对此行为不予解释。在第二行注释中写入脚本名是一个好习惯。
环境
tcsh程序启动的时候,将首先执行一个系统级的启动文件/etc/csh.cshrc,然后是用户主目录下的两个shell初始化文件:.tcshrc和.login.这些文件让用户来设置它们自己的工作环境。
.tcshrc(.cshrc): 包含tcsh变量设置,每次启动一个tcsh子shell都将执行它。别名和历史通常也在这里设置。
.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这个别名)