SHELL与SHELL命令_第1页
SHELL与SHELL命令_第2页
SHELL与SHELL命令_第3页
SHELL与SHELL命令_第4页
SHELL与SHELL命令_第5页
已阅读5页,还剩107页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章第三章 shell与与shell命令命令 shell基本功能及种类shell基本概念I/O重定向与管道shell的启动基本shell命令 3.1 shell基本功能与基本概念基本功能与基本概念 shell是用户和Linux内核之间的接口程序 。shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。 shell一个解释型的程序设计语言,shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。 3.1.1 shell基本功能基本功能命令解释执行 文件名替换.输入输出重定向连通管道建立系统环境设置

2、shell编程 3.1.2 字符与保留字字符与保留字1. 字符 (1) 白空格 :空格键和Tab键(2) 通配符 *:代表从它所在位置开始的任何字符串。 ?:代表它所在位置上的任何单个字符。 :代表一个指定范围的字符。方括号中的字符范围可以由直接给出的字符组成,也可以由表示限定范围的起始字符、终止字符及中间的连字符“-”组成。 通配符示例通配符示例模式串意义*当前目录下所有文件名,但不包括.开头的文件。例如abc是但.abc不是*Text*当前目录下所有文件名中包含有Text的文件名,但不包括.开头的文件ab-dm*当前目录下所有以a、b、c、d、m开头的文件名ab-dm?当前目录下所有以a、

3、b、c、d、m开头且后面只跟有一个字符的文件名!ab-dm?ab-dm?当前目录下所有不以a、b、c、d、m开头且后面只跟有一个字符的文件名/dev/hd?目录/dev下所有以hd开头且只有三个字符的文件名(3) 注释符与注释注释符与注释在shell命令或shell编程中从字符“#”开始以后到行末的部分作为注释,因此以“#”开头的行是注释行。(4) 转义字符转义字符字符意义字符意义字符意义a响铃符x?16进制表示b退格键0?8进制f换页tTab键n换行v垂直制表符”(5) Linux系统的特殊键系统的特殊键 特殊键意义Ctrl+D结束当前程序输入或终止当前程序或从系统中注销Ctrl+C终止当前

4、程序的执行Ctrl+终止当前程序的执行(系统内部处理时不同于Ctrl+C)Ctrl+Z挂起当前程序执行,将推到后台Ctrl+S/Ctrl+Q暂停/继续屏幕的输出,必须配合使用ScrollLock暂停/继续屏幕的输出,开关键Ctrl+Alt+Del默认动作为重启系统Alt+F#字符终端切换。比如Alt+F2将终端切换至F2Ctrl+Alt+F#从图形介面切换终端到字符终端。比如Ctrl+Alt+F1从图形界面切换至F12. 保留字保留字 任何编程语言或系统都有一定数量的保留字,bashell的部分保留字如下:!,(,),break,continue,cd,echo,eval,exec,exit,

5、export,function,getopts,hash,pwd,read,readonly,return,select,set,shift,test,time,trap,type,ulimit,unset,umask,wait,for,do,done,case,in,esac,if,else,elif,if,while,until3.1.3 文件命名及文件类型文件命名及文件类型1. 文件与文件名 文件是被命名(称为文件名)的存储在某种介质(如磁盘、光盘和磁带等)上的一组信息的集合。UNIX/Linux的文件均为无结构的字符流形式。 文件名是文件的一种标识,一般情况下,它由字母、数字、下划线和

6、圆点组成的字符串来构成。 Linux支持长文件名,但要求文件名的长度限制在255个字符以内。 2. 文件类型文件类型UNIX/Linux系统中有三种基本的文件类型:普通文件目录文件设备文件(1) 普通文件普通文件 l普通文件是用于存放数据的文件,它是用户最经常面对的文件,它又分为文本文件和二进制文件。 l文本文件:此类文件以可阅读的ASCII码形式存储在计算机存储器中,它是以“行”为基本结构的一种信息组织和存储方式。l二进制文件:此类文件用户一般不能直接读懂它们,只有通过相应的软件才能对其进行操作。二进制文件一般是经编译程序编译后生成的可执行程序、图形、图像、声音等。 (2) 目录文件目录文件

7、 l目录文件用于存储一组相关的文件项信息,其中包括文件名及其属性的信息。在UNIX/Linux系统中它只包括文件名和i节点号等相关信息,而文件的属性信息保存在i节点信息中。目录文件在形式上同普通文件一样,但具有目录属性,只能目录管理命令来访问和管理。l一个目录文件内至少要有两个文件项:l.-当前目录;l.-上级目录。l目录文件的大小只能增加,尽管可以从目录中删除文件或子目录,但不能使目录变小。使目录变小的方法是删除后重建。l目录文件往往简称为目录或子目录,在图形界面下称为文件夹。因为目录也是文件,所以它的命名规则和文件命名规则相同。 (3) 设备文件设备文件 l设备文件是UNIX/Linux系

