主讲:张泽飞://ent.qq.com/a/20071202/000037.htm主讲:张泽飞•Shell的功能及种类•掌握Linux的各种常用命令•掌握使用Vi编辑文本文件的方法•掌握三种提高工作效率的方法•掌握重定向和管道的使用•了解使用Shell进行脚本编程的方法主讲:张泽飞Shell•Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器)。它接收用户输入的命令并把它送入内核去执行。起着协调用户与系统的一致性和在用户与系统之间进行交互的作用。•Shell在Linux系统上具有极其重要的地位硬件系统核心命令解释器Shell外层应用程序主讲:张泽飞Shell的重要功能•命令行解释•命令的多种执行顺序•通配符(wild-cardcharacters)•命令补全、别名机制、命令历史•I/O重定向(Input/outputredirection)•管道(pipes)•命令替换(``或$())•Shell编程语言(ShellScript)主讲:张泽飞Shell的主要版本是CShell的扩展。tcsh与csh完全向后兼容,但它包含了更多的使用户感觉方便的新特性,其昀大的提高是在命令行编辑和历史浏览方面。tcsh(csh的扩展)KornShell(ksh)由DaveKorn所写。它UNIX系统上的标准Shell。另外,在Linux环境下有一个专门为Linux系统编写的KShell的扩展版本,即PublicDomainKornShell(pdksh)。KornShell(ksh)bash是大多数Linux系统的缺省Shell。bash与bsh完全向后兼容,并且在bsh的基础上增加和增强了很多特性。bash也包含了很多Cshell和Kornshell中的优点。bash有很灵活和强大的编程接口,同时又有很友好的用户界面。BourneAgainShell(bash,bsh的扩展)说明版本主讲:张泽飞SHELL查看当前的shell:echo$SHELL或查看passwd文件系统中的shell除了要有执行文件必须在/etc/shells中cat/etc/shellsChsh–lChsh主讲:张泽飞文件目录操作命令-文件操作命令统计指定文本文件的行数、字数、字符数wc建立链接文件ln删除文件或目录rm移动文件或目录、文件或目录改名mv复制文件或目录cp生成一个空文件或更改文件的时间touch功能命令主讲:张泽飞文件目录操作命令-目录操作命令显示目录树tree删除空目录rmdir创建目录mkdir显示当前工作目录pwd切换目录cd显示文件和目录列表ls功能命令主讲:张泽飞文件目录操作命令-文本文件显示命令显示文本文件的前若干行或后若干行head、tail分页显示文本文件内容more、less显示文本文件内容cat、tac功能命令主讲:张泽飞文件目录操作命令-查找命令在制定的文本文件中查找指定的字符串grep在文件系统中查找制定的文件find查找系统文件所在路径whereis功能命令主讲:张泽飞信息显示命令显示和设置日期时间date显示当前语言环境locale显示当前内存和交换空间的使用情况free显示文件系统磁盘空间的使用情况df显示指定的文件(目录)已使用的磁盘空间的总量du显示系统启动信息dmesg显示操作系统信息uname显示主机名称hostname显示当前用户的id信息id显示用户自己的身份whoami显示在线登录用户who、w显示指定文件的相关信息stat功能命令主讲:张泽飞提高工作效率的方法•自动补全命令行(tab)•命令别名(alias和unalias).bashrc–alias[alias_name=’original_command’]–例如:$aliastype=‘cat’–unaliasalias_name–例如:$unaliastype•命令历史.bash_history–昀简单的方法是用上下方向键、PgUp和PgDn键来查看历史命令–常用命令历史操作举例:–$!命令事件号或命令前面的部分–即可快速重新执行已经执行过的命令。主讲:张泽飞Vi及其运行模式命令以回车结束运行vifilename命令模式键入ZZ编辑模式插入模式进入退出输入i,o,aESC键:•Vi是“Visualinterface”的简称。可以执行输出、删除、查找、替换、块操作等众多文本操作。•Vi的运行模式主讲:张泽飞Vi的基本操作•进入插入模式–基本命令:i,a,o•从插入模式返回编辑模式–ESC•编辑模式下的基本操作–G用于直接跳转到文件尾–/和?用于查找字符串–dd、YY、p分别用于剪切、复制和粘贴一行文本–ZZ用于存盘退出Vi;ZQ用于不存盘退出Vi•命令模式下的基本操作–:n1,n2con3用于块复制–:n1,n2mn3用于块移动–:n1,n2d用于块删除–:wq用于存盘退出Vi–:q!用于不存盘退出Vi–:q用于直接退出Vi(未做修改)主讲:张泽飞重定向•标准输入、输出–Stdin–Stdout–Stderr•输出重定向–、•错误输出重定向–2、&•输入重定向–、!…………!主讲:张泽飞管道•管道:将一个命令的输出传送给令一个命令,作为另一个命令的输入•使用方法:–命令1|命令2|命令3……|命令n•使用举例–$ls–Rl/etc|more–$cat/etc/passwd|wc–$cat/etc/passwd|greplrj–#dmesg|grepeth0–$ls-l|grep^d–$ls-l*|grep^-|wc-l主讲:张泽飞命令替换•Cmd1`cmd2argument`注意反引号•或•Cmd1$(cmd2argument)•例如:–$wall`date`–$cd`pwd`•$echoitis$(date)主讲:张泽飞作业控制•作业控制是指控制当前正在运行的进程的行为,也被称为进程控制。•常用命令或操作快捷键–Ctrl+d:终止一个正在前台运行的进程(含有正常含义)–Ctrl+c:终止一个正在前台运行的进程(含有强行含义)–Ctrl+z:挂起一个正在前台运行的进程–bg:在后台恢复运行一个被挂起的进程–fg:在前台恢复运行一个被挂起的进程–jobs:显示后台作业和被挂起的进程主讲:张泽飞进程指令•Ps–uax(-l显示进程优先权)•Jobs•Kill–9主讲:张泽飞Shell脚本及其成分•Shell是一个功能强大的编程语言。用Shell编写的批处理文件称为Shell脚本。•Shell脚本的成分–注释部分•以#开头的行–命令•在Shell脚本中可以出现任何在交互方式下可以使用的命令。–变量•既可以使用用户自定义的变量,也可以使用系统环境变量–流程控制•对命令的执行流程进行控制(顺序、分支、循环)主讲:张泽飞Shell的环境变量•环境变量是指由Shell定义和赋初值的Shell变量。•Shell用环境变量来确定查找路径、注册目录、终端类型及其名称、用户名等。•所有环境变量都可以由用户重新设置。•环境变量的定义方法–所有环境变量都是使用export命令输出的•exportvarName=Value–可以使用set命令进行定义•setvarName=Value主讲:张泽飞常用的环境变量•HOME用户主目录•PATH命令搜索路径•PS1命令提示符号•PWD用户当前工作路径•SHELL用户shell类型•TERM终端类型•LANG语言环境主讲:张泽飞设置用户工作环境•对所有用户进行设置–/etc/profile–/etc/bashrc•只对当前用户进行设置–~/.bash_profile–~/.bashrc•查看环境变量:setenv