`

shell一些命令的测试(第六章 引用)

阅读更多

在fedora 12 下,学习还真的是件很郁闷的事情。Linux for QQ 经常报软件包错误就算了,大不了俺不上QQ。可以连自身带的FireFox也是自动退出,弹出软件包错误的提示!天啊,神人知道的,务必告知!

弄点了awk ,接下来就弄点shell的命令吧。那shell又是何方神圣呢?

Shell是一种具备特殊功能的程序, 它是介于使用者和 UNIX/linux 操作系统之核心程序(kernel)间的一个接口。也叫外壳!此处所指的shell是一种在UNIX/LINUX系统中的编程工具,他提供内置的命令,并能解释linux的命令,有自己的一套完整的语法规则,功能强大。

以下便是一些简单的测试。记录以下内容以便写所谓的实验报告!

=================单引号====================p2
示例:
在express查找:google
$grep google express
在express查找:google is
$grep google is express
思考:shell传了几个参数给grep? //google是参数 is 和express是文件夹
$grep ‘google is’ express
思考: shell传了几个参数给grep?

[root@biao LinuxTest]# cat express //express 的内容,以下所说的express文件都是此文件
"Open Source" is a good mechanism to develop programs.
apple is my favorite food.
Football game is not use feet only.
this dress doesn't fit me.
However, this dress is about $ 3183 dollars.
GNU is free air not free beer.
Her hair is very beauty.
I can't finish the test.
Oh! The soup taste good.
motorcycle is cheap than car.
This window is clear.
the symbol '*' is represented as start.
Oh! My god!
The gd software is a library for drafting programs.
You are the best is mean you are the no. 1.
The world <Happy> is the same with "glad".
I like dog.
google is the best tools for search keyword.
goooooogle yes!
go! go! Let's go.
# I am VBird

[root@biao LinuxTest]# grep google express
google is the best tools for search keyword.
[root@biao LinuxTest]# grep google is express
grep: is: 没有那个文件或目录 //此处的is表示的是文件或目录名,而不是字符串is
express:google is the best tools for search keyword.
[root@biao LinuxTest]# grep 'google is' express
google is the best tools for search keyword.
[root@biao LinuxTest]#

p4
tip:shell会忽略掉单引号内的所有特殊字符的原来作用。 而双引号则不会。
text =‘* means all files in zhe directory’
echo $text
echo “$text”
[root@biao LinuxTest]# text='*means all files in the directory' //变量
[root@biao LinuxTest]# echo $text
*means all files in the directory
[root@biao LinuxTest]# echo "$text"
*means all files in the directory
[root@biao LinuxTest]#

tip:双引号中,除了下面的三种字保留本意外,其他的被shell忽略:
1:$
2:反引号``
3:反斜杠/


p6 ====反斜杠=======
作用1:
等价与在一个字符前后加上单引号 //这是为了在双引号里面单引号失去作用,从而反斜杠可以替换
比较:echo > 和 echo /> //前者又语法错误 后者相当于‘>'
x=* 比较:echo $x 和 echo /$x
思考 :echo // 的作用? //是反斜杠失去原有的特有意义
[root@biao LinuxTest]# echo >
bash: syntax error near unexpected token `newline'
[root@biao LinuxTest]# echo />
>
[root@biao LinuxTest]# x=*
[root@biao LinuxTest]# echo $x
1.txt~ 4-awk.ppt awkfile awkfile~ ep~ epX express express~ grade grade~ nf nu result3 result3~ resultAWK.txt resultShell resultShell~ sub tot tot~ whos
[root@biao LinuxTest]# echo /$x
$x
[root@biao LinuxTest]# echo //
/

作用2:
当用于一行的最后一个字符时,表示换行。
$ lines=one
>two
比较:$ echo “$lines” ,echo $lines, echo ‘lines’
[root@biao LinuxTest]# lines=one
[root@biao LinuxTest]# echo "$lines"
one
[root@biao LinuxTest]# echo $lines
one
[root@biao LinuxTest]# echo 'lines'
lines

