《2Linux的用户接口》由会员分享,可在线阅读,更多相关《2Linux的用户接口(47页珍藏版)》请在金锄头文库上搜索。
1、Beyond Technology第二章 Linux的用户接口与文本编辑器Beyond TechnologyShelllShell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。 l实际上Shell是一个命令语言解释器,它解释由用户输入的命令并且把它们送到内核。Beyond Technologylshell是linux的一个外壳,它包在linux内核的外面,为用户和内核之间的交互提供了一个接口。当用户下达指令给操作系统的时候,实际上是把指令告诉shell,经过shell解释,处理后让内核作出相应的动作。而系统的回应和输出的信息也由shell处
2、理,然后显示在用户的屏幕上。Beyond Technologyl当用户打开一个终端时,一个交谈式的shell会跟着启动,并提示用户输入命令,当用户输入一个命令后,接着shell就开始工作了Beyond TechnologyShell的主要版本: l目前流行的shell:sh、ash、bash、ksh、csh、tcsh、zsh等Beyond Technologylsh:sh就是Bourne Shell的缩写,是UNIX系统最早的shell。在Linux里面,sh一般是一个符号链接到/bin/bashlash:是Linux中占有系统资源最少的一个shell,它只包含24个内部命令,使用起来不很方便
3、Beyond Technologylbash:bash就是Bourne Again Shell的简称,是Bourne Shell的扩展,完全兼容Bourne Shell。是GNU/Linux操作系统上默认的shellBeyond Technologylcsh:C Shell是一种比Bourne shell更适于编程的shell,是美国加州大学Berkeley分校开发出来的,具有和C语言相似的语法,但和sh不兼容,且占用的资源比较多。ltcsh:tcsh是Enhanced C Shell,是C Shell的一个增强版。 l其它:ksh、zshBeyond TechnologyShell中的命令规
4、则:l命令的一般格式是:l命令+选项+参数 l命令一般是小写字符串,注意区分大小写。l选项通常是以减号“-”加上一个或数个字符表示,当在一个命令中使用多个选项时,可以在减号后面把代表不同选项的字母合并起来。Beyond Technologyshell命令l在Linux早期的版本中,由于不支持图形化操作,用户基本上都是使用命令行方式来对系统进行操作。现在虽然有了图形化操作界面,但是掌握常用的一些Linux命令是非常方便的,下面介绍一些常用命令。lLinux 系统常用命令格式: command option argument1 argument2 .Beyond Technology常用命令:l1
5、. manman命令命令l功能:man命令用来详细了解某一个命令。单词“man”是“manual(手册)”的缩写,是各种命令用途说明的联机帮助页面,其中包括使用命令的格式,以及所有可供选择的选项。l格式:man选项命令名Beyond Technologyl说明:man命令实际上是一个文档命令,它从系统的帮助页中找到用户所需要查询的内容,然后将其显示出来。l例:查看man命令的说明信息。l man manl用户可以用上下箭头或上下翻页来阅读相关信息。阅读完毕,按“q”键退出。Beyond Technologyl2.exit2.exit命令命令l功能:本命令可以退出当前的shell,其作用相当于键
6、入“Ctrl+D”。l格式:exitBeyond Technologyl3.useradd或或adduser命令命令l功能:本命令用来添加用户。l格式:useradd选项用户名Beyond Technologyl4.passwd4.passwd命令命令l功能:本命令用来设置用户的密码。l格式:passwd选项用户名l例1:用户改变自己登录的口令。l$ passwd usernameBeyond Technologyl5、history命令historynhistory-a|n|r|wfilename (选项含义见表2-1)Beyond Technology练习1:l建立历史记录文件his.tx
7、t,并在文件内写入几条命令。用该文件内容更新历史命令列表;继续在终端中输入几条命令,再用历史命令列表中的命令更新系统默认的历史记录文件,最后将历史命令列表追加到前面创建的历史记录文件中。Beyond Technologyl6、命令替换l用户可以为命令创建别名,alias命令可以使用户为命令创建别名l如:alias la=ls -al注意:别名只是为命令赋予了另外一个名字,并没有取代原名l可以用unalias 命令删除已经定义过的别名Beyond Technology练习2:l用showhome代替ls /homeBeyond TechnologyShell的一些基本功能和特点l1、通配符l*:
8、代替任何长度的字符;l?:代替一个字符;l:选择代替,如ls sir123,等同于:ls sir1,ls sir2,ls sir3Beyond Technology练习3:l建立文件s1、s11、s2、s22、s3、s33,用命令dir通过通配符分别查找:ls1、s2、s3;ls11、s22、s33;l查找文件名以s开头的所有文件Beyond TechnologyShell的一些基本功能和特点l2、命令的解释l对于命令的解释,是shell最基本的功能,在shell提示符后输入一行命令,shell会接受用户的输入,交由内核来完成相应功能。Beyond TechnologyShell的一些基本功能
9、和特点l3、自动补齐lShell具备对命令进行自动补全的功能,当输入命令不完整时,可以通过按键来完成命令自动补齐Beyond Technology重定向和管道lLinux内核执行一个shell命令行时,通常会自动打开三个标准文件:l标准输入文件(stdin)l标准输出文件(stdout)l标准错误输出文件(stderr)lstdin对应终端的键盘lstdout和stderr个文件都对应终端的屏幕。Beyond Technology重定向和管道l三个标准输入输出系统缺省与控制终端设备相联系在一起的。因此,在标准情况下,每个命令通常从它的控制终端中获取输入,将输出打印到控制终端的屏幕上。l默认情况
10、下,每个命令都从键盘上获得输入,然后将它的输出和标准错误输出到显示器(或控制台窗口)Beyond Technology重定向和管道键盘命令显示器标准输入标准输出标准出错一条命令执行的语义Beyond Technology重定向和管道l以cat命令为例,cat命令的功能是从命令行给出的文件中读取数据,并将这些数据直接送到标准输出。若使用如下命令:$ cat /etc/passwdl将会把文件passwd的内容显示到屏幕上Beyond Technology重定向和管道l但是,如果cat的命令行中没有参数,它就会从标准输入中读取数据,并将其送到标准输出。例如:$ catHello worldHell
11、o worldByeBye$Beyond Technology重定向和管道l直接使用标准输入/输出文件存在以下问题:l输入数据从终端输入时,用户费了半天劲输入的数据只能用一次。下次再想用这些数据时就得重新输入。而且在终端上输入时,若输入有误修改起来不是很方便。l输出到终端屏幕上的信息只能看不能动。我们无法对此输出作更多处理,如将输出作为另一命令的输入进行进一步的处理等。l为了解决上述问题,Linux系统引入了另外两种机制,即重定向和管道。Beyond Technology重定向l以重新定义命令的 stdin和stdout,将它们重新定向。最基本的用法是将它们重新定义到一个文件上去,从一个文件获
12、取输入,输出到另外的文件中等l重定向:l输入重定向l输出重定向Beyond Technology输入重定向l输入重定向是指把命令(或可执行程序)的标准输入重定向到指定的文件中。也就是说,输入可以不来自键盘,而来自一个指定的文件。l输入重定向主要用于改变一个命令的输入源Beyond Technology输入重定向输入文件命令显示器标准输入标准输出标准出错输入重定向的语义Beyond Technology输入重定向l输入重定向用小于号()实现l语法:command input-filel例:$cat )实现l语法:command output-filel例:$cat newfilel该例子是从键盘
13、上获取输入,将键盘输入的信息写入文件newfile,“ctrl+d”结束操作Beyond Technology输出重定向l例1:lls ls.outlcat ls.outl例2:l$ ls /usr/bin /tmp/dir$ wc w ”符号后边指定的文件已存在,那么这个文件将被重写。l命令文件名可实现追加重定向,功能是把命令或可执行程序的输出结果追加到指定文件的最后,而该文件原有内容不被破坏。输出重定向Beyond Technology输入输出重定向的合并l输入和 输出重定向可以放在一起使用l语法:command output-filel目的:“命令”从输入文件读取输入而不是键盘,输出结果
14、送到输出文件而不是显示器l即:“命令”从输入文件读入输入,并将结果送到输出文件Beyond Technology输入输出重定向的合并输入文件命令显示器标准输入标准输出标准出错输入输出重定向的联合使用输出文件Beyond Technology输入输出重定向的合并l例:$cat file2lcat命令的输入来自文件file1,然后将输出送到文件file2,建立文件file1的备份file2 l输入输出重定向带来了极大的灵活性,可以将输出结果记录下来,也可以将程序所需要的输入使用文件提前准备就绪,这样一来多次执行就不需要重新输入。Beyond Technology管道lLinux允许一条命令的标准输
15、出成为另一条命令的标准输入l可以用管道(|)来实现命令1管道命令2管道命令N命令1的输出命令2的输入命令N的输入N个命令的管道语义Beyond Technology管道l语法:lcommand1 | command2 | commandNl目的:命令1的标准输出连接到命令2的标准输入,命令2的标准输出连接到命令3的标准输入,命令N-1的标准输出连接到命令N的标准输入Beyond Technology管道l管道允许用户将一条命令的标准输出作为另一条命令的标准输入l用管道连接的那些命令称为过滤器(filter)l过滤器是一组Linux命令,他们从标准输入得到输入,经过一系列指定方式的处理,将结果送
16、到标准输出lLinux中一些复杂任务没有办法用一条命令解决,所以管道和过滤器十分有用Beyond Technology管道l例1:l命令:ls -l | morel命令more将命令ls -l的输出作为它的输入。l这条命令将ls -l的输出作为more的输入并没有用到磁盘,管道是在内存中实现的l例2:$ ls /usr/bin|wc -wBeyond Technology管道l例:若有一个文件需要排序,该文件名为:students,而且有一些重复行,只需要在排好序的文件出现一次lsort students students_sortluniq students_sortl同样地,这项任务可以用管道的单条命令实现:lsort students | uniq