Linux系统目录如下:
详细说明如下:
Linux系统文件与目录的基本操作:
一、显示文件内容命令——cat、more、less、head、tail。
1.cat命令
该命令的主要功能是用来显示文件,可依次读取其后所指文件的内容并将其输出到标准输出设备上。另外,还能用来连接两个或多个文件,形成新的文件。该命令的常用形式如下。
cat [option] filename
cat命令中各个选项(option)的含义如下。
(1)v:用一种特殊形式显示控制字符,LFD与TAB除外。
(2)T:将TAB显示为“^I”。该选项要与-v选项一起使用,即如果没有使用-v选项,则这个选项将被忽略。
(3)E:在每行的末尾显示一个“$”符。该选项要与-v选项一起使用。
(4)u:输出不经过缓冲区。
(5)A:等同于-vET。
(6)t:等同于-vT。
(7)e:等同于-vE。
2.more命令
在查看文件过程中,因为某些文件过于庞大,文本在屏幕上迅速地闪过,用户来不及看清其内容。该命令就可以一次显示一屏文本,并在终端底部打印出“--more--”,系统还将同时显示出已显示文本占全部文本的百分比。若要继续显示,按回车或空格键即可。该命令的常用形式如下。
more [option] filename
more命令中部分常用选项的含义如下。
(1)-p:显示下一屏之前先清屏。
(2)-c:作用同-p类似。
(3)-d:在每屏的底部显示更友好的提示信息为“--more--(XX%) [Press space to continue,'q' to quit.]”。
(4)-s文件中连续的空白行压缩成一个空白行显示。
另外,在more命令的执行过程中,用户可以使用其一系列命令动态地根据需要来选择显示的部分。more在显示完一屏内容之后,将停下来等待用户输入某个命令。下面列出常用的几种命令。
(1)n:n在命令行中指定了多个文件名的情况下,可用此命令使之显示第i个文件,若i过大(出界),则显示文件名列表中的最后一个文件。
(2)p:p在命令行中指定了多个文件名的情况下,可用此命令使之显示倒数第i个文件,若i过大(出界),则显示第一个文件。
(3)f:f显示当前文件的文件名和行数。
3.less命令
该命令的功能和more命令的功能基本相同,也是用来按页显示文件。不同之处在于,less命令在显示文件时,允许用户既可以向前又可以向后逐行翻阅文件,而more命令只能向后翻阅文件。由于该命令参数的使用与more命令类似,在此不再赘述。如果要按页显示test文件,则执行如下命令。
[root@localhost root]# less test
如果要向后翻阅,可以使用键盘的[Page Up]键;如果要向前翻阅文件,则相应地使用键盘的[Page Down]键即可。按方向键可以逐行滚动,按[Q]键退出。
4.head命令
该命令只显示文件或标准输入(从计算机的标准输入设备中得到的信息流,通常是指从键盘、鼠标等获得的数据)的头几行内容。如果用户希望查看一个文件究竟保存的是什么内容,只要查看文件的头几行,而不必浏览整个文件,便可以使用这个命令。该命令的常用形式如下。
head - number filename
该命令用来显示每个指定文件的前面n行。如果没有给出n值,默认设置为10.如果没有指定文件,head就从标准输入读取。例如,以下命令显示文件test.c的前3行。
[root@localhost root]# head - 3 test.c
5.tail命令
和head命令的功能相对应。如果想查看文件的尾部,可以使用tail命令。该命令显示一个文件的指定内容。它把指定文件的指定显示范围内的内容显示在标准输出上。同样,如果没有给定文件名,则使用标准输入文件。该命令的常用形式如下。
tail option filename
tail命令中各个选项的含义如下。
(1)+num:从第num行以后开始显示。
(2)-num:从距文件尾num行处开始显示;如果省略num参数,系统默认值为10。
(3)l:以文本行为num的计数单位;与参数选项+num或-num选项同时使用,num表示要显示的文本行行数。
(4)c:以字节为num的计数单位;与参数选项+num或-num选项同时使用时,num表示要显示的字符数。
例如显示文件example的最后4行,可用如下命令。
[root@localhost root]# tail -4 example
二、文件内容查询命令——grep、egrep、fgrep
文件内容查询命令主要时指grep、egrep和fgrep命令。这组命令以指定的查找模式搜索文件,通知用户在什么文件中搜索到与指定的模式匹配的字符串,并且打印出所有包含该字符串的文本行。该文本行的最前面是该行所在的文件名。这组命令中,grep命令一次只能搜索一个指定的模式;egrep命令检索扩展的正则表达式(包括表达式组和可选项);fgrep命令检索固定字符串,但并不识别正则表达式,是一种更为快速的搜索命令。
这组命令在搜索与定位文件中特定的主题和关键词方面非常有效,可以用其来搜索文件中包含的这些关键词。总的来说,grep命令的搜索功能比fgrep强大,因为grep命令的搜索模式可以是正则表达式,而fgrep却不能。
该组命令中的每一个命令都有一组选项,利用这些选项可以改变其输出方式。例如,可以在搜索到的文本行上加入行号,或者只输出文本行的行号,或输出所有与搜索模式不匹配的文本行,或只简单地输出已搜索到指定模式的文件名,并且可以指定在查找模式时忽略大小写。
这组命令在指定的输入文件中查找与模式匹配的行。如果没有指定文件,则从标准输入中读取。正常情况下,每个匹配的行都被显示到标准输出。如果要查找的文件是多个,则在每一行输出之前加上文件名。
该组命令的常用格式如下。
grep [option] [search pattern] [file,file2,......]
erep [option] [search pattern] [file,file2,......]
frep [option] [search pattern] [file,file2,......]
下面列出常用的部分命令选项。
(1)-b:在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量。
(2)-c:只显示匹配行的数量。
(3)-i:比较时不区分大小写。
(4)-h:在查找多个文件时,指示grep不要将文件名加入到输出之前。
(5)-l:显示首次匹配串所在的文件名并用换行符将其隔开。当在某文件中多次出现匹配串时,不重复显示此文件名。
(6)-n:在输出前加上匹配串所在行的行号(文件首行行号为1)。
(7)-v:只显示不包含匹配串的行。
(8)-x:只显示整行严格匹配的行。
三、文件查找命令——find、locate
用户进行文件查找时,可以使用如下介绍的几种命令。
1.find命令
该命令的功能是在指定的目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。此命令提供了相当多的查找条件,功能非常强大。find命令的常用格式如下。
find [option] filename
find命令提供的寻找条件可以是一个用逻辑运算符not、and、or组成的复合条件。逻辑运算符and、or、not的含义如下。
(1)and:逻辑与,在命令中用“-a”表示,是系统默认的选项,表示只有当所给的条件都满足时,寻找条件才满足。
(2)or:逻辑或,在命令中用“-or-”表示。该运算符表示只要所给的条件中有一个满足时,寻找条件就满足。
(3)not:逻辑非,在命令中用“!”表示。该运算符表示查找不满足所给条件的文件。
该命令的查找方式主要为以名称和文件属性查找,参数如下。
(1)-name‘字串’:查找文件名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]。
(2)-lname‘字串’:查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符*、?、[ ]。
(3)-gid n:查找属于ID号为n的用户组的所有文件。
(4)-uid n:查找属于ID号为n的用户的所有文件。
(5)-group string:查找属于用户组名为所给字串的所有的文件。
(6)-user string:查找属于用户名为所给字串的所有的文件。
(7)-empty:查找大小为0的目录或文件。
(8)-path string:查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]。
(9)-perm permission:查找具有指定权限的文件和目录,权限的表示可以如711(表示文件/目录所有者具有读写、执行权限,同组用户和系统其他用户只具有执行权限),644(文件/目录所有者具有读写权限,同组用户和系统其他用户只具有读权限)等。
(10)-size n[bckw]:查找指定文件大小的文件,n后面的字符表示单位,默认为b,代表512字节的块。
该命令页提供了对查找出来的文件进行特定操作的选项。
(1)-exec cmd{}:对符合条件的文件执行所给的Linux命令,而不询问用户是否要执行该命令。{}{表示命令的参数即为所找到的文件;命令的末尾必须以“;”结束。
(2)-ok cmd{}:对符合条件的文件执行所给的Linux命令,与exec不同的是,它会徐文用户是否要执行该命令。
(3)-ls:详细列出所找到的所有文件。
(4)-fprintf 文件名:将找到的文件名写入指定文件。
(5)-print:在标准输出设备上显示查找出的文件名。
2.locate命令
该命令也用于查找文件,比find命令的搜速度快。使用时需要一个数据库,这个数据库由每天的例行工作(crontab)程序来建立。建立好数据库后,就可以方便地用来搜寻所需文件了。locate命令的常用格式如下。
locate [option] filename
四、文本处理命令——sort、uniq
文件处理命令包括sort和uniq,下面分别对其进行介绍。
1.sort命令
该命令的功能是对文件中的各行进行排序。该命令有许多非常实用的选项,它们最初是用来对数据库格式的文件内容进行各种排序操作的。实际上,sort命令可以被认为是一个非常强大的数据库管理工具,用来管理内容类似数据库记录的文件。
该命令逐行地对文件中的内容进行排序,如果两行的首字符相同,那该命令将继续比较这两行的下一字符。sort排序是根据从输入行抽取的一个或多个关键字进行比较来完成的。排序关键字定义了用来飘絮的最小的字符序列。在默认情况下,以整行为关键字按ASCII字符顺序进行排序。sort命令的常用格式如下。
sort [option] filename
该命令改变默认设置的主要选项如下。
(1)-m:若给定文件已排好序,合并文件。
(2)-c:检查给定文件是否已排好序,如果它们没有都排好序,则打印一个出错信息,并以状态值1退出。
(3)-u:对排序后认为相同的行只保留其中一行。
(4)-o:输出文件将排序输出写到输出文件中而不是标准输出,如果输出文件是输入文件之一,sort便将该文件的内容写入一个临时文件,然后再排序和写输出结果。
(5)-d:按字典顺序作序,比较时仅字母、数字、空格和制表符有意义。
(6)-f:将小写字母与大写字母同等对待。
(7)-I:忽略非打印字符。
(8)-M:作为月份比较,“JAN”<“FEB”<?<“DEC”。
(9)-r:按逆序输出排序结果。
(10)+pos1 -pos2:指定一个或几个字段作为排序关键字,字段位置从pos1开始,到pos2为止(包括pos1,不包括pos2)。如不指定pos2,则关键字为从pos1到行尾。字段和字符的位置从0开始。
(11)-b:在每行中寻找排序关键字时忽略前导的空白(空格和制表符)。
(12)-t separator:指定字符 separator作为字段分隔符。
sort命令也可以对标准输入进行操作。例如,如果想把几个文件文本进行喝冰,并对合并后的文本进行排序,可以首先用命令cat把多个文件喝冰,然后用管道操作把喝冰后的文本行输入给命令sort。sort命令将输出这些喝冰及排序后的文本行。在下面的例子中,文件“veglist”与文件“fruitlist”的文本行经过合并与飘絮后被保存到文件list中。
[root@localhost root]# cat veglist fruitlist | sort > clist
2.uniq命令
文件经过处理后在它的输出文件中可能会出现重复的行。例如,用cat命令将两个文件合并后,再使用sort命令进行排序,就可能出现重复行。这时可以用uniq命令将这些重复行从输出文件中删除,只留下每条记录的唯一样本。
uniq命令的常用格式如下。
uniq [option] filename
该命令各选项含义如下。
(1)-d:只显示重复行。
(2)-u:只显示文件中不重复的行。
(3)-c:显示输出中,在每行行首加上本行在文件中出现的次数。它可取代-u和-d选项。
(4)-n:前n各字段与每个字段前的空白一起被忽略。一个字段是一个非空格、非制表符的字符串,彼此由制表符和空格隔开(字段从0开始编号)。
(5)+n:前n各字符被忽略,之前的字符被跳过(字符从0开始编号)。
(6)-f n:与-n相同,这里n是字段数。
(7)-s n:与+n相同,这里n是字符数。
五、文件内容统计命令——wc
文件内容统计命令主要是指wc命令。该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。wc命令的常用格式如下。
wc [option] filename
该命令各选项含义如下,它们可以结合使用。
(1)-c:统计字节数。
(2)-l:统计行数。
(3)-w:统计字数。
六、文件比较命令——comm、diff
Linux系统中可以使用comm和diff命令比较文件的异同,下面分别对这两个命令进行介绍。
1.comm命令
该命令是对两个已经排好序的文件进行比较,其中file1和file2是已排序的文件(如果没有,可以使用上述的sort命令先进行排序)。comm读取这两个文件,然后生成3列输出:仅在file1中出现的行;仅在file2中出现的行;在两个文件中都存在的行。如果文件名用“-”,则表示从标准输入读取。comm命令的常用格式如下。
comm [option] filename
选项1、2或3控制相应的列显示与否。例如,“comm-12”就只显示在两个文件中都存在的行;“comm-23”只显示在第一个文件中出现而未在第二个文件中出现的行;“comm-123”则什么也不显示。
2.diff命令
该命令的功能为逐行比较两个文本文件,列出其不同之处。它对给出的文件进行系统地检查,并显示出两个文件中所有不同的行,不要求事先对文件进行排序。diff命令的常用格式如下。
diff [option] file1 file2
diff [opion] dir1 dir2
该命令运行后的输出通常由下述形式的行组成
n1 a n3,n4
n1,n2 d n3
n1,n2 c n3,n4
以上说明如何将file1转变成file2,并给出了两个文本文件之间的差异,其中,字母(a、d和c)之前的行号(n1、n2)是针对file1的,其后面的行号(n3、n4)是针对file2的。字母a、d和c分别表示附加、删除和修改操作。
在上述形式的每一行的后面跟随受到影响的若干行,以“<”打头的行属于第一个文件,以“>”大头的行属于第二个文件。
如果比较的对象都是目录,则diff会产生很多信息。如果一个目录中只有一个文件,则产生一条消息,指出该目录路径名和其中的文件名。diff各选项的含义如下。
(1)-b:忽略行尾的空格,而字符串中的一个或多个空格符都视为相等。如“How are you”与“How are you”被视为相同的字符串。
(2)-c:采用上下文输出格式(提供3行上下文)。
(3)-C n:采用上下文输出格式(提供n行上下文)。
(4)-e:产生一个合法的ed脚本作为输出。
(5)-r:当file1和file2是目录时,递归作用到各文件和目录上。
七、文件的复制、移动和删除命令——cp、mv、rm
文件的复制、删除和移动操作在Linux系统中使用得非常频繁。下面对这些操作得命令进行详细介绍
1.cp命令
该命令得功能是将给出得文件或目录复制到另一文件或目录中,就如果DOS下得copy命令一样,功能非常强大。cp命令的常用格式如下。
cp [option] [sec_file|src_dir} {dst_file|dst_dir]
该命令的各选项含义如下。
(1)-a:该选项通常在复制目录时使用。它保留链接、文件属性,并递归地复制目录。
(2)-d:复制时保留链接。
(3)-f:删除已经存在的目标文件而不提示。
(4)-i:和-f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答“y”时目标文件将被覆盖,是交互式复制。
(5)-p:词是cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
(6)-r:若给出的源文件是一个目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
(7)-l:不做复制,只是链接文件。
2.mv命令
用户可以使用mv命令来为文件或目录改名或将我呢见由一个目录移入另一个目录中。该命令如果DOS下的ren和move的组合。mv命令的常用格式如下。
mv [option] [src_file|src_dir] [dst_file|dst_dir]
根据mv命令中的第二个参数类型的不同(目标文件或目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名。此时,源文件只能有一个(也可以是源目录名)它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先复制,再将原有文件删除,而链至该文件的链接也将丢失。命令中各选项的含义如下。
(1)-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问时否冲些,要求用户回答“y”或“n”。这样可以避免误覆盖文件。
(2)-f:禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何提示,指定此选项后,i选项将不再起作用。如果所给目标文件(不是目录)已存在,此时该文件的内容将被新文件覆盖。
3.rm命令
对于无用文件,用户可以用rm命令将其删除。该命令的功能为删除一个目录中的一个或多个文件。它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,该命令只是删除了链接,原有文件均保持不变。rm命令的常用格式如下。
rm [option] [files|dirs]
该命令的各选项含义如下。
(1)-f:忽略不存在的文件,从不给出提示。
(2)-r:指示rm将参数中列出的全部目录和子目录均递归地删除,如果没有使用-r选项,则rm不会删除目录。
(3)-i:进行交互式删除。
八、文件链接命令——ln
文件链接命令是指ln命令。该命令在文件之间创建链接。这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称。对于这个新的文件名,可以为其指定不同的访问权限,以控制对信息的共享和安全性的问题。
如果链接指向目录,用户就可以利用该链接直接进入被链接的目录而不用使用较长的路径名。而且,即使删除这个链接,也不会破坏原来的目录。
链接有两种,一种称为硬链接(Hard Link);另一种称为符号链接(Symbolic Link),也称为软链接。建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。而对符号链接,则不存在这个问题。默认情况下,ln产生硬链接。
在硬链接的情况下,参数中的“目标”被链接至【链接名】。如果【链接名】是一个目录名,系统将在该目录之下建立一个或多个与“目标”名的链接文件,且链接文件和被链接文件的内容完全相同。如果【链接名】为一个文件,用户将被告知该文件已存在且不进行链接。如果指定了多个“目标”参数,那么最后一个参数必须为目录。
如果给ln命令加上-s选项,则建立符号链接。如果【链接名】已经存在但不是目录,将不做链接。【链接名】可以是任何一个文件名(可包含路径),也可以是一个目录,并且允许其与“目标”不在同一个文件系统中。如果【链接名】是一个已经存在的目录,系统将在该目录下建立一个或多个与“目标”同名的文件。此新建的文件实际上是指向原”目标"的符号链接文件。
ln命令的常用格式如下。
ln [option] file link
九、目录的创建与删除命令——mkdir、rmdir
下面介绍Linux系统中目录的创建以及删除命令的使用。
1.mkdir命令
创建目录需要使用mkdir命令。mkdir命令的常用格式如下。
mkdir [option] [dirname]
该命令创建名为dirname的目录。mkdir命令要求创建目录的用户在当前目录(即dirname的父目录)中具有写权限,并且dirname不能是当前目录中已有的目录或文件名称。
命令中各选项的含义如下。
(1)-m:对新建目录设置存取权限,也可以用chmod命令设置。
(2)-p:可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好这些尚不存在的目录,即一次可以建立多个目录。
,例如,在当前目录中建立inin和inin下的“/mail”的目录,也就是连续建两个目录。指定权限为700.,命令如下:
[root@localhost root]# mkdir -p -m 700 ./inin/mail/
该命令的执行结果是在当前目录中创建嵌套的目录层次“inin/mail”,权限设置为只有文件所有者有读、写和执行权限。chmod命令及权限的设定会在后面讲解。
2.rmdir命令
删除目录需要使用rmdir命令。rmdir命令的常用格式如下。
rmdir [option] [dirname]
dirname表示目录名。rmdir命令可以从一个目录中删除一个或多个子目录项。需要注意的是,一个目录被删除之前必须是空的。和mkdir命令一样,删除某目录时也必须具有对父目录的写权限。
命令中各选项的含义如下。
-p:递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。
例如要将/usr/xu/txt目录的删除,命令如下。
[root@localhost root]# rmdir -p /usr/xu/txt
十、改变工作目录、显示路径及显示目录内容命令——cd、pwd、ls
Linux系统分别使用cd、pwd及ls命令来改变工作目录、显示路径及显示目录的内容。下面对这些命令进行介绍。
1.cd命令
cd命令即英文词组change directory的缩写,作用是改变当前工作目录。cd命令的常用格式如下
cd [directory]
该命令将当前目录改变为directory所指定的目录。若没有指定directory,则回到用户的主目录。萎了改变到指定目录,用户必须拥有对指定目录的执行和读权限。该命令可以使用通配符。假设用户档期那目录是“/root/working”,若要更换到“/usr/src”目录中,则可使用如下命令。
[root@localhost working]# cd /usr/src
2.pwd命令
pwd命令即英文词组print working directory的缩写,作用是显示当前工作目录的路径。该命令无参数和选项。在Linux层次目录结构中,用户可以在被授权的任意目录下用mkdir命令创建新目录,可以用cd命令从一个目录转换到另一个目录。然而,没有提示符来告知用户目前处于哪一个目录中。要想知道当前所处的目录,可以用pwd命令。该命令显示整个路径名。
例如使用该命令显示当前工作路径,命令如下。
[root2localhost working]# #pwd
/root/working
3.ls命令
ls是英文单词list的简写,其功能为列出目录的内容。这是用户最常用的命令之一,因为用户要不时地查看某个目录的内容。该命令类似于DOS下的dir命令。对于每个目录,该命令将列出其中所有的子目录与文件。对于每个文件,ls将输出其文件名及所要求的其他信息。默认情况下,输出条目按字母顺序排序。当未给出目录名或文件名时,就显示当前目录的信息。ls命令的常用格式如下。
ls [option] [dirname|filename]
命令中部分常用选项的含义如下。
(1)-a:显示指定目录下所有的子目录与文件,包括隐藏文件。
(2)-A:显示指定目录下所有的子目录与文件,包括隐藏文件。但不列出“.”和“..”。
(3)-d:如果参数时目录,只显示其名称而不显示其下的各个文件,且往往与l选项一起使用,以得到目录的详细信息。
(4)-l:以长格式来显示文件的详细信息。这个选项最常用,每行列出的信息依次是:文件类型与权限、链接数、文件属主、文件属组、文件大小建立或最近修改的时间和名字。对于符号链接文件,显示的文件名之后又“--- >”和引用文件路径名。对于设备文件,其“文件大小”字段显示主、次设备号,而不是文件大小。目录中的总块数显示在长格式列表的开头,其中包含间接块。
(5)-L:若指定的名称为一个符号链接文件,则显示链接所指向的文件。
(6)-m:输出按字符流格式,文件跨页显示,以逗号分开。
(7)-n:输出格式与-l选项相同,只不过在输出中文件属主和属组是用相应的UID号和GID号来表示,而不是实际的名称。
(8)-R:递归式地显示指定目录的各个子目录中的文件。
用ls -l命令显示的信息中,开头是由10个字符构成的字符串,其中第一个字符来表示文件类型。第一个字符可以是下述类型之一。
(1)-:普通文件。
(2)d;目录。
(3)l:符号链接。
(4)b:块设备文件。
(5)c:字符设备文件。