⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tcsh shell 编程入门 linuxsir_org.htm

📁 linuxSir 网站的精华文章
💻 HTM
📖 第 1 页 / 共 5 页
字号:
      <P></P>
      <P>此命令设置shell调整优先为number,如果没有设置number,调整优先设置为4,带有指定的command,nice适当的优先运行command,number值越大,进程获得的CPU的时间就越少.<BR><FONT 
      id=6.25 size=3><B><BR>25、nohup<BR></B></FONT></P>
      <P><B>格式:</B><BR>
      <DIV class=codeblock><CODE>nohup [command]</CODE></DIV>
      <P></P>
      <P>如果不带command参数,nohup指示shell忽略任何停机信号,如果带command参数,将执行此命令并忽略执行中的任何停机信号.<BR><FONT 
      id=6.26 size=3><B><BR>26、notify<BR></B></FONT></P>
      <P><B>格式:</B><BR>
      <DIV class=codeblock><CODE>notify [%job...]</CODE></DIV>
      <P></P>
      <P>Linux执行命令后,如果有后台任务在执行,系统将通知到目前为止已经完成的后台任务,该系统不会中断如编辑这样的操作来通知用户关于完成的任务,当某任务完成时,如果想马上知道,无论系统在作什么,可以使用notify命令指令系统通知用户,它的参数作为任务号,当任务完成时,系统将中断当前命令并通知用户任务已经完成,如:<BR>
      <DIV class=codeblock><CODE>%notify 
      %2</CODE></DIV><BR>当2号任务完成时,告诉系统通知用户.<BR><FONT id=6.27 
      size=3><B><BR>27、onintr<BR></B></FONT>
      <P></P>
      <P><B>格式:</B><BR>
      <DIV class=codeblock><CODE>onintr [-|label]</CODE></DIV>
      <P></P>
      <P>此命令控制shell在中断时的动作,不带任何参数,将回复shell中断默认的动作,将终止shell脚本或返回输入级的终止符,如果带-参数,则忽略全部的中断,当接受中断或当子进程终止时,带label的命令将使shell执行goto标号.<BR><FONT 
      id=6.28 size=3><B><BR>28、popd<BR></B></FONT></P>
      <P><B>格式:</B><BR>
      <DIV class=codeblock><CODE>popd [-p][-l][-n|-v][+n]</CODE></DIV>
      <P></P>
      <P>此命令从目录列表中删除一个目录,不带参数的命令从列表中删除顶层目录,+n删除从左起的第n层的目录.然后popd显示最终的目录列表.pushdsilent 
      shell变量可以设置为支持此特性,-p选项可以重写pushdsilent.<BR><FONT id=6.29 
      size=3><B><BR>29、printenv<BR></B></FONT></P>
      <P><B>格式:</B><BR>
      <DIV class=codeblock><CODE>printenv 
      [name]</CODE></DIV><BR>此命令显示环境变量的名和值,如果带name参数,仅仅显示环境变量name的值.<BR><FONT 
      id=6.30 size=3><B><BR>30.pushd<BR></B></FONT>
      <P></P>
      <P><B>格式:</B><BR>
      <DIV class=codeblock><CODE>pushd [-p][-l][-n|-v][name|+n]</CODE></DIV>
      <P></P>
      <P>此命令把目录添加到存储的目录列表中,然后显示目录列表,如不带参数,除非目录为空,pushd交换顶层的两个目录,并返回0.</P>
      <P>+n旋转列表以便使第n个目录(从左起)列与顶端,但是,如果设置了dextract,pushd 
      +n将展开第n个目录,把它压入堆栈顶层.<BR>-n旋转堆栈以便第n个目录(从右起)列于顶端,dir把dir添加到顶端的目录列表,是她成为新的当前目录.如果设置了pushtohome,不带参数的pushd命令执行pushd 
      ~的功能,像cd的功能一样,如果dunique被设置,pushd在压入堆栈之前从堆栈中删除任何的name历程,可以设置pushdsilent 
      shell变量来取消目录列表的显示,然后可以使用-p选项重写pushdsilent.<BR><FONT id=6.31 
      size=3><B><BR>31、repeat<BR></B></FONT></P>
      <P><B>格式:</B><BR>
      <DIV class=codeblock><CODE>repeat count command</CODE></DIV>
      <P></P>
      <P>此命令重复执行command指定的次数count.<BR><FONT id=6.32 
      size=3><B><BR>32、set<BR></B></FONT></P>
      <P><B>格式:</B><BR>
      <DIV class=codeblock><CODE>set<BR>set name ...<BR>set name = value 
      ...<BR>set name = (wordlist)...<BR>set name[index] = word ...<BR>set 
      -r<BR>set -r name ...<BR>set -r name = value ...<BR>set -r name = 
      (wordlist) ...</CODE></DIV>
      <P></P>
      <P>不带任何参数的set命令将显示全部的shell变量值,包含许多单词的变量作为放在括号中的词列出,带name参数的set命令定义一个变量并为它赋值null串,带有name和=符号分隔的值,set定义变量并给它赋值,要把wordlist作为值赋值给name变量,把列表中的词作为要赋的值放在括号中,为了将数值赋值给数组元素,使用方括号[]指定元素的index,但是该元素必须已经存在.</P>
      <P>-r选项常用于引用只读变量,仅仅带-r选项的set命令将列出只读变量,与变量名一起使用,set将使此变量设置为只读,与赋值的变量一起使用,将初始化该变量,并使该变量成为不能被修改的只读变量.</P>
      <P>在TCSH中,用户必须在使用变量之前首先声明它,使用加变量名的set命令声明变量.变量名可以是任何字母字符包括下划线_,也可以含有数字,但是变量名不能以数字为首字符!<BR><FONT 
      id=6.33 size=3><B><BR>33、setenv<BR></B></FONT></P>
      <P><B>格式:</B><BR>
      <DIV class=codeblock><CODE>setenv 
      [name[value]]</CODE></DIV><BR>setenv常用于定义有特定值的环境变量.如没有带value选项,setenv设置name变量为null串,如果没有带任何参数,将显示全部环境变量的名称和值.
      <P></P>
      <P>TCSH有两种类型的变量:局部变量和环境变量.局域变量是在shell内部声明的;环境变量是全局域的变量.使用setenv可以定义环境变量,使用setenv命令,变量名,以及被赋值的值,就可给环境变量赋值.其中,没有赋值运算符,如:<BR>
      <DIV class=codeblock><CODE>%setenv greeting 
      hello</CODE></DIV><BR>greeting环境变量被赋值为hello,无论何时调用shell脚本,都将产生自己的shell,如果shell脚本被另外一个shell脚本<BR>执行,它将使自己的shell从第一脚本的shell中分离.现在有两个shell,属于第一个脚本的父shell和当执行第二个脚本是产生的子shell.
      <P></P>
      <P>在其他的shell内部执行脚本时,这个shell是第一个脚本的子shell,原来的脚本的shell是它的父shell.每个shell都拥有自己的变量,子shell不能引用父shell中的局域变量,但是能引用环境变量.子shell可以引用父shell中声明的任何环境变量.<BR><FONT 
      id=6.34 size=3><B><BR>34、shift<BR></B></FONT></P>
      <P><B>格式:</B></P>
      <P>
      <DIV class=codeblock><CODE>shift [variable]</CODE></DIV>
      <P></P>
      <P>没有参数的shift命令向左移动argv数值,即argv[1]的数值被argv[2]所代替,如果argv没有被设置或者数值少于一个词时将发声错误.带有其数值为列表或数组的variable,该命令将列表和数组的数值向左移动.<BR><FONT 
      id=6.35 size=3><B><BR>35、source<BR></B></FONT></P>
      <P><B>格式:</B><BR>
      <DIV class=codeblock><CODE>source [-h] name [argument...]</CODE></DIV>
      <P></P>
      <P>source读出并执行以name命名的命令,通常是shell脚本(不能把这些命令放在历史列表中).把任何参数输入argv中.用-h选项,命令被放入历史列表但是不立即执行.<BR><FONT 
      id=6.36 size=3><B><BR>36、stop<BR></B></FONT></P>
      <P><B>格式:</B><BR>
      <DIV class=codeblock><CODE>stop %job\ job...</CODE></DIV>
      <P></P>
      <P>stop命令停止指定的任务或在后台执行的进程.也可以用一个数字或字符串引用一个任务,如果不存在默认的任务,那么仅仅stop不能停止当前的任务.<BR><FONT 
      id=6.37 size=3><B><BR>37、switch<BR></B></FONT></P>
      <P><B>格式:</B><BR>
      <DIV class=codeblock><CODE>switch 
      (test-string)<BR>&nbsp;&nbsp;&nbsp;&nbsp;case 
      pattern:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;commands<BR>breaksw<BR>&nbsp;&nbsp;&nbsp;&nbsp;case 
      pattern:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;commands<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;breaksw<BR>&nbsp;&nbsp;&nbsp;&nbsp;default:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;commands<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;breaksw<BR>endsw</CODE></DIV>
      <P></P>
      <P>switch结构在几个可能的选项中进行选择.此结构与BASH中的case结构非常类似通过把字符串与几个可能的模式进行选择,每个可能的模式都与一系列命令相关联,如果没有相匹配的项,则执行相关的命令。</P>
      <P>switch结构以关键词switch和放在圆括号中的test-string开始,字符串常由变量求值导出,然后是一系列的模式,每个模式pattern前是关键词case,以冒号:结束,冒号后列出与选择有关的commands,以breaksw终止command,在所有被列出的模式之后,关键词endsw结束switch结构。</P>
      <P><B>注意:</B>每个测试表达式的命令组的最后一个命令是breaksw,每个测试表达式被逐一测试,直到找到相匹配的内容,如果没有找到相匹配的项,则执行默认项default。用关键词default表示默认选择,default项是可选的。但是它有助于通知用户没有匹配的测试字符串。</P>
      <P><B>举例:</B></P>
      <P>
      <DIV class=codeblock><CODE>lschoice<BR>#<BR>echo s.List sizes<BR>echo 
      l.List files infomation<BR>echo c.List C files<BR>echo -n "Please enter 
      choice:"<BR>set choice=$&lt;<BR>switch ($choice)<BR>&nbsp;&nbsp;case 
      s:<BR>&nbsp;&nbsp;&nbsp;&nbsp;ls 
      -s<BR>&nbsp;&nbsp;&nbsp;&nbsp;breaksw<BR>&nbsp;&nbsp;case 
      l:<BR>&nbsp;&nbsp;&nbsp;&nbsp;ls 
      -l<BR>&nbsp;&nbsp;&nbsp;&nbsp;breaksw<BR>&nbsp;&nbsp;case 
      c:<BR>&nbsp;&nbsp;&nbsp;&nbsp;ls 
      *.c<BR>&nbsp;&nbsp;&nbsp;&nbsp;breaksw<BR>&nbsp;&nbsp;default:<BR>&nbsp;&nbsp;&nbsp;&nbsp;echo 
      Invalid Option<BR>&nbsp;&nbsp;&nbsp;&nbsp;breaksw<BR>endsw</CODE></DIV>
      <P></P>
      <P>(输出略)<BR><FONT id=6.38 size=3><B><BR>38、time<BR></B></FONT></P>
      <P><B>格式:</B><BR>time 
      [command]<BR>如果没有参数,此命令显示当前shell的时间累计,用一条命令作为参数,它执行命令<BR>并显示时间累计.<BR><FONT 
      id=6.39 size=3><B><BR>39、umask<BR></B></FONT></P>
      <P><B>格式:</B><BR>
      <DIV class=codeblock><CODE>umask [value]</CODE></DIV>
      <P></P>
      <P>此命令指定用户文件建立掩码,掩码用八进制表示.</P>
      <P><FONT id=6.40 size=3><B><BR>40、unalias<BR></B></FONT></P>
      <P><B>格式:</B></P>
      <P>unalias pattern<BR>此命令删除其名称与pattern匹配的所有别名.<BR><FONT id=6.41 
      size=3><B><BR>41、unset<BR></B></FONT></P>
      <P><B>格式:</B>unset 
      pattern<BR>此命令取消定义shell变量,名称可能是匹配了几个变量的pattern(尽量避免用unset 
      *,因为它将取消所有的变量)<BR><FONT id=6.42 size=3><B><BR>42、unsetenv</P>
      <P></B></FONT></P>
      <P><B>格式:</B><BR>
      <DIV class=codeblock><CODE>unsetenv pattern</CODE></DIV>
      <P></P>
      <P>此命令取消定义环境变量,名称可能是匹配几个变量的pattern,也尽量避免用unsetenv *,因为它将删除所有的环境变量.</P>
      <P><FONT id=6.43 size=3><B><BR>43、wait<BR></B></FONT></P>
      <P>此命令指示shell等待全部的后台任务的完成,在一个交互的shell环境中,可中断一个wait操作,并显示剩余的任务.<BR><FONT 
      id=6.44 size=3><B><BR>44、where<BR></B></FONT></P>
      <P><B>格式:</B>where command</P>
      <P>此命令报告所有已知的命令历程,包括别名,内建和可执行的路径.<BR><FONT id=6.45 
      size=3><B><BR>45、which<BR></B></FONT></P>
      <P><B>格式:</B><BR>
      <DIV class=codeblock><CODE>which command</CODE></DIV>
      <P></P>
      <P>此命令显示shell要执行的指定的任务.<BR><FONT id=6.46 
      size=3><B><BR>46、while<BR></B></FONT></P>
      <P><B>格式:</B><BR>
      <DIV 