8、统的一个重要特色。UNIX/Linux系统把每一个I/O设备都看成一个文件,与普通文件一样处理,这样可以使文件与设备的操作尽可能统一。从用户的角度来看,对I/O设备的使用和一般文件的使用一样,不必了解I/O设备的细节。 l设备文件与普通文件和目录文件不同,它除了在目录文件和文件说明信息表(i节点)中占据相应的位置之外,并不占有实际的物理存储块。当用户使用设备文件时,可通过设备的名称得到其i节点,然后通过其中的主、次设备号取得与内核中的设备驱动程序的联系,从而达到访问设备的目的。 常见设备文件类型常见设备文件类型l块设备文件(b):以块方式存取的设备;l字符设备文件(c):以字符方式存取的设备;

9、l管道设备文件(p):用于进程间通信的FIFO“临时文件”。l名管道:主要用于有直接继承关系的父子进程之间的通信。当创建无名管道的进程结束后,无名管道自动消失;l命名管道:命令管道是一种特殊的设备文件,在文件系统里以名字形式存在。当通信结束后若不主动删除它,它不会自动消失,而仍以文件的形式存在在文件系统中。 l套接字文件(s):套接字分为文件套接字和网络套接字。文件套接字存在于文件系统中,让用户以文件的方式访问网络连接。 硬链接和符号链接硬链接和符号链接l符号链接(l):用于通过此文件的内容指向它所链接的文件或资源。可跨越文件系统或一个不存在的地方。l硬链接(-):两个或多个文件名共用一个文件

10、体,也就是说一个文件可以具有多个不同的名字,但具有相同的i节点号。3.1.4 目录结构与路径目录结构与路径1. 目录与目录结构 UNIX/Linux系统以文件目录的方式来组织和管理系统中的所有文件。所谓文件目录就是将所有文件的说明信息采用树型结构组织起来即目录。UNIX/Linux系统中,整个文件系统有一个“根”(root),然后在根上分“杈”(directory),任何一个分杈上都可以再分杈,也可以长出“叶子”。“根”和“杈”在Linux中被称为“目录”或“文件夹”,而“叶子”则是一个个的文件。在UNIX/Linux系统中文件系统的根目录用符号“/”表示。Linux是一个多用户系统,操作系统

11、本身的程序或数据存放在以根目录开始的某些专用目录中,有时被指定为系统目录。 RedHatRedHat Linux 9 Linux 9的录结构的录结构2. 工作目录、用户主目录与路径工作目录、用户主目录与路径 自从用户登录到系统中之后,每时每刻都“处在”某个目录之中,此目录被称作工作目录或当前目录(Working Directory)。工作目录用“.”表示,且可以随时改变。 用户刚登录到系统中时,其工作目录便是该用户主目录。root用户的主目录为/root,其它用户的主目录是在/home下的与登录名相同的目录。路径是指从树型目录中的某个目录层次到某个文件或目录路线。 对任一文件在文件系统中的位置

12、可以由相对路径或绝对路径来决定。绝对路径是指从“根”开始的路径;相对路径是从用户工作目录开始的路径。 3.1.5 shell命令解释及执行命令解释及执行在Unix/Linux系统中,命令格式如下:命令名 选项 参数 在Linux系统中默认的分隔符为白空格。 参数是Linux命令操作的对象,而选项则影响命令对对象的操作行为。 选项是由符号“-”引导的字符或字符串,“-”是必须的,Linux用它来区别选项和参数。在Linux系统中选项有两种形式:传统Unix风格的选项,以“-”开始,紧跟一个字符;GNU风格的选项,以“-”开始,紧跟着完整的英文单词来说明选项的意义。bashbash的命令行扩展与历

13、史特性的命令行扩展与历史特性bash命令行具有命令和文件名扩展特性。bash能列出指定目录下部分匹配的文件名来完成文件名扩展。 bash还允许用户对正在输入的命令行进行编辑。 Linux的回车后命令也被保留在历史记录中,通过光标键“”和“”上下翻动历史记录,对出现的当前记录可以进行编辑和使用。用户还可使用格式: history n若用户要重新执行某条历史记录的命令可以使用格式:!记录编号bash命令行编辑键命令行编辑键 编辑键意义Ctrl+A光标移至行首Ctrl+E光标移至行尾Alt+F光标前移至右一词末Alt+B光标后移至左一词前Ctrl+L清屏并在屏幕顶端重显当前行Ctrl+-恢复上一次的

14、操作Ctrl+K删除光标处至行末内容Ctrl+U删除光标处至行首内容Alt+D删除光标处至单词末内容Alt+DEL删除光标处至单词首内容Ctrl+W删除光标处左一词至词首内容Ctrl+Y将刚删除的内容插入到光标处3.1.6 环境变量与变量环境变量与变量1. 环境变量 shell在开始执行时就已经定义了一些和系统的工作环境有关的变量,用户还可以重新定义这些变量。环境变量可用命令env来查询。常用的shell环境变量有:HOME:根目录。 LOGNAME:登录用户名。IFS:命令行内部域分割符(白空格):空格,tab。PATH:命令搜索路径。TERM:终端的类型。PWD:当前工作目录的绝对路径名,