p8
练习:在终端上显示
<<< echo $x >>> displays the value of x,which is $x

显示的时候,第2个$x的值应该被替换,比如如果x=3,显示:
<<< echo $x >>> displays the value of x,which is 3

[root@biao LinuxTest]# x=3
[root@biao LinuxTest]# echo "<<< echo /$x >>> displays the value of x,which is $x"
<<< echo $x >>> displays the value of x,which is 3
[root@biao LinuxTest]#
p9
Shell 执行反引号中命令,并把该命令的标准输出插在命令所在的位置。
echo your current working directory is `pwd`
[root@biao LinuxTest]# echo your current working directory is `pwd`
your current working directory is /root/LinuxTest
[root@biao LinuxTest]#

p10
[root@biao LinuxTest]# cat nu
echo there are $(who |wc -l)users logged in
[root@biao LinuxTest]# ./nu //可能需要修改其权限 chmod +X 文件名
there are 3users logged in
[root@biao LinuxTest]# now=$(date)
[root@biao LinuxTest]# echo $now
2010年 04月 03日 星期六 18:09:40 HKT
[root@biao LinuxTest]# filelist=$(ls)
[root@biao LinuxTest]# echo $filelist
1.txt~ 4-awk.ppt awkfile awkfile~ ep~ epX express express~ grade grade~ nf nu result3 result3~ resultAWK.txt resultShell resultShell~ sub tot tot~ two whos
[root@biao LinuxTest]# echo "$filelist"
1.txt~
4-awk.ppt
awkfile
awkfile~
ep~
epX
express
express~
grade
grade~
nf
nu
result3
result3~
resultAWK.txt
resultShell
resultShell~
sub
tot
tot~
two
whos
[root@biao LinuxTest]# echo '$filelist'
$filelist
[root@biao LinuxTest]# namelist=$(cat names)
cat: names: 没有那个文件或目录
[root@biao LinuxTest]#

p12
[root@biao LinuxTest]# pwd //确认下当前的路径
/root/LinuxTest
[root@biao LinuxTest]# filename=/root/LinuxTest/express //复制路径
[root@biao LinuxTest]# filename=$(echo $filename |tr "$(echo $filename |cut -c 1)" "^") //暂时不知所云!
[root@biao LinuxTest]# echo filename
filename
[root@biao LinuxTest]#


p13
计算表达式的值,跟$((expression))一样
expr 1 + 2

i=1
i=$(expr $i + 1)

[root@biao LinuxTest]# expr 1+2 //??????????
1+2 //正确结果为3
[root@biao LinuxTest]# i=1
[root@biao LinuxTest]# i=$(expr $i+1)
[root@biao LinuxTest]# echo $i
1+1
[root@biao LinuxTest]#

意为:filename存放文件路径字符串,语句就是将文件路径字符串输入到管道,然后通过tr命令 将参数二转换为参数一。cut负责将从文件路径字符串中取出第一个字符。
最后输出结果:^root^LinuxTest^express

expr命令的参数必须以空格隔开。 如expr 1 + 2

分享到:
评论

