linuxVI与shell入门.ppt

上传人:sccc 文档编号:5381319 上传时间:2023-07-01 格式:PPT 页数:45 大小:222.01KB
返回 下载 相关 举报
linuxVI与shell入门.ppt_第1页
第1页 / 共45页
linuxVI与shell入门.ppt_第2页
第2页 / 共45页
linuxVI与shell入门.ppt_第3页
第3页 / 共45页
linuxVI与shell入门.ppt_第4页
第4页 / 共45页
linuxVI与shell入门.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《linuxVI与shell入门.ppt》由会员分享,可在线阅读,更多相关《linuxVI与shell入门.ppt(45页珍藏版)》请在三一办公上搜索。

1、Lesson07vi与Shell入门,复习,进程nice renice&Ctrl+C Ctrl+Z jobs bg fgps top killdmesg uptime who w whoami,内容提要,vi文本编辑器什么是Shell?BASH Shell变量与变量设置变量设置规则命令别名与历史BASH Shell的配置文件,vi文本编辑器,Linux/Unix下的配置文件都是文本文件vi是使用最广泛的编辑器vi分为三种工作模式:一般模式编辑模式命令模式,vi文本编辑器,vi的一般模式:以vi处理一个文件的时候,一进入该文件就是一般模式了(vi命令启动后的默认状态)。在这个模式中,可以使用上下

2、左右键来移动光标,也可以使用删除字符或删除整行来处理文件内容,也可以使用复制、粘贴。vi的编辑模式:在一般模式中可以处理删除、复制、粘贴等动作,但是却无法编辑。按下i,I,o,O,a,A等字母之后才会进入编辑模式,进入该模式后,左下方会出现INSERT或 REPLACE等字样。按下ESC就可以回到一般模式,vi文本编辑器,vi的进入编辑模式的命令详解i 从光标所在位置前开始插入文本I 将光标移到当前行行首,然后在其前插入文本a 用于在当前光标位置之后插入文本A 把光标移到行尾,从那里开始插入文本o 在光标所在行的下面新开一行,并将光标置于新行行首,等待输入文本O 在光标所在行的上面新开一行,并

3、将光标置于新行行首,等待输入文本,vi文本编辑器,vi的命令模式在一般模式当中,输入:或/就可以将光标移动到最底下那一行,从而进入命令模式。在这个模式当中,可以进行搜索、保存、退出、读取另外一个文件、显示行号等动作。,vi文本编辑器,图解vi的三种模式,一般模式移动光标查找 替换删除复制粘贴,编辑模式输入字符,命令模式读取保存显示行号,ESC,:/?,ESC,vi文本编辑器,vi的举例:输入 vi test.txt按下i,进入编辑模式输入hello按下Esc进入一般模式输入:wq回车保存退出,vi文本编辑器,vi一般模式下常用命令(1/3):h j k l用于光标左移、下移、上移、右移Ctrl

4、+f 屏幕向前移动一页Ctrl+b 屏幕向后移动一页0移到行的第一个字符处$移到行的最后一个字符处G移到文件的最后一行nG移动到文件的第n行n光标向下移动n行nH光标移到当前屏幕的第n行行首,vi文本编辑器,vi一般模式下常用命令(2/3):x 向后删除一个字符nx向后删除n个字符X 向前删除一个字符dd 删除光标所在的行ndd 删除光标所在行的向后n行yy 复制光标所在行nyy 复制光标所在行的向后n行p粘贴到光标的下一行P粘贴到光标的上一行,vi文本编辑器,vi一般模式下常用命令(3/3):/word 在光标之后查找word?word 在光标之前查找wordn向相同的方向移动到有word的

5、地方N向相反的方向移动到有word的地方u撤销上次操作.重做ZZ存盘退出ZQ不保存退出,vi文本编辑器,vi命令模式下常用命令(1/3)::n 跳到第n行:q退出,如果有修改没有保存会提示:wq 存盘退出:q!不保存退出:w存盘:w file将当前编辑内容保存到file:r file读取另外一个文件file的数据,插入到光标所在行的后面:f newfile 将当前文件重命名到newfile(别忘了保存),vi文本编辑器,vi命令模式下常用命令(2/3)::n1,n2s/word1/word2/g 在第n1与n2行之间寻找word1这个字符串,并将该字符串替换为word2:1,$s/word1/

6、word2/g 从第一行到最后一行寻找 word1 字符串,并将该字符串替换为word2(.可以表示当前行,$可以表示最后一行):1,$s/word1/word2/gc 从第一行到最后一行寻找word1字符串,并将该字符串替换为word2。且在替换前显示提示字符给使用者确认。,vi文本编辑器,vi命令模式下常用命令(3/3)::n1,n2 co n3 第n1行到n2行的内容拷贝到n3后:n1,n2 m n3 第n1行到n2行的内容移动到n3后:n1,n2 d删除第n1行到n2行的内容:!Cmd运行Shell命令Cmd:r!Cmd将命令行运行的结果写入当前位置:n1,n2 w!Cmd将第n1行到

7、n2行的内容作为Cmd的输入运行命令,如果没有指定n1和n2,则将整个文件作为输入。:set nu显示行号:set nonu隐藏行号,vi文本编辑器,vi练习:将/etc/man.config拷贝到当前目录,用vi打开显示行号,并移动到第62行查看内容移动到第一行,并且向下搜寻一下man将50到100行之间的man改为MAN,并且一个一个挑选是否需要修改修改完之后,突然反悔了,全部复原复制51到60行这十行的内容,并且贴到最后一行之后删除11到30行之间的20行将这个文件另存成man.test.config保存退出,什么是Shell?,想要听音乐需要什么?首先需要声卡操作系统的核心可以支持这个

8、声卡(有相应的声卡驱动程序)用户发出播放音乐的指令必须发出指令,硬件才会工作。如果可以直接同硬件沟通,那么不需要内核。否则,用户的指令必须先发送给内核,然后内核再去控制硬件。shell正是用户与内核沟通的平台:用户可以通过shell给内核发送指令内核也可以把指令执行的过程或者结果信息发送到shell给用户看。,什么是Shell?,来自第一讲的图:,什么是Shell?,想要听音乐需要什么?首先需要声卡操作系统的核心可以支持这个声卡(有相应的声卡驱动程序)用户发出播放音乐的指令必须发出指令,硬件才会工作。如果可以直接同硬件沟通,那么不需要内核。否则,用户的指令必须先发送给内核,然后内核再去控制硬件

9、。shell正是用户与内核沟通的平台:用户可以通过shell给内核发送指令内核也可以把指令执行的过程或者结果信息发送到shell给用户看。,BASH Shell,早年的Unix年代,Unix发展者众多,所以shell有很多不同版本,例如常听到的 Bourne Shell(sh)、在Sun中默认的C Shell、商业上常用的K SHell以及TCSH 等,每一种Shell都各有其特点。Linux 使用的是Bourne Again Shell(简称 bash),这个 Shell是Bourne Shell的增强版本,也是基于GNU的架构下发展出来的。,BASH Shell,第一个流行的shell是由

10、Steven Bourne开发出来的,为了纪念他所以就称为Bourne shell,或直接简称为sh。另一个广为流传的shell是由柏克莱大学的Bill Joy设计依赖于BSD版的Unix系统中的 shell,这个shell的语法有点类似C语言,所以才得名为C shell(简称csh)。BASH shell是GNU计划中重要的工具软件之一,目前也是 GNU操作系统中标准的shell,与sh兼容。,BASH Shell,BASH Shell的特点(1/5):命令记忆能力Linux可以记忆以前输入过的命令,只要使用上下键就可以找到以前执行的指令来执行。这些命令按照先后顺序记录在用户Home目录下的

11、隐藏文件.bash_history中.bash_history里面记录了上一次登录以前执行过的命令,本次登录执行的命令都保存在内存中,只有成功注销之后,内存数据才会刷新到.bash_history文件中有时候.bash_history文件中记录了你包含在指令中的密码,可能引起安全问题(如sqlplus sys/abcdefg as sysdba),所以最好还是设置命令的记录数量不要太大。,BASH Shell,BASH Shell的特点(2/5):命令补全补全功能如果在执行命令的时候不想按下太多的按键(例如命令pcprofiledump),在输入了 pcprofile 之后,再按下 Tab 键