15、该变量的取值随cd命令的使用而变化。PS1:主提示符,默认情况下,超级用户的主提示符是#,普通用户主提示符是$。PS2:辅助提示符,提示用户继续输入命令的其余部分,默认的辅助提示符是“”。 2. 变量变量 在UNIX/Linux系统中,除了环境变量外,用户还可以定义自己的变量。定义后的变量就像在其它程序设计语言里一样被引用。 变量引用时需要使用“$”作为变量名的前导字符。 变量的定义方法:var_name=var_value 变量的使用:echo $var_name 3.1.7 标准流与输入输出重定向标准流与输入输出重定向标准设备,与标准流I/O重定向管道 标准设备标准设备当执行一个命令时,s

16、hell通常会自动为其打开三个标准文件,即标准输入文件、标准输出和标准错误。 文件号描述符使用设备标准输入0stdin键盘标准输出1stdout屏幕标准错误2stderr屏幕I/OI/O重定向重定向I/O重定向(也称作改道)是指通过文件的形式实现I/O输入和输出。I/O重定向可以通过以下符号实现:以覆盖方式实现输出重定向。:以追加方式实现输出的重定向。&:标准输出和标准错误同时重定向。 3.1.8 管道管道管道机制是在两个或多个进程之间建立一种连接,使得前一个命令的输出作为后一个命令的输入。管道机制常用于进程间的通信。实现管道机制的符号是“|”,其方法为: 命令1 | 命令2 | |

17、命令n有时候需要对某文件处理既要在屏幕上看到输出同时又要保存一个副本。这时使用管道与tee命令配合来实现。tee命令命令tee命令的功能是读取标准输入的数据,并将其内容输出到指定文件,其用法为:tee -ai 文件-a 追加方式。-i 忽略中断信号tee命令的使用示例如下:ls *.txt | tee f1 f2 #将当前目录的*.txt文件目录显示在屏幕上同时保存两个副本f1和f2 3.1.9 引号机制、命令替换与参数替换引号机制、命令替换与参数替换1. 引号机制在shell中引号分为三种:单引号(),双引号(”)和反单引号()。由单引号括起来的字符都作为普通字符。反单引号的作用是命令替换。

18、命令替换的另一种形式是:$(cmd) 它的作用与cmd相同。 双引号的作用与单引号的功能基本一样,可用来定义变量,所不同的是在双引号内可进行变量和命令替换。 反单引号与命令替换示例反单引号与命令替换示例x=pwd#通过命令pwd替换定义变量x。y=whoami#通过命令whoami替换定义变量yecho $x $y#显示变量x和y的内容MyVar=$(whoami) #通过命令whoami定义变量MyVarecho $MyVar $(pwd) #显示变量MyVar和$(pwd)的值双引号示例双引号示例string=$PATH#定义string变量echo $string#显示变量的值:$PAT

19、Hmyname=whoamimyself=I am a student, my uname is $myname and my work dir is pwd.myself1=I am a student, my uname is $myname and my work dir is pwd.echo $myselfecho $myself1单引号示例单引号示例lstring=$PATH#定义string变量lecho $string#显示变量的值:$PATHlmyname=whoamilmyself=I am a student, my uname is $myname and my wor

20、k dir is pwd.lmyself1=I am a student, my uname is $myname” and my work dir is pwd.lecho $myselflecho $myself1参数替换参数替换参数替换主要是指命令行参数的替换。在执行命令时,它的命令行参数也可以是变量,也可以包括命令替换。设有命令DispAllVar用于显示所有的命令行参数,有变量x其值为test parm,则命令DispAllVar I am whoami the value of x is $x的输出为:I am root the value of x is test parm在程序

21、的执行过程中whoami被替换为root,变量x的值被替换为其值test parm。 3.1.10 shell种类种类UNIX/Linux中的shell有多种类型,其中最常用的几种是Bourne shell(sh或bsh)、Bourne again shell(bash),C shell(csh)、tc shell(tcsh)、Korn shell(ksh)和Z shell(zsh)等。 3.2 shell启动启动 3.2.1 shell的启动与退出过程的启动与退出过程shell的启动流和工作过程如图3-2所示。用户登录过程中,在输入用户名和密码后,系统要检查以下文件:passwd:系统用户数

22、据库。shadow:影子密码和用户登录控制文件。group:系统组定义文件。如果用户名和密码合法,则启动shell,否则要求用户重新输入用户名和密码。shell的启动过程(续的启动过程(续)l在系统启动shell过程中,依次进行以下操作:l(1) 执行系统脚本文件/etc/profile;l(2) 在它的控制下再执行/etc/profile.d/目录的*.sh脚本文件;l(3) 执行用户profile文件/.bash_profile;l(4) 如果/.bashrc存在则执行之;l(5) 如果/etc/bashrc文件存在则执行之。l需要说明的是,以上步骤都是在当前shell内执行的(参见第十章

23、),目的是为用户设置环境变量或做相关准备。一切执行完毕之后出现系统提示符。shell的退出的退出l当用户通过(Ctrl_D、exit或logout)注销时,将调用用户家目录内的脚本文件.bash_logoutl若用户想让shell退出时做些事情,比如删除临时文件,则可将shell命令添加到.bash_logout文件。3.2.2 修改修改.bashrc和和. bash_profile文件文件 l用户可在shell的启动过程加入自己的内容,比如设置自己所需的环境变量。用户也可以在.bashrc和.bash_profile中加入自己的用户内容,一般是放在文件的最后,使其在一切都准备之后执行之。l这

24、样可以使用户在登录之后就进入某个规定程序,当其退出时用户也随之注销。因此可让用户只在某个规定封闭环境下工作,而不让其真正进入系统,从而也看不到系统的提示符,因而提高了系统的安全性。修改修改. bash_logout文件文件 l用户也做自己退出时做点工作。这些退出时做的工作是通过. bash_logout实现的。也就是说如果用户想在退出时让系统做点工作的话,可以将做工作“命令”加入脚本文件. bash_logout中。3.3 Linux系统的基本命令系统的基本命令l目录基本操作命令 l文件操作基本命令 l文本文件编辑与操作基本命令 l进程管理基本命令 l时间管理命令 l文件或目录比较命令 l其它

25、操作命令 3.3.1 目录基本操作命令目录基本操作命令 l列目录内容l目录创建l目录删除l目录切换l显示当前工作目录1. 列目录内容(列目录内容(ls)l功能:列目录内容l用法:ls 选项 文件 l参数:l-a:列所有文件及目录(Linux规定以点”.”开头为隐藏文件,默认情况下不会列出)l-A:同-a,但不列出.和.l-b:以八进制数字方式列不可显示的文件l-i:列目录时显示i节点信息l-l:长格式列表l-F:短格式列表,文件名称后加一符号表示属性:可执行文件加*,目录/l-r:将文件以相反排序方式列出(默认按文件名ASCII码值排序)l-R:递归列目录及其子目录l-t:按文件依修改时间排序

26、l-U:以不排序方式列目录lsls示例示例l1) 列出目前工作目录下所有名称是s开头的文件,按修改时间倒排序lls -ltr s*l2) 递归列/bin目录及其子目录lls -lR /binl3) 列当前目录,在目录名后加/,可执行文件名后加*lls AF 2. 建立子目录(建立子目录(mkdir)l功能:建立子目录l用法:mkdir -p -m MODE dirnames l参数:l-p-p:如果要创建的目录存在也不报错,必要时可一同创建父目录。l- - m, - mode=MODE:按照权限MODE创建子目录。l例: l1) 在工作目录下,建立一个名为temp的子目录lmkdir temp