class=codeblock><CODE>while(expression)<BR>command<BR>end</CODE></DIV>
      <P></P>
      <P>此循环重复执行命令,以关键词while开始,接着是圆括号括起来的表达式expression以end结束循环。</P>
      <P>while循环很容易与switch结构结合,构成菜单的驱动程序;<BR>
      <DIV class=codeblock><CODE>lschoicesw<BR>#<BR>set again=yes<BR>while 
      ($again==yes)<BR>echo "1.List sizes"<BR>echo "2.List files 
      information"<BR>echo "3.List C files"<BR>echo "4.Quit"<BR>echo -n "Please 
      enter choice:"<BR>set choice=$&lt;<BR>switch ($choice)<BR>&nbsp;&nbsp;case 
      1:<BR>&nbsp;&nbsp;&nbsp;&nbsp;ls 
      -s<BR>&nbsp;&nbsp;&nbsp;&nbsp;breaksw<BR>&nbsp;&nbsp;case 
      2:<BR>&nbsp;&nbsp;&nbsp;&nbsp;ls 
      -l<BR>&nbsp;&nbsp;&nbsp;&nbsp;breaksw<BR>&nbsp;&nbsp;case 
      3:<BR>&nbsp;&nbsp;&nbsp;&nbsp;ls 
      *.c<BR>&nbsp;&nbsp;&nbsp;&nbsp;breaksw<BR>&nbsp;&nbsp;case 
      4:<BR>&nbsp;&nbsp;&nbsp;&nbsp;set again=no<BR>&nbsp;&nbsp;&nbsp;&nbsp;echo 
      good-bey<BR>&nbsp;&nbsp;&nbsp;&nbsp;breaksw<BR>&nbsp;&nbsp;default:<BR>&nbsp;&nbsp;&nbsp;&nbsp;echo 
      Invalid Option<BR>endsw</CODE></DIV>
      <P></P>
      <P>(输出略)</P>
      <P><FONT id=20 size=5><B><BR>第二篇 TCSH配置<BR></B></FONT></P>
      <P>TCSHshell可以使用户使用shell配置变量和特征配置自己的shell.也可以使用set命令设置特征.TCSH也有注册,注消以及何时进入TCSHshell的配置文件.<BR><FONT 
      id=201 size=4><B><BR>一、TCSH shell 特征<BR></B></FONT></P>
      <P>TCSH有几个特征,允许控制不同的shell操作的方法.TCSH shell特征不仅包括许多它自己的特征,而且还包括KSH/BASH 
      shell中的特征,如,TCSH中有一个noclobber,防止重定向重写文件,一些更常用的特征为:echo,noclobber,ignoreeof和noglob.通过定义和取消定义与该特性相关的变量,打开/关闭TCSH 
      shell特征,为每个特征命名变量.</P>
      <P>例如,通过定义noclobber变量,打开noclobber特征.使用set命令定义变量,而使用unset命令取消定义变量.为了运行noclobber特征,使用set 
      noclobber,为了关闭它,使用unset noclobber.如:<BR>
      <DIV class=codeblock><CODE>set variable 定义变量<BR>unset variable 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -