第5章 Linux操作系统下命令的使用
5.1 Linux常用命令
5.1.1 Linux命令的使用方式
在Linux系统中打开终端的方式有以下两种:
一种是在桌面上依次单击“主程序→系统工具→终端”可打开终端窗口,另一种是在Linux桌面上单击鼠标右键,从弹出的快捷菜单中选择“新建终端”命令,也可打开终端窗口。
一般的Linux使用者均为普通用户,而系统管理员一般使用超级用户帐号(root),完成一些系统管理的工作。要说明的是,不同的用户登录其终端的提示符略有不同,超级用户的提示符为 # 。如果是一般用户登录,其提示符为 $ 。
终端显示提示符后,用户就可以输入命令请示系统执行。这里所谓命令就是请示调用某个程序。例如当用户输入date命令时,系统就去调用date程序显示当前的日期和时间,终端屏幕上会出现类似下面的信息:
[root@qrs root]# date
二 3月29 10:50:46 CST 2005
当命令输入完毕后,一定不要忘记按回车健,因为系统只有收到回车键才认为命令行结束。
又如询问当前有哪些用户挂在系统里。命令及响应如下所示: [root@qrs root]# who
root :0 Mar 29 10:45 root pts/0 Mar 29 10:49(:0.0) jl pts/1 Feb 29 10:40(:0.0)
另外,在终端上还有一个命令补齐(Command-Line Completion)的操作技巧,所谓命令补齐是指当键入的字符足以确定目录中一个唯一的文件时,只须按 Tab 键就可以自动补齐该文件名的剩下部分,例如,要进入busy box-1.00-pre3目录,由于此目录是唯一以b开头的,操作时只要键入cd b,再按下Tab键,这时命令会自动补齐余下的字符,非常方便。
在Linux系统的终端中有几个最有用的bash变量,这些变量、变量名及简单的描述如下: HISTFILE: 用于贮存历史命令的文件。 HISTSIZE: 历史命令列表的大小。
-76- 嵌入式Linux系统开发与应用实验教程
HOME: 当前用户的用户目录。 OLDPWD: 前一个工作目录。
PATH: bash寻找可执行文件的搜索路径。 PS1: 命令行的一级提示符。 PS2: 命令行的二级提示符。 PWD: 当前工作目录。
SECONDS: 当前shell开始后所流逝的秒数。
这意味着 bash 保留了一定数目的先前已经在shell 里输入过的命令。这个数目取决于一个叫做HISTSIZE的变量。使用历史记录列表最简单的方法是用上方向键。
另一个使用命令历史文件的方法是用 bash 的内部命令 history 和 fc(fix 命令)命令来显示和编辑历史命令。history 命令能以两种不同的方法来调用。第一种是:
history [n]
当 history 命令没有参数时,整个历史命令列表的内容将被显示出来。使用 n 参数的作用是仅有最后 n 个历史命令会被列出 。
例如,history 5 显示最后 5 个命令。
调用 history 命令的第二种方法用于修改命令历史列表文件的内容。命令的语法如下: history [-r|w|a|n] [filename]
这种形式中,-r 选项告诉 history 命令读命令历史列表文件的内容并且把它们当作当前的命令历史列表。-w 选项将把当前的命令历史记录写入文件中并覆盖文件原来的内容。-a 选项把当前的命令历史记录追加到文件中。-n 选项将读取文件中的内容并加入到当前历史命令列表中。如果 filename 选项没有被指定,history 命令将用变量HISTFILE 的值来代替。
Linux中的通配符
通配符又称多义符。在描述文件时,有时在文件名部分用到一些通配符,以加强命令的功能。在Linux系统中有以下基本的通配符:
?:表示该位置可以是一个任意的单个字符。 * :表示该位置可以是若干个任意字符。
5.1.2 Linux进入与退出系统
1.进入Linux
打开微机,在系统选择界面选择Linux,以启动Linux系统。在启动过程中,系统解压释放文件需要等待一段时间,当释放工作完成,进入用户登录界面。
用户登录分两步:第一步,输入用户帐号,系统根据该帐号识别用户;第二步,输入用户的口令,该口令是用户自己设置的一个字符串,对其他用户是保密的,是在登录时系统用来辨别真假用户的关键字。
在系统安装过程中可以创建以下两种帐号:
第5章 Linux的常用操作 -77-
1.root--超级用户帐号(系统管理员),使用这个帐号可以在系统中做任何事情。 2.普通用户--这个帐号供普通用户使用,可以进行有限的操作。
一般的Linux使用者均为普通用户,而系统管理员一般使用超级用户帐号完成一些系统管理的工作。如果只需要完成一些由普通帐号就能完成的任务,建议不要使用超级用户帐号,以免无意中破坏系统。影响系统的正常运行。
当用户正确地输入用户名和口令后,就能合法地进入Linux系统的X-Windows图形用户界面。
2.退出Linux
要想退出Linux系统,只要点击主菜单中的“注销”命令,在打开的对话框中选择“关机”即可。
5.1.3 Linux目录的显示、创建与删除命令
1. 目录及文件显示命令ls
功能:显示指定工作目录中所包含的内容的指令是ls,要说明的是ls命令列出文件的名字,而不是文件的内容。该命令的使用方式如下:
语法:ls [选项] [文件目录列表] 命令选项:ls命令中的常用选项如下:
◆ -a:显示所有文件及目录 (ls规定将文件名或目录名中开头为 “·”的视为隐藏档,不会列出。)
◆ -c:按列输出,纵向排序; ◆ -x:按列输出,横向排序;
◆ -l:除文件名外,也将文件状态、权限、拥有者、文件大小 等信息详细列出 ; ◆ -t :根据文件建立时间的先后次序列出 ;
◆ -A :同 -a ,但不列出 \".\" (目前目录) 及 \"..\" (父目录) ; ◆ -X:按扩展名排序显示; ◆ -R:递归显示下层子目录; ◆ --help:显示帮助信息; ◆ --version:显示版本信息。
例如,显示uclinux目录下的所有文件及子目录,命令行如下:
[/] # ls –a /uclinux
2. 创建目录命令mkdir
功能:创建一个目录(类似MSDOS下的md命令)。 语法:mkdir [选项] dir-name
说明:该命令创建由dir-name命名的目录。要求创建目录的用户在当前目录中(dir-name
-78- 嵌入式Linux系统开发与应用实验教程
的父目录中)具有写权限,并且dirname不能是当前目录中已有的目录或 文件名称。
命令选项:mkdir命令中常用选项如下:
◆ - m 对新建目录设置存取权限。也可以用chmod命令设置。
◆ - p 可以是一个路径名称。此时若路径中的某些目录尚不存在, 加上此选项后, 系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
例如,创建一个/zhm1/zhm2多层子目录,命令格式如下:
[/]# mkdir -p /zhm1/zhm2
3.删除空目录命令rmdir 功能:删除空目录。 语法:rmdir [选项] dir-name
说明:dir-name表示目录名。该命令从一个目录中删除一个或多个子目录项。需要特别注意的是,一个目录被删除之前必须是空的。rm - r dir命令可代替 rmdir,但是有危险性。删除某目录时也必须具有对父目录的写权限。
命令选项: rmdir命令常用选项如下:
◆ - p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。
例如,删除上边创建的/zhm1/zhm2 两级目录,命令格式如下:
[/]# rmdir –p /zhm1/zhm2 ;这递归的两极目录都为空
4.改变工作目录命令cd 功能:改变工作目录。 语法:cd [directory]
说明:该命令将当前目录改变至directory所指定的目录。若没有指定directory, 则回到用户的主目录。为了改变到指定目录,用户必须拥有对指定目录的执行和读权限。
该命令可以使用通配符。命令后一定要有空格。例如:
[/]#cd uc*ux ↙ ;进入uclinux子目录 [/uclinux]#cd ..↙ ;退出uclinux子目录
命令#cd ..是一级一级退回目录,如果想一下退回到根目录,可用如下命令: [/uclinux/exp/01_hello]# cd / [/]#
5.显示目录路径命令pwd
在Linux层次目录结构中,用户可以在被授权的任意目录下利用mkdir命令创建新目录,
第5章 Linux的常用操作 -79-
也可以利用cd命令从一个目录转换到另一个目录。然而,没有提示符来告知用 户目前处于哪一个目录中。要想知道当前所处的目录,可以使用pwd命令,该命令显示整个路径名。
语法:pwd
说明:此命令显示出当前工作目录的绝对路径。
5.1.4 Linux文件的复制、删除和移动命令
1. 文件拷贝命令cp
功能:该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的copy命令一样,功能十分强大。
语法: cp [选项] 源文件或目录 目标文件或目录。
说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。 命令选项:该命令的各选项含义如下:
◆ - a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
◆ - d 拷贝时保留链接。
◆ - f 删除已经存在的目标文件而不提示。
◆ - i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
◆ - p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
◆ - r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
◆ - l 不作拷贝,只是链接文件。
需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令拷贝文件后,这个文件就会被新源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用-i选项。例如,将zhm目录下的以ming打头的多个文件拷贝到mmm目录中,要求拷贝之前系统给出提示,命令格式如下:
[/]# cp –i /zhm/ming$.* /mmm ;假如指定的文件名已存在。 cp 是否覆盖‘/mmm/ming1.c ? y ;如要覆盖选y,否则按其它键。 cp 是否覆盖‘/mmm/ming2.c ? n cp 是否覆盖 ‘/mmm/mingk.o ? n [/]#
2.移动命令mv
功能:用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。该命令如同MSDOS下的ren和move的组合。
-80- 嵌入式Linux系统开发与应用实验教程
语法:mv [选项] 源文件或目录 目标文件或目录。
说明:视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。
命令选项:
◆ – i : 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。
◆ – f : 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。
注意:如果所给目标文件(不是目录)已存在,此时该文件的内容将被新文件覆盖。为防止用户用mv命令破坏另一个文件,使用mv命令移动文件时,最好使用-i选项。
举例,将zhm目录中的所有文件都移动到mmm目录中(假定有一个重名文件),命令如下:
[/]# mv –i /zhm/*.* /mmm mv:是否覆盖‘/zhm/ming1.c’?y
操作完成后,zhm目录中的文件都移到mmm中了,zhm目录为空。
3.删除命令rm
功能:用户可以用rm命令删除不需要的文件。该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是断开了链接,原文件保持不变。
语法:rm [选项] 文件…
如果没有使用- r选项,则rm不会删除目录。 命令选项:
◆ - f 忽略不存在的文件,从不给出提示。
◆ - r 指示rm将参数中列出的全部目录和子目录均递归地删除。 ◆ - i 进行交互式删除。
使用rm命令要小心。因为一旦文件被删除,它是不能被恢复的。为了防止这种情况的发生,可以使用-i选项来逐个确认要删除的文件。如果用户输入y,文件将被删除。如果输入任何其他东西,文件则不会删除。例如,删除以m打头的多个源文件,删除之前要得到系统确认,命令格式如下:
[/zhm/]#rm -i m* ↙
rm:是否删除一般文件‘ming1.c’? n ↙
第5章 Linux的常用操作 -81-
rm:是否删除一般文件‘ming2.c’ ? y ↙ ┇
5.1.5 Linux文本处理命令
1. 显示文件内容命令cat
功能:用来将文件的内容显示到终端上。 语法:cat [选项] 文件列表 命令选项:cat常用命令选项如下: ◆ –b :计算所有非空输出行,开始为1。 ◆ –e :在每行末尾显示$符号。 ◆ -n :计算所有输出行,开始为1。 ◆ –s :将相连的多个空行用单一空行代替。
举例,打开实验程序pthread..c,并计算该程序共有多少行,命令如下:
[/02_pthread]# cat –b pthread.c
2.查找文件命令find
功能:find命令可在使用、管理Linux系统中方便地查找所需要的指定文件。 语法:# find [目录列表] [匹配标准]
说明:在命令格式中有两个参数,目录列表:希望查询文件或文件集的目录列表,目录间用空格分隔。匹配标准:希望查询的文件的匹配标准或说明。常用的几个匹配标准如下:
◆-name文件:告诉find要找什么文件;要找的文件包括在引号中,可以使用通配符(*和?)。
◆-print :显示整个文件路径和名称。一般来说,都要用-print,如果没有这个参数,则find命令进行所要求的搜索是没有显示结果的。 例如,知道了某个文件的文件名,却不知道它存于哪个目录下,此时可通过查找命令找到该文件,命令如下:
[/] # find / -name menu -print
当要查找某个文件时,不知道该文件的全名,只知道这个文件包含几个特定的字母,此时用查找命令也是可找到相应文件的。这时查找的文件名可使用通配符“*”、“?”,命令如下:
[/] # find / -name *heed* -print
例如,查找fstab文件在哪个目录下,输入如下命令:
[/]# find -name ‘fstab’ -print [回车] ./uclinux/romfs/etc/fstab
-82- 嵌入式Linux系统开发与应用实验教程
3. 排序命令sort
sort命令的功能是对文件中的各行进行排序. sort命令可以被认为是一个非常强大的数据管理工具,用来管理内容类似数据库记录的文件。Sort命令将逐行对文件中的内容进行排序,如果两行的首字符相同,该命令将继续比较这两行的下一字符,如果还相同,将继续进行比较。
语法:sort [选项] 文件
说明:sort命令对指定文件中所有的行进行排序,并将结果显示在标准输出上。如不指定输入文件或使用“- ”,则表示排序内容来自标准输入。
命令选项:
◆- d :按字典顺序排序,比较时仅字母、数字、空格和制表符有意义。 ◆- f :将小写字母与大写字母同等对待。 ◆- I :忽略非打印字符。
◆- M :作为月份比较:“JAN”<“FEB” ◆ - r :按逆序输出排序结果。
4.文件内容统计命令
功能:wc命令的功能为统计指定文件中的字节数、字数、行数, 并将统计结果显示输出。 语法:wc [选项] 文件列表
说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串
命令选项: ◆-c:统计字节数。 ◆-l:统计行数。 ◆-w:统计字数。
举例,统计程序menu.c的行数,命令如下:
[/]# wc -l /uclinux/exp/menu/menu.c [回车]
5.1.6 磁盘管理命令
1.df命令
功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
语法:df [选项]
说明:df命令可显示所有文件系统对i节点和磁盘块的使用情况。 命令选项:
◆-a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件
第5章 Linux的常用操作 -83-
系统。
◆-k :以k字节为单位显示。
◆-i :显示i节点信息,而不是磁盘块。
◆-t :显示各指定类型的文件系统的磁盘空间使用情况。
◆-x :列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。 ◆-T :显示文件系统类型。
举例,用df命令显示文件系统类型。事先将软盘、光盘和U盘都插上。命令如下:
[/]# df –T [回车] ;文件系统类型显示如下:
图5-1 显示文件系统类型
2.du命令
功能:统计目录(或文件)所占磁盘空间的大小。du的英文原义为“disk usage”,含义为显示磁盘空间的使用情况。
语法:du [选项] [Names…]
说明:该命令逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块(1024字节)的情况。若没有给出Names,则对当前目录进行统计。
命令选项:
◆-s 对每个Names参数只给出占用的数据块总数。
◆-a 递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。
◆-b 以字节为单位列出磁盘空间使用情况(系统缺省以k字节为单位)。 ◆-k 以1024字节为单位列出磁盘空间使用情况。 ◆-c 最后再加上一个总计(系统缺省设置)。
◆-l 计算所有的文件大小,对硬链接文件,则计算多次。 ◆-x 跳过在不同文件系统上的目录不予统计。
举例,统计uclinux目录占用磁盘数据块总数,命令如下:
-84- 嵌入式Linux系统开发与应用实验教程
[/]# du –s uclinux [回车] 307948 uclinux
3.fdformat 命令
功能:低级格式化软盘。软盘是用户常用的存储介质之一。软盘在使用之前必须先作格式化操作,然后可以用tar、dd、cpio等命令存储数据,也可以在软盘上建立可安装的文件系统。
语法:fdformat [-n] device
说明:device 指定要进行格式化的设备,1.44M软驱为/dev/fd0H1440。 命令选项:
◆-n :软盘格式化后不作检验。
格式化软盘的具体操作将在后面软盘的使用一节详细介绍。
5.1.7 其它一些命令
1.passwd命令
出于系统安全考虑,Linux系统中的每一个用户除了有其用户名外,还有其对应的用户口令。因此使用useradd命令增加时,还需使用passwd命令为每一位新增加的用户设置口令;用户以后还可以随时用passwd命令改变自己的口令。
该命令的一般格式为: passwd [用户名] 其中用户名为需要修改口令的用户名。只有超级用户可以使用“passwd 用户名”修改其他用户的口令,普通用户只能用不带参数的passwd命令修改自己的口令。
该命令的使用方法如下: 输入
passwd< Enter>;
在(current) UNIX passwd:下输入当前的口令
在new password:提示下输入新的口令(在屏幕上看不到这个口令):
系统提示再次输入这个新口令。输入正确后,这个新口令被加密并放入/etc/shdow文件。选取一个不易被破译的口令是很重要的。
选取口令应遵守如下规则:
口令应该至少有六位(最好是八位)字符; 口令应该是大小写字母、标点符号和数字混杂的。
2. free命令
功能:free命令的功能是查看当前系统内存的使用情况,它显示系统中剩余及已用的物理内存和交换内存,以及共享内存和被核心使用的缓冲区。
语法: free [-b | -k | -m]
第5章 Linux的常用操作 -85-
命令选项:
◆-b 以字节为单位显示。 ◆-k 以K字节为单位显示。 ◆-m 以兆字节为单位显示。
3. 文件压缩命令gzip
功能:gzip命令是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。
语法:gzip [选项] 压缩(解压缩)的文件名 命令选项:
◆-c:将输出写到标准输出上,并保留原有文件。
◆-d :将压缩文件解压。
◆-l :对每个压缩文件,显示压缩文件的大小、未压缩文件的大小、压缩比、未压缩文件的名字等详细信息 。
◆-r :递归式地查找指定目录并压缩其中的所有文件或者是解压缩。 ◆-t :测试,检查压缩文件是否完整。
◆ -v :对每一个压缩和解压的文件,显示文件名和压缩比。
4.unzip命令
功能:用MS Windows下的压缩软件winzip压缩的文件如何在Linux系统下展开呢?可以用unzip命令,该命令用于解扩展名为.zip的压缩文件。
语法:unzip [选项] 压缩文件名.zip 命令选项:
◆-x :文件列表解压缩文件,但不包括指定的file文件。 ◆-v :查看压缩文件目录,但不解压。 ◆-t :测试文件有无损坏,但不解压。 ◆-d :目录 把压缩文件解到指定目录下。 ◆-z :只显示压缩文件的注解。 ◆ -n :不覆盖已经存在的文件。
5.文件打包tar
功能:tar可以对文件和目录进行打包。利用tar,用户可以对某一特定文件进行打包(一般用作备份文件),也可以在包中改变文件,或者向包中加入新的文件。
语法:tar [主选项+辅选项] 文件或者目录 命令选项:
◆-c :创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。 ◆-x :从档案文件中释放文件。
◆-r:把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还
-86- 嵌入式Linux系统开发与应用实验教程
有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
◆-t :列出档案文件的内容,查看已经备份了哪些文件。
◆-u :更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
6.clear命令
clear命令的功能是清除屏幕上的信息,它类似于DOS中的 cls命令。清屏后,提示符移动到屏幕左上角。
5.2 Linux的基本使用
熟悉了在Windows下操作的人,初转到Linux下会感到不适应,如还按照过去的思路来使用软盘、光盘肯定是行不通的。在Linux操作系统下,各种设备是以系统设备文件的形式存在于系统设备目录/dev中的。这些文件用于访问系统中所有不同类型的硬件。例如/dev/fd0文件对应软驱设备文件,用于处理软盘的读写,/dev/cdrom文件对应光驱设备文件,用于读取光盘的。所有的设备都被当作文件来处理,所以要访问软盘、光盘或U盘,都必须先将它们挂载到Linux系统下的/mnt目录中,然后才能对它们进行操作。下面先介绍挂载命令mount的命令格式,再分别介绍软盘、光盘和U盘的使用。Mount命令格式如下:
mount [-t文件系统类型] [设备名] [挂载目录]
其中:文件系统类型指的是分区格式,关于文件系统类型在第1.2.4章节中有所介绍,这里不再赘述。设备名指的是你要装载的设备的名称,软盘一般为/dev/fd0 fd1;光盘则根据你的光驱的位置来决定,通常光驱装在第二硬盘的主盘位置就是/dev/hdc;U盘一般为/dev/sda。挂载目录,就是你指定设备的载入点。 mount命令的基本格式可以省略第一个选项,这时命令格式如下:
mount 系统设备名 挂载目录。
5.2.1 软盘的使用
软盘是个人计算机(PC)中最早使用的可移动存储介质。虽然目前U盘越来越得到广泛的应用,但软盘作为一种可移存储设备,由于它的价格低廉,它仍然是用于那些需要被物理移动的小文件的理想选择。
(1)挂载和卸载软盘
在使用软盘之前,它一定要先被挂载,软盘的挂载目录为/mnt/floppy,如果没有这个目
第5章 Linux的常用操作 -87-
录,可先用创建目录命令在/mnt目录下建立一个空的floppy目录。先把软盘插入软盘驱动器,然后在终端shell提示下键入挂载命令,挂载命令格式如下:
# mount /dev/fd0 /mnt/floppy
当该软盘的文件系统被挂载到 “/mnt/floppy” 目录中时,软盘驱动器的活动灯应该闪动。可以通过使用“cd /mnt/floppy/” 命令转换到那个目录里来存取软盘上的内容。
你还可以用鼠标右击桌面,选择“磁盘”→“软驱”,这也会挂载软盘并添加了一个桌面图标,双击这个图标会展示软盘内容。
软盘挂载后,就可以象在硬盘中一样从中打开、存储和复制文件。
当完成了软盘上的任务后,在把它从驱动器中取出之前,应该先卸载它。关闭所有可能还在使用软盘上文件的程序或展示软盘内容的程序,然后在shell提示下键入以下卸载命令:
# umount /mnt/floppy/
正常卸载退回到系统提示符下,这时再进入/mnt/floppy 目录,该目录为空。
你也可以通过右击桌面上的软盘图标然后从菜单中选择“弹出”来卸载软盘。桌面上的软盘图标消失。
(2)在 MS-DOS 软盘上存放 Linux 文件
要把Linux系统上的文件复制到MS-DOS格式化的软盘上,以便使Windows系统能够读取它,这时的软盘应该是MS-DOS(FAT)文件系统格式。目前软盘出厂前已被格式化为MS-DOS(FAT)1.44M,所以软盘不需再格式化可以直接使用。
使用以下命令来复制文件(把 filename 替换为要复制的文件): # cp filename /mnt/floppy
举例:将/uclinux/exp/03_ad 目录下的源文件拷贝到软盘上,输入命令如下: # cp /uclinux/exp/03_ad/main.c /mnt/floppy # cd /mnt/floppy # ls main.c
复制工作完成,进入软盘目录,就可以读出复制的文件。然后,便可以卸载软盘,此时仔细观察,可以看到软驱的指示灯才亮,这时Linux才真正向软盘上写入数据。前面的复制操作只是在缓冲区中进行,只有卸载时,才把缓冲区中的数据写回软盘。卸载成功后才能把软盘从驱动器中取出。软盘中的新文件现在就可以从 Windows 机器上被存取了。
由于目前的Linux系统提供了X-Windows图形用户界面,有些操作可以像Windows一样方便快捷,如上面的文件复制,就可以利用鼠标复制粘贴,而不必使用命令。
-88- 嵌入式Linux系统开发与应用实验教程
(3)格式化软盘
如果只在 Red Hat Linux 中使用软盘,还需使用 ext2 文件系统来格式化它。ext2是Linux所支持的文件系统之一,而且它是格式化磁盘的默认方法。一旦已在软盘上创建了ext2 文件系统,就可以使用与在硬盘上操作文件和目录相同的方法来操纵该软盘的内容。格式化软盘的命令如下:
# /usr/bin/fdformat /dev/fd0H1440
其中,H表示要格式化的软盘是高密盘,1440表示软盘的容量为1440K字节,即常见的1.44M的通用软盘。/dev/fd0表示是第一软驱,即dos中的A驱动器。
软盘格式化以后就可以使用文件的操作命令,如mkdir、rmdir、cp、mv、rm等在软盘上进行文件操作了。
另外,Linux还提供了图形界面下格式化软盘的软件gfloppy。要启动gfloppy,点击桌面“主菜单” →“系统工具” → “软盘格式化器”,或者在 shell 提示下键入 /usr/bin/gfloppy命令,打开如图5-2所示界面:
图5-2 格式化软盘
gfloppy 的界面很小,且只有极少选项。对多数用户来说,默认设置已经足够满足需要,然而,如果必要的话,你可以用 MS-DOS 文件系统来格式化软盘。你还可以选择你的软盘的密度(如果你使用的不是通常的高密度 3.5\" 1.44MB 软盘的话)。如果这个软盘从前格式化为 ext2 的话,你还可以选择来快速格式化(quick format)该软盘。
插入软盘,按你自己的需要来改变 gfloppy 中的设置;然后点击“格式化”。在主窗口的上部会出现一个状态箱,向你显示格式化和校验过程的状态。当它结束后,你就可以弹出软盘,然后关闭 gfloppy 程序。
一旦在软盘上创建了ext2文件系统,你就可以在Linux系统下使用它了。
5.2.2 光盘的使用
第5章 Linux的常用操作 -89-
光盘的使用比较简单。我们发现在/mnt 目录下有两个目录cdrom和floppy,这是Linux缺省的软盘和光盘安装目录,即所谓的“挂载点”。当然,用户可以在自己的主目录中新建其他目录作为软盘和光盘的“挂载点”。
再用挂载命令mount -t iso9660 /dev/hdc /mnt/cdrom 将光盘载入到文件系统中来,将在/mnt/cdrom目录下找到光盘内容。有的Linux版本允许用mount /dev/cdrom或mount /mnt/cdrom命令装载光盘。
卸载光盘:#umount /mnt/cdrom
注意:用mount命令装入的是软盘、光盘,而不是软驱、光驱。有些初学者容易犯一个毛病,以为用上面命令后,软驱就成了/mnt/floppy,光驱就成了/mnt/cdrom,其实不然,当你要换一张光盘或软盘时,一定要先卸载,再对新盘重新挂载。 对于已挂载的设备,在卸载之前,不能将该文件系统介质从系统中取出。对于光盘来说,在卸载之前,是无法打开光驱取出光盘的,这也是Linux对文件系统的最大保护。而软盘是机械的弹出装置,无法实现保护,没有卸载就将软盘取出,会破坏文件系统。
5.2.3 U盘的使用
在Linux下U盘被作为SCSI设备,挂载U盘前首先确认U盘设备名,从Linux桌面的主菜单中选择“系统工具”→“硬件浏览器”→“硬盘驱动器”,打开如图5-3所示界面,/dev/sda1就是U盘的设备名,有时U盘设备名可以是/dev/sdb。
图5-3 查找U盘设备名
-90- 嵌入式Linux系统开发与应用实验教程
确定了U盘的设备名以后,按如下步骤使用U盘: 1.创建U盘目录,输入如下命令: # mkdir /mnt/usb
2.挂载U盘,输入如下命令: # mount /dev/sda /mnt/usb
3.在U盘上存放Linux文件
在U盘上存放Linux文件同样可以使用终端命令方式和图形用户界面方式。例如,将Linux系统/exp/02_pthread目录下的pthread.C源文件拷贝到U盘根目录下,输入如下命令:
[/]# cp /uclinux/exp/02_pthread pthread.C /mnt/usb ;拷贝文件 [/]# cd /mnt/usb ;进入U盘目录 [/mnt/usb]ls ;列表 pthread.C
如果使用图形用户界面方式就简单多了,只要进入源文件目录,找到该文件,点击鼠标右键选择复制,再粘贴到/mnt/usb目录下即完成了文件的存放。
4.卸载U盘
拔下U盘之前,一定要关闭所有打开的文件,退出U盘目录,然后输入命令: # umount /mnt/usb
当U盘正确卸载,系统会退到 # 提示符下,这时你进入U盘目录,看到该目录已为空。如果没有正确卸载,系统会出现一些提示信息,你需要重新卸载。
挂载软盘、光盘和U盘,还有一个简单快捷的方法,既点击桌面上的主菜单→系统工具→磁盘管理,打开如图5-4所示界面:
图5-4 用户挂载工具界面
从该界面中选择设备的挂载。当挂载以后,右下角的“挂载(M)”按钮就变成了“卸载(U)”,如想卸载设备,打开该用户挂载界面,选择所需操作。U盘的挂载容易出错,还是选择命令方式为好。
第5章 Linux的常用操作 -91-
5.2.4 挂载Windows分区
Linux支持很多种文件系统,包括windows的fat32。在Linux的分区表中,硬盘为hd,第一块硬盘为had,第二块为hdb。一块硬盘最多可以分成四个主分区,dos主分区,dos扩展分区,Linux根分区和Linux交换分区都属于主分区,4个主分区分别用数字表示,如果是第一块硬盘,就是hda1、hda2、hda3和hda4,如上图5-1中列出了硬盘的四个主分区。在扩展分区上还可以分逻辑分区,标号从5往后依次排列。在windows中c盘为dos主分区,是hda1,d盘一般是dos扩展分区上的第一个逻辑分区,是hda5,e为hda6,f为hda7等等。在Linux下可以通过mount命令挂栽windows分区到一个文件夹(这个文件夹称作挂载点),然后你可以通
过这个文件夹访问windows分区,就象快捷方式。比如挂载c盘,步骤如下:
1. 先在/mnt/目录下新建目录winc # mkdir /mnt/winc
2.挂载windows分区
# mount -t vfat /dev/hda1 /mnt/winc -o codepage=936
(其中-t为指定设备文件系统,vfat表示windows的fat16和fat32文件系统格式,-o为指定加载文件系统时的选项,而选项codepage=936 是使Linux可以正常显示挂载分区中的中文)。
3.自动加载
如果希望每次开机就自动加载windows分区,可以修改/etc/下的fstab文件,首先,用一个文本编辑器(如vi)打开/etc/fstab,在文件的最后加入如下命令行:
/dev/hda1 /mnt/winc vfat defaults,codepage=936
保存后重启即可。如果也想把d 、e、f 盘挂载上,需再增加相应命令如下:
/dev/hda5 /mnt/wind vfat defaults,codepage=936 /dev/hda6 /mnt/wine vfat defaults,codepage=936 /dev/hda7 /mnt/winf ntfs defaults 0 0
如果想每次开机就自动加载光盘、软盘和U盘,也可以在fstab文件中增加相应命令。
思 考 题
1. 通过shell中的哪个变量来确定历史命令列表的大小?
2. 可用哪个命令来获知存储介质上的文件是属于那种文件系统类型?
因篇幅问题不能全部显示,请点此查看更多更全内容