版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业第2章 Linux基础本章提要:本章介绍如何使用Linux、Linux的用户界面、Linux基础命令、Linux文件系统、Linux文件属性、Linux文件备份和压缩以及进程管理。此章属于入门知识部分,读者熟练掌握本章各知识点,对后章能熟练操作Linux系统至关重要。2.1 使用Linux2.1.1 开机用户接通Linux主机电源以后,首先会进入一个引导界面,如图2-1所示。下面以RedHat 9的grub为例。图2-1在上图的框内,有一个可以上下移动的光标,可以选择你
2、想进入的操作系统或者模式,然后按Enter键进入系统。2.1.2 注册用户接通Linux主机电源,主机显示启动有关信息,稍待片刻显示RUTU界面,如图2-2所示,表示处于注册状态。图2-2此处显示了所用Linux的发布版名称,代号以及核心版本、机器类型等信息。不同的发布版都有类似的界面。2.1.3 控制台操作出现系统提示符后,表示系统处于待命状态,此时用户可以输入Linux能够接受的命令,Linux下命令的格式一般是: - - 其中,可选项决定命令执行的形式,一条Linux命令能附带的可选项多达数十种,它们之间的组合数目就更加庞大了。而参数则是命令执行所需提供的一些相关信息。有一些命令可以完全
3、不用参数,而有一些则可能需要许多参数。注意:Linux的命令、可选项、参数均区分大小写。在输入命令的过程中如果发现输入出错,可按键盘上的退格键往回删除刚输入的出错字符,再重新输入。如果出错的字符位于离光标当前位置较远的地方,也可以用左光标键将光标移至出错字符处右端,再按退格键删除,若是漏打字符则可在该处重打插入。按上、下光标键可以使用以前打过的命令,当经常需要运行某条形式相似的命令时,此功能特别有用,甚至还可以返回以前注册时使用过的命令。输入的命令以回车结束,系统将分析用户输入的命令,如果该命令不正确,系统将给出错信息,如果命令正确,系统将执行该命令所对应的功能,如图2-3所示。图2-3命令运
4、行过程中,会在用户所在终端的屏幕(标准输出)输出该命令运行的一些信息和结果。若输出的内容较多,一个屏幕容纳不下,屏幕将会把原有内容上翻,新的内容继续在后面显示,如果屏幕翻滚速度太快,用户为了看清输出的结果,可以用+s组合键暂停输出,然后,按+q又可重新恢复输出。命令执行完毕后,将返回系统提示符下。此时,用户又可以继续输入下一条命令,如此往复,直到用户退出为止。若一条命令运行了很长时间都没有停止,用户可以用组合键+c中断该命令的执行,重新返回提示符。2.1.4 进入图形界面(1)用超级用户登录Linux,再运行startx,如图2-4所示。图2-4(2)输入Enter,出现一系列的信息以后,按提
5、示输入。2.1.5 远程管理LinuxLinux有个比较方便的管理方法远程登录。现在比较常用的远程管理方法有Telnet和SSH。Telnet是以前比较常用的一种管理工具,只要在Server上面启动Telnetd程序,并且联通了Internet,那么,就可以从Internet的任何一个地方来管理它了。但是telnet在所有的指令传送过程中都是使用明文的,就连用户名密码都不例外。所以,在考虑安全问题的前提下,经过SSL加密的SSH工具就成了人们登录管理远程计算机的比较理想的工具。在Linux中使用SSH客户端。命令格式:ssh l 如登录远程域名为的机器:rootibm root# ssh -l
6、 zgy The authenticity of host () cant be established.RSA key fingerprint is 87:94:0a:0a:c9:64:51:46:c4:2a:39:d4:1a:55:4c:46.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added localhost (RSA) to the list of known hosts.zgys password: Last login: Sat Dec 6 21:29:25 20
7、03 from roottest root# 在Windows中使用SSH登录工具。支持SSH的常用工具有Sterm、SecureCRT 等等。现在用SecureCRT 来举例。(1)首先安装SecureCRT。运行SecureCRT,如图2-5所示。图2-5(2)单击“New Session”,弹出如图2-6所示对话框,在Name中输入好记的名字,在Protocol中选择协议,一般有ssh1和ssh2两项可以选择,一般服务器两者都支持。图2-6(3)在“connect”对话框(如图2-7所示)中,选择你想远程管理的设备,然后单击“Connect”。(4)如果是第一次登录,客户端会要求生成密钥
8、。在“New Host Key”对话框中单击“Accept & Save”即可,如图2-8所示。 图2-7 图2-8(5)输入用户名。在RedHat中默认可以用超级用户登录,用户名区分大小写,如图2-9所示。(6)输入刚才输入的用户名对应的密码,区分大小写,如图2-10所示。 图2-9 图2-10(7)登录完成以后的界面如图2-11所示,这样就可以对远程计算机进行操作了。图2-112.1.6 注销当用户停止使用Linux时,需要向系统注销,使终端回到“login:”状态,以让其他用户继续使用该终端注册进入主机。进行注销的命令是:logout或者exit 有时,也可用组合键+d进行注销,用户在连
9、线期间运行的尚未完结的程序,除非有特别的指定,将同时被终止。2.1.7 关闭系统关闭Linux主机是系统管理员的工作。切记千万不要直接切断电源。1. Shutdown停止系统的一种安全和周到的方式shutdown 首先关闭系统,常用的有:-r 关闭系统后重新启动。-h 关闭系统后进入停机状态。-k 不真正关闭系统,只是向各用户发送警告信息。表示关闭系统的时间,使用Linux系统惯用的POSIX标准时间格式字符串,形式如下: 的格式为:hhmmhh为24小时制记时,mm为分;如果采用12小时制,在hhmm后要加上am或pm加以区别。例如时间串“1305”及“0105pm”均表示13时5分。有几个
10、特别的,它们是:NOON(正午12:00),MIDNIGHT(午夜00:00),TEATIME(下午16:00),now(现在)。now有时可省略不写。格式为:MMDDYYMM表示月,DD表示日,YY表示年份,或: 此处使用英文缩写。例如“JAN 12 1999”、“JAN 12”。日期串也可用TODAY表示当天,TOMORROW表示明天,或用MON、TUE、WED、THU、FRI、SAT、SUN等分别表示下一个星期一到下一个星期天。表示“之后”,写法为:+可以是minute(分钟)、hour(小时)、day(天)、week(周),必要时使用复数。例如:“+15minutes”表示15分钟之后
11、,“+1week”表示一周后等等。例如:请写出以下标准时间格式串:(1)1999年1月20日下午2时16分。答案:1416 JAN 20 1999(2)2周之后的上午10时。答案:10am +2weeks(3)15分钟之后。答案:now+15minutes或+15minutes是用双引号括住的字符串,表示在关机前首先向各在线用户发出的警告信息。例如:shutdown r +5minutes System will reboot in 5 minutes! 表示在5分钟后将关闭系统并重新启动,每个在线用户都会收到相应信息。Shutdown h now表示马上关闭系统并停机,此时控制台上将显示如图
12、2-12所示。图2-12提示系统已经停机。系统管理员也可在主机键盘上按+键,其作用等价于“shutdown r now”,待用户重新启动后,便可切断主机电源。2. Halt关闭系统的简单方法Halt命令执行关闭操作系统所需要的基本任务。Halt记录关机的情况,中止那些非必需的进程,执行sync系统调用,等待文件系统写完成,然后停止内核。这种关闭计算机的方法相对比较简单,不等待马上就关闭计算机。对于一个人在操作的计算机来说比较简便,但是对于多人同事操作的计算机来说,可能会意外停止其他人正在进行的操作。3. Reboot快速而不洁的重新启动Reboot几乎和halt一样,只是它让计算机从头重新启动
13、,而halt是关闭计算机。Reboot由shotdown r来调用,与halt类似。2.2 Linux的用户界面BASH是Bourne Again Shell的简写,是RedHat最常用的shell。shell是一种命令语言解析器(command-language interpreter)。它是用户和内核的一个接口,它将用户输入的没一个命令进行解析,然后传给内核。Shell在用户成功登录系统是启动,始终作为用户和内核的交互手段,直到用户退出系统。每个用户都有一个默认的shell,在/etc/passwd文件中指定。1. 几个常用的shell命令几个常用的shell命令如表2-1所示。表2-1
14、几个常用的shell命令命令说明alias设置bash别名bg使一个被挂起的进程在后台继续执行cd改变当前工作目录exit退出当前shellexport使变量的值对当前shell的所有子进程都可见fc用来编辑历史命令列表里的命令fg使一个被挂起的进程在前台继续执行help显示bash内部命令的帮助信息kill终止某个进程pwd显示当前工作目录unalias删除已定义的别名2. bash的几个变量bash的几个变量如表2-2所示。表2-2 bash的几个变量变量说明EDITOR, FCEDITbsah fc 命令的缺省编辑器HISTFILE用于贮存历史命令的文件HISTSIZE历史命令列表的大小
15、HOME当前用户的用户目录OLDPWD前一个工作目录PATHbash寻找可执行文件的搜索路径PS1命令行的一级提示符PS2命令行的二级提示符PWD当前工作目录SECONDS当前shell开始后所流逝的秒数3. bash的特点1)命令补全在bash下输入命令时不必把命令输全 shell 就能判断出你所要输入的命令。如,要输入telnet这个命令,直需要打teln然后按下Tab就可以补全为telnet了。只要输入命令的一部分,再按下 Tab 键,如果输入的一部分命令已经在系统中是独一无二的情况下,bash 将帮你补齐命令并显示在屏幕上。如刚才的例子,以teln开头的命令只有telnet了,所以,b
16、ash可以补全它,效果和用户输入整条命令效果是相同的。这个命令补全的功能在平时工作的时候能节省时间以及减少背命令的难度。2)通配符另一个使命令输入变得更简单的方法是在命令中使用通配符。bash 支持三种通配符:* 匹配任何字符和任何数目的字符。? 匹配任何单字符。 匹配任何包含在括号里的单字符。3)命令历史bash支持命令历史记录。bash把用户输入的命令保存在一个历史列表。历史文件的文件名被一个叫 HISTFILE 的 bash变量指定。历史文件的缺省名字是 .bash_history。这个文件通常在你的用户目录中。使用历史记录列表最简单的方法是用上方向键。按下上方向键后最后输入的命令将出现
17、在命令行上。再按一下则倒数第二条命令会出现,以此类推。如果上翻多了的话也可以用向下的方向键来下翻。也可以使用history 来显示前n条命令。显示在命令行上的历史命令可以被编辑,但这里编辑的只是历史命令的格式,并不能改变原来已经执行完成的命令。4)别名命令别名通常是其他命令的缩写,用来减少键盘输入。如:alias ls= ls color那么,在shell提示符下输入ls命令,其实实际运行的是ls color命令。这是一些很多用户认为有用的别名,你可以把它们写入你的.profile文件中提高工作效率。取消别名用unalis。如取消上例别名:unalias ls5)重定向输入重定向用于改变一个命
18、令的输入源。一些命令需要在命令行里输入足够的信息才能工作。输入重定向并不经常使用因为大多数命令都以参数的形式在命令行上指定输入文件的文件名。尽管如此,当你使用一个不接受文件名为输入参数的命令,而需要的输入又是在一个已存在的文件里时,你就能用输入重定向解决问题。6)管道管道可以把一系列命令连接起来。这意味着第一个命令的输出会通过管道传给第二个命令而作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,以此类推。而管道行中最后一个命令的输出才会显示在屏幕上(如果命令行里使用了输出重定向的话,将会放进一个文件里)。7)提示符bash有两级用户提示符。第一级是经常看到的bash在等待命令输入
19、时的提示符。缺省的一级提示符是字符$(如果是超级用户,则是#号)。可以通过改变bash的PS1变量的值来改变你的缺省提示符。把bash shell的提示符改为指定的字符串。当bash期待输入更多的信息以完成命令时显示第二级提示符。缺省的第二级提示符是 。如果你要改变第二级提示符,可以通过设置PS2变量的值来实现。8)作用控制作业控制能够控制当前正在运行的进程的行为。特别地,你能把一个正在运行的进程挂起,稍后再恢复它的运行。bash 保持对所有已启动的进程的跟踪,你能在一个正在运行的进程的生命期内的任何时候把它挂起或是使它恢复运行。按下+Z使一个运行的进程挂起。bg 命令使一个被挂起的进程在后台
20、恢复运行,反之 fg 命令使进程在前台恢复运行。这几个命令在当用户想在后台运行而意外的把它放到了前台时,经常被用到。当一个命令在前台被运行时,它会禁止用户与 shell 的交互,直到该命令结束。这通常不会造成麻烦,因为大多数命令很快就执行完了。如果你要运行的命令要花费很长的时间的话,我们通常会把它放到后台,以使我们能在前台继续输入其他命令。9)bash配置文件为了保存这些用户化配置,必须把它们保存到一个bash的初始化文件里。 你能把任何想每次进入bash都执行的命令放到初始化文件里。这个文件里最常见到的命令通常是alias和变量的初始化。在RedHat 9.0中,有几个文件,用户目录下.ba
21、sh_profile和.bashrc以及/etc/bashrc。2.3 基础命令2.3.1 命令的输入与编辑在shell提示符下面直接输入命令。如在bash下面telnet到远程,如图2-13所示。图2-13在图2-13的情况下,光标停留在最后,直接按即命令计算机执行telnet 的命令。这是还可以移动光标,按退格键删除光标前面一个字符,按删除键删除光标上方的字符,直接输入是在光标前插入字符。也可以利用bash的一些特性,输入teln + + 。这样的效果和输入telnet 相同。2.3.2 修改口令若用户是首次注册到主机,一般首先要为自己添加(修改)密码,设置密码的命令是passwd,用户在
22、系统提示符下输入:passwd系统显示如图2-14所示。图2-14用户首先输入当前密码,然后输入新的密码,再重打一遍新的密码,重打的目的是为了防止用户输入出错。如果能出现最后一行提示,表示新密码已被系统接受。Linux的密码最长不能超过8个字符,若用户输入了过长的密码,将只有前8位是有效的。另外,用户选择密码时,最好选择字母、数字、特殊符号的混合组合,而且最好用满8个字符,例如:x+y=1234w2xc 34fe5*3a=15a#e34%&I等。不要选用纯粹由数字或字母特别是英文单词或汉语拼音组合组成的密码,例如:morningabc 1234ZhaoBiao等。过于简单或有规律的密码是很容易
23、被破解的,会造成系统安全性方面的漏洞。在一些版本的Linux中,系统会在用户设定密码时自动检查密码的安全程度,如果被认为太简单即所谓的弱密码(weak password),系统会拒绝接受。只有root才可以强迫系统接受弱密码。一般来说,用户只能修改自己的密码,但root可以修改任何用户的密码。方法如下:passwd 例如:用户h1忘记了自己的密码,现由root为其重新设定,如图2-15所示。图2-15注意:本章及后面章节中出现的符号“”指的是按回车键。2.3.3 查询及修改日期时间用户在系统提示符下可以通过一些命令来获得主机的一些简单信息。例如:要观察主机的时间设置,可用命令:date系统显示
24、:Mon Dec 8 01:06:47 GMT 2003表示当前时间是北京时间(CSTChina Standard Time)2003年12月8日1时06分星期一,如果要显示格林威治时间,可用可选项-u:date -u系统显示:Mon Dec 8 01:07:15 UTC 2003如果用户以root身份注册,还可以修改日期、时间,方法是:date MMDDhhmmCCYY.ss其中,date后面的部分是日期字符串,表示要修改的日期时间,MM代表月份,DD代表日期,hh代表时,mm代表分,CC代表年份的头两位,YY代表年份的后两位, 表示括号括住的内容是可以省略的(以下同),如果年份被省略,则表
25、示为当年,ss代表秒。例如:将当前时间改为2004年1月1日0时整,可用:date 2.3.4 观看日历用户可用命令cal观看本月的月历,如图2-16所示。图2-16如果要观看指定的年、月的日历,可用:cal 月 年例如:cal 9 03可以观看2003年9月的月历。cal命令有两个可选项:-y可以显示整年的日历,此时一般一个屏幕放不下所有的信息,按输出暂停键又较麻烦,此时可用以下用法:cal y |more“|”是管道符号,more是通用输出暂停程序,我们将在以后对其作详细介绍。使用此方法后屏幕在显满一屏后将自动暂停输出,并在屏幕下方显示“more”的字样,表示还会有后续输出,如图2-17所
26、示。图2-17按回车键,屏幕将会上滚一行,按空格键将往上翻一屏,直到完成全部输出为止。cal命令的另一个可选项是-j,用于显示Julian式月历,即以该年1月1日到该天的天数作为日期的记录方法,例如输入:cal j 12 03结果显示如图2-18所示。图2-18当一条命令后带多个可选项时,可以将它们合并在同一个“-”之后。例如:cal - j - y 03等价于cal - jy 03。2.3.5 清屏当屏幕上显示了太多的内容以至显得杂乱时,可用命令:clear进行清屏。清屏后,屏幕上的内容将被全部清除,系统提示符定位在屏幕左上角处。2.3.6 获取用户信息有时候,一个用户可能有多个注册账号,而
27、又忘记了自己是以哪一个账号注册到主机上的。此时可通过下列方法之一获得自己的注册信息:(1)观察系统提示符,但有些主机的系统提示符的设定未必能提供用户的注册信息。(2)使用命令:logname系统显示:root表示用户是以账号root进行注册的。另外一条命令:whoami也起类似的作用。如果还想了解在线的其他用户的注册情况,可以用命令:who系统显示如图2-19所示。图2-19与主机连接的用户有2人,使用的用户名是root。其中一个是从tty1(实际上是主机控制台)登录,登录时间是11月28号22点04分。还有一个是从8上面登录上来的,时间是12月8号21点54分。使用可选项可获得更多的信息。例
28、如-I,可得到用户发呆(idle,即没作任何操作)的时间。2.3.7 与其他用户进行简单通讯注册后,如果有其他在线用户,可通过命令write向另外一个用户发送信息,用法是:write 用户账号主机名 终端号 如果所在的系统是多主机,或发送的对象用一个账号同时在多个终端上注册,则可能要指明或,否则只须指出用户账号即可。例如:write root ttyp1此时,光标停在下一行,如图2-20所示。图2-20用户可以输入要发送的信息,每一句信息以回车结束。要结束write状态,按+c键中断即可。接收方的屏幕上显示如图2-21所示的界面。图2-21接收者按回车键将重新返回提示符。使用write命令,在
29、线用户之间可以很方便地互相交谈,交换信息。有时,用户专注于某项工作,不希望被其他用户发送过来的信息所打扰,可使用命令:mesg n进行屏蔽,此时只有root才可向该用户发送信息,其他用户在使用write命令时,系统将显示:write: Permission denied表示对方处于信息屏蔽状态。要观看自己的信息接收状态,可以输入:mesg若显示“is y”,表示可以接收,但如果显示“is n”则表示自己处于屏蔽状态。要观看所有在线用户的信息屏蔽情况,可用命令:who -w例如,显示如图2-22所示。图2-22其中带“-”符号的表示其处于信息屏蔽状态。如果用户想恢复接收信息,只须简单地输入:me
30、sg y2.3.8 观看主机信息用户可通过命令:uname观看主机的配置情况,例如系统回应:Linux表示主机使用的是Linux操作系统。要得到更详细的信息,可输入:uname-a显示如图2-23所示。图2-23从左到右分别显示:操作系统名称、主机名、操作系统核心版本、发布版版本、核心生成的时间、CPU硬件类型等。2.3.9 寻找命令使用方法Linux具有很好的联机文档,当用户不知道该如何去使用一条命令时,可用:man 寻求详细的帮助信息,例如:要了解who命令的详细用法,可输入:man who显示如图2-24所示。图2-24多数情况下,帮助信息会超过一屏,用户可用键或键实现往上或往下翻屏,或
31、用上下光标键移行。观看完毕,按q键退出。2.4 文件系统2.4.1 Linux文件Linux可以支持长达256个字符的文件名称,在命令中如果以文件名称作为参数,则文件名称中不能直接使用以下字符:! # $ % & * ( ) “ / | ; 空格这些字符具有特殊含义(称为“元字符”),如果出现在文件名称中并在命令中使用的话,会产生“多义性”。如果一定要使用这些字符必须在其前面加上转义符“”,以取消其特殊含义,这种使用方法称为“引用”。例如:判断以下文件名称如果在命令中作参数时的合法性。abcdef.12345happy hours (中间空白处为一空格)lets_gomyprogram(99.
32、1.20)myprogram(99.1.20)myprogram100%FULL123/456注意:在Linux中的文件名称是区分大小写的,“abc”与“ABC”所代表的是不同的文件。文件名称中的小数点有时被称为“分隔符”,最后(最靠右)的一个分隔符右端部分称为文件名称的“后缀”,后缀往往用于辨别文件的性质。例如,以下文件:bbssec.c bbsboa.c bbsall.c authorsearch.c都是以“.c”作为后缀,一般约定凡是以“.c”作为后缀的文件是C语言编写的源程序文件。其他一些经常使用的后缀有:.txt:一般文本文件。.doc:信息文档。.sh:shell过程文件。.htm
33、l:HTML超文本文件。.pl:PERL语言编写的程序文件。.c:C语言程序文件。.o:编译程序产生的目标文件。.tar:tar命令产生的备份包文件。.gz:gzip命令产生的压缩包文件。.rpm:由rpm产生的文件包。等。如图2-25所示“bbsall.c“是一个C程序文件,bbs2www.h是C程序的头文件。用户一般最好遵从系统的这些约定,以免造成不必要的误会。在以后的图例中我们将用正方形“”表示文件,如图2-26所示,图中的“”表示文件存储的地方,直线表示从属关系。此图表明了a、b、c、d四个文件存储在同一处。 图2-25 图2-262.4.2 目录结构在Linux中(实际上是在几乎所有
34、的操作系统中)就是以这种形式进行存储介质管理的,上述的所谓“分类”在术语上被称为“目录”(directory),对于一个分类中包含的更细层次的分类,前者称为后者的父目录或上级目录,而后者则称为前者的子目录。一个目录就是一系列它所包含的文件及子目录的集合。在以后的图例中,我们仍用“”表示文件,直线表示从属关系,而目录则用“”表示,如图2-27所示,表示子目录b及文件c均属于目录a。在一个存储设备中最基本的目录(即分层结构的最上端)称为根目录,用符号“/”表示,这种分层保管文件的存储形式称为文件系统,在每一个文件系统中都只会有惟一一个根目录。由于文件系统看上去就像一棵倒挂着的树,故也称为“树型结构
35、”。图2-27一个文件系统在刚建立的时候,只有一个根目录。用户可以在根目录下建立子目录,也可直接存放文件。然后在子目录中既可建立更深层次的“孙目录”,又可直接存放文件如此往复,直至存储设备的容量被用完为止。在每一个逻辑上独立的存储设备(如硬盘上的独立分区、软盘、CD-ROM等)都可建立一个树型结构。当然,不同的操作系统,实现树型结构的方法(术语上称为“文件系统的格式”)各不一样,例如:Linux采用ext2格式的文件系统;DOS则为FAT;Windows 95为VFAT,Windows 98为FAT32,Windows NT/2000为NTFS;OS/2为HPFS等等。但是这些操作系统对树型结
36、构的操作是很相似的。Linux在安装时要在存储设备(通常是硬盘)指定一个主文件系统作为基本的树型结构。构成Linux操作系统的基本文件通常就放在主文件系统下,而其他存储设备上的文件系统则通过后面将要讲述的mount命令架设到主文件系统上,在逻辑上组成一个“大文件系统”,然后这些文件系统就可以被用户访问。这一过程如图2-28所示。图2-28在DOS/Windows下则一般不用作挂接,每一个兼容的文件系统都被赋予一个盘符,然后通过盘符来访问这些文件系统。通常异种操作系统由于实现方法不同,所以它们的文件系统之间一般不能互相访问的。但某些操作系统为了增强其兼容能力,除自己直接支持的文件系统以外,也能访
37、问其他一些类型的文件系统。在这方面,可以说Linux的系统兼容性几乎是最好的,它通过mount命令几乎可以挂接访问其他任何格式的文件系统。表2-3列出了各种常用操作系统对各种文件系统的兼容性(Linux为2.4.x核心)。表2-3 常用操作系统对各种文件系统的兼容性操作系统名称LinuxDOSWindows 95Windows 98Windows NTOS/2采用的文件系统Ext2FATVFATFAT32NTFSHPFS能兼容的其他文件系统Ext2FATVFATFAT32NTFSHPFS每一个目录都可以在其下存放文件或建立新的子目录,但在同一父目录下,不能有相同名称的文件,也不能有相同名称的子
38、目录,甚至不能有相同名称的文件和子目录。这一规则主要是确保用户能惟一定位所需的文件。如图2-29所示的一些例子。但像图2-30所示的结构却是允许的。原因是尽管有文件、子目录名称相同。但它们的父目录却各不相同,在树型结构中是可以相互区分的。 图2-29 图2-30一个文件有可能同时属于很多个子目录(通过链接命令ln实现),这对一些有交叉分类的情况特别有用,例如图2-31所示。图2-31例:请判别图2-32和图2-33所示的树型结构存在的问题。 图2-32 图2-33图2-32答案:(1)目录a包含根目录。(2)c目录下有两个同名文件k。(3)文件g包含文件m。(4)目录l下有同名的p文件和p目录
39、。(5)目录j下有同名子目录n。图2-33答案:(1)有两个根目录。(2)b目录下有同名子目录e。(3)b目录下有同名文件f。(4)k文件包含文件m。(5)j目录下有同名的文件l和子目录l。2.4.3 路径要在树型结构中惟一地标识一个目录,光用目录名称是不足够的,如图2-34所示,树型结构中有多个目录c,如果我们说:要把文件abc放入目录c,那究竟是哪一个目录呢?为了解决这个问题,当需要定位一个目录时,我们采用指出从根目录出发走向该目录的一条“通路”的办法,例如在图2-35中,从根目录到目录v的“通路”是:/ f n v 图2-34 图2-35而从根目录到目录q的“通路”则是:/ e j q在
40、术语中这样的“通路”被称为路径,在上述“通路”写法中,引入以下规则,便成为标准的路径写法:(1)第一个“”不用写。(2)“”用符号“/”代替。例如,从根目录到目录v的路径是:/f/n/v而从根目录到目录q的路径是:/e/j/q当需要在树型结构中定位一个目录时,我们只须指出从根目录到该目录的路径即可,由树型结构的规则,采用上述方法进行定位是绝对不会产生二义性即一个路径写法同时表示两个不同的目录。以上方法也可用于在树型结构中定位文件,例如文件p可写为:/e/i/p文件z则可写为:/f/n/v/x/z开机启动Linux以后,我们处于树型结构的某个目录之中,这个目录称为当前目录,刚开机时的当前目录一般
41、是用户的主工作目录,这是在创建用户时设定的,对于root,主工作目录一般是:/root对于一般用户,主工作目录一般是:/home/启动以后,当前目录可用命令cd改变,用法是:cd 指出从根目录到要转换的目录的路径。例如在上图中,当前目录为e,现要把当前目录改为v,可以输入:cd /f/n/v我们想知道当前目录的位置,可以使用命令pwd,如图2-36所示。图2-36另外,通常通过观察系统提示符也可获得当前目录路径。关于主工作目录,Linux中有一个简化的写法“”,例如:cd 表示把当前目录转到用户本身的主工作目录。路径还有另外一种写法,就是指出从当前目录到目标目录的“通路”。例如在上图中,当前目
42、录为e,则从e到目录q的“通路”是:e j q从e到目录x的“通路”是:e / f n v x这种路径的标准写法是:(1)由于起点必定是当前目录,故起点与第一个“”可以省略不写。(2)“”用符号“/”代替。(3)上级目录用“.”表示。因此,从当前目录e到目录q的路径可写为:j/q而从e到x的路径则可写为:./f/n/v/x这种路径写法与当前目录(即起点)的位置有关,故称为“相对路径法”;前面介绍的写法,路径均从根目录开始,与当前目录位置无关,故被称作“绝对路径法”。在某些场合下,用绝对法书写路径会比较简单,而在另一些场合,可能用相对法比较简单,例如在上图中,假设当前目录为x,现要把当前目录转到
43、v,使用绝对法,输入命令:cd /f/n/v使用相对法,输入命令:cd .相对法较简单。在相对法中还有一个特殊的路径,就是从当前目录到当前目录的路径,我们用“.”表示。要判断一个路径究竟是用绝对法书写还是用相对法书写只须简单地观察路径中的起首字符是否为“/”,如果是,则是用绝对法;如果不是,那就是用相对法。相对法也同样可用于惟一定位子目录或文件。例:如图2-20所示,设当前目录为j,表2-4分别是用绝对法和相对法惟一定位的目录或文件。表2-4 目录或文件的绝对法和相对法子目录或文件绝对法相对法目录q/e/j/qq目录e/e././.目录f/f././f目录x/f/n/v/x././f/n/v/
44、x续表2-4子目录或文件绝对法相对法目录i/e/i./I目录j/e/j.文件b/b././b文件r/e/j/rr文件y/f/n/v/y././f/n/v/y2.4.4 相关操作命令1. 文件及子目录名称列表使用ls命令只能列出当前目录下的文件及子目录清单,其他目录中的内容不会被列出,如图2-37所示。图2-37在所列清单中,可以发现在i、j后面有“/”符号,这表示它们是子目录而不是一个文件。如果用户使用的是具有彩色能力的终端(例如:控制台,仿真彩色终端),还可以看到目录和文件的名称通常是用不同的颜色显示的,例如:目录名称一般以蓝色显示。如果要显示其他目录中的文件及子目录名称列表,可使用以下方法
45、:ls 其中是用相对法或绝对法书写的到要观察的目录的路径。例如:在图中要观看/f/n目录中文件及子目录名称的列表,可输入:ls /f/n也可用相对法写成:ls ./f/n除上述方法外,当然也可先用cd命令将当前目录移至要观察的目录,然后再运行ls命令。2. 显示一个文本文件的内容“cat”命令现在除了能显示当前目录下文本文件内容外,还可以用于显示其他目录中的文本文件内容,一般性的用法是在指出时使用带路径指引定位的文件名称。例如:当前目录为e,要观看文件z的内容,可用:cat /f/n/v/x/z3. 改变文件、目录名称,搬移整棵目录树在树型结构下,mv命令有了更强大的功能。除了改变文件的名称外
46、,还可以用于改变目录的名称,用户可首先用cd命令进入要改名的文件或子目录所存放的上级目录处,然后使用:mv 例如在图2-38中,现要将/a/b目录改名为bb,/a/c文件改名为cc,操作如下:图2-38cd /amv b bbmv c cc若不想改变当前目录,也可用:mv /a/b /a/bbmv /a/c /a/cc则图2-38变为图2-39所示的结构。实际上mv的真正功能是在树型结构中搬移文件和目录,改名就是某种意义下的搬移。先看搬移文件的用法:mv 例如在图2-40所示的结构中,当前目录为根目录,输入:mv /a/d/g /b/e/gg则将文件/a/d/g搬移到/b/e下,名称变为gg,
47、如图2-41所示。 图2-39 图2-40 图2-41如果在命令使用中,指引文件存放位置的路径被省略,就表示文件位于当前目录,如果目标文件只用路径指出其存放位置,而没有指定文件名称,那就表示搬移后文件名称不变。例如在图2-40中输入:mv /a/d/h /b/e则树型结构变为图2-42所示。在图2-42中,输入:mv /a/c abc则文件/a/c被搬移到当前目录根目录下,名称为abc,树型结构变为如图2-43所示。用mv命令还可以搬动以指定目录为起点的一棵“小树型结构”,使用方法是:mv 例如,在图2-43所示中,输入:mv /b/e /a/ee变为如图2-44所示。 图2-42 图2-43
48、 图2-44同理,如果省略目标目录的指引路径,则表示搬移至当前目录;如果省略目标目录名称,则表示名称在搬移后不变。注意:使用mv命令对文件或目录进行搬移会产生覆盖的危险。4. 删除文件使用命令rm,如果要删除非当前目录下的文件,须加上路径指引。用法如下:rm 5. 复制文件在树型结构下,cp可以跨目录复制文件,用法如下:cp 与mv命令用法类似,如果省略路径指引,则表示文件位于当前目录,如果省略目标文件名称,则表示进行复制后名称仍保持不变。使用可选项-a,cp命令还可复制整棵目录树,用法如下:cp -a 例如:在如图2-45所示中。输入命令:cp -a /a/d /b/dd则图2-45变为图2
49、-46所示。6. 创建新的子目录使用的命令是mkdir,用法是:mkdir /指出新目录所在的位置,如果路径指引被省略,则表示在当前目录下创建新的子目录。如图2-47所示,设当前目录为/a。 图2-45 图2-46 图2-47输入:mkdir b则结构变为如图2-48所示。再输入:mkdir b/c则结构变为如图2-49所示。如果在mkdir命令中指出了实际并不存在的路径,将会有出错信息提示,但选用-p选项,则可建立起一连串的新目录。例如在图2-49中输入:mkdir -p d/e/f则结构变为如图2-50所示。由于当前目录下并无子目录d,此时mkdir会自动先建立d子目录,再在d下建立子目录
50、e,最后在e下建子目录f。这是一种高效率的用法,甚至可以用一行命令来建立整个树型结构。例如要把图2-51中的左图结构变为右图所示的结构。 图2-48 图2-49 图2-50 图2-51可以输入:mkdir p b/e/g; mkdir p b/d; mkdir p c/fLinux可以在一个命令行中同时使用多条命令,命令之间用“;”隔开,系统将依次逐条执行这些命令。7. 删除目录删除目录的命令是rmdir,用法为:rmdir 如果省略路径指引,那就表示要删除的子目录位于当前目录下。此命令只能删除空目录,如果用它去删除一个非空(即其内包含文件或子目录)目录,系统会给出出错提示,这样从某种意义下可
51、以保障信息的安全,降低发生误操作的机会。要用rmdir删非空目录,就必须先删其包含的文件和子目录,但用带可选项-r的rm命令可以一次删除一棵目录树,用法是:rm r 如在图2-52中,要把以/a/b目录为起点的整棵目录树删去,可以用:rm r /a/brm将会递归地删除该目录树下的每一个文件及子目录。由于这是一个非常危险的操作,因此在删除每一个文件或子目录时均需用户进行确认,如果目录树规模较大,这将是一个令人烦恼的过程,此时用户可用-f可选项取消确认,例如:rm rf /a/b系统将一声不响地把以/a/b为起点的目录树删除,当然用户要意识到这种操作的危险性。其他有可能对信息安全性产生危害的命令
52、,如mv、cp、rmdir等,均可类似地使用-f可选项取消确认。例如:假设树型结构如图2-53左图所示,当前目录为根目录,请用已学过的Linux命令将此结构变成如图2-53右图所示,假设名称相同的文件内容也相同。 图2-52 图2-53解答:依照树型结构的变化使用“图上作业法”。(1)mkdir /x。此时树型结构变为如图2-54所示。(2)mv /c/g/j /x。树型结构变为如图2-55所示。 图2-54 图2-55(3)mv /c/g/i /b。树型结构变为如图2-56所示。图2-56(4)rm -rf /c。树型结构变为如图2-57所示。(5)mv /a /cmv /b /amv /x
53、 /b树型结构最终变为如图2-58所示。 图2-57 图2-58这正是我们所需要的。2.4.5 通配符与多文件操作前面所讲的命令大多以单个文件或单个目录作为操作对象。有时,我们可能同时对多个对象进行操作,例如:要观看当前目录下a、b、c、d、e、f六个文件的内容,本来要用六条cat命令:cat a; cat b; cat c; cat d; cat e; cat f; Linux提供了一种“操作对象清单”的办法,可将上面的六条命令简化为一条:cat a b c d e f在这种方法下,将要处理的文件列出在命令之后,中间用空格分开即可。其他的命令也有类似的用法,例如要删除当前目录下a、b、c、d
54、、e、f六个文件,可用:rm a b c d e f尽管如此,在某些情况下,例如:要删除当前目录下的所有文件或部分文件(如:所有以字母a开头的文件),而这些文件的数目较多或文件名称较长时,即使使用上述做法也是十分麻烦的。那么是否能有一种匹配符号,由它可以灵活实现一种符号就能表达一长串的操作对象清单呢?例如:一种符号就能表达“当前目录下所有文件”、“当前目录下所有以a开头的文件”等,当要删除一大堆文件时,只需简单地输入:rm 即可,便能完成所有的操作。在Linux中,是通过通配符来实现一种符号可代表多个操作对象的目的,Linux下使用的通配符有三种,除了在DOS中常被使用的“*”和“?”外,还有
55、“ ”:*:代表在其所在的位置上可以是任意多个任意字符(包括空字符)。?:代表在其所在位置上可以是任意的单个字符。:这是一个较特别的符号,在“”和“”之间是一个字符集,例如:123abc等。此符号表示在其所在的位置上可以是括号内所包含的字符集中的某个字符。如果供选择的字符集是连续的,例如:abcdefgh,可用连贯符号“-”作简化,将它写成a-h;同理,十个十进制数码组成的字符集可写为0-9,而全体英文字母(包括大小写)组成的字符集则可写成a-zA-Z。从上可以看出,这三种匹配符号均起到一个字符表达多种不同字符(串)选择的作用,将它们与普通字符组合成“通配表达式”便能灵活表达多种不同字符串,再
56、看看操作对象中有哪些与其匹配,从而便达到一个通配表达式同时代表多个操作对象的目的。例如:设当前目录下有以下文件。(1)Abcd(2)XYZ(3)abcd(4)bcd(5)f23(6)f4(7)f9.html(8)fe(9)fdisk.exe(10)gaz.html(11)h.so(12)ddisk.html表2-5指出通配表达式的含义,以及与当前目录下哪些文件匹配。表2-5 通配表达式的含义及其当前目录下匹配的文件通配表达式含义与其匹配的文件A*以a开头的所有文件(3)a-zA-Z?以英文字母(大小写)开头,文件名称长度为4个字符的文件(1)、(3)、(11)*.html以.html作后缀的文
57、件(7)、(10)、(12)F012文件名称开头字母为f,名称长为2个字符,第二个字符为0或1或2无F1-9文件名称长为2个字符,以f开头,第二个字符是19九个数字中的一个(6)*全体文件(1)(12)?disk*文件名称的第二到第五个字符分别为disk(9)、(12)一个通配表达式能与什么文件匹配是相对的,与用户在该目录下的文件有关。使用通配表达式,我们可以很方便地实现多文件操作,只需用通配表达式替代操作命令中相应位置上的以及即可。例如当前目录下有以下文件:Aa.txtBcdd.txtfe.txtH1ijk.txtLuckymemotea.txt现在我们要在屏幕上显示所有以“.txt”作后缀
58、的文件的内容,可输入:cat *.txt系统在执行此命令时,首先会看看通配表达式与当前目录下哪些文件匹配,然后将其“展开”,在此例中,“*.txt”被展为:a.txt d.txt fe.txt ijk.txt tea.txt然后代入命令中,即把“cat *.txt”变为:cat a.txt d.txt fe.txt ijk.txt tea.txt再真正运行以上命令。以前学过的命令中有很多是可以利用通配符进行操作的,例如,树型结构如图2-59所示(当前目录为/)。图2-59要列出文件A、BZ的详细属性信息,可输入:ls l A-Z如果要列出文件a、bt、A、BZ的详细属性信息,类似地可用:ls
59、-l a-tA-Z 如果输入:ls l ? 可以发现除了当前目录下所有文件被列出以外,子目录u、v中的文件也被列出,这是因为系统在将“?”展开时,也匹配了u和v,故执行的命令中包括了:ls l u v有了通配符,在作文件名称列表时,我们可以很方便地将注意力集中到所需的文件上,而无须理会其他无关重要的文件。另外,在目录下有一些文件的名称是以“.”开头的,例如:.profile .xinitrc等。这些文件即使使用ls或ls *命令均不能被列出,我们将之称为“隐含文件”。如要列出隐含文件,可用:ls .* 或用带-a可选项的ls命令,该可选项可使包括隐含文件在内的所有文件均被列出。如果用户希望ls
60、命令不光能列出某一目录下的文件名称,而且还希望列出以该目录为起点的整个目录树中所有文件的信息,可用-R可选项,例如在上例中输入:ls Rl将列出整个树型结构中所有文件和子目录的详细信息。请大家思考一下:在上例中,如果要列出整个树型结构中所有以小写字母开头的文件的详细信息,又该输入什么命令,是否要输入:ls Rl a-z 请作具体试验,并解释结果。例如:将图2-60中左图的树型结构变为右图,假设当前目录为/,相同名称的文件内容也相同。使用一条命令即可:rm a-jl-z 如果不使用“ ”,也可用三条命令完成:mv k abc; rm ?; mv abc k例如:完成下列树型结构变化,假设当前目录
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大运河遗产保护实施方案
- 新阶段新后勤管理制度
- 管道防腐作业施工方案
- 老龄人智能养老社区智慧医疗体系方案
- 监控中心机房建设方案
- 高层建筑室内栏杆施工方案
- React状态管理课程设计
- VDA6.3过程审核实战指南
- 高中地理必修一“地貌”大单元教学设计-喀斯特地貌:水与岩的千年对话(2026版)
- 人地共生下的高质量发展-2026届高考地理二轮复习“人口与城乡发展”专题讲义
- 广东东莞市2025-2026学年度高三下学期语文考前冲刺卷命题大赛卷及参考答案
- 电子科技公司绩效与薪酬管理办法
- 2026年医疗器械生产质量管理规范
- 2026福建南平市邵武市机关事业单位编外人员招聘62人考试参考题库及答案解析
- 2026ECMO考试题库及答案
- 2026湖北武汉市特种设备检验检测研究院招聘工作人员15人备考题库及答案详解(夺冠)
- (二模)2026年广州市普通高中高三毕业班综合测试(二)数学试卷(含答案详解)
- 服务规范标准的编写思路和要点(习题答案)
- 慢性病性贫血课件
- 酒店员工餐厅考核制度
- 高中信息技术(必选1)X1-09二叉树知识点
评论
0/150
提交评论