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