27、l2) 一次创建多个目录lmkdir temp2 temp3 temp4l3) 在子目录temp下创建子目录child,若父目录不存在,则一同创建之lmkdir p temp5/child3. 3. 目录空删除(目录空删除(rmdirrmdir)l功能:空目录删除l用法为:lrmdir -p dirNamel参数:l使用-p参数,rmdir在删除一个目录时,若其子目录也是空的话,则一并删除。 l说明:l若所删目录非空则报错l例:lrmdir temp4. 4. 改变工作目录(改变工作目录(cdcd)l功能:改变工作目录l用法:cd dirNamel说明:当不带参数时将回到家目录(相关于cd $

28、HOME 或cd -)。l例: lcd /tmp#切换到目录/tmplcd /usr/bin#切换到目录/usr/binlcd . #切换到上级目录lcd #切换到家目录$HOMElcd -#回到刚刚离开的目录5. 5. 显示当前目录显示当前目录( (pwdpwd) )l功能:显示当前目录l用法:lpwd -P -Ll参数:l选项-P,-L分别用于显示当前目录的物理和逻辑位置,默认为后者。l示例:lcd /usr/tmplpwd -Plpwd -L 3.3.2 3.3.2 文件操作基本命令文件操作基本命令l1. 显示文件的内容或合并文件(cat)l2. 文本编辑命令(vi) l3. 分屏显示文

29、件内容(more) l4. 使用less命令浏览文件 l5. 修改文件存取时间或创建空文件(touch) l6. 删除文件(rm) l7. 使用mv命令给文件改名 l8. 文件和目录复制(cp) l9. 显示文件的开始或结尾部分(head/tail) l10. 文件的格式输出(pr) l11. 以指定格式或进制显示文件内容(od) l12. 显示文件或文件系统状态信息(stat) 1. 1. 显示文件的内容或合并文件显示文件的内容或合并文件( (cat)cat)l功能:显示文件的内容或合并文件l法为:cat -options filenames l参数或选项:l-E:在行末显示$符号-s:当多

30、个空行时只显示一个l-n:为所有行添加行号 -T:将Tab键显示为I(Ctrl+I)l-v:显示所有内容。除回车和Tab外,不可显示的字符用或M-表示(表示Ctrl键,M-表示Alt键)l示例:lcat test.txt#显示文件test.txt的内容lcat -n test.txt #显示文件test.txt的内容,并添加行号lcat *.txt#显示所有的*.txt文件lcat test1.txt test2.txt test.txt#合并lcat myfile#将从键盘输入内容保存到文件(Ctrl_D结束)3. 分屏显示文件内容(分屏显示文件内容(more)l功能:分屏显示文件内容l用法

31、:lmore -dflpcsu -lines +linenum | +/pattern filenamesl参数:l+/pattern:从第一个正规表达式pattern处开始显示l+linenum从第linenum行开始显示l-lines:指定满屏行数为lines,默认时为24行l-l:忽略L(换页)。默认时遇到L时会暂停l-s:压缩多个空行为一行more命令的屏幕操作命令命令的屏幕操作命令 命令功能命令功能Q/q/C退出!cmd执行shell命令=显示当前行行号:n下一文件#d/#b向前/后滖动#行:p上一文件空格向前翻一屏:f显示当前文件名和行号回车向前翻一行L重显本屏内容?/h帮助.重复

32、上一命令4. 使用使用less命令浏览文件命令浏览文件less命令和more命令一样都是分页处理命令,但是less命令的功能比more命令更强大。less命令提供了许多比more命令优秀的功能:可以使用光标键在文本文件中前后滚屏。可以用行号或百分比作为书签来浏览文件。可以实现在多个文件中进行复杂的检索、模式匹配、高亮度显示等操作。键盘操作与字处理程序如vi兼容。阅读到文件结束或者标准输入结束的时候less命令不会退出。屏幕底部的信息提示更容易控制使用,而且提供了更多的信息。带有许多的附件,包括一个独立的键定义程序lesskey,这样就可以定义和使用键来控制less命令。 5. 修改文件存取时间

33、或创建空文件(修改文件存取时间或创建空文件(touch)功能:修改文件存取时间或创建空文件(touch)用法:touch -acm -r ref_file -t CCYYMMDDhhmm.ss file touch -acm -t MMDDyy files 示例:1) 将文件的修改时间改为当前时间,若不存在则创建之touch myfile2) 修改文件的存取时间touch a t 200601010030 myfile yourfile3) 修改文件的修改时间touch m t 200706050403 myfiletouch m d ”Feb 2 2006 18:20” /tmp/tmpf6

34、. 删除文件(删除文件(rm)功能:删除文件用法:rm options file .参数:-i:删除前逐一询问确认(此为默认选项)。回答时y/yes表示确认,其它为放弃-f: 强迫删除,删除时不进行提示-r/-R: 递归删除。删除目录连同其子目录一起删除-: 删除以-开头的文件示例1) 删除文件rm myfile hisfile #交互式删除,删除前需要用户确认2) 删除文件和目录rm -r -f myf.c mydir #同时删除文件和目录3) 删除具有特殊名字的文件rm - -xyz #删除-xyz文件rm * #删除名字为*和的文件名 7. 使用使用mv命令给文件改名命令给文件改名功能:

35、文件更名或移动用法:mv options source destmv options source . Directory参数:-b:若需覆盖,则在覆盖前备份。行为受-S和-V参数影响,默认时在文件名后追加-f:参见rm -i:参见rm-u:若目标文件已经存在,则比源文件旧时覆盖,否则不覆盖-S suff:定义备份时使用的后缀为suff,默认为,与-b配合使用-V=:version-control控制。method可取值为:none/off:不备份;never/simple:按预设方式备份;t/numberd:文件名尾部增加备份次数,比如1,2;nil/existing:若已有备份方式则使用原

36、备份方式mv命令示例命令示例1)文件更名mv file1 file2 #若file2存在,在不使用备份时将被覆盖mv myfile /tmp/tmpf #将文件myfile移动至/tmp并更名为tmpf2)将文件fiel1,file2移动到目录mydirmv file1 file2 mydir3)#文件移动备份(续2)cp mydir/file12 . #将dir中的file1,file2重新复制回来mv -bf V”t” file1 file2 mydir #以备份方式移动文件ls mydir/file12* file1 file1.1 file2 file2.1 8.8.文件和目录复制(文

37、件和目录复制(cp)功能:文件和目录复制用法:cp options source destcp options source . directory参数-d:复制时复制符号链接,若不指定则复制符号链接指向的文件-p:复制源文件时除内容外,保留源文件的属性信息-l:不作复制,只创建硬链接-s:不作复制,只创建符号链接-R/-r:递归复制。复制目录是一同复制的所有子目录及文件示例cp file1 file2#将文件file1复制到file2,默认采用交互方式cp /tmp/myp.c .#将文件/tmp/myp.c复制到当前目录cp *.c *.txt /tmp #将文件*.c和*.txt复制到目