12、的话,那么 bash 马上会自动的将后面的dump接上来。如果有重复的命令,那么按下两次 Tab 将会把所有重复的命令列出来。直接在提示字符后面连按两次 键,则系统会将所有可以使用的命令都列出来。例如,如果想要知道目前系统里面,所有以b开头的命令呢?就是按下 b 之后,连按两次就ok。,BASH Shell,BASH Shell的特点(3/5):文件名称补全功能如果用 vi 来读取某个文件,例如/etc/man.config 这个文件,那么可以输入 vi/etc/man之后,直接按下 键,该文件名称就会被自动的补上。同样,出现文件多个匹配项时,可以按下两个TAB键来显示所有匹配项。这样大大增加

13、了指令输入的正确率。,BASH Shell,BASH Shell的特点(4/5):命令别名设置功能假如我需要知道某个目录底下的所有文件信息(包含隐藏文件)及所有的文件属性,那么我就必须要输入ls-al 这样的指令。每次都输入多麻烦!可以通过为自己经常使用的命令(包括参数)定义别名来避免过多输入。例如:alias lm=ls-al(注意=两边不要有空格)那么以后lm就等于执行ls-al直接输入alias,可以显示目前以及定义好的所有别名,BASH Shell,BASH Shell的特点(5/5):任务控制,前台、背景控制bg fgCtrl+ZCtrl+CShell Scripts,变量与变量设置

14、,变量(1/2):假设JAVA安装在/usr/jdk1.5下面其他很多程序(比如应用服务器)的执行都需要JRE,这些服务的启动可能形如:/usr/jdk1.5/bin/java com.bea.WebLogicStart/usr/jdk1.5/bin/java com.bea.EJBContainer/usr/jdk1.5/bin/java com.bea.WebContainer那么假如JAVA换了其他目录,或者要使用其他版本(如jdk1.5-jdk6.0)呢?,变量与变量设置,变量(2/2):通常的做法是定义变量,如:JAVA_HOME=/usr/jdk1.5那么其他程序都用变量,而不用绝

15、对值,如:$JAVA_HOME/bin/java com.bea.WebLogicStart$JAVA_HOME/bin/java com.bea.EJBContainer$JAVA_HOME/bin/java com.bea.WebContainer那么假如JAVA换了其他目录,或者要使用其他版本(如jdk1.5-jdk6.0),那么只需要修改变量的值即可:JAVA_HOME=/usr/jdk6.0变量就是特定字符串值的别名,变量与变量设置,显示变量值的命令:echo用法:echo$variable例如:echo$PATH echo$HOME echo$MAIL echo$USER echo

16、$HOSTNAME查看所有Linux预定义变量的命令:env,变量与变量设置,重要的系统环境变量:HISTSIZE=1000=当前命令记忆数量HOME=/home/test=登录用户的Home目录HOSTNAME=test.adsldns.org=主机名称HOSTTYPE=i386=主机CPU等级(i386,i686.)LANGUAGE=zh_CN.UTF-8=默认语言,要修改它可以修改/etc/sysconfig/i18n文件MAIL=/var/spool/mail/root=邮件目录LOGNAME=root=登录帐号PWD=/root=当前路径PS1=uh W$=命令行提示符样式,变量与变

17、量设置,显示所有变量的命令:setset除了会显示出目前的环境变量之外,也会显示出用户自定义变量。常见的用户自定义变量有:BASH=/bin/bash=BASH主程序所在路径COLORS=/etc/DIR_COLORS=使用颜色COLUMNS=100=终端的字符列数HISTFILE=/home/vbird/.bash_history=历史命令文件MAILCHECK=60=每隔60s检查一次邮PPID=24572=当前bash父进程IDUID=500=当前用户的UID$=当前shell的PID?=最后一个命令的返回值,0表示成功,否则为1,变量设置规则,变量设置规则(1/2)变量与变量内容(值)

18、用等号连接等号两边不能直接接空格符变量名称只能是英文字母与数字,但是数字不能是开头字符若有空格符可以使用双引号或单引号来将变量内容括起来。注意:双引号内的特殊字符可以保有变量特性,但是单引号内的特殊字符则仅为一般字符必要时需要转义字符“”来将特殊符号(如回车换行,$,空格符,单引号等)变成一般符号,变量设置规则,变量设置规则(2/2)在命令中,如果需要其他命令的执行结果信息,可以使用 command 若该变量为扩增变量内容时,则需以双引号(有些版本也不用)及$变量名称(如:$PATH:/home)继续累加内容若该变量需要在其它子程序执行,则需要以 export来使变量生效,如export PA

