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后,就能从命令行上用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小时内删除。
发表评论