shell程序
通过文本编辑程序放在一个文件中的一系列Linux命令和实用程序。执行shell程序时,通过Linux一个接一个地解释和执行命令。
可以像在Linux下执行任何其他命令一样,编写和执行shell程序。如果这些shell程序在查路径中,还可以在shell程序内执行其他的shell程序。
注意:必须确保shell程序的第一行是以“#”开头,“#”告诉shell本行为注释。在“#”后必须是“!”,“!”告诉shell运行“!”之后的命令并用文件的其余部分作为输入。这是所有shell脚本惯用的做法,例如,如果为“bash”写一个shell脚本,脚本的第一行应包括“#! /bin/bash”。
Linux中的各种shell
shell名称
描述
位置
ash
一个小shell(和sh类似)
/bin/ash
ash. static
一个不依靠软件库的ash版本
/bin/ash. static
bash
Bourne Again Shell
/bin/bush
bush2
Bourne Again Shell的新版本
/bin/bush2
bsh
ash的一个符号链接
/bin/bsh
csh
C shell, tcsh的一个符号链接
/bin/ash
ksh
公共域受限制的shell(针对网络操作)
/usr/bin/rsh
sh
bash的一个符号链接
/bin/sh
tcsh
和csh兼容的shell
/bin/tcsh
zsh
一个和csh、ksh和sh兼容的shell
linuxshell脚本怎么运行/bin/zsh
创建和执行shell程序
#echo $PATH
获得查路径
创建一个文件,在其中设置一些命令的别名,从而可用这些别名来运行命令:
1. 新建一个文件,假设文件名为mynev;
2. 在mynev中按如下格式设置命令的别名:
alias <command name>=<command alias>
例  alias dir=’ls’    (设置dir命令的别名为ls);
3. 保存文件,将文件内容添加到shell的login或profile文件。对于Red Hat Linux用户来说,默认的shell是bash,所以在系统中将这些命令放入/etc目录中的profile文件可以使系统中的所有用户得以使用这些命令。
执行shell程序的其他方法(本例中位mynev文件):
法一、首先,用“#chmod +x mynev”将mynev设置为可执行的;然后如同任何其他本地Linux命令一样来执行mynev,“#mynev”。(在执行mynev前,要确保mynev文件必须在查路径中,执行“#echo $PATH”可获得查路径。如果放置mynev的文件的目录不再当前的查路径中,那么必须把这个目录加到查路径中。)
法二、在特定的shell(如pdksh)下执行mynev,命令形式为“#pdksh mynev”(这里引用了新的pdksh shell,并把文件名mynev作为参数来执行该文件。)还可以从命令行上执行mynev:
命令
环境
#. mynev
pdksh和bash
#. source mynev
tcsh
执行mynev后,就能从命令行上用dir来获得当前目录下的文件列表,并且能获得可显示各种属性的文件列表。
chsh
如果用户已经登录到Red Hat Linux系统后,要使用其他的shell,可以使用chsh命令。用户将被提示输入用户密码和新的shell的名称和位置。这时新的shell将成为用户默认的shell,新的shell必须出现在文件/etc/shells中。
在一些情况下,用户要更改shell脚本的执行方式,例如,大多数的shell脚本在开头都是用“#”和“!”。
#! /bin/sh
之所以这样做的原因是,可以控制是什么shell来运行这个脚本(在本例中声明为sh)。其他的shell(如ksh)会因为在脚本中被调用的方式不同,而响应不同(所以产生了不同的shell的符号链接)。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。