19、TH通常大写字符为系统变量,自定义变量可以使用小写字符,方便区别(只是建议)取消变量的方法为:unset 变量名称,变量设置规则,变量设置实战(1/3)12name=VBrid=错误!变量开头不能是数字name=VBird=错误!等号两边不能直接接空格name=VBird=正确!echo$name显示VBirdname=VBird name=错!带空格需要加上双引号!name=VBird name=正确!name=VBirds name=正确!,变量设置规则,变量设置实战(2/3)aa=hexy name=$aaisme=达不到累加的效果,name与变量aaisme同值 name=$namei

20、sme=正确!echo$name 显示 VBirds nameisme PATH=$PATH:/home/test=正确的!echo$PATH将多了一段 PATH=$PATH:/home/test=正确!这个形式对于PATH来说也是正确的,变量设置规则,变量设置实战(3/3)hexyhexy$aa=abcdhexyhexy$bb=$aaaabbhexyhexy$cc=$aaaabb问题:现在aa bb cc的值是多少?abcdabcdaabb$aaaabb,变量设置规则,export命令让“局部变量”变成“全局变量”,这样shell设置的变量在其子shell中同样有效。但是不能跨越当前会话举例

21、:name=hexybash=进入子shellecho$name=显示空exit=退出子shellexport name=导出bash=进入子shellecho$name=显示hexy,命令别名与历史,设置别名的命令:alias可以减少输入量:在命令加参数比较长的情况下,定义别名可以提高工作效率。例如我们经常需要这样的命令“ls-al|less”,每次输入确实麻烦,那么如果定义别名 alias lm=”ls-al|more”那么以后只需要输入lm即可减少错误:如果直接输入rm删除文件,可能出现误删的情况,那么可以这样做:alias rm=”rm-i”提高操作习惯程度:比如我们习惯了DOS里面的

22、dir和cls命令,那么可以定义alias dir=”ls-l”;alias cls=”clear”,命令别名与历史,设置别名的命令(续):alias不带任何参数的alias可以显示当前定义的所有别名取消别名设置可以使用unalias命令举例:alias lm=ls-al|morelm=使用别名unalias lm=取消别名alias=查看新的别名设置情况,命令别名与历史,查看命令历史的命令:history用法:history number显示最近的number个命令,不指定number参数时,会显示所有历史命令,前面加编号,代表序号。如序号从13到1012,一共1000个,命令别名与历史,执

23、行历史命令的方法方法1:!number执行历史命令中编号为number的那个命令方法2:!command执行历史命令中最近一次以command开头的命令方法3:!执行上一条命令,BASH Shell的配置文件,系统设置(所有用户有效)/etc/profile设置系统范围内的环境变量:PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC。比如需要修改历史命令的记忆数量,可以在这里把 HISTSIZE=1000 这一行进行修改(一般改到50)。设置启动时执行的程序。例如/etc/profile.d/下面的所有.sh脚本都将被执行/etc/bashrc设置

24、登录之后需要设置的环境变量,例如其中定义了uid比99打的话umask设置为002,否则设置为022设置命令别名/etc/man.config定义了使用man命令时,查找man信息的路径,BASH Shell的配置文件,个人设置(只对本用户有效)/.bash_profile定义用户的个性环境变量以及需要运行的程序。如:JAVA_HOME=/app/java/jdk1.5.0_11 export JAVA_HOME PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin export PATH/.bashrcBASH的个性化设置,例如个人常用

25、变量以及命令别名/.bash_history命令历史/.bash_logout注销的时候执行的命令,默认只是调用clear清屏,可以把history-c加上(清空历史命令记录),BASH Shell的配置文件,执行文件的命令:source语法:source filename作用:在当前的shell环境中读取和执行filename中的脚本。如果修改了用户的配置文件,可以通过注销再登录来自动运行新的修改。也可以通过执行source命令使之生效。如:echo alias lsl=ls-al|less.bashrc lsl=无效 source.bashrc lsl=有效了,小结,vi编辑器一般模式:光标控制,删除,搜索,复制/粘贴编辑模式命令模式:保存,打开文件,查找替换变量:env set echo export unset历史与别名alias unaliashistory配置文件/etc/profile/etc/bashrc/etc/man.config/.bash_profile/.bashrc/.bash_logout,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号