相关推荐

    shell常用命令

    ### Linux Shell 常用命令知识点详解 #### 一、Shell基本语法与变量引用 **1. 变量声明与引用** - **1.1** `$`符号用于表示变量值:例如,如果变量名为 `NAME` 并且赋值为 `Mike`,则通过 `$NAME` 可以获取到值 `...

    shell编程和unix命令

    第6章 命令执行顺序 46 6.1 使用&& 46 6.2 使用|| 46 6.3 用()和{ }将命令结合在一起 47 6.4 小结 48 第二部分 文本过滤 第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 ...

    shell教程-30章,下了之后会让你大吃一惊,相当好

    第6章 命令执行顺序 46 6.1 使用&& 46 6.2 使用|| 46 6.3 用()和{ }将命令结合在一起 47 6.4 小结 48 第二部分 文本过滤 第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 ...

    Linux与Unix Shell编程指南(PDF格式,共30章)

    第6章 命令执行顺序 46 6.1 使用&& 46 6.2 使用|| 46 6.3 用()和{ }将命令结合在一起 47 6.4 小结 48 第二部分 文本过滤 第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 ...

    shell 编程大全指南

    #### 第六章:退出与退出状态 阐述Shell脚本的退出机制,以及如何设置和检查退出状态,确保脚本执行的可控性和健壮性。 #### 第七章:测试 从测试构造开始,逐步介绍文件测试操作符、比较操作符,以及如何进行嵌套...

    shell 编程指南pdf

    第6章 命令执行顺序 46 6.1 使用&& 46 6.2 使用|| 46 6.3 用()和{ }将命令结合在一起 47 6.4 小结 48 第二部分 文本过滤 第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 ...

    LINUX与UNIX SHELL编程指南(很全)

    第6章 命令执行顺序 46 6.1 使用&& 46 6.2 使用|| 46 6.3 用()和{ }将命令结合在一起 47 6.4 小结 48 第二部分 文本过滤 第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 ...

    常用的shell命令.pptx

    以下是一些常用的Shell命令: 1. **grep**: 用于在文件或标准输入中搜索特定模式的行。 2. **find**: 用于在文件系统中查找文件,可以基于文件名、类型、时间等多种条件。 3. **awk**: 数据处理工具,可以按指定...

    unix linux shell命令教程

    本教程旨在深入讲解Unix/Linux Shell命令,帮助用户更高效地操作这两种系统。 1. **Shell基础** - Shell是什么:Shell是一种命令解释器,它接收用户的输入并执行相应的系统命令。 - 常见Shell类型:Bash(Bourne-...

    Linux与unix shell编程指南

    第6章 命令执行顺序 46 6.1 使用&& 46 6.2 使用|| 46 6.3 用()和{ }将命令结合在一起 47 6.4 小结 48 第二部分 文本过滤 第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 ...

    shell脚本命令

    Shell脚本命令是Linux或Unix操作系统中用于自动化任务的编程语言。它是一种基于文本的脚本,通过在命令行上组合各种系统命令来执行一系列操作。Shell脚本为用户提供了极大的灵活性,允许他们创建定制的任务流程,...

    Shell脚本专家指南

    #### 第6章 测试变量和设置默认值 - **设置默认值**:展示了如何为未定义的变量赋予默认值。 - **变量替换**: - **:=句法**:介绍了一种为变量设置默认值的语法。 - **=句法**:另一种设置变量默认值的方式。 - ...

    绝版经典《Linux与UNIX Shell编程指南》

    第6章 命令执行顺序 46 6.1 使用&amp;&amp; 46 6.2 使用|| 46 6.3 用()和{ }将命令结合在一起 47 6.4 小结 48 第二部分 文本过滤 第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或...

    LINUX与UNIX SHELL编程指南 高清PDF

    第6章 命令执行顺序 46 6.1 使用&& 46 6.2 使用|| 46 6.3 用()和{ }将命令结合在一起 47 6.4 小结 48 第二部分 文本过滤 第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 ...

    CShell基础知识详解

    此外,任何一系列Cshell命令都可以存储在一个文件中,并通过调用Cshell来执行这些命令。这样的文件被称为shell脚本文件,而该文件中使用的语言则称为shell脚本语言。类似于其他编程语言,shell脚本语言也包含变量和...

    linux shell 编程教程

    第6章 命令执行顺序 46 6.1 使用&& 46 6.2 使用|| 46 6.3 用()和{ }将命令结合在一起 47 6.4 小结 48 第二部分 文本过滤 第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 ...

    LINUX与UNIX SHELL编程指南

    第6章 命令执行顺序 46 6.1 使用&& 46 6.2 使用|| 46 6.3 用()和{ }将命令结合在一起 47 6.4 小结 48 第二部分 文本过滤 第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 ...

Global site tag (gtag.js) - Google Analytics