版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单元三Linux系统基础操作学习大纲Linux系统的登录内核、程序和进程查看系统文件
运行命令管理终端寻求帮助1、Linux系统的登录
文本界面登录图形界面登录1、Linux系统的登录终端与控制台的使用
什么是控制台如何进入控制台什么是终端如何开启终端1、Linux系统的登录什么是控制台Linux控制台是提供给用户输入指令的地方,在RedHatLinuxEnterprise5中,有6个虚拟控制台,1个真实控制台。1、Linux系统的登录如何进入控制台在Linux系统中,进入虚拟控制台的方法是打入一个热键“Ctrl+Alt+Fn”,其中Fn表示的范围是从F1~F6。Ctrl+Alt+Shift+Fn如果系统开启了图形界面,则Ctrl+Alt+F7表示进入图形化的虚拟界面。在Linux系统中,当系统启动时是以单用户模式进入系统,则我们称其所在的控制台为真实的控制台。1、Linux系统的登录什么是终端终端是用户shell运行的平台,在终端模拟器上用户可以交互的操作系统及运行程序并得到提示和反馈,就像在文本编辑器中一样。它与控制台之间的关系就如彩电机身上的控制按钮与遥控器机的按钮,只不过终端是从远程操作的(遥控器),但是它们都是提供给用户输入指令的地方。1、Linux系统的登录如何开启终端进入终端的方式有很多种,比如:你可以在远程通过Telnet、Ssh登录系统,从而开始一个终端,你也可以在图形界面中在桌面中右击开启终端。1、Linux系统的登录XWindow系统在X中操作,你会重新找回Windows的感觉。当然还不只是RedHatLinux中图形界面的易用性已经有了显著的提高,并且通过像GTK+和QT这样的开放的开发工具包,你好可以创立自己的图形应用程序。X可以理解为一种协议--基于X开发的图形软件与内核进行沟通的的种协议。1、Linux系统的登录桌面环境(DesktopEnvironment)桌面环境是一个特殊的窗口管理器。常见的桌面环境有GNOME和KDE。KDE是和一个叫KWM的窗口管理器一起生成的。GNOME则没和任何窗口管理器做在一起,你可以使用任何你想用的窗口管理器,但也有一些是特地为GNOME写的(Enlightenment就是一个)。KDE与GNOME是它们都需要X来支持运行。1、Linux系统的登录用户可以使用who命令判断谁在系统上及其登陆方式。用户可以从任何终端上输入who命令。完成书上P6练习题课堂练习使用多个虚拟控制台目的:学会管理多个虚拟控制台预计时间:10分钟具体操作设置多个帐户,都具有相同的密码。用户名是user2、user3、user4、user5,所有的用户使用相同的密码。使用who查看VirtualConsoleUsername 2user23user34user45user52、内核、程序和进程内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件。内核操作系统呼叫接口(Systemcallinterface)进程管理(Processcontrol)内存管理(Memorymanagement)文件系统管理(Filesystemmanagement)加载设备驱动(Devicedrivers)2、内核、程序和进程程序是存储在计算机硬盘里的文件。一个程序是一系列非常基础的指令,非常详细、明确地告诉操作系统要做什么、什么时候去做。2、内核、程序和进程当用户指示内核运行一个程序时,内核会从程序文件上读取指令,并将这些指令装入内存,然后开始执行这些指令。在内存中运行的这个程序副本叫做进程。注意,同一个程序可以装入内存并运行多次,所以任何时候内核都可能在运行同一程序的几个不同进程。Linux和大多数现代操作系统一样,是一个多任务的操作系统。2、内核、程序和进程Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。
2、内核、程序和进程在Linux系统中有很多种Shell解释器。例如下面的:/bin/sh、/bin/bash、/bin/tcsh、/bin/csh、/bin/ksh、/sbin/nologin等。如果要查看系统中存在哪些Shell,我们可以查看/etc/shells文件的内容得知。在RHEL中系统默认的Shell是/bin/bash,另外/sbin/nologin表示不能登录系统。2、内核、程序和进程[elvis@stationelvis]$cal2、内核、程序和进程ps命令通常用来列出在系统上运行的进程。没有参数的ps命令显示了在单个终端(或图形环境中的终端窗口)上启动的所有进程。第一列显示进程的PID,或者叫做进程ID(ProcessID)。在系统中运行的每个进程都有一个唯一的PID标识。第二列标识了用户elvis的终端;第三列报告了这个进程消耗了多少CPU时间。3、查看系统文件(1)文件和目录的命令在Linux系统中,信息和程序作为文件存储在磁盘上。文件被归类到目录中,目录中包含文件和其它目录(其它操作系统经常将目录称为“文件夹”)。这种包括多层次目录的目录结构经常被称为“目录树(directorytree)”。目录树的根部是名为“/”的目录,被称为“根目录(rootdirectory)”。根目录中的文件被称作“/filename”。3、查看系统文件例如,文件“network”位于目录“sysconfig”中,这个目录位于“etc”中,而“etc”目录又位于“/”中,那么文件的引用为“/etc/sysconfig/network”。显然,每次都从根目录开始引用文件会很麻烦。Linux提供了一种更简便的方式,用“当前工作目录(currentworkingdirectory)”作为环境。3、查看系统文件举例来说,如果进程的当前工作目录是“/etc”,前面提到的文件network,可以被引用为“sysconfig/network”。如果工作目录是“/etc/sysconfig”,那么这个文件就可以简单地引用为“network”。3、查看系统文件(2)用ls列出目录内容用户从Shell使用ls命令列出目录的内容。(ls是动词list(列出)的缩写。)3、查看系统文件(3)用cat查看文件内容Cat命令会将文件内容(concatenates)输出到终端。如果只给一个文件名,文件的内容会作为输出显示出来。3、查看系统文件(4)将命令输出重定向到文件中当执行ls命令和cat命令时,命令的输出在终端上显示。在Linux系统中,大部分生成文本输出的命令都会使用一个常用的UNIX概念,叫做“标准输出(standardout)”流。在默认状态下,这个数据连接到终端。bashShell允许用户将标准输出流“重定向(redirect)”到其它地点。3、查看系统文件[elvis@stationelvis]$ls/etc/sysconfig/rhn>lsout.txt[elvis@stationelvis]$lslsout.txt[elvis@stationelvis]$catlsout.txtclientCaps.drhnsdsystemidup2date3、查看系统文件(5)权限和用户的主目录注意,如果用户elvis试图把输出重定向到Shell当前工作目录以外的文件中,会出现什么情况呢?[elvis@stationelvis]$ls/etc/sysconfig/rhn>/etc/lsout.txt-bash:/etc/lsout.txt:Nosuchfileordirectory用户elvis会遇到另一个常见的Linux概念:文件所有的权限。用户elvis试图创建新文件/etc/lsout.txt,但是没有在目录/etc中创建文件的权限。3、查看系统文件在默认情况下,红帽企业版Linux不允许用户随便在任意地点新建文件。事实上,能够新建文件的地点只有几个。每个用户都有主目录,他们可以在那里创建新文件(和新的子目录)3、查看系统文件例题:将命令的输出重定向到文件中用户prince想用cal命令将本月日历保存到calendar.txt中。[prince@stationprince]$calSeptember2011SuMoTuWeThFrSa1234567891011121314151617181920212223242526272829303、查看系统文件[prince@stationprince]$cal>calendar.txt[prince@stationprince]$lscalendar.txt[prince@stationprince]$catcalendar.txtSeptember2011SuMoTuWeThFrSa123456789101112131415161718192021222324252627282930课堂练习ls命令目标:命令的输出重定向到一个新创建的文件完成时间:5分钟具体操作使用ls命令列出/etc目录中的内容,在你的主目录中输出重定向到一个名为lsetc.txt文件。4、运行命令
(1)命令行语法命令行界面有许多优点,包括高效和灵活,但使用起来并不简单。幸好(几乎)所有的程序都要遵守惯例。花一点时间熟悉了这些惯例,学习新的程序就会容易很多。和语言一样,命令行语言有不规则形式,而且任何规则都有例外。4、运行命令(2)命令命令的第一个词一般是位于文件系统某个位置的,以文件形式存在的一个程序名称。比如说,在前面的章节中所使用的ps命令和who命令。如果想知道对应哪个文件,可以使用一个叫做which的命令。先输入which命令,接着输入另一个命令的名称,就会发现目标文件。[elvis@stationelvis]$whichps/bin/ps[elvis@stationelvis]$whichwho/usr/bin/who4、运行命令运行命令时,Shell进程指示内核把指定的程序作为另一个进程分开执行,并将进程的输出(或更准确地说,标准输出流)写到终端。然后shell暂停,等待命令的进程结束运行。一旦命令结束,shell会给出另一个提示符,等待下一个命令。4、运行命令(3)命令行选项许多命令可以指定不同的命令行选项来修改它们的行为,列出目录内容的ls命令就是这样一个简单的例子。看以下ls命令的三种使用方法,每种用法都列出目录/usr中的文件。[elvis@stationelvis]$ls/usr
[elvis@stationelvis]$ls-s/usr
[elvis@stationelvis]$ls-l/usr
第一个ls命令行只列出目录的内容;第二个ls-s命令包括命令行选项-s,给出内容的大小;第三个ls-l命令显示详细列表。4、运行命令(1)短命令行选项以上用到的两个命令行选项-s和-l都是单字母选项,这被称为“短命令行选项”。[elvis@stationelvis]$ls-w40/usr/bingameslibsbintmpdictincludelibexecshareX11R6etckerberoslocalsrc在这里,40不是ls命令的参数,而是命令行选项-w的参数。(输出的宽度应该是多少呢?40个字符。)4、运行命令(2)多个短命令行选项可以同时使用多个命令行选项。多个命令行选项会串在一起,挤在命令和命令参数之间。下面的例子介绍了ls命令的一个新的命令行选项-r,它反转了排列顺序。注意一下它是如何与选项-s和-w一起使用。
[elvis@stationelvis]$ls-s-w40-r/usr/total1324X11R60local4games0tmp4libexec4etc4src40lib4dict8share4kerberos40bin8sbin8include4、运行命令有时,在使用多个命令行选项时,用户可以简写把所有的选项“串”到一个连字符上(-)[elvis@stationelvis]$ls-srw40/usr/total1324X11R60local4games0tmp4libexec4etc4src40lib4dict8share4kerberos40bin8sbin8include4、运行命令(3)长命令行选项在早期的Unix操作系统中,所有的命令行选项都使用以上语法。随着Unix的发展“长命令行选项”。与单字符选项不同的是,长选项由词组成。长选项不是用一个连字符开头,而是用两个连字符(--)开头。有些命令只使用短选项,有些只使用长选项。另外一些命令,如ls命令,两种都可以使用。[elvis@stationelvis]$ls--size/usr/total13240bin4games40lib8sbin0tmp4dict8include4libexec8share4X11R64etc4kerberos0local4src4、运行命令长命令行选项带有参数时,其语法会稍有不同。在这种情况下,参数不是作为一个分开的词跟在选项后面,而是和选项连在一起,有“=”隔开,如—width=40。注意,短命令行选项和长命令行选项可以混合使用。[elvis@stationelvis]$ls--width=40--size-r/usr/total1324X11R60local4games0tmp4libexec4etc4src40lib4dict8share4kerberos40bin8sbin8include
4、运行命令(4)参数与命令行选项相比,参数相对简单点。无论跟在命令名后和命令行选项后的什么词,都叫做命令的参数。命令是否需要参数,或需要什么样的参数,取决于命令本身。举例来说,如果在ls命令后加参数,该命令会把参数作为文件或目录列出。ps命令不需要参数。cal命令带0到2个参数,可能导致日历显示的是某年也有可能是某一年中月份。4、运行命令(5)获取使用帮助如何记住所有的命令行选项呢?不需要全部记住。有经验的Linux用户学习如何轻松地刷新自己的记忆。大多数命令都支持长命令行选项“--help”以及短命令行选项“-h”或“-?”[elvis@stationelvis]$ls--help4、运行命令例题:学习如何使用cat命令[madonna@stationmadonna]$cat--help
5、管理终端(1)控制终端bashShell及其运行的终端是有经验的Linux用户使用的主要工具。5、管理终端(2)复位终端终端显示信息时,会逐字节显示。有时,用户会不小心(或有意)指示终端显示格式没有被编码为ASCII文本的数据,如图形或可执行文件。终端会尽量执行,但经常出现的是乱码。更麻烦的是,终端可能会死在图形模式中,因此即便是正常的ASCII文本看起来也不可读。在这种情况下,reset命令可将终端恢复到正常状态。通常当你使用这个命令时,你甚至看不到自己在键入它。但如果在一个不可读的bash提示下,输入reset命令然后按Enter键,可以把终端恢复到正常状态。5、管理终端(3)终端控制键组合组合键符号名称约定使用CTRL+CSIGINT非常规中断——终止前台进程CTRL+DEOT输入完成的正常信号CTRL+GBEL终端声效CTRL+HBS后退一格——删除前一个字符CTRL+JLF换行——与Enter键功能相同CTRL+LFF换页——使bash清屏,使其他基于屏幕的程序“刷新”当前屏幕CTRL+Q解锁终端显示(见CTRL+S)CTRL+S锁住终端显示(使用CTRL+Q解锁)CTRL+UNAK删除当前的行CTRL+ZSIGSTOP挂起前台进程5、管理终端(4)识别终端Linux将许多设备都当成终端,包括虚拟控制台、串行线连接的VT100终端、调整解调器等。名称设备使用ttyn虚拟控制台使用CTRL+ALT+Fn组合键访问ttysn串口端口设备连接到串口端口上的调制解码器或VT100类型。UNIX中的ttySO等于DOS中的COM1,ttyS1等于DOS中的COM2,一次类推。pts/n伪终端一个模拟终端,经常被X图形环境中的终端窗口或起始于网络的Shell(如telnet和ssh)使用。伪终端不能直接与物理设备连接。:OX服务器X服务器并不是真正的终端,当用过使用X图形环境的登陆管理器登录时,其终端经常列为X服务器本身。5、管理终端(5)Tab补全功能Tab补全功能并不是终端的特征,而是bashShell的特征。输入命令和文件的名称时,能够熟练的使用Tab键,可以节省很多时间和精力。5、管理终端往bash命令行输入第一个词作为命令的时候,输入你要执行的命令,但是在你完成之前按Tab键停止时。会出现以下三种情况之一:1、命令还没输入的部分自动出现;2、没输入的的命令出现一部分,然后bash会停下来,发出“哔”的声音;3、bash发出“哔”的声音。5、管理终端bashShell尽量从所有可能的命令中帮你选择正在输入的命令。在第一种情况下,只有一个命令是以你输入的字母开头的,bash能够准确地找到你要执行的命令,帮你补全剩余部分,大功告成。在第二种和第三种情况下,不止一个命令是以你输入的字母开头的。bash尽量补全命令,但是停下来发出“哔”的声音,提醒你还有其他选择要做。为了看到bash命令帮你缩小的选择范围,按下Tab键一秒钟。bash会列出所有以你输入字母开头的命令。提供剩余所有的命令使你选择,继续敲命令,直至你所需要的命令是系统中唯一的命令是,再次按Tab键,bash会帮你补全命令。5、管理终端例题:浏览二进制文件后复位终端用户blondie无意中使用cat命令浏览了一个可执行文件/bin/arch。因为这是一个编译型可执行文件,含有不应该在终端显示的字节,因此使她的终端变得乱糟糟的。[blondie@stationblondie]$cat/bin/archELF??414第38页共51页(44???4????/lib/ld-linux.so.2GNU???y??6,?????aaa????aac????-?????[???为了复位终端,blondie盲打了reset命令,使终端恢复到正常状态。5、管理终端例题:取消命令用户prince觉得从根目录“/”开始递归地列出文件系统的内容会很有趣。[prince@stationprince]$ls-R/
他花了几分钟看文件,觉得看够了,就用CTRL+C取消命令。命令终止,他返回到bash提示。课堂练习1.暂停终端输出目的:学习用长命令行选项管理终端输出预计时间:5分钟具体操作1.像例子中的用户prince一样,使用ls–R/命令获取文件根目录的递归列表。2.输出正在进行时,通过组合键CTRL+S锁住你的终端。3.解锁终端用组合键CTRL+Q,你应该会交替的使用锁住键和解锁键来控制输出。4.通过命令行查看下面的输出,可以使用CTRL+Z暂定进程。5.暂停进程后提交你的实验课堂练习2.整理你的代理服务器目的:学习如何有效地终止从键盘输入命令预计时间:5分钟具体操作你想在你的主目录下产生一个列表(按字母顺序)socks分类文件sorted_socks.txt1.在你的家目录中运行命令sort>sorted_socks.txt。这个命令不会马上结束,而是等待用户从键盘输入。2.输入几个类型的socks,比如“yellowsocks”,“dirtysocks”,“dirtysocks”,“coolwinniethepoohsocks”等等,每个socks一个新行用RETURN键3.列出几个socks后,按CTRL+D键结束4.退出shell,以便保存你的结果,如下:课堂练习[student@stationstudent]$sort>sorted_socks.txt
[student@stationstudent]$catsorted_socks.txt
6、寻求帮助(1)寻求帮助UNIX,特别是Linux的传统做法是不印刷使用手册和文档,而是将他们收藏在系统中,以方便用户使用。没有人能记住ls所有命令行选项,所有当用合适的命令行选项调用命令时,命令都会提供叫做“用法(usages)”的简短概要。大多数命令更完整的参考可以在有结构的“manpages”和“infopages”中找到。在红帽企业版Linux中,针对特定的软件包,目录/usr/share/doc含有结构性不强的文档。最后,你还可以在Linux文档项目或红帽企业版Linux文档包中找到大量的指南和教程。6、寻求帮助(2)使用-h、-?或--help获得帮助没人能记住全部命令的所有使用方式,但有经验的UNIX用户知道怎样在线快速寻找到他们所需的信息。最直接的帮助经常由命令本身提供。和命令行选项-h、-?或--help一起使用,命令提供“用法(usage)”或简短的语法总结。6、寻求帮助(3)ManPageManualPage(手册页),一般缩写为“manpage”,是UNIX系统的传统参考信息。它包括大多数命令、文件格式、程序调用的文档,一般主题可用man命令浏览。①分页程序less红帽企业版Linux使用less分页程序浏览manpage。②manpage章节manpage分成8个标准章节,在不同的章节的页面有时会有相同的名字。6、寻求帮助③关键词搜索和-a选项经常和man命令同时使用的两个选项是:进行关键词搜索的-k选项和浏览参数的“所有相关”页的-a选项。用户madonna在查找文件/etc/passwd格式的有关信息。她已经试过manpasswd,但这个命令只产生passwd命令的manpage,她用man–k搜索关键词passwd。
[madonna@stationmadonna]$man-kpasswd
6、寻求帮助(4)InfoPagemanpage通常提供参考信息,并不提供指导或一般使用。很多更复杂的命令说明在“infopage”中有更详细的记载,“infopage”通过超级链接连接到不同页面,可以通过类似网页浏览那样根据超级链接跳跃阅读。6、寻求帮助(5)目录/usr/share/doc
开发源代码软件的一个设计理念可以总结为“早发行,多发行”。开发软件时,只要软件可以使用,那是就发行,并不一定要等到所有方面都完善。让用户尽早使用软件,从他们那里获得反馈和改进意见,以便设计出更好的软件。红帽企业版Linux也会包括这些虽然组织不完善但实用的文档,这些文档收藏在目录/usr/share/doc下,由包括这个软件的红帽软件包组织管理。6、寻求帮助(6)红帽文档指南作为服务的一部分,红帽公司在红帽企业版Linux中包括文档手册。这些手册在互联网上都可以找到[],也可使用在即将到来的节讨论中起到帮助的作用。6、寻求帮助(7)Linux文档项目Linux文档项目(LinuxDocumentationProject,LDP)[]采取将Linux操作系统的快速开发记录归档。这个网站的文档遵循Linux早期开发时所使用的格式。虽然这些文档并不是针对红帽企业版Linux发行版本,但是许多信息还是有用且相关的。6、寻求帮助(8)yelp:GNOME帮助浏览器yelp,GNOME帮助浏览器,从应用程序菜单中选择“帮助”启动这一服务结束TheEndThanks单元四文件系统基础
学习大纲Linux文件系统的目录结构Linux系统的主要目录文件管理
目录管理
文件名和文件名匹配检查文件
文件编辑1、Linux文件系统的目录结构(1)倒置树文件系统Linux使用一个目录树编排所有的文件和目录。所有的文件和目录都在根目录(rootdirectory)的目录下面,这个目录名为“/”(读作“斜线”)。
命名文件或目录的时候,从Linux文件系统树的根部开始,列出指向你想要的文件或目录的所有分枝目录,目录间用斜线(/)分开。这叫做项的全名(fullyqualifiedname),简称FQN。
1、Linux文件系统的目录结构1、Linux文件系统的目录结构(2)使用Nautilus浏览目录树
在红帽企业版LinuxX图形环境中,Nautilus是一个先进的工具,它可帮助用户导航文件系统。在红帽企业版LinuxX图形桌面上,可以用鼠标左键双击左上角主目录(带小房子的)图标打开Nautilus窗口。
1、Linux文件系统的目录结构(3)当前工作目录(cwd)
每个Linux进程(如程序、命令)运行时都会有一个默认指定的目录。这个默认目录就是进程的当前工作目录,即cwd。
可以理解为一个进程的cwd就是它现在的位置。每个进程首先由启动它的父进程指定cwd。进程运行期间并不一定会被锁定在一个特定的cwd。有必要的话,进程可以在继续工件前将其cwd转移至另一个目录。
1、Linux文件系统的目录结构(4)pwd命令
完全(或绝对)路径可以使用pwd(printworkingdirectory)命令显示。用户alice希望确定她现在所处的正确目录,应该使用pwd。[alice@stationstudent]$pwd/home/alice/website1、Linux文件系统的目录结构(5)更换目录:cd命令进程可以改变它们的cwd。这包括bashShell命令,它提供从命令提示改变现有位置的cd(changedirectory(改变目录))命令。
特殊目录名.当前工作目录..父目录~用户主目录-上个工作目录1、Linux文件系统的目录结构[alice@stationsongs]$pwd/home/alice/website/songs[alice@stationsongs]$cd~[alice@stationalice]$pwd/home/alice[alice@stationalice]$cd-[alice@stationsongs]$pwd/home/alice/website/songs[alice@stationsongs]$cd..[alice@stationwebsite]$pwd/home/alice/website[alice@stationwebsite]$cd[alice@stationalice]$pwd/home/alice1、Linux文件系统的目录结构(6)绝对引用和相对引用
要找到一个文件,我们必须提供足够的信息,才能在文件系统中找到文件的位置。这个位置可以用两种方式表示:绝对引用(绝对路径名)或相对引用(相对路径名)。绝对引用以斜线(/)开头,然后给出文件的FQN。相对引用不是描述从“/”到文件的路径,而是起始于当前目录的路径。“cd..”是一个相对引用。1、Linux文件系统的目录结构/home/alice/sample.txt的一些相对引用的例子1、Linux文件系统的目录结构例题1:找到你的主目录用户hogan刚刚登录,他不知道在默认状态下,他的主目录就是他的cwd。他也不知道他的主目录是/home/hogan。他希望找到他的主目录,看他的默认cwd是否真的是他的主目录。[hogan@stationhogan]$cd~[hogan@stationhogan]$pwd/home/hogan[hogan@stationhogan]$cd-/home/hogan1、Linux文件系统的目录结构例题2:使用目录树用户alice需要编辑她网站上的一些html文件。登录后,她需要进入到她主目录下的相关子目录。然后她想到/etc查看配置文件。最后她要回到主目录开始另一项工作。[alice@stationalice]$cdwebsite/html[alice@stationhtml]$...(editsthehtmlfiles)...[alice@stationhtml]$cd/etc[alice@stationetc]$...(examinestheconfigurationfile)...[alice@stationetc]$cd[alice@stationalice]$...(continueswithothertasks)...课堂练习浏览文件系统练习目的:演示cd的使用估计时间:10分钟具体操作这个实验让你在bashShell中设置当前目录。如果运行了图形环境,你仅仅只需要打开终端窗口。如果你打开的虚拟终端,使用六个终端任何四个就可以了。在bashShell中打开四个终端(上面描述的),使用根用户登录。使用cd命令设置如下四个目录为当前工作目录:1.~/..2./tmp3./etc/sysconfig4./usr/share/gnome课堂练习结果:1.四个同时运行的bashshell,将上述4个目录作为每一个shell当前工作目录。方法:设置上述列表的第一个目录为Shell的当前工作目录,如下所示。[student@stationstudent]$cd~/..2、重要目录(1)标准Linux目录结构
Linux可以支持多种计算机系统,包括服务器,开发工作站,个人台式机系统等。为了统一这些不同系统的文件系统目录结构,大多数Linux系统使用统一的命名和使用标准,使系统更容易使用和维护。
2、重要目录(2)用户主目录每个Linux系统用户都会有一个指定的特殊目录,叫做他们的主目录(homedirectory),这是他们在系统中的“私人”空间。通常这是一个在目录/home下的子目录,它的目录名与用户登录时使用的用户名一致。有一个例外就是超级用户(根用户),他的主目录通常是/root。2、重要目录一般来说,用户可以在一定程度上完全控制他们的主目录,但访问系统的其他部分则会受到限制。用户登录系统的时候,会“进入”他们的主目录,也就是说,系统将其最初的工作目录作为他们的主目录。2、重要目录(3)临时目录/tmp除了自己的主目录,用户还可以使用目录/tmp中共享的“search”空间。一个数据压缩程序可能会将一部分的结果保存在目录/tmp中,只在工作完成后结果放在用户主目录中。
Linux系统通常会分配一定的配额给用户,以防止任何一个用户过度占用有限空间。如果用户暂时需要一些额外空间,他可以使用目录/tmp,而不需要占用自身的配额。2、重要目录(4)配置目录/etcLinux系统中的配置文件一般保存在配置目录/etc或它的子目录中。各种网络服务器的配置文件都在/etc下,系统管理员会经常使用这些文件管理系统。2、重要目录(5)命令目录/bin和/usr/bin大部分系统命令都以机器可读格式保存为二进制文件。一般用户使用的命令通常位于二进制目录/bin和/usr/bin中。目录/bin和/usr/bin下的工具也可以通过网络共享给其他系统上的用户使用。我们可以将/bin和/usr/bin当成非特权命令目录,因为用户不需要有任何特权就可以使用其中的命令。2、重要目录(6)命令目录/sbin和/usr/sbin就如同目录/bin和/usr/bin为一般用户保存命令文件一样,它们也为超级用户(根用户)保存命令文件。其中包括安装和删除硬件、启动和关闭系统以及进行系统维护的命令。2、重要目录(7)可变目录/var内容经常变化的文件和目录通常位于变量目录/var中。将这些文件放在这里便于给它们分配空间,同时也保护系统里其他比较稳定的文件。2、重要目录(8)rootvs./rootvs./(文件系统根)root(根)这个词在Linux中意义重大但又十分容易混淆。“root”是超级用户的用户名,此用户在系统中有至高无上的权力。同时它也是这个用户的主目录/root。它还是文件系统目录树的根目录。2、重要目录(9)其它/boot:这个目录下存放操作系统启动时所要用到的程序。如启动grub就会用到其下的/boot/grub子目录。/dev:该目录中包含了所有linux系统中使用的外部设备。要注意的是,这里并不是存放的外部设备的驱动程序,它实际上是一个访问这些外部设备的端口。/lib:该目录是用来存放系统动态连接共享库的。几乎所有的应用程序都会用到这个目录下的共享库。因此,千万不要轻易对这个目录进行什么操作。/lost+found:该目录在大多数情况下是空的。只有当系统产生异常时,会将一些遗失的片段放在此目录下。/media:该目录下是光驱和软驱的挂载点,ubuntu已经可以将windows下的分区挂载在此目录下。
2、重要目录/misc:该目录下存放从dos下进行安装的使用工具,一般为空。/mnt:该目录是软驱、光驱、硬盘的挂载点,也可以临时将别的文件系统挂载到此目录下。/proc:该目录是用于放置系统核心与执行程序所需的一些信息。而这些信息是在内存中由系统产生的,故不占用硬盘空间。/usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的programfiles目录/usr/src:内核源代码默认的放置目录。/srv:该目录存放一些服务启动之后需要提取的数据。2、重要目录例题1:/tmp目录用户alice刚刚知道有些进程会自动使用/tmp目录,她想看一下刚才做的工作有没有用到这一空间,同时测试她是否真的可以在这一空间中创建文件。用户alice使用touch命令建立一个文件。[alice@stationalice]$cd/tmp[alice@stationtmp]$lsorbit-alicessh-XXDg4ke3[alice@stationtmp]$ls-ltotal8drwx2alicealice4096Mar1608:04orbit-alicedrwx2alicealice4096Mar1607:07ssh-XXDg4ke32、重要目录[alice@stationtmp]$touchnewfile[alice@stationtmp]$ls-ltotal8-rw-rw-r--1alicealice0Mar1614:14newfiledrwx2alicealice4096Mar1608:04orbit-alicedrwx2alicealice4096Mar1607:07ssh-XXDg4ke32、重要目录例题2:在目录/bin和/usr/bin中搜寻命令用户hogan想知道能否在二进制命令目录/bin和/usr/bin中找到他通常使用的一些命令,包括cp,mozilla,cd和fdisk。用户hogan可以使用ls命令搜寻这些命令,但他想尝试使用一个新的命令which。2、重要目录[hogan@stationhogan]$whichcp/bin/cp[hogan@stationhogan]$whichMozilla/usr/bin/mozilla[hogan@stationhogan]$whichcd/usr/bin/which:nocdin(/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/hogan/bin:)[hogan@stationhogan]$whichfdisk/usr/bin/which:nofdiskin(/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/hogan/bin:)[hogan@stationhogan]$ls/sbin...ether-wakeldconfigportmapusbmodulesextendfslilopoweroffvboxdfdisklogdumppppoevgcfgbackup...
课堂练习浏览重要目录练习目的:浏览在本章讨论重要目录的特征估计时间:15分钟设置:在这个练习中你需要touch命令来创建文件。在本章中有这个命令的举例说明。你需要使用which命令来确定文件的位置。在本章中有这个命令也举例说明了。课堂练习具体操作:1.打开一个新的终端会话或者虚拟终端在不同的目录中你都能用touch创建文件。在用户家目录和/tmp目录中检查,但是不在其他目录中。使用touchnewfile.username(可以用户自己指定文件名)在下列的目录中创建文件。a.~b./tmpc./bind./root显然,你的努力是失败的。结束后返回你的家目录。课堂练习结果1.文件~/newfile.usrname和/tmp/newfile.username,这里的username是主账号名。2.文件~/.bash_history包含有运行过的命令记录。方法下列所示一连串命令说明了which和touch命令的使用,并用是以绝对引用运行的。[student@stationstudent]$touch/tmp/newfile.student[student@stationstudent]$whichpwd/bin/pwd[student@stationstudent]$/bin/pwd/home/student3、文件管理
(1)重定向(redirecton)[julius@stationjulius]$pwd>results.txt如果这个文件已经存在,重定向将会删除并重建一个空的文件存放输出结果。但是,如果使用双箭头(>>),新的输出结果将会追加在文件末尾。如果使用“>>”,但目标文件不存在的话,系统将会建立一个文件,这跟使用“>”的情况一样。3、文件管理产生可见输出的最简单的命令是echo命令。这一命令将所有键盘输入的文本作为命令的一部分回显给STDOUT(一般作为显示)。用户可以将这一命令和重定向命令结合使用创建文本文件。用法:echo[OPTIONS][STRING...]回显字符串(STRING)至标准输出。3、文件管理示例Example1:[julius@stationjulius]$echoHello>greetings.txt[julius@stationjulius]$echoHowareyou>>greetings.txt[julius@stationjulius]$catgreetings.txtHelloHowareyouExample2:[julius@stationjulius]$ls[julius@stationjulius]$pwd>results.txt[julius@stationjulius]$catresults.txt/home/julius[julius@stationjulius]$ls>>results.txt[julius@stationjulius]$catresults.txt/home/juliusresults.txt3、文件管理(2)使用cp复制文件可以使用cp(copy)命令复制文件。用法:cp[OPTIONS]{SOURCE}{TARGET}cp[OPTIONS]{SOURCE...}{DIRECTORY}第一种形式可将SOURCE文件复制为TARGET。第二种形式可以将一个或多个文件复制到某个目录中。3、文件管理示例:(1)复制文件mysong.midi,将复制文件命名为backup.midi:cpmysong.midibackup.midi(2)复制mynovel.txt到/tmp目录下做一个备份:cpmynovel.txt/tmp新文件名为/tmp/mynovel.txt。(3)复制文件songs.tar和nolels.tgz到/tmp目录下:cpsongs.tarnovels.tgz/tmp新文件名为/tmp/songs.tar和/tmp/novels.tgz。(4)从你的主目录复制文件webpage.html到当前目录:cp~/webpage.html新文件名为./webpage.html。3、文件管理#cp/etc/*/a1/把/etc下的所有文件复制到a1目录中#cp/bin/ls/dir1/bin/ls文件到/目录取名为dir1#cp-f/sbin/*/exe/直接将/sbin下的所有文件到/exe目录中#cp-r/soft/abc/
3、文件管理(3)使用mv移动或重新命名文件使用mv(move)命令可以将文件从一个目录移动到另一个目录,或重新命名文件。用法:mv[OPTION...]{SOURCE}{TARGET}mv[OPTION...]{SOURCE...}{DIRECTORY}第一种形式将SOURCE文件重新命名为TARGET。第二种形式可以将一个或多个文件同时移动到某个目录下。3、文件管理虽然mv命令的名称源于“move(移动)”,但它并不是真的移动数据,文件系统只是记录文件名更改。示例:(1)将文件mysong.midi重新命名为backup.midi:mvmysong.midibackup.midi(2)将文件mynovel.txt移动到/tmp目录下:mvmynovel.txt/tmp新文件名为/tmp/mynove.txt3、文件管理(3)将文件songs.tar和novels.tgz移动到/tmp目录下:mvsongs.tarnovels.tgz/tmp新文件名为/tmp/songs.tar和/tmp/novels.tgz。(4)将文件webpage.html从你的主目录移动到当前工作目录中mv~/webpage.html.新文件名为./webpage.html。(5)将当前工作目录中的子目录html重新命名为public_html:mvhtmlpublic_html假设./public_html不存在,这样做将./html重新命名为./public_html。(6)你的cwd是你的主目录,它下面有两个目录,~/images和~/html。将目录images移动到目录html:3、文件管理#mv/m1/f1/m2/移动/m1目录下f1文件到/m2目录下#mvf1f2将当前目录下的f1文件改名f2#mv-f/d1/*/d2/移动/d1中的所有文件到/d2目录中3、文件管理(4)使用rm命令清除(删除)文件可以使用rm(remove)命令清除(擦除,删除)文件。用法:rm[OPTIONS]{FILE...}除非使用特殊命令选项,否则rm命令不能删除目录。另有rmdir命令完成这一工作。示例:1.删除mysong.midi:rmmysong.midi2.删除songs.tar和novels.tgz:rmsongs.tarnovels.tgz3.从你的主目录中删除photos.html:rm~/photos.html
3、文件管理#rm/m1/f1删除/m1目录下的f1#rm–f/m1/*删除m1目录下的所有文件#rm-rf/m1强制删除一个目录3、文件管理使用“>”重定向,cp和mv命令都能够命名目标文件。在一般情况下,这些命令创建这些新文件并命名。但如果重定向、cp和mv命令的目标是已经存在的文件,在事先“没有”给出警告的情况下这些文件就会被损坏。3、文件管理例题1:移动和存档简单网站用户madonna想要建立一个简单的个人网站,但她的ISP告诉她说所有的网页文件都放在错误的目录中,这些文件应该放在目录~/public_html下而不是目录~/html下。她需要将文件移动到正确的目录中,同时她还希望将旧目录备份一份到目录archive下,以防万一。archive是已经存在的目录。3、文件管理[madonna@stationmadonna]$lshtmlarchive[madonna@stationmadonna]$mvhtmlpublic_html[madonna@stationmadonna]$cdpublic_html[madonna@stationpublic_html]$lsindex.htmlphoto.jpeg[madonna@stationmadonna]$cpindex.htmlphoto.jpeg../archive用户madonna只要重新命名目录就可以移动所有文件。她需要使用cp命令同时复制一个以上的文件,从而进行备份。3、文件管理例题2:移动简单网站用户nero想要建立一个简单的个人网站,但她的ISP告诉她说所有的网页文件都放在错误的目录中,这些文件应该放在目录~/public_html下而不是目录~/html下。她需要将文件移动到正确的目录中。但他的问题要比用户madonna的复杂,他不能直接重新命名子目录。目录public_html是他的ISP为他建立的。3、文件管理[nero@stationnero]$lsindex.htmlphoto1.jpegphoto2.jpegpublic_html[nero@stationnero]$mvindex.htmlphoto1.jpegphoto2.jpegpublic_html[nero@stationnero]$lspublic_html[nero@stationnero]$cdpublic_html[nero@stationpublic_html]$lsindex.htmlphoto1.jpegphoto2.jpeg用户nero使用mv命令同时移动一个以上的文件。3、文件管理例题3:删除robots.txt
用户Elvis注意到在他的~/public_html目录中有一个他不知道的文件robots.txt。他决定删除它。[elvis@stationelvis]$lspublic_html[elvis@stationelvis]$lspublic_htmlindex.htmlrobots.txt[elvis@stationelvis]$rmpublic_html/robots.txt[elvis@stationelvis]$lspublic_htmlindex.html课堂练习创建一个网站练习目的:使用重定向、cp和mv创建一简单网站,保存这个网站。估计时间:15分钟设置:在这个练习中你将需要使用~/html和~/arcive目录。用户登录,使用如下命令创建这两个目录。[student@stationstudent]$mkdir~/html[student@stationstudent]$mkdir~/archive课堂练习具体操作:使用本章示例中的技巧演示你希望创建一个简单的个人网站1.在~/index.html文件中,创建一个“Underconstruction”页面。2.移动这个文件到~/html。3.将html目录重命名为public_html。4.复制index.html文件到~/archive中。注意页面可能或不能浏览,依赖一系统配置的新特性。结果:1.两个文件,~/public_html/index.html和~/archive/index.html,都是同样的内容。(内容“Underconstruction”,可能有HTML标记)课堂练习[student@stationstudent]$mkdirhtmlarchive[student@stationstudent]$echo'<h1>'>index.html[student@stationstudent]$echo'Underconstruction'>>index.html[student@stationstudent]$echo'</h1>'>>index.html[student@stationstudent]$mvindex.htmlhtml[student@stationstudent]$mvhtmlpublic_html[student@stationstudent]$cppublic_html/index.htmlarchive[student@stationstudent]$lspublic_htmlindex.html[student@stationstudent]$lsarchiveindex.html4、目录管理
(1)建立(新的、空)目录:mkdir
要将文件组织在目录中,必须先建立你需要的目录。在Linux系统中,建立新目录的命令是mkdir(makedirectory)。用法:mkdir[OPTIONS]{DIRECTORY...}如果没有DIRECTORY目录存在,那么就建立目录,如果已经存在一个或者多个目录,会产生错误信息,但还会继续建立尚未存在的目录。4、目录管理用户Elivis会这样建立子目录~/public_html:[elvis@stationelvis]$ls[elvis@stationelvis]$mkdirpublic_html[elvis@stationelvis]$lspublic_html用户Elivis可以为~/public_html建立子目录:[elvis@stationelvis]lspublic_html[elvis@stationelvis]mkdirpublic_html/images[elvis@stationelvis]lspublic_htmlimages注意,在默认状态下,如果父目录不存在,mkdir命令不能为其建立子目录:4、目录管理示例:#mkdird1(在当前目录下建立d1子目录)#mkdir/d1/d2/d1/d3/d1/d4(同时在/d1目录中建立d2,d3,d4子目录)#mkdir–p/d1/d2(在/d1目录中建立d2子目录,先建d1)4、目录管理(2)列出显示目录树当ls命令附加一个目录作为其参数时,能列出整个目录的内容。如果你希望ls命令显示子目录,要在这个命令后加-R作为命令行选项。举例来说,用户hogan在查看机器的网络配置时,他认为目录/etc/sysconfig/networking可能非常重要。用户hogan递归列出这目录中的文件和子目录,查看其内容。4、目录管理[hogan@stationhogan]$ls-R/etc/NetworkManager//etc/NetworkManager/:dispatcher.dNetworkManager.confsystem-connectionsVPN/etc/NetworkManager/dispatcher.d:00-netreport05-netfs10-dhclient/etc/NetworkManager/system-connections:/etc/NetworkManager/VPN:ls–R命令还可以和我们以前学过的命令行选项一起使用,如ls–sR命令可显示文件大小;ls–lR命令列出文件属性。4、目录管理(3)删除(清空)目录:rmdir。删除目录的命令是rmdir(removedirectory)命令用法:rmdir[OPTIONS]{DIRECTORY...}如果目录是空的,此命令会删除它们,如果目录中有内容,则会产生错误信息且不能删除目录,但是它会继续删除其余的空目录。注意,只包括一个子目录不是空的。4、目录管理示例:#rmdira1(删除当前目录下的a1子目录)#rmdir/etc/a2(删除/etc下a2子目录)#rmdir-p/a1/a24、目录管理(4)复制目录树:cp-rcp命令加带选项-r可以复制整个目录树[hogan@stationhogan]$cp-rwebsitearchive
4、目录管理(5)删除目录树:rm-rrm命令加带选项-r可以删除整个目录树。hogan@stationhogan]$rm-rwebsite/media
4、目录管理(6)用tree命令检查目录tree命令递归显示目录的内容,与ls–R命令的输出很像,然而,它是像ASCII树直观的显示。相似地,tree-d仅仅显示目录。[elvis@station~]$tree/etc/NetworkManager/4、目录管理例题1:为目录树做备份用户hogan有一份重要的报告,他将其中的几份文件放在目录report下的子目录里。[hogan@stationhogan]$cpreportreport.bakcp:omittingdirectory`report'意识到他的错误,他添加了命令行选项-r,让cp命令递归复制。[hogan@stationhogan]$cp-rreportreport.bak目录report中的内容被递归复制到report.bak里。4、目录管理用户hogan完成拼写检查后,他希望删除备份的目录report.bak。他先使用rmdir命令。[hogan@stationhogan]$rmdirreport.bak/rmdir:`report.bak/':Directorynotempty意识到rmdir命令只能用在清空的目录上,他改用rm–r命令。[hogan@stationhogan]$rm-rreport.bak/[hogan@stationhogan]$lsreport4、目录管理例题2:建立文件的本地副本用户ventura对程序语言Python感兴趣。他在目录/usr/share/doc/pygtk2-2.10.1/examples/中发现了一个该语言的脚本样本。他希望可以修改这个脚本,以便试一些他的新想法,他没有这个文件的写入权限,于是他决定为这个脚本建立一个本地副本。[ventura@stationventura]$cp-r/usr/share/doc/pygtk2-2.16.0/examples/[ventura@stationventura]$ls-Rexamples/课堂练习管理目录练习目的:有效的列出,复制,移动,删除目录估计时间:20分钟具体操作你对gedit感兴趣,一个简单的编辑器,想要浏览它的设计。1.使用ls命令(合适的命令行)来获得递归列表,包括文件大小,目录/usr/share/gedit-2目录的内容。输出重定向到你的家目录下,并命名为了lsgedit.txt。(为了更好的效果,使用绝对引用指定路径是很重要的,而不是share/gedit-2)。2.在家目录下递归复制目录/usr/share/gedit-2。复制的目录仍叫做gedit-2。3.在家目录下备份新创建的目录gedit-2,命名为gedit-2.bak。4.在备份中,递归删除gedit-2.bak/plugins子目录。5.再次在备份中,移动gedit-2.bak/icons到家目录中(目录名仍为icons)。清除:你建立了合适大小的目录,因此关机时你需要删除它来保护磁盘空间。5、文件名和文件名匹配(1)文件名许多操作系统都限制文件名字符的选择和数目。Linux系统允许文件名使用任何可打印字符,文件名可为任何长度。不包括目录组成部分,Linux文件名最长可达255个字符。当用在命令里的时候,绝对或相对引用,包括目录组成部分,最长可达4096个字符。5、文件名和文件名匹配Linux文件名可以包含除“/”以外的任何可打印(甚至不可打印)字符。不能使用斜线是因为,它是用来在相对引用或FQN中分开目录名组成部分的符号。因为很多“不常用”符号是Shell的元字符,所以在文件名中使用这些符号时要引号保护。5、文件名和文件名匹配[julius@stationjulius]$touch'aandb'[julius@stationjulius]$touch'"'[julius@stationjulius]$touch"'"[julius@stationjulius]$touch'!@#$%^&*()_+=-|\}]{[:;?>.<,~`'[julius@stationjulius]$ls!@#$%^&*()_+=-|\}]{[:;?>.<,~`'"aandb一般来说,文件名包括字母、数字和._-+~(A-Z、a-z、0-9、点、下划线、破折号、加号和波浪号)等标点符号。5、文件名和文件名匹配以下两个示例显示滥用有特定意义字符的后果,在这里有两个Shell元字符(空格和大于号)被错误使用的。示例1:空格![hogan@stationhogan]$mkdirbaddir①[hogan@sta
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大数据商务科技云计算汇报总结模板
- 商务工作汇报与总结呈现技巧
- 2026年上海市政工系列职称考试(思想政治工作)考前冲刺试题及答案
- 2026年机械伤害事故预防及应急处理专项培训考试卷及答案
- 2026年湖北省孝感市农业专业技术职务水平能力测试(水产工程)练习题及答案
- 安全生产培训警示教育
- 学校饮用水卫生管理制度
- (2026版)护理核心制度试题及参考答案
- 札达县达巴镇达巴村二组半舍饲集中养殖建设项目水土保持报告表
- 四川稀土伴生矿物料综合处置项目水土保持报告书
- 市政管网施工安全培训课件
- 四新安全技能培训内容课件
- 医疗器械生产企业洁净区工作服管理规定
- 物业品质现场培训课件
- 第六单元大单元教学课件(共41张) 2024-2025学年统编版语文七年级下册
- SL3000变频恒压供水控制系统
- 消防设施评估报告范本
- 2025年广东省中考地理试题卷(标准含答案)
- 劳务合同培训课件
- 辽宁省文体旅集团所属企业招聘笔试题库2025
- 闺蜜合伙开店合同协议书
评论
0/150
提交评论