*安徽理工大学计算机科学与工程学院Linux开发基础DevelopmentFoundationonLinuxOS方贤进,Ph.
D&AssociateProf.
*OutlineShellprogrammingonLinuxOSGNUC/C++programmingCGIprogramminginC/C++languagePerlprogrammingCGIprogramminginPerllanguage*Section1ShellprogrammingonLinuxOS*1.
1WhatisShellShellisacommandinterpreter;Shellisaprogramminglanguage,whichincludesvariable,keywordsandallkindsofcontrolsentences;ThegenericShellonUnixOSisBourneShell(forshort,sh).
Thereareotherkindsofshell,C-shell,KornShell,etc.
*1.
2HowtocreateandexecuteshellscriptCreateashellScriptusingVIeditorForexample:$vitestWhereviisaneditor,testisthefilenameofshellscript.
*1.
2HowtocreateandexecuteshellscriptToexecuteashellScriptUsinginputredirection.
Let"sh"readcommandsfromshellscriptfilename.
E.
g.
$shShiftpositionargument*1.
3shell中的变量1.
3.
2ShellvariablesdefinedbyUsersdefinition:Variablename=string#delimitermaynotbeusedcitation$variablenameAsapartofastring#attheendofastringstring$variablename#attheheadofastringorinthemiddleofastringstring1${variablename}string2*1.
4shell中的特殊字符1.
4.
1WildcardcharactersinShell星号*问号一对方括号[]其作用是匹配该字符组所限定的任何一个字符,例如:f[abcd]可以匹配fa,fb,fc,fdf[a-d]与f[abcd]作用相同感叹号表示否定,例如f[!
a-d].
c表示以f打头、第二个字符不是a-d的.
c文件名*1.
4shell中的特殊字符1.
4.
2Shell中的引号双引号""由它括起来的字符,除$,`,\仍保留其特殊功能外,其余字符通常作为普通字符单引号''由它括起来的所有字符或字符串都作为普通字符出现.
倒引号``由此括起来的字符串被shell解释为命令行,其执行结果取代整个倒引号部分.
例如:$echocurrentdirectoryis`pwd`如果当前工作目录为/home/wang的话则输出结果为currentdirectoryis/home/wang*1.
4shell中的特殊字符1.
4.
3Shell命令执行的顺序操作符(1)顺序执行顺序分割符;例如:$cd/home/fang;ls–l;cata.
txt管道线|例如:$who|wc–l|writeroot(2)逻辑与Command1&&command2&&…&&commandn例如:$cptest1/home/wang&&cat/home/wang/test1(3)逻辑或Command1||command2||…||commandn例如:$cptest1/home/wang||ls-l*1.
4shell中的特殊字符1.
4.
4Shell中的注释符、反斜线及后台操作符(1)注释符#(2)反斜线\例如要显示字符$本身,就要用\$$echo"thisisa\$dollarcharacter"(3)后台操作符&$gccfile1.
c&*1.
5shell编程中的输入输出命令1.
5.
1Shell中的输入输出标准文件stdoutStdinstderr1.
5.
2Shell中的输入输出重定向,>>$cattest.
c>test2.
c#显示文件的内容到另一个文件$cat>file2.
txt#通过键盘输入建立一个文件file2.
txt,按^z作为文件结束符*1.
5shell编程中的输入输出命令1.
5.
3Shell中的输入输出命令Read…EchoEcho命令中使用的转义字符:\bbackspace,\c不将光标移动到下一行\ttable,本身,\f换页,\n换行,\r回车\0Nascii码的八进制N的字符,如'\101'表示字符'A'例如:$echo"abcd"$'\t'"efgh"*1.
6Shell中的程序控制结构语句1.
6.
1if语句if条件判断then命令1else命令2fi条件判断有"命令语句"和"测试语句"两种形式,命令执行成功则条件为真,返回值为"0",否则为假,返回值非"0"*1.
6shell中的程序控制结构语句1.
6.
2命令语句形式的条件判断例1:下面的一段代码首先判断一个指定的用户是否存在,若存在则给出信息,否则向操作系统中增加一个用户.
ifcat/etc/passwd|grep$1#$1为脚本的命令行参数thenecho"Therehasexisteduser$1inOS!
"elseuseradd$1fi例2:下面代码判断在当前工作目录中,一个指定的名字是目录、文件还是不存在.
iftest-f$1#$1为脚本的命令行参数thenecho"$1isagenericfile!
"elseiftest-d$1#elseif可以写成elifthenecho"$1isadirectory!
elseecho"$1isnotexisted!
fifi*1.
6shell中的程序控制结构语句1.
6.
3测试语句形式的条件判断格式1:Testexpression格式2:[expression]Example:reada#iftest$a-gt0#用test测试if[$a-gt0thenecho"$aisgreaterthan0!
"elseecho"$aislessthan0!
"fi*1.
6shell中的程序控制结构语句1.
6.
3测试语句形式的条件判断注意:如果使用shell变量,为保持完整,避免造成歧义,最好用双引号将变量括起来在任何运算符、圆括号、或方括号前后至少需要一个空格条件测试需要另起一行时,用\作为续行符.
HostKvm 商家我们算是比较熟悉的国内商家,商家主要还是提供以亚洲数据中心,以及直连海外线路的服务商。这次商家有新增香港和俄罗斯两个机房的高防服务器方案。默认提供30GB防御,且目前半价优惠至4.25美元起步,其他方案的VPS主机还是正常的八折优惠。我们看看优惠活动。香港和俄罗斯半价优惠:2021fall,限购100台。通用优惠码:2021 ,八折优惠全部VPS。我们看看具体的套餐。1、香港高...
印象云,成立于2019年3月的商家,公司注册于中国香港,国人运行。目前主要从事美国CERA机房高防VPS以及香港三网CN2直连VPS和美国洛杉矶GIA三网线路服务器销售。印象云香港三网CN2机房,主要是CN2直连大陆,超低延迟!对于美国CERA机房应该不陌生,主要是做高防服务器产品的,并且此机房对中国大陆支持比较友好,印象云美国高防VPS服务器去程是163直连、三网回程CN2优化,单IP默认给20...
特网云官網特网云服务器在硬件级别上实现云主机之间的完全隔离;采用高端服务器进行部署,同时采用集中的管理与监控,确保业务稳定可靠,搭建纯SSD架构的高性能企业级云服务器,同时采用Intel Haswell CPU、高频DDR4内存、高速Sas3 SSD闪存作为底层硬件配置,分钟级响应速度,特网云采用自带硬防节点,部分节点享免费20G防御,可实现300G防御峰值,有效防御DDoS、CC等恶意攻击,保障...