原创:snake_liu 文件与目录操作 现在来看看Linux中的文件与目录的操作好了! 1)基本概念: 文件与文件名 在多数操作系统中都有文件的概念。文件是Linux用来存储信息的基本结构,它是被命名(称为文件名)的存储在某种介质(如磁盘、光盘和磁带等)上的一组信息的集合。Linux文件均为无结构的字符流形式。文件名是文件的标识,它由字母、数字、下划线和圆点组成的字符串来构成。用户应该选择有意义的文件名。Linux要求文件名的长度限制在255个字符以内。 为了便于管理和识别,用户可以把扩展名作为文件名的一部分。圆点用于区分文件名和扩展名。扩展名对于将文件分类是十分有用的。用户可能对某些大众已接纳的标准扩展名比较熟悉。 文件的类型 Linux系统中有三种基本的文件类型:普通文件、目录文件和设备文件。 1. 普通文件 普通文件是用户最经常面对的文件。它又分为文本文件和二进制文件。 1)文本文件:这类文件以文本的ASCII码形式存储在计算机中。它是以"行"为基本结构的一种信息组织和存储方式。 2)二进制文件:这类文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们,只有通过相应的软件才能将其显示出来。二进制文件一般是可执行程序、图形、图像、声音等等。 2. 目录文件 设计目录文件的主要目的是用于管理和组织系统中的大量文件。它存储一组相关文件的位置、大小等与文件有关的信息。目录文件往往简称为目录。 3. 设备文件 设备文件是Linux系统很重要的一个特色。Linux系统把每一个I/O设备都看成一个文件,与普通文件一样处理,这样可以使文件与设备的操作尽可能统一。从用户的角度来看,对I/O设备的使用和一般文件的使用一样,不必了解I/O设备的细节。设备文件可以细分为块设备文件和字符设备文件。前者的存取是以一个个字符块为单位的,后者则是以单个字符为单位的。 目录 树型目录结构 在计算机系统中存有大量的文件,如何有效的组织与管理它们,并为用户提供一个使用方便的接口是文件系统的一大任务。Linux系统以文件目录的方式来组织和管理系统中的所有文件。所谓文件目录就是将所有文件的说明信息采用树型结构组织起来--即我们常说的目录。也就是说,整个文件系统有一个"根"(root),然后在根上分"杈"(Directory),任何一个分杈上都可以再分杈,杈上也可以长出"叶子"。"根"和"杈"在Linux中被称为是"目录"或"文件夹"。而"叶子"则是一个个的文件。实践证明,此种结构的文件系统效率比较高。 如前所述,目录也是一种类型的文件。Linux系统通过目录将系统中所有的文件分级、分层组织在一起,形成了Linux文件系统的树型层次结构。以根目录为起点,所有其他的目录都由根目录派生而来。 如前所述,目录是Linux系统组织文件的一种特殊文件。为使用户更好地使用目录,我们介绍有关目录的一些基本概念。 工作目录与用户主目录 从逻辑上讲,用户在登录到Linux系统中之后,每时每刻都"处在"某个目录之中,此目录被称作工作目录或当前目录工作目录是可以随时改变的。用户初始登录到系统中时,其主目录就成为其工作目录。工作目录用"."表示,其父目录用".."表示。 2路径 路径是指从树型目录中的某个目录层次到某个文件的一条道路。此路径的主要构成是目录名称,中间用"/"分开这和WINDOWS的\是不同的。任一文件在文件系统中的位置都是由相应的路径决定的。 路径又分相对路径和绝对路径。 绝对路径是指从"根"开始的路径,也称为完全路径;相对路径是从用户工作目录开始的路径。 用户要访问一个文件时,可以通过路径名来引用。并且可以根据要访问的文件与用户工作目录的相对位置来引用它,而不需要列出这个文件的完整的路径名。 为了节省时间下面的和目录与文件有关的一些命令是我从网上找来的对于原出处吗就不是很清楚了!!希望愿作者不要介意: 显示文件内容命令 用户需要查看一个文件的内容时,可以根据显示要求的不同选用以下的命令。 cat命令 功能1:在标准输出上显示文件。 语法:cat [ - 选项 ] 文件 说明:该命令功能之一是用来显示文件。它依次读取其后所指文件的内容并将其输出到标准输出。 cat命令中各个选项的含义为: - v 用一种特殊形式显示控制字符,LFD与TAB除外。 加了- v选项后,- T和- E选项将起作用。其中: - T 将TAB显示为“ù I”。该选项需要与- v选项一起使用。即如果没有使用- v选项,则这个选项将被忽略。 - E 在每行的末尾显示一个$符。该选项需要与- v选项一起使用。 - u 输出不经过缓冲区。 - A 等于- vET。 - t 等于- vT。 - e 等于- vE。 例1:$ cat example.txt 则在屏幕上显示出example.txt 文件的内容。 本想今天去香山看红叶,无奈天公不作美没去成,真遗憾,但愿明天艳阳高照,使我们梦想成真。 例2:$ cat - A exam2.txt 则在屏幕上显示出exam2.txt 文件的内容,而且如果文件中含有特殊字符的话,一并显示。 I am a boy ! ùI You are a cute boy$ 功能2:连接两个或多个文件 说明:该命令功能之二是用来将两个或多个文件连接起来。 例3:$ cat file1 file2 > file3 这样就把文件filel和文件file2的内容合并起来,放入文件file3中。(此时在屏幕上并不能直接看到该命令执行后的结果。若想看到连接后的文件内容,可以再使用“cat file3”。) 需要说明的是,当文件内容过多时,就带来一个问题,因为文本在屏幕上迅速地闪过,用户来不及看清其内容。因此,当文件内容较大时,一般可用more等命令分屏显示,以免因屏幕滚动太快而无法看清。 more命令 功能:在终端屏幕按屏显示文本文件。 语法: more [ - 选项 ] 文件 说明: 该命令一次显示一屏文本,显示满之后,停下来,并在终端底部打印出- - More- - ,系统还将同时显示出已显示文本占全部文本的百分比,若要继续显示,按回车或空格键即可。 more命令中各个选项的含义为: - p 显示下一屏之前先清屏。 - c 作用同- p基本一样。 - d 在每屏的底部显示更友好的提示信息: - - More- - (XX%)[Press space to contiune , ‘q’ to quit . ] 而且若用户输入了-个错误命令则显示出错信息,而不是简单地鸣响终端。 - l 不处理< Ctrl+l >(换页符)。如果没有给出这个选项,则more命令在显示了一个包含有< Ctrl+l >字符的行后将暂停显示,并等待接收命令。 - s 文件中连续的空白行压缩成一个空白行显示。 执行中的命令 在more命令的执行过程中,用户可以使用more自己的一系列命令动态地根据需要来选择显示的部分。more在显示完一屏内容之后,将停下来等待用户输入某个命令。下表列出了more指令在执行中用到的一些常用命令,而有关这些命令的完整内容,可以在more执行时按h查看。这些命令的执行方法是先输入i(行数)的值,再打所要的命令,不然它会以预设值来执行命令。 i空格 若指定i,显示下面的i行;否则,显示下一整屏。 i回车 若指定i,显示下面的i行;否则,显示下一行。 iù D 按,若指定i,显示下面的i行;否则,往下显示半屏(一般为11行)。 id 同iù D 。 iz 同“i空格”类似,只是i将成为以下每个满屏的缺省行数。 is 跳过下面的i行再显示一个整屏。预设值为1。 if 跳过下面的i屏再显示一个整屏。预设值为1。 iù B 按,往回跳过(即向文件首回跳)i屏,再显示一个满屏。预设值为1。 b 与iù B相同。 ’ 回到上次搜索的地方 q或Q 退出more。 = 显示当前行号。 v 在当前行启动/usr/bin/vi对之进行编辑修改。 h 显示各命令的帮助信息。 i/pattern 查找匹配该模式的第i行。预设值为1。 in 查找符合表达式的倒数i行。预设值为1。 ! 或 :! 在子shell中执行命令。 i:n 在命令行中指定了多个文件名的情况下,可用此命令使之显示第i个文件,若i过大(出界),则显示文件名列表中的最后一个文件。 i:p 在命令行中指定了多个文件名的情况下,可用此命令使之显示倒数第i个文件。若i过大(出界),则显示第一个文件。 i:f 显示当前文件的文件名和行数。 · 重复上次键人的命令。 例1:用分页的方式显示一个文件的内容。 $ more example1.c /*-------------------------------------------*/ /* example1.c */ /*-------------------------------------------*/ /* author f [email protected] */ /* target f BBS main/login/top-menu routines */ /* create f 99/10/23 */ /* update f 99/12/15 */ /*-------------------------------------------*/ #define _MAIN_C_ #inc1ude < BBS. h > jmp_buf byebye; int talkrequest=NA; static uschar Enter_uflag i #ifdef SHOW_IDLE_TIME --More- (3%) 例2:显示一个文件的内容,但显示之前先清屏,并且在显示器的最下方显示完整的百分比。 $ more - dc example1.c 执行该命令后,先清屏,然后显示文件example.c的内容。 /*-------------------------------------------*/ /* example1.c */ /*-------------------------------------------*/ /* author f [email protected] */ /* target f BBS main/login/top-menu routines */ /* create f 99/10/23 */ /* update f 99/12/15 */ /*-------------------------------------------*/ #define _MAIN_C_ #inc1ude < BBS. h > jmp_buf byebye; int talkrequest=NA; static uschar Enter_uflag i #ifdef SHOW_IDLE_TIME char fromhost( ); --More- (3%)[Press space to continue , ‘q’ to quit .] 例3:显示一个文件的内容,要求每十行显示一次,且显示之前先清屏。 $ more - c - 10 example1.c 执行该命令后,先清屏,然后将以每十行每十行的方式显示文件example.c的内容。 /*-------------------------------------------*/ /* example1.c */ /*-------------------------------------------*/ /* author f [email protected] */ /* target f BBS main/login/top-menu routines */ /* create f 99/10/23 */ /* update f 99/12/15 */ /*-------------------------------------------*/ #define _MAIN_C_ inc1ude < BBS. h > --More- (3%) less命令 less命令的功能几乎和more命令一样,也是用来按页显示文件,不同之处在于less命令在显示文件时允许用户既可以向前又可以向后翻阅文件。 less命令的使用与more命令类似,在此就不赘述了,用户如有不清楚的地方可直接查看联机帮助。 用less命令显示文件时,若需要在文件中往前移动,按< b >键;要移动到用文件的百分比表示的某位置,则指定一个0到100之间的数,并按< p >即可。 例如,需要按页显示test文件 $ less test head命令 如果用户希望查看一个文件究竟保存的是什么内容,可以只查看文件的头几行,而不必浏览整个文件。用head命令只显示文件或标准输入的头几行。 语法:head [- n ] 文件 功能:显示指定文件的前若干行。 说明:该命令显示每个指定文件的前面n行。如果没有给出n值,缺省设置为10。如果没有指定文件,head就从标准输入读取。例如显示文件example.c的前3行。 $ head - 3 example.c /*-------------------------------------------*/ /* example1.c */ /*-------------------------------------------*/ tail命令 同样,如果用户想查看文件的尾部,可以使用tail命令。 语法:tail [+ / - num ] [参数] 文件 说明:该命令显示一个文件的指定内容。它把指定文件的指定显示范围内的内容显示在标准输出上。如果没有给定文件名,则使用标准输入文件。 tail命令中各个选项的含义为: +num 从第num行以后开始显示。 - num 从距文件尾num行处开始显示。如果省略num参数,系统默认值为10。 l 以文本行为num的计数单位。与参数选项+num或- num选项同时使用时,num表示要显示的文本行行数。 c 以字节为num的计数单位。与参数选项+num或- num选项同时使用时,num表示要显示的字符数。 (l、c选项可以省略,系统默认值为l,即按行计数)。 例如: $ tail -4 example 将显示文件example的最后4行。 od命令 用户通常使用od命令查看特殊格式的文件内容。通过指定该命令的不同选项可以以十进制、八进制、十六进制和ASCII码来显示文件。 语法:od [选项] 文件… 命令中各选项的含义: - A 指定地址基数,包括: d 十进制 o 八进制(系统默认值) x 十六进制 n 不打印位移值 - t 指定数据的显示格式,主要的参数有: c ASCII字符或反斜杠序列 d 有符号十进制数 f 浮点数 o 八进制(系统默认值为02) u 无符号十进制数 x 十六进制数 除了选项c以外的其他选项后面都可以跟一个十进制数n,指定每个显示值所包含的字节数。 说明:od命令系统默认的显示方式是八进制,这也是该命令的名称由来(Octal Dump)。但这不是最有用的显示方式,用ASCII码和十六进制组合的方式能提供更有价值的信息输出。 例如: $ od - Ax - tcx1 wh5 000000 F i l e s y s t e m 46 69 6c 65 73 79 73 74 65 6d 20 20 20 20 20 20 000010 1 k - b l o c k s 20 20 20 20 20 31 6b 2d 62 6c 6f 63 6b 73 20 20 000020 U s e d A v a i l a b 20 20 20 20 55 73 65 64 20 41 76 61 69 6c 61 62 000030 l e U s e % M o u n t e d 6c 65 20 55 73 65 25 20 4d 6f 75 6e 74 65 64 20 000040 o n \n / d e v / h d a 8 6f 6e 0a 2f 64 65 76 2f 68 64 61 38 20 20 20 20 000050 3 0 4 4 4 20 20 20 20 20 20 20 20 20 20 20 33 30 34 34 34 000060 0 5 0 6 8 9 2 30 20 20 20 20 20 35 30 36 38 39 20 20 20 20 32 000070 3 8 0 2 8 1 8 % / \n / d e 33 38 30 32 38 20 20 31 38 25 20 2f 0a 2f 64 65 000080 v / h d a 9 76 2f 68 64 61 39 20 20 20 20 20 20 20 20 20 20 000090 5 4 6 3 6 9 20 20 20 20 20 35 34 36 33 36 39 20 20 20 20 20 0000a0 8 7 7 6 5 0 9 3 7 1 20 38 37 37 36 20 20 20 20 35 30 39 33 37 31 20 0000b0 2 % / h o m e \n \n \n 20 20 32 25 20 2f 68 6f 6d 65 0a 0a 0a 0000bd
[1] [2] 下一页
(出处:http://www.sheup.com)