linux shell和make.pdf

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux 下的 shell 与 make 一、shell 1.1 什么是 shell ● 用户与 Linux 的接口 ● 命令解释器 ● 支持多用户 ● 支持复杂的编程语言 ● Shell 有很多种,如:csh,tcsh,pdksh,ash,sash,zsh,bash 等。Linux 的缺省 Shell 为 bash(Bourne Again Shell)。 Shell 是用户和操作系统之间最主要接口。通过 Shell,可以同时在后台运行多个应用 程序,并且在把需要与用户交互的程序放在前台运行。 通过在多条命令的序列中使用变量和流程控制,Shell 可以作为一名复杂的编程语言。 1.2 转义字符和通配字符 ● 转义字符(metacharacters)指的是在 Shell 中有特殊含义的字符。 例如: | ; ! ? * [ ] $ \ ` ~ ( ) { } ^ #ls file[1-10].c #count=`ls –l | grep ‘^d’| wc –l` ● 通配字符(wildcards)是转义字符的子集,用来查找匹配文件名 例如:? * [] [-] [!] ● 使用Tab键,可以自动补齐。 通配一个字符:? 通配多个字符:* 1.3 输入输出重定向 ● 系统定义三个标准文件:标准输入(stdin)、标准输出(stdout)、标准错误输入(stderr) ● 管道符:|,将前一个命令的输出转成下一个命令的输入。 ● 过滤器 (filters):用来接收标准输入,经过一定的转化,再写到标准输出。所以,过滤 器一般放在管道符中间。 每个程序起动时,就有三个文件描述:STDIN (0),STDOUT(1),STDERR(2)。用改变输 入,用改变输出,用2改变错误输出,用来追加到已有的文件中。 常用的过滤器如下:expand,sed,awk,fmt,tac,tr,grep,nl,pr。 tee 命令接收标准输入并将数据输出到标准输出和一个文件内。 多条命令可以输入到一行中,并用;字符分隔。在一行命令后加\表示另起一行继续 输入,下一行的提示符变为 printf( “\t”); 1.4 Shell 变量 ● Shell变量 (Variables)是程序用来保存数据用的。 ● Shell 特殊变量:系统定义了一些特殊的变量。如$HOME 等。使用 set 命令查看当时系统 中定义的变量。 系统定义的特殊变量有:$TERM (当前终端类型),$PATH (命令的搜索路径),$MANPATH (手册页存放的目录),$HOME (用户主目录),$LANG (当前使用语言),$PS1,$PS2 (命令提 示符),$SHELL (当前Shell 名)。 在命令行上打入:变量名=变量值,可以定义变量。使用 echo $变量名 查看变量值。 使用 unset 取消对变量的定义。 #hello=”123” 单引号表示忽略其中所有的转义字符,双引号表示忽略其中除了 $ ` \ 以外的其他的 转义字符。反斜线 (\)表示忽略下一个转义字符。 多条命令可以输入到一行中,并用;字符分隔。在一行命令后加\表示另起一行继续 输入,下一行的提示符变为 ● Shell 系统变量 $?:最近执行的命令返回的值; $$:本进程的进程号 $!:最近后台进程号 $#:shell 自变量个数,$1 表示第一个自变量 ● Shell 用户变量 #varname=value :赋值 #readonly varname :标记只读 #export varname :标记移出:变量可以被子进程继承 #setenv PATH=/home:/usr:/etc:/bin:/usr/bin: (csh 中) #varname=` expr $varname + 1 ` :变量值增 1 #x=$[ $x + 1 ] #echo $PATH 1.5 定制用户环境 ● 用户在登录 Shell 时,会依次执行一系列的脚本。 ● 使用 alias 命令,可以定义一些别名。 Alias ‘rm –f’ rm 登录 BASH 时,用户将依次执行一系列的脚本:/etc/profile , $HOME/.bash_profile ( 如果没有,执行 $HOME/.bash_login ,还没有,

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档