38、录,保持原文件名cp file1 /tmp/file2#将文件file1复制到/tmp并更名为file2cp -rp dir1 dir2#将目录dir1复制到目录dir2,且保持原属性cp -R file1 file2 dir1 dir2#将文件file?和dir1复制到目录dir2 9. 显示文件的开始或结尾部分(显示文件的开始或结尾部分(head/tail)功能:显示文件的开始或结尾部分用法为:head -num | -n num tail -num | -n num 说明:若指num则,则显示num行,否则只显示开始或结尾的10行。10.文件的格式输出(文件的格式输出(pr)功能:文件的

39、格式输出用法为:pr optioms files参数:(参见教材)示例:pr prog.c#按默认方式输出文件分2栏按默认方式输出文件pr 2 mytxt.txt#以对分方式分2栏输出文件mytxt.txtls /dev | pr a 3#以交叉方式分3栏显示/dev中的内容11. 以指定格式或进制显示文件内容(以指定格式或进制显示文件内容(od)功能:以指定格式或进制显示文件内容用法为:od options filesod -traditional files +offset +label 参数:-A type地址类型:d,o,x和n分别代表10,8,16进制和无地址,默认16进制-j:跳过

40、#个字符-N:只读入#个字符-t:设置输出格式。type:a,c,d#,f#,o#,u#,x# 分别为命名字符,字符,整数,浮点数,八进制,无符号整数和十六进制数,#为数字表示位数-w:设置每列的最大字符数为# -v输出时不省略重复的数据-traditional接收传统格式。传统格式可为:-a(-ta), -b(-toC), -c(-tc), -d(-tu2), -f(-tfF), -h(-tx2), -i(-td2), -l(-td4), -o(-to2), -x(-tx2)示例od -N32 ta a.out #按命名字符显示a.out前32个字符od tx1c a.out#按1位十六进制

