- 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。
多条命令可以输入到一行中,并用;字符分隔。在一行命令后加\表示另起一行继续输入,下一行的提示符变为
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 ,还没有,执行 $HOME/.profile)。注销时,会自动执行 $HOME/.bash_logout 。
使用 redhat 的用户,登录时除了这两个文件以外,还会自动执行 $HOME/.bashrc ,这个文件又会再执行 /etc/bashrc
1.6 条件控制
1)test命令
测试文件、变量的属性,表达式的值,或命令执行返回值。
test –d /usr ( [ -d /usr ]
test –f .bashrc ( [ -f .bashrc ]
test $count –gt 0 ( [ $count –gt 0 ]
2)if语句
您可能关注的文档
最近下载
- 2019年领导班子对照检查材料 [--镇领导班子对照检查材料].docx VIP
- 党课讲稿含PPT课件:二十届三中全会提出的新概念新观点新论断.pptx VIP
- 对照检查材料六个方面.docx VIP
- 加快建设现代化产业体系的具体内容 .pdf VIP
- 《变电站安全培训》.pptx VIP
- 2024新人教版生物学七年级下册《第三单元 植物的生活》大单元整体教学设计.pdf
- SBJ 17-2009 室外装配冷库设计规范及条文说明(高清版).pdf
- 本事詩(唐)孟啓新格式.pdf
- 推进现代化产业体系建设实施方案.pdf VIP
- AWS D1.1-D1.1M-2015(2016)结构钢焊接规范(中文版).doc
文档评论(0)