- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 ,还没有,
您可能关注的文档
- LILO使用指南教案.doc
- TUV南德介绍幻灯片.pptx
- TUW_翼子板修边线展开培训手册教材.pdf
- TUXEDO简介与命令介绍.doc
- Lind-X6使用说明书解析.doc
- 车联网时代4S店汽车后市场解决方案课件.pdf
- tuxedo学习笔记课件.pdf
- TUX日常维护和管理.ppt
- lingo初级入门手册课件.ppt
- T梁裂缝处理方案教材.doc
- 2024_2025学年新教材高中生物第二章遗传的分子基础2DNA分子的结构和复制检测含解析苏教版必修.doc
- 2024高考语文一轮复习专题练3成语运用专练一含解析新人教版.doc
- 2024_2025学年新教材高中英语Unit3Familymatters单元质量检测含解析外研版必修.doc
- 2024_2025学年新教材高中生物第5章植物生命活动的调节单元素养等级测评新人教版选择性必修1.doc
- 2025届高考生物一轮复习第3单元细胞的能量供应和利用第10讲光与光合作用教学案新人教版必修1.doc
- 2024—2025学年山东省潍坊市青州市第一中学高二普通部上学期10月段考数学试卷.doc
- 2024_2025学年新教材高中英语UNIT4BODYLANGUAGE单元综合检测含解析新人教版选择.doc
- 2024_2025学年新教材高中生物综合测评二含解析浙科版选择性必修2.docx
- 部编版八年级上册道德与法治6.2做负责任的人课堂练习.docx
- 2024_2025学年新教材高中生物第4章基因的表达1基因指导蛋白质的合成检测含解析新人教版必修2.doc
文档评论(0)