Linux文件管理与编辑的基本命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux文件管理与编辑的基本命令相关的知识,希望对你有一定的参考价值。
Linux文件管理与编辑的基本命令
dir和vdir | grep | file |
mkdir | rm | cp |
more | touch | find |
cat | ln | split |
diff | mv |
一、列出目录内容:dir和vdir
Windows用户可能更熟悉dir这个命令。在Linux中,dir除了比ls的功能更少,其他都是一样的。
[[email protected] ~]# dir /etc/init.d/
Vdir相当于ls命令加上-l选项,默认情况下列出目录和文件的完成信息
二、创建目录:mkdir
mkdir命令用于创建一个目录。Mkdir是make directory的缩写。其格式如下:
mkdir [选项] 目录名
Mkdir命令选项及说明:
-m : 对新建目录设置存取权限
-p : 可以指定一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,也就是一次可以建立多个目录
举例:
在/home下创建user1目录,同时在user1下创建user2目录,也就是连续创建两个目录。
[[email protected]V-facelab ~]# mkdir -p /home/user1/user2
这样就在/home目录下创建了嵌套目录user1/user2。
三、逐屏显示内容:more
如果一个的文本文件比较长,一屏无法完全显示,就需要使用more命令。More命令读取文本文件时,每次一屏显示,并且在每屏后暂停,同时在屏幕底部显示单词“More”。如果此时按Enter键,more命令就会接着会在显示文本的一行,依次类推;如果按空格键,more命令就继续显示文本文件的另一屏信息。其格式如下:
more [选项] 文件名
More命令的选项及其说明:
-d : 在屏幕底部more提示符后显示友好信息,此信息是有关使用哪些键继续,哪些
键退出,哪些键提供more命令帮助的
-s : 将输出文件中的多个空行减少为只有一个空行输出,以文件的第一行为准
-p :先清除显示屏以前信息,在显示文本信息
-c :显示文件时,每屏显示都清除先前的屏幕信息,然后从最顶端显示出来
举例:
(1)用分页的方式显示Makefile文件的内容,使用以下命令:
[[email protected] ~]# more Makefile
(2)显示文件Makefile的内容,每10行显示一屏,同时清除屏幕,使用以下命令:
[[email protected] ~]# more -c -10 Makefile
四、将文件的内容打印到标准输出:cat
Cat命令用来将文件的内容打印到标准输出,类似于DOS下的type命令,同时cat还可以用于连接合并文件。其格式如下:
cat [选项] 文件名
或者:
cat 文件1 文件2 > 文件3
Cat命令的选项及其说明:
-A : 将文件中的Tab输出显示为“^I”,同时在每行的末尾显示一个$符号
-b : 将文件中的所有非空行按顺序编号,编号从1开始
举例:
(1)查看Kconfig文件的内容,同时将文件中Tab的输出显示为“^I”,并对非空行进行编号输出,可以使用以下命令:
[[email protected] ~]# cat -Ab Kconfig
(2)将文件file1.txt和file2.txt的内容合并后输出到文件file3.txt
[[email protected] base]# ls
file1.txt file2.txt
[[email protected] base]# cat file1.txt
This is file1.txt
[[email protected] base]# cat file2.txt
This is file2.txt
[[email protected] base]# cat file1.txt file2.txt > file3.txt
[[email protected] base]# more file3.txt
This is file1.txt
This is file2.txt
[[email protected] base]# ls
file1.txt file2.txt file3.txt
五、比较文件的差异:diff
Diff命令用来比较文件差异。Diff以逐行的方式比较文本文件的异同,如果指定比较的是目录,则diff会比较目录中相同文件名的文件,但不会比较其中的子目录,其格式如下:
diff [选项] 文件1 文件2
diff命令的选项及其说明:
-c : 显示全部内容,并标出不同之处
-b : 忽略行尾的空格,同时字符串中的一个或多个空格都将视为相同
-r : 当文件1和文件2为目录时,会比较子目录中的文件
-s : 当两个文件相同时,显示文件相同信息
输出格式:
N1 a N3, N4
N1,N2 d N3
N1,N2 c N3,N4
其中字母a、d、c之前的N1和N2代表文件1的行号,字母a、d、c之后的N3和N4代表文件2的行号,字母a、d、c分别表示附加、删除和修改操作。在上面输出形式的每行后紧跟着两个文件不同的若干行,其中以“<”打头的行属于文件1,以“>”打头的行属于文件2.
六、过滤文本:grep
grep命令是Linux下的文本过滤工具,grep根据指定的字符串,对文件的每一行进行搜索,如果找到了这个字符串,就会输出改行内容。格式如下:
grep [选项] 需要查找的字符串 文件名
grep命令选项说明:
-A NUM : 除了列出符合条件的行外,同时列出每个符合条件行的后NUM行
-c : 只显示符合条件的行数,而不显示每行的具体信息
-f file : 事先将要搜索的样式写入到一个文件中,每行一个样式,然后以这个文件作为条件进行搜索
-i : 搜索时忽略大小写
-n : 在显示的搜索结果上显示行号
-B :与选项“-A”相反,除了列出符合条件的外行,同时列出每个符合条件行的前NUM行
举例:
【1】列出install.log文件中含有RPM字符串的行
[[email protected] base]# grep RPM install.log
【2】列出install.log文件中含有rmp字符串的行,忽略大小写,并标识出每行的具体行号。
[[email protected] base]# grep -ni rpm install.log
七、删除某个目录及其所有文件及子目录:rm
rm命令用来删除某个目录及其下的所有文件及子目录。对于链接文件,只是断开了链接,原文件保持不变,其格式如下:
rm [选项] 文件或者目录
rm命令的选项:
-r : 告诉rm将选项中列出的全部目录以及子目录还有文件均递归的删除,如果在选项中不指定“-r”选项,“rm”命令将不能删除目录
-f : 忽略不存在的问题,也不给提示
-i : 交互式删除,即在删除前进行确认
注意:使用rm命令要特别小心,rm -rf 组合要慎用,因为Linux没有类似Windows的回收站,一旦文件被删除,就不能被恢复。因此,为了防止文件或者目录被误删除,可以使用rm的“i”选项,来逐个确认要删除的文件。使用“-i”选项时,如果用户输入“y”,文件就会被删除;如果输入其他任何信息,文件就不被删除。
八、改变指定文件的访问时间和修改时间:touch
Touch命令用来改变指定文件的访问时间和修改时间,若指定文件不存在则创建此文件;
如果没有指定时间,则使用当前时间,其格式如下:
touch [选项] 设定的时间 文件
Touch命令的选项说明:
-a : 改变文件的访问时间为系统当前时间,无需设置时间选项
-m : 改变文件的修改时间为系统当前时间,无需设置时间选项
-c : 如果文件不存在,不创建也不提示
-d 或者 -t:使用指定的日期时间
-r<参考文件或目录> :把指定文件或目录的日期时间都设置为和参考文件或目录的日期时间相同
九、在文件或目录之间创建连接:ln
ln命令用来在文件或目录之间创建连接。
Linux下的连接有两种,一种是硬链接(hard link),一种是符号链接(symbolic link),默认情况下ln命令产生的是硬链接。
》硬链接:是指通过文件的索引节点来进行链接。在Linux的文件系统中,保存在磁盘的所有类型的文件都会分配一个编号,这个编号叫做索引节点号(inode index)。多个文件指向同一个索引节点在Linux系统中是允许的,这就是所谓的硬链接。硬链接的作用是允许一个文件拥有多个有效的路径名,这样用户就可以对一些重要文件建立硬链接,以防止误删除操作。因为对应该文件的索引节点有一个以上的链接,只删除一个链接并不影响索引节点本身和其他链接,只有当最后一个链接被删除后,文件的数据块及目录的链接才会释放,也就是说,此时文件才会被真正删除。
》符号链接:也叫软链接,软链接类似于Windows中的快捷方式,因此软链接是一个指向真正文件或者目录位置的符号链接。
ln命令的格式如下:
ln [选项] 源文件 目标链接名
Ln命令的选项及其说明:
-f : 如果在目标位置存在与链接名相同的文件,这个文件将被删除
-s : 进行软链接(symbolic link)
-d : 允许系统管理者硬链接自己的目录
-b : 对将在链接时会被覆盖或者删除的文件进行备份
十、显示文件类型:file
File命令用来显示文件类型。对于长度为0的文件,将识别为空文件;对于符号链接文件,缺省情况下将显示符号链接引用的真实文件路径。其格式如下;
file [选项] 文件名
File命令选项:
-b : 显示文件类型结果,不显示对应文件名称
-L : 直接显示符号链接所指向文件的类型
-z : 显示压缩文件的信息
-i :如果文件不是常规文件,则不进一步对文件类型进行分类
十一、拷贝文件或目录:cp
Cp命令用来将给出的文件或者目录拷贝到另一个文件或者目录中。Cp与Windows下的copy命令类似,但是cp命令更强大。其格式如下:
cp [选项] 源文件或目录 目标文件或目录
Cp命令的选项及说明:
-a : 在拷贝目录时使用,它保留所有的信息,包含文件链接,文件属性,并递归地拷贝目录
-r : 若给出的源文件是一目录文件,此时cp将递归赋值该目录下所有子目录和文件。此时目标文件必须为一个目录名。
-d : 拷贝时保留链接,这样不会失去链接文件
-p : 保留文件的修改时间和存取权限
-i : 如果已经有相同文件名的目标文件,则提示用户是否覆盖
十二、在指定的路径下查找指定文件:find
Find命令用来在指定的路径下查找指定的文件。其格式如下:
find path-name [-options] [-print -exce -ok 命令 { } \; ]
具体选项如下:
》path-name :find命令查找的目录路径,例如可以用“.”表示当前目录,用“/”表示系统根目录。
》-options : find命令的这个选项主要用来控制搜索方式,这里的-options选项只列出常见的几种格式:
-name ’字串’ :查找文件名匹配所给字串的所有文件,字串内可用通配符*、?、[]
-lname ’字串’ :查找文件名匹配所给字串的所有符号链接文件,字串内可用通 配符*、?、[]
-gid n : 查找属于ID号为n的用户组的所有文件
-uid n : 查找属于ID号为n的用户的所有文件
-empty : 查找大小为0的目录或文件
-path ’字串’ :查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[]
-group ’字串’:查找属于用户组名为所给字串的所有文件
-depth : 在查找文件时,首先查找当前目录下的文件,然后再查找其子目录下 的文件
-prune 目录:指出搜索时不搜索该目录。如果同时使用-depth选项,那么-prune将被find命令忽略
-size n : 查找文件长度为n块的文件,带有c时,表示文件长度以字节计
-user ’字串’ :查找属于用户名为所给字串的说有文件
-mtime +n或 -n :按时间搜索,+n表示n天之前的,-n表示今天到n天前之间的
-type 文件类型 : 按指定文件类型搜索。文件类型包括b(块设备文件)、c(字符设备)、f(普通文件)、l(符号连接)、d(目录)、p(管道)、s(socket文件)
-print : 将搜索结果输出到标准输出
-exec :对搜索出符合条件的文件执行所给出的Linux命令,而不询问用户是否需要执行该命令。{}表示shell命令的选项即为所查到的文件。命令的末尾必须以“;”结束。
注意:格式要正确,“-exec 命令 { } \;” ,在}和\之间一定要有空格才行。
-ok :对搜索出符合条件的文件执行所给出的Linux命令。与-exec不通的是,它会询问用户是否执行该命令。
十三、分割文档的命令:split
Split命令用来分割文档将一个文件分成数个。其格式如下:
split [选项] [input_file] [output_file]
Split命令选项及说明:
-b size : 指定分割出来的文件大小,size可加入单位,b代表512bytes,k代表1kB,m代表1MB
-n :这里“n”指定分割的每个文件的长度,缺省为1000行
-d :将split命令生成的文件序列以数字形式命名
-a :指定split命令生成的文件序列长度,默认长度为2
》intput_file:需要分割的文件
》output_file:分割出来的文件序列,split命令分割后生成的文件序列名
依次output_fileaa、output_fileab、output_fileac等。如果没有指
定output_file,系统默以“x”作为输出文件名。
十四、文件与目录改名或变更存储位置:mv
Mv命令用来将文件或目录改名或将文件由一个目录移入另一个目录中。如果源类型和目录类型都是文件或者目录,mv 以上是关于Linux文件管理与编辑的基本命令的主要内容,如果未能解决你的问题,请参考以下文章