资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Acegene IT Co. Ltd.,*,Linux,操作系统,shell,和常用命令,周炯,上海艾基信息技术有限公司,1,Acegene IT Co. Ltd.,内容提要,1 shell,2,进程和,shell,命令行,2,常用命令,2,Acegene IT Co. Ltd.,1,、使用,SHELL,1.1,什么是,Shell,1.2,系统中有几种,Shell,1.3 Shell,脚本,3,Acegene IT Co. Ltd.,1.1,什么是,Shell,shell,提供了一个到,Linux,操作系统的界面以方便运行程序。事实上,,shell,也只不过是另外一个,Linux,操作系统程序而已。,shell,是一个命令解释器,它可以用来启动、挂起、停止甚至编写程序。,shell,是,Linux,操作系统的一个整体组成部分,也是,Linux,操作系统和,UNIX,设计的一部分。,4,Acegene IT Co. Ltd.,1.1,什么是,Shell,如果把,Linux,操作系统的内核想象成一个球体的中心,那么,shell,就是包围内核的外层。从,shell,或其他程序向,Linux,操作系统传递命令的时候,内核就会做出相应的反应。,用户,Shell,配置的位置,/etc/,passwd,5,Acegene IT Co. Ltd.,1.2 shell,这种,shell,的内建命令都有哪些?,怎样进行任务控制?,这种,shell,是否支持命令行编辑?,这种,shell,是否支持命令行历史记录?,什么是它的重要的开机启动文件或者配置文件?,各个,shell,的重要环境变量有哪些?,可以使用什么样的命令行提示符?,它支持什么样的编程框架?,6,Acegene IT Co. Ltd.,1.2,系统中有几种,Shell,ash,袖珍的,sh,兼容的,shell,由,Kenneth,Almquist,编写的,ash shell,是,Linux,操作系统上尺寸最小的,shell,之一。这个,shell,有,24,个不同的内建命令和,10,个不同的命令行参数。,bash,Bourne Again Shell(,与,ksh,和,sh,兼容,),bash,就是由,Brian Fox,和,Chet Ramey,编写的,Bourne Again Shell,,它是,Linux,操作系统上最流行的,shell,之一。,csh,对,tcsh,的一个符号链接,ksh,pdksh,,公共域,Korn,(,与,ksh,兼容,)shell,pdksh,shell,在,Linux,操作系统中叫做,ksh,。这个,shell,和商业化,UNIX,中的版本几乎是完全兼容的。,sh,对,bash,的一个符号链接,tcsh,与,csh,兼容的,shell,zsh,Z-shell,一个与,csh,、,ksh,、和,sh,兼容的,shell,7,Acegene IT Co. Ltd.,1.2.2 bash,bash,就是由,Brian Fox,和,Chet Ramey,编写的,Bourne Again Shell,,它是,Linux,操作系统上最流行的,shell,之一。它有,48,个内建的命令和十多个命令行参数。,可以使用方向键查阅以前输入的命令,(,历史记录功能,),可以对某个命令行进行编辑,敲入命令的一部分然后再按下,Tab,键获得其他部分,自动执行脚本,初始化设置文件,/etc/,rc,/etc/,bashrc,/etc/profile,用来设置全局,(,对所有用户都起作用的,),参数,比如环境变量或者在第一次登录进入的时候给你发送一条消息,(,比如一条欢迎标语,),。,用户子目录中的,.,bashrc,登录文件,控制,bash shell,启动运行方式或者对不同的击键,(,如退格键,),的响应;,用户子目录中,.,bash_profile,文件,,通知,s h e l l,在用户登录后系统应该使用哪一个资源文件。,8,Acegene IT Co. Ltd.,1.3,建立,Shell,命令脚本程序,shell script,(脚本文件),编辑文件,将其所有命令写入到该文件中,,添加执行权限,将该文件设置为可以执行,运行,9,Acegene IT Co. Ltd.,2 Shell,命令行和进程,2.1,对,shell,进行定制设置,2.2,进程管理,2.3,使用重定向和管道,10,Acegene IT Co. Ltd.,2.1,对,shell,进行定制设置,shell,包含了“环境变量”,重要的就是,$PATH,变量,$PS1,变量,alias,命令,显示环境变量,printenv,env,set,环境变量由资源文件预先定义,bash shell,全局性系统环境变量的资源文件,/etc/,rc,/etc/,bashrc,/etc/profile,用户定制的系统环境变量,/.,bashrc,/.,bash_profile,11,Acegene IT Co. Ltd.,2.2,进程的定义,Linux,是一个多用户多任务的操作系统。,多用户是指多个用户可以在同一时间使用计算机系统;,多任务是指,Linux,可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。,Linux,用分时管理方法使所有的任务共同分享系统资源。,进程,: Linux,系统上所有运行的程序都可以称之为一个进程。,进程的一个比较正式的定义是在自身的虚拟地址空间运行的一个单独的程序。,进程与程序是有区别的,,程序只是一个静态的指令集合,不占系统的运行资源;,进程不是程序,虽然它由程序产生。进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程序。而且一个程序可以启动多个进程。,12,Acegene IT Co. Ltd.,2.2,在后台运行程序,后台运行程序的意思是这个命令继续在内存中执行,而在这同时,shell,命令行的控制权已经返回到了控制台。,对巨型文件进行排序或者对子目录和其他类型的文件系统进行搜索等等操作都是可以放到后台去执行的好例子。,运行一个进程命令格式:,进程名,&,nohup,进程名,&,13,Acegene IT Co. Ltd.,2.2,报告进程状况,PS,ps,命令是进程查看命令。,ps,命令语法格式如下:,ps,option,ps,ax,ps,-,ef,常用选项说明如下:,-e,:显示所有进程。,-f,:全格式。,-u,:打印用户格式,显示用户名和起始时间。,ps,重要的输出字段,USER,进程所有者的用户名,PID,进程号,STAT,进程状态,常见的值有:,R,:可执行的。,S,:睡眠状态。,Z,:僵尸。,I,:空闲。,14,Acegene IT Co. Ltd.,2.2,结束进程,kill,结束进程的办法有:,组合键,:,当需要中断一个前台进程的时候,通常是使用,组合键;,kill,命令,:,该命令可以终止后台进程。,kill,命令的语法格式很简单,大致有以下两种方式:,kill -s,信号,| -p -a ,进程号,kill -l ,信号,命令中的参数说明如下:,-s,:指定需要送出的信号。既可以是信号名也可以对应数字。,-p,:指定,kill,命令只是显示进程的,pid,,并不真正送出结束信号。,-l,:显示信号名称列表,这也可以在,/,usr/include/linux/signal.h,文件中找到。,15,Acegene IT Co. Ltd.,2.2,休眠进程,sleep,命令可使当前正在执行的进程在规定的时间内处于睡眠。其使用的语法格式为:,$ sleep time,time,为进程将睡眠的时间,以秒为单位,16,Acegene IT Co. Ltd.,2.3,使用重定向和管道,重定向操作符,:,mysql,Database ,help ,helplist.txt,help ,helplist.txt,管道,:,|,ps,ax |,grep,ftpd,|,wc,- l,例子:,find /home -name *.doc |,xargs,fgrep,administration | less,find *.doc |,xargs,cat |,tr, n | sort |,uniq,| tee,dict,| less,17,Acegene IT Co. Ltd.,3,、常用命令,3.1,使用,man,命令获得帮助,3.2,浏览及搜索文件系统,3.3,阅读子目录及文件,其他命令,df,、,date,、,who,、,cp,、,mv,、,rm,、,mkdir,、,wc,、,vi,、,gcc,、,ln,、,nohup,、,nice,、,passwd,、,echo,、,mail,、,talk,、,du,、,grep,、,chown,、,chgrp,、,chmod,、,uname,18,Acegene IT Co. Ltd.,3.1,使用,man,命令获得帮助,man,可以得到几乎所有命令的有关信息,包括,man,命令本身。,# man,man,Linux,操作系统发行版本也为几乎每个程序、工具、命令或系统编程调用编制了使用手册页。存放在,/,usr,/man,的子目录下。,man,命令的使用手册页文件被命名为:,/usr/man/man1/man.1.gz,19,Acegene IT Co. Ltd.,3.2,浏览及搜索文件系统,3.2.1,使用,cd,命令进入不同的目录,3.2.2,使用,pwd,命令查看自己所在的位置,3.2.3,使用,find,命令在子目录中搜索匹配的文件,3.2.4,使用,whereis,命令查找文件,3.2.5,使用,locate,命令定位文件,3.2.6,使用,whatis,和,apropos,命令获取命令简介,20,Acegene IT Co. Ltd.,3.2.1,使用,cd,命令进入不同目录,输入,cd,命令,后面跟着一个路径名,就可以直接进入到另外一个子目录中去,#,cd,/,usr,/bin,#,cd,.,#,cd,./.,你总能够用下面的命令回到自己的用户子目录,(,也就是保存自己文件的子目录,),:,#,cd,或者,#,cd,21,Acegene IT Co. Ltd.,3.2.2,pwd,命令查看所在位置,pwd,(,显示工作子目录,),命令告诉你自己所在的位置,并显示当前工作子目录。例如,执行命令:,#,cd,/,usr,/bin,接着输入:,#,pwd,会看到:,/,usr,/bin,注意:,pwd,有内置命令和外部命令,22,Acegene IT Co. Ltd.,3.2.3,用,find,在子目录搜索文件,find,命令在硬盘驱动器上查找文件。,-name,按名字查找。比如说,如果想查找子目录,/,usr,中的,spell,命令,可以采用下面的方法:,# find /,usr,-name spell print,-,atime,按照日期查找文件,或者可以指定一个日期范围。例如查找最近一百天没有使用过的程序:,# find /,usr,/bin -type f -,atime,+100 print,-,mtime,按修改时间查找,如查找建立不到一天的新文件或者二十四小时内修改过的文件:,#find /,usr,/bin -type f -,mtime,-1 print,-,xdev,按,Windows,分区查找,,xdev,参数把查询操作限制在当前的文件系统之中,检索子目录下所有以,.sys,结尾的文件:,# find /,mnt,/dos -name *.sys -print ,xdev,23,Acegene IT Co. Ltd.,3.2.4,使用,whereis,命令查文件,whereis,命令 可以迅速地找到文件,而且提供二进制可执行文件、源代码文件和使用手册页存放的位置。,例如:,#,whereis,(-b),find,find,:,/,usr,/bin/find /usr/man/man1/find.1.gz,24,Acegene IT Co. Ltd.,3.2.5,使用,locate,命令定位文件,文件名数据库,(,updatedb,),locate,命令 在文件名数据库中检索文件名,检索要比搜索整个硬盘驱动器要快,# locate *.,ps,25,Acegene IT Co. Ltd.,3.2.6,whatis,和,apropos,命令简介,whatis,命令,:,从程序使用手册中抽出介绍,例如:,#,whatis,who,who(1) - show who is logged on,makewhatis,创建数据库,apropos,命令,:,查找可以执行某个操作的程序,man -K:,实现,apropos,命令同样的功能,其搜索过程会很慢,,搜索结果给出的是每个含有匹配字符串的使用手册页。,26,Acegene IT Co. Ltd.,3.3,阅读子目录及文件,3.3.1,使用,ls/ll,命令列出子目录的内容清单,3.3.2,使用,dir,和,vdir,命令列出子目录的内容清单,3.3.3,使用,cat,命令列出及合并文件,3.3.4,使用,more,命令阅读文件,3.3.5,使用,less,命令浏览文件,3.3.6,使用,head,或,tail,命令阅读文件的开头和结尾,27,Acegene IT Co. Ltd.,3.3.1,ls,:列出子目录的内容清单,ls,:,列出子目录内容清单,常用参数:,-l,长文件名列表,-a,显示所有文件(包括隐含文件),-m,把文件用逗号分隔显示在一行上,-x,按水平对齐的方式而不是缺省的垂直对齐方式列出文件,-F,特殊显示目录和可执行文件,-R,显示子目录,28,Acegene IT Co. Ltd.,3.3.2,ll, dir,和,vdir,:子目录的内容清单,ll,命令,:,相当于,ls,-l,参数,它缺省地列出文件的全部信息。,dir,或,vdir,命令。使用上与,ls,命令类似,但是使用了一些缺省的参数。,dir,命令 像普通的,ls,命令那样把文件按列对齐输出。,vdir,命令 像,ls,-l,参数,它缺省地列出文件的全部信息。,29,Acegene IT Co. Ltd.,3.3.3 cat,:列出及合并文件,cat,命令,:,把文件内容在屏幕上去显示。,-n,在阅读文件时显示行号,# cat -n,test.txt,cat,和重定向符“,” : cat,命令通过输出“重定向”把文件内容送到其他的文件中去。如:,# cat test* test3.txt,# cat,test.txt,test2.txt test3.txt,cat,和重定向符“,” :,文件合并,# cat,test.txt, test2.txt,cat :,创建新文件,输完文本内容后按下,Ctrl+D,组合键关闭这个文件。,# cat ,myfile.txt,30,Acegene IT Co. Ltd.,3.3.4,使用,more,命令阅读文件,more,命令,:,页命令使你在浏览文件的时候可以一次阅读一屏或者一行。,# more,longfile.txt,h”,键获得帮助。,空格键阅读后一页,也可以,b,键阅读前一页。,惊叹号,(!),,从,more,命令中去执行其他的命令,31,Acegene IT Co. Ltd.,3.3.5,使用,less,命令浏览文件,less,命令 页命令,但功能比,more,命令更强大。,Mark,Nudelman,编写,,less,页命令是许多程序,(man),的缺省页命令。,/,usr/bin/zless,命令 阅读压缩文件,(.,gz,),32,Acegene IT Co. Ltd.,3.3.6 head,或,tail,:阅读开头结尾,head,命令,:,用来显示文件开头,x,行:,head -n x,tail,命令,:,一直跟踪显示文件变化,tail -f filename,33,Acegene IT Co. Ltd.,A,Q,&,Q U E S T I O N S,A N S W E R S,练习,用,cat,命令显示,.,bash_profile,配置文件,用,env, set,显示环境变量,启动一个后台程序,然后杀掉该进程。,# ping,localhost,&,察看进程的,ID,ps,杀掉该进程,kill,练习重定向和管道,用,man,命令获得帮助信息,练习文件目录操作命令,cd,pwd,find,whereis,locate,ls,ll,dir,用,cat more less tail,命令操作文件,35,Acegene IT Co. Ltd.,
展开阅读全文