41、和字符方式分别显示a.out内容 12. 12. 显示文件或文件系统状态信息(显示文件或文件系统状态信息(statstat)功能:显示文件或文件系统状态信息(stat)用法为:stat options FILE 参数:-f:显示文件所在文件系统信息-L:跟踪符号链接-cFORMAT:指定显示格式-t:精简模式示例:stat a.out#显示文件a.out的状态信息stat -f a.out#显示文件a.out所在文件系统的状态信息stat my_link#显示符号链接文件my_link的状态信息stat -L my_link #显示文件my_link的链接文件状态信息 3.3.3文本文件编辑与

42、操作基本命令文本文件编辑与操作基本命令 0. 文本编辑命令(vi)1. 字符串过滤命令(grep) 2. 使用sort 命令对文件排序 3. 使用uniq命令删除文件中重复的行 4. 文件内容信息统计(wc) 0. 文本编辑命令(文本编辑命令(vi)vi有三种工作模式:命令模式、编辑模式和命令项模式。命令模式:当进入vi时,它处在命令模式。在这种模式下,用户可通过vi的命令对文件的内容进行处理,比如删除、移动、复制等;也可通过命令进入编辑模式。编辑模式:用户可在命令模式下通过i,I,a,A,o,O等命令使vi进入编辑模式。在编辑模式下,用户能在光标处输入内容,或通过光标键移动光标。也可通过按E

43、SC键返回命令模式。命令项模式或叫底行模式:也是命令模式的一种,在命令模式下用户输入冒号后光标会跳到底行,输入相关命令后可完成指定操作。使用方式:vi -options files vivi的命令选项的命令选项+#:进入vi后光标直接定位到第#行-r/-L:列出当前目录内所有因vi非正常退出而残留的交换文件,以便恢复-r :从交换文件.*.swp中恢复文件-r file:从vi crash或非正常退出中恢复文件。-R:以只读方式编辑文件。使用此参数时,被编辑的文件不能回存,但可以另存。vi启动的常用方法启动的常用方法vi file:从第一行开始或上次退出时报光标处vi +# file:从第#行

44、开始vi + file:从文件尾开始vi +/pattern file:从指定的模式匹配处开始vi -r file:从瘫痪恢复vi -L/-r:从瘫痪中列恢复列表vi的插入模式功能键的插入模式功能键 键或命令功能描述键或命令功能描述i光标处插入I行首插入a光标后追加A行末追加o当前行下面插入新行O当前行上面插入新行 vi的删除的删除命令命令 命令功能描述命令功能描述x删除光标处的字符X删除光标前的字符d0从光标处删除到行首D从光标删除到行末dd删除光标所在的行dw删除光标后的一个word#d删除(含)光标所在后的#行#x删除光标所在处的#个字符 vi的的修改与替换命令修改与替换命令 命令功能描

45、述命令功能描述R/cc替换/修改一整行cw修改一个字C修改光标后的部分s替换光标处的字符S替换光标所在的行r替换当前一个字符R从当前字符开始替换vi的的搜索与定位命令搜索与定位命令 命令功能描述命令功能描述0定位行首/exp后向定位到exp:#定位到#行?exp前向定位到exp$定位行末/exp定位到行首为exp的行:$|G定位到文件尾/exp$定位到行末为exp的行n|N向前/后重复以前定位n,m?|/exp在n-m行前或后向搜索expvi的的搜索与替换命令搜索与替换命令 命令功能描述:s/exp1/exp2/g将当前行的exp1替换成exp2:n,ms/exp1/exp2/g将从n到m行中

46、的exp1替换为exp2:n,mg/exp1/s/exp2/g将从n到m行中的exp1替换为exp2:g/exp1/s/exp2/g将全文中的exp1替换为exp2 vi的的文件内容的移动、复制、删除和保存文件内容的移动、复制、删除和保存 命令功能描述:n1,n2d删除n1-n2行的内容:n1,n2w! file将n1-n2行内容写入文件file:n1,n2tn3将n1-n2行内容复制到n3:n1,n2mn3将n1-n2行内容移动到n3vi的的缓冲区使用命令缓冲区使用命令 命令功能描述Y/yy将当前行放入无名缓冲区P/p将缓区中的内容粘贴当前行的上/下一行”cyy将当前行放入缓冲区c”cd将当

47、前行删除,内容放入缓冲区c”cP/ ”cp将缓区c中的内容粘贴当前行的上/下一行vi的退出的退出 命令功能描述:w保存文件,但不退出:x保存文件,且退出vi:q退出(若文件已更改,则不能退出):q!不保存退出:zz保存文件且退出vi:wq保存退出:wq!保存退出:wfile将现行文件的内容,追加到文件file:w file将现行文件的内容,写入file:w! file将现行文件的内容,写入已存在的filevi的其它命令的其它命令 l.:重复上次执行的命令u:作废刚刚执行过的命令l:set nu:设置行号:set nonu:取消行号l:n:定位到下一文件:N:定位到上一文件lCtrl+G:显示当

48、前编辑文件信息Ctrl+L:刷新屏幕lJ:将下一行合并到当前行l:将光标处的字符进行大小写转换l:r file:读入文件到光标所在行的下方l:!cmd:执行shell命令cmdl:r!cmd:执行cmd并将其输出追加到光标处l:!:重复上次执行的shell命令l:e!:重新读入当前文件,作废以前所操作l:e file:放弃当前文件编辑,重新以file启动vi1. 1. 字符串过滤命令字符串过滤命令(grepgrep)功能:文件内容信息过滤用法:grep options pattern files grep options -e pattern | -f patternfile files常用参

49、数:-A/-B/-C num:在匹配模式的行后/前/前后各输出num行内容-b:在每行前显示以字符为单位的偏移量-c:不显示匹配内容,只显示匹配行数-E/-F:使用扩展正则/固定表达式,调用egrep/fgrep-e pattern 使用表达式pattern,用于保护以-开头的表达式-f patternfile:从patternfile中读取表达式-h:输出结果前面不带有文件名-i,-ignore-case:忽略大小写的区别-I:忽略二进制文件-l:若有匹配,每文件只输出一欠文件名,每个文件遇匹配后立即退出 -m NUM:在文件中搜索到NUM次出现时停止本文件搜索-n,-line-number

50、:输出时显示行号-q,-quiet:无输出,只有返回码。-v:反向搜索,显示不匹配的内容-w/-x:整字/行匹配模式字符串过滤命令字符串过滤命令grepgrep示例示例1) 使用固定表达式:在/etc/passwd内搜索root用户grep -F root /etc/passwd2) 多文搜索:在a*、b*和c*中搜索mytextgrep mytext abc*3) 流搜索:在当前目录内搜索文件名内含有x的文件ls | grep -E x+4) 反向搜索:在文件/etc/syslog.conf中搜索非注释行grep v ”#” /etc/syslog.conf2. 使用使用sort 命令对文件

51、排序命令对文件排序功能:对文件排序使用方式为:sort -b -d -f -g -i -k POS1,POS2 -M -m -n -o FILE -r -S SIZE -s -T DIR -t -u-z参数:见教材示例:1) 对文件按字典顺序排序sort fieli fileo #将filei排序后输出到fileo2) 以第二个域为键进行排序sort -k 2,2 infile #使用k指定绝对域号sort +1 -2 infile #使用相对量定义域号3) 以第二个域的第一个字符为键进行排序sort -k 2, 2.1 infilesort +1.0 -2.1 infile3. 使用使用un

52、iq命令删除文件中重复的行命令删除文件中重复的行功能:删除文件中重复的行用法:uniq options. infile outfile参数:-c:在输出行前加入在输入中连续出现的次数-s N:忽略N个字符-d:仅显示重复行-f N:忽略N个字段-D:显示所有重复行-w N:只比较前N个字符-u:仅显示不重复的行-i:比较时忽略大小写示例:#将输入文件中的非重复行保存到另一个文件中uniq ifile ofileuniq ifile ofile 4. 文件内容信息统计(文件内容信息统计(wc)功能:文件内容信息统计用法为:wc -c -m -w -l -L files 参数:-c:统计字节数-m

