- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Lec05实验指导详解
Lec05: 基础命令行操作
学习目标
理解什么是操作系统
理解命令行的分解
了解PATH变量的作用
理解printf和echo命令比的优势
掌握常用命令的常见使用方式
实验过程
理解命令和PATH
1.1查看PATH变量
我们可以用echo命令对带有$前缀的PATH变量求值,得到PATH变量列表
echo $PATH
得到的结果如下图:
图1 实验虚拟机中的PATH变量值
我们可以看到,整个列表共有__7___个目录,目录间用__:_作为分隔符将信息相互分开。输入一条命令时,shell会从前到后逐个查看这些目录,看其中有没有以该命令为名的文件。
1.2命令存放的位置
大家已经学到了几条简单的命令,那么这些命令存在哪儿呢?我们可以通过which、whereis和type来找到一些线索。
which命令告诉我们包含某一条命令的目录,例如我们输入
which grep
shell就会依次搜索PATH的目录,找到名为grep的文件位置,返回该文件所在的目录。
whereis命令和which比,搜索范围更大,不会只在PATH中搜索。但这两个命令都不是POSIX标准支持的。
再试试 whereis grep吧。把两个命令的结果截图,看看是不是whereis找的范围更大一些?
图3 which和whereis
还有一个问题,其实并不是所有命令都是文件,有一些是内置在shell中的,但which和whereis不会考虑这种可能性。例如当我们想查找上周学的echo命令,which命令会告诉我们:
图4 which找echo的结果
但事实上,这并不是运行echo命令时执行的文件,现代shell中内置了echo,不信你用type来找一下echo,输入type echo,得到结果如下图:
图5 type找echo的结果
看到了吧,type说echo是系统内置的命令。
命令结构
2.1命令是可以添加参数的先运行一个ls试试,然后再输入ls –F(注意s和-之间有空格,F是大写),将结果截图,并对比效果
图6 带参数的ls效果对比
我们发现,带有-F参数的ls效果为___目录____后边加了__/__符号,这样方便我们区分哪些是目录哪些是文件。
如果没有空格会怎么样呢?试试ls-F(中间不加空格),将结果截图:
图7 如果命令和参数中间不加空格会怎么样
所以啊,一定要记得在命令和参数之间加空格!
那么我们能不能同时加好几个参数呢,试试下面这条命令吧!(记得每个参数之间都有空格)
ls –l –a –t
图8 有多个参数的ls命令
输入好多-和空格太麻烦了?那试试看ls –lat,或者ls –atl,一样的效果哦!
这说明什么呢?参数的顺序对于ls命令来说是必须的吗?
Ls后的参数是有一定顺序的。
命令的简单应用
3.1其实我们不用在一条命令之后再输入下一条命令。比如我们可以在同一行中输入下面的内容:
who ; ls
有什么效果?截个图吧!
图9 同时输入两条命令的执行结果
3.2有的时候,一个命令行可能并不能在一个行内结束,比如echo命令,尝试输入以下内容(括号里的是提示,不需要输入):
echo “This is (此时按下回车键)
a three-line (此时按下回车键)
test message”(此时按下回车键)
效果如下:
图10 多行命令的输入效果
我们可以发现,辅助符号____符号的出现,表示命令行还没有结束。
3.3再来教几个高端的玩法
有一个上次已经讲过了,就是我们可以把一条命令的结果重定向到另一个地方,比如
who userlist.txt
就会把who命令的结果直接写入userlist.txt文件中,并且不会回显在终端。你可以像使用windows一样,通过图形界面找到这个txt文件并打开(用终端打开的方法,过几周会学到)
还有另外一个东西叫管道,我们会在下一部分重点讨论这个东西。可以先尝试一下,比如(输入中间的|是键盘+号右边那个键\号和shift键一起按)
who | wc –l
就会把who的结果当作wc命令的输入(就像在两条命令之间建立了一个管道,连通了一样),wc本身是shell自带的一个计算器,所以最终输出的wc命令的结果、就是当前已经登陆用户的数目。将结果截图并粘贴在下面:
图11 管道效果
如果现在不大懂也没关系,我们过几周会再遇到这个。
echo和printf
4.1echo会在终端上显示一些消息,比如
echo “my name is student”
将结果截图:
图11 echo回显消息
我们发现,echo会把字符串回显在终端上。echo后边不仅可以跟字符串,还可以对一些变量求值,比如
echo $SHELL
除此之外,我们还可以在echo后写一些带有转义字符的语句,但是需要在echo后使用-e标
文档评论(0)