53、:统计字符数-L:统计最长行的字节数-w:统计单词数-l :统计行数示例:wc /etc/inittab #综合统计/etc/inittab内容信息wc w /etc/inittab#统计/etc/inittab的单词数wc l /etc/inittab#统计/etc/inittab的行数wc c /etc/inittab#统计/etc/inittab的字符数 3.3.4 进程管理基本命令进程管理基本命令 1. 进程树及进程状态查询(pstree) 2. 终止进程执行(kill) 1. 进程树及进程状态查询(进程树及进程状态查询(pstree)功能:进程树及进程状态查询用法:pstree -a

54、 -c -h|-Hpid -l -n -p -u -G|-U pid|user参数:pid:显示pid的子进程树user:显示用户user的子进程树-a:显示每个程序的完整命令行参数,括号内的表示被换出-c:不使用精简方式,默认情况下使用精简方式-h:突出显示正在执行的进程-H:突出显示指定进程,若指定进程不存在,pstree执行失败-l:长列格式显示树状图,默认情况下超长者将被截去-n:按pid排序,而非默认进程名排序-p:显示pid-u:显示用户名称。示例:pstree p | grep named #查询进程named的pidpstree apache#查询apache用户的进程2. 终

55、止进程执行(终止进程执行(kill)功能:终止进程执行用法:kill -s sigspec | -n signum | -sigspec pid | job.kill -l sigspec参数:-l signal:列出所有可用的信号名称-s sigspec-n signum-signum 发送的信号。可用的信号有HUP(1),INT(2),KILL(9),TERM(15)等示例:kill l#列出所有信号kill -9 323#发送信号9(KILL)终止pid为323的进程#终止名为named的进程pstree p | grep named #查询进程信息kill -9 1656#设命令输出中

56、named的进程号为1656,终止它 3.3.5 时间管理命令时间管理命令 1. 显示或设定系统的日期与时间(date)2. 使用cal命令显示日历 1. 1. 显示或设定系统的日期与时间(显示或设定系统的日期与时间(datedate)功能:显示或设定系统的日期与时间用法:date -d datestr -s datestr -u +form MMDDhhmmCCYY.ss参数:MMDDhhmmCCYY.ss:设置系统时间 +form:设置时间显示格式-d datestr:显示datestr中所设定的时间(非系统时间)-s datestr:将系统时间设为datestr中所设定的时间 -u:显示

57、目前的格林威治时间 说明:用户可以设定显示的格式,格式为一个+后接数个格式标记。如果是不以+作为开头,则表示设定时间,而时间格式为MMDDhhmmCCYY.ss。只有root用户才能设置时间。图形界面下也可设置时间。 date使用示例使用示例ldate#以默认格式显示系统当前时间ldate +%T%n%Dl#按指定格式显示系统当前系统时间,时间和日期各占一行ldate 01311010l#设置系统时间:1月31日10:10:00 CST 当年ldate -s “+2 minutes”l#将系统时间前提2分ldate -d “2007-01-01 00:00:00 CST” +%sl#仅转换而不

58、设置时间 (起始时间为19700101 0:00)l#将中国标准时间2007-01-01 0:0:0的时间字符的转换为秒date显示格式(一)显示格式(一) 标志作用标志作用%输出 %n换行%tTabTab%H小时(0023)%I小时(0112)%k小时(023)%l小时(112)%M分钟(0059)%p显示AM或PM%r直接显示时间(12小时制)%Z显示时区%S秒(0061)%T直接显示时间(24 小时制)%X相当于%H:%M:%S,但有所区别%s从1970年1月1日00:00:00 UTC到目前为止的秒数date显示格式显示格式(二二)标志作用标志作用%a星期几(SunSat)%A星期几(

59、SundaySaturday)%b月份(JanDec)%B月份(JanuaryDecember)%c直接显示日期与时间%d日(0131)%D直接显示日期(mm/dd/yy)%h同%b%j一年中的第几天(001.366) %m月份(0112)%U一年中的第几周(0053)(以周日为第一天)%W一年中的第几周(0053)(以周一第一天)%w 一周中的第几天(06)%x直接显示日期(mm/dd/yy)%y年份的最后两位(0099)%Y完整年份(00009999)2. 使用使用cal命令显示日历命令显示日历功能:显示日历用法:cal -smjy13 month year参数:-1:只显示1个月日历(默

60、认)-m:以星期一为每周的第一天方式显示。-3:显示以当前月为中心的三个月日历-j:按儒勒历(Julian Calendar)显示日历-s:以星期日为每周的第一天方式显示(默认)-y:显示当年历。示例:calcal 5 20083.3.6文件或目录比较命令文件或目录比较命令 1. 比较两个文件的内容(cmp) 2. 比较文件的差异(diff) 3. 比较两个已排序文件(comm) 4.显示文件行的指定部分(cut) 5. 连接文件的行(paste) 6. 连接两个文件的行(join) 7. 文本文件排版(fmt) 8. 文本文件包装(fold) 1. 比较两个文件的内容(比较两个文件的内容(cmp)功

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论