linux入门命令:Linux入门时必学60个文件处理命令



Linux系统信息存放在文件里文件和普通公务文件类似每个文件都有自己名字、内容、存放地址及其它些管理信息如文件用户、文件大小等文件可以是封信、个通讯录或者是源语句、数据甚至可以包括可执行和其它非正文内容 Linux文件系统具有良好结构系统提供了很多文件处理这里主要介绍常用文件处理命令

file

1.作用

file通过探测文件内容判断文件类型使用权限是所有用户

2.格式

file [options] 文件名

3.[options]主要参数

-v:在标准输出后显示版本信息并且退出

-z:探测压缩过文件类型

-L:允许符合连接

-f name:从文件namefile中读取要分析文件名列表

4.简单介绍说明

使用file命令可以知道某个文件究竟是 2进制(ELF格式)可执行文件 还是Shell Script文件或者是其它什么格式file能识别文件类型有目录、Shell脚本、英文文本、 2进制可执行文件、C语言源文件、文本文件、DOS可执行文件

5.应用例子

如果我们看到个没有后缀文件grap可以使用下面命令:

$ file grap

grap: English text

此时系统显示这是个英文文本文件需要介绍说明file命令不能探测包括图形、音频、视频等多媒体文件类型

mkdir

1.作用

mkdir命令作用是建立名称为dirname子目录和MS DOS下md命令类似使用权限是所有用户

2.格式

mkdir [options] 目录名

3.[options]主要参数

-m ——mode=模式:设定权限<模式>;和chmod类似

-p ——parents:需要时创建上层目录;如果目录早已存在则不当作

-v ——verbose:每次创建新目录都显示信息

——version:显示版本信息后离开

4.应用例子

在进行目录创建时可以设置目录权限此时使用参数是“-m”假设要创建目录名是“tsk”让所有用户都有rwx(即读、写、执行权限)那么可以使用以下命令:

$ mkdir -m 777 tsk

grep

1.作用

grep命令可以指定文件中搜索特定内容并将含有这些内容行标准输出grep全称是Global Regular Expression Pr表示全局正则表达式版本使用权限是所有用户

2.格式

grep [options]

3.主要参数

[options]主要参数:

-c:只输出匹配行计数

-I:不区分大小写(只适用于单)

-h:查询多文件时不显示文件名

-l:查询多文件时只输出包含匹配文件名

-n:显示匹配行及行号

-s:不显示不存在或无匹配文本信息

-v:显示不包含匹配文本所有行

pattern正则表达式主要参数:

\:忽略正则表达式中特殊原有含义

^:匹配正则表达式开始行

$: 匹配正则表达式结束行

\<:从匹配正则表达式行开始

\>;:到匹配正则表达式行结束

[ ]:单个如[A]即A符合要求 .

[ - ]:范围如[A-Z]即A、B、C直到Z都符合要求 .

:所有单个

* :有长度可以为0.

正则表达式是Linux/Unix系统中非常重要概念正则表达式(也称为“regex”或“regexp”)是个可以描述模式(Pattern)如果串可以用某个正则表达式来描述我们就说这个和该正则表达式匹配(Match)这和DOS中用户可以使用通配符“*”代表任意类似在Linux系统上正则表达式通常被用来查找文本模式以及对文本执行“搜索-替换”操作和其它功能

4.应用例子

查询DNS服务是日常工作的这意味着要维护覆盖区别网络大量IP地址有时IP地址会超过2000个如果要查看nnn.nnn网络地址但是却忘了第 2部分中其余部分只知到有两个句点例如nnn nn……要抽取其中所有nnn.nnn IP地址使用[0-9 ]\{3 \}\.[0-0\{3\}\.含义是任意数字出现3次后跟句点接着是任意数字出现3次后跟句点

$grep '[0-9 ]\{3 \}\.[0-0\{3\}\' ipfile

补充介绍说明grep家族还包括fgrep和egrep.fgrep是fix grep允许查找串而不是个模式;egrep是扩展grep支持基本及扩展正则表达式但不支持\q模式范围应用及和的相对应些更加规范标准模式

dd

1.作用

dd命令用来复制文件并根据参数将数据转换和格式化

2.格式

dd [options]

3.[opitions]主要参数

bs=字节:强迫 ibs=<字节>;及obs=<字节>;

cbs=字节:每次转换指定<字节>;

conv=关键字:根据以逗号分隔关键字表示方式来转换文件

count=块数目:只复制指定<块数目>;输入数据

ibs=字节:每次读取指定<字节>;

=文件:读取<文件>;内容而非标准输入数据

obs=字节:每次写入指定<字节>;

of=文件:将数据写入<文件>;而不在标准输出显示

seek=块数目:先略过以obs为单位指定<块数目>;输出数据

skip=块数目:先略过以ibs为单位指定<块数目>;输入数据

4.应用例子

dd命令常常用来制作Linux启动盘先找个可引导内核令它根设备指向正确根分区然后使用dd命令将其写入软盘:

$ rdev vmlinuz /dev/hda

$dd =vmlinuz of=/dev/fd0

上面代码介绍说明使用rdev命令将可引导内核vmlinuz中根设备指向/dev/hda请把“hda”换成自己根分区接下来用dd命令将该内核写入软盘









find

1.作用

find命令作用是在目录中搜索文件使用权限是所有用户

2.格式

find [path][options][expression]

path指定目录路径系统从这里开始沿着目录树向下查找文件它是个路径列表相互用空格分离如果不写path那么默认为当前目录

3.主要参数

[options]参数:

-depth:使用深度级别查找过程方式在某层指定目录中优先查找文件内容

-maxdepth levels:表示至多查找到开始目录第level层子目录level是个非负数如果level是0话表示仅在当前目录中查找

-mindepth levels:表示至少查找到开始目录第level层子目录

-mount:不在其它文件系统(如Msdos、Vfat等)目录和文件中查找

-version:打印版本

[expression]是匹配表达式是find命令接受表达式find命令所有操作都是针对表达式参数非常多这里只介绍些常用参数

—name:支持统配符*和?

-atime n:搜索在过去n天读取过文件

-ctime n:搜索在过去n天修改过文件

-group grpoupname:搜索所有组为grpoupname文件

-user 用户名:搜索所有文件属主为用户名(ID或名称)文件

-size n:搜索文件大小是n个block文件

-pr:输出搜索结果并且打印

4.应用窍门技巧

find命令查找文件几种思路方法:

(1)根据文件名查找

例如我们想要查找个文件名是lilo.conf文件可以使用如下命令:

find / -name lilo.conf

find命令后“/”表示搜索整个硬盘

(2)快速查找文件

根据文件名查找文件会遇到个实际问题就是要花费相当长段时间特别是大型Linux文件系统和大容量硬盘文件放在很深子目录中时如果我们知道了这个文件存放在某个目录中那么只要在这个目录中往下寻找就能节省很多时间比如smb.conf文件从它文件后缀“conf”可以判断这是个配置文件那么它应该在/etc目录内此时可以使用下面命令:

find /etc -name smb.conf

这样使用“快速查找文件”方式可以缩短时间

(3)根据部分文件名查找思路方法

有时我们知道只某个文件包含有abvd这4个字那么要查找系统中所有包含有这4个文件可以输入下面命令:

find / -name '*abvd*'

输入这个命令以后Linux系统会将在/目录中查找所有包含有abvd这4个文件(其中*是通配符)比如abvdrmyz等符合条件文件都能显示出来

(4) 使用混合查找方式查找文件

find命令可以使用混合查找思路方法例如我们想在/etc目录中查找大于500000字节并且在24小时内修改某个文件则可以使用-and (和)把两个查找参数链接起来组合成个混合查找方式

find /etc -size +500000c -and -mtime +1

mv

1.作用

mv命令用来为文件或目录改名或者将文件由个目录移入另个目录中使用权限是所有用户该命令如同DOS命令中ren和move组合

2.格式

mv[options] 源文件或目录 目标文件或目录

3.[options]主要参数

-i:交互方式操作如果mv操作将导致对已存在目标文件覆盖此时系统询问是否重写要求用户回答“y”或“n”这样可以避免误覆盖文件

-f:禁止交互操作mv操作要覆盖某个已有目标文件时不给任何指示指定此参数后i参数将不再起作用

4.应用例子

(1)将/usr/cbu中所有文件移到当前目录(用“”表示)中:

$ mv /usr/cbu/ * .

(2)将文件cjh.txt重命名为wjz.txt:

$ mv cjh.txt wjz.txt









ls

1.作用

ls命令用于显示目录内容类似DOS下dir命令使用权限是所有用户

2.格式

ls [options][filename]

3.options主要参数

-a ——all:不隐藏任何以“开始项目

-A ——almost-all:列出除了“ . ”及 “…… ”以外任何项目

——author:印出每个文件著作者

-b ——escape:以 8进制溢出序列表示不可打印

——block-size=大小:块以指定<大小>;字节为单位

-B ——ignore-backups:不列出任何以 ~ 结束项目

-f:不进行排序-aU参数生效-lst参数失效

-F ——y:加上文件类型指示符号 (*/=@| 其中个)

-g:like -l but do not list owner.

-G ——no-group:inhibit display of group information.

-i ——inode:列出每个文件inode号

-I ——ignore=样式:不印出任何符合Shell万用<样式>;项目

-k:即——block-size=1K.

-l:使用较长格式列出信息

-L ——dereference:当显示符号链接文件信息时显示符号链接所指示对象而并非符号链接本身信息

-m:所有项目以逗号分隔并填满整行行宽

-n ——numeric-uid-gid:类似-l但列出UID及GID号

-N ——literal:列出未经处理项目名称例如不特别处理控制

-p ——file-type:加上文件类型指示符号 (/=@| 其中个)

-Q ——quote-name:将项目名称括上双引号

-r ——reverse:依相反次序排列

-R ——recursive:同时列出所有子目录层

-s ——size:以块大小为序

4.应用举例

ls命令是Linux系统使用频率最多命令参数也是Linux命令中最多使用ls命令时会有几种区别颜色其中蓝色表示是目录绿色表示是可执行文件红色表示是压缩文件浅蓝色表示是链接文件加粗黑色表示符号链接灰色表示是其它格式文件ls最常使用是ls- l见图1所示

图1 使用ls-l命令

文件类型开头是由10个构成其中第表示文件类型它可以是下述类型的:-(普通文件)、d(目录)、l(符号链接)、b(块设备文件)、c(设备文件)后面9个表示文件访问权限分为3组每组3位组表示文件属主权限第 2组表示同组用户权限第 3组表示其他用户权限 3个分别表示对文件读(r)、写(w)和执行权限(x)对于目录表示进入权限s表示当文件被执行时把该文件UID或GID赋予执行进程UID(用户ID)或GID(组 ID)t表示设置标志位(留在内存不被换出)如果该文件是目录那么在该目录中文件只能被超级用户、目录拥有者或文件属主删除如果它是可执行文件那么在该文件执行后指向其正文段指针仍留在内存这样再次执行它时系统就能更快地装入该文件接着显示是文件大小、生成时间、文件或命令名称

df

1.作用

df命令用于两个文件的间比较并指出两者区别使用权限是所有用户

2.格式

df [options] 源文件 目标文件

3.[options]主要参数

-a:将所有文件当作文本文件来处理

-b:忽略空格造成区别

-B:忽略空行造成区别

-c:使用纲要输出格式

-H:利用试探法加速对大文件搜索

-I:忽略大小写变化

-n ——rcs:输出RCS格式

cmp

1.作用

cmp(“compare”缩写)命令用来简要指出两个文件是否存在差异使用权限是所有用户

2.格式

cmp[options] 文件名

3.[options]主要参数

-l: 将字节以十进制方式输出并方便将两个文件中区别以 8进制方式输出









cat

1.作用

cat(“concatenate”缩写)命令用于连接并显示指定个和多个文件有关信息使用权限是所有用户

2.格式

cat [options] 文件1 文件2……

3.[options]主要参数

-n:由第行开始对所有输出行数编号

-b:和-n相似只不过对于空白行不编号

-s:当遇到有连续两行以上空白行时就代换为空白行

4.应用举例

(1)cat命令个最简单用处是显示文本文件内容例如我们想在命令行看下README文件内容可以使用命令:

$ cat README

(2)有时需要将几个文件处理成个文件并将这种处理结果保存到个单独输出文件cat命令在其输入上接受个或多个文件并将它们作为个单独文件打印到它输出例如把README和INSTALL文件内容加上行号(空白行不加)的后将内容附加到个新文本文件File1 中:

$ cat README INSTALL File1

(3)cat还有个重要功能就是可以对行进行编号见图2所示这种功能对于文档编制以及法律和科学文档编制很方便打印在左边行号使得参考文档部分变得容易这些在编程、科学研究、业务报告甚至是立法工作中都是非常重要

图2 使用cat命令/etc/named.conf文件进行编号

对行进行编号功能有-b(只能对非空白行进行编号)和-n(可以对所有行进行编号)两个参数:

$ cat -b /etc/named.conf

ln

1.作用

ln命令用来在文件的间创建链接使用权限是所有用户

2.格式

ln [options] 源文件 [链接名]

3.参数

-f:链结时先将源文件删除

-d:允许系统管理者硬链结自己目录

-s:进行软链结(Symbolic Link)

-b:将在链结时会被覆盖或删除文件进行备份

链接有两种种被称为硬链接(Hard Link)种被称为符号链接(Symbolic Link)默认情况下ln命令产生硬链接

硬连接指通过索引节点来进行连接在Linux文件系统中保存在磁盘分区中文件不管是什么类型都给它分配个编号称为索引节点号(Inode Index)在Linux中多个文件名指向同索引节点是存在般这种连接就是硬连接硬连接作用是允许个文件拥有多个有效路径名这样用户就可以建立硬连接到重要文件以防止“误删”功能其原因如上所述对应该目录索引节点有个以上连接只删除个连接并不影响索引节点本身和其它连接只有当最后个连接被删除后文件数据块及目录连接才会被释放也就是说文件才会被真正删除

和硬连接相对应Lnux系统中还存在另种连接称为符号连接(Symbilc Link)也叫软连接软链接文件有点类似于快捷方式它实际上是特殊文件在符号连接中文件实际上是个文本文件其中包含有另文件位置信息

动手联系

上面我们介绍了Linux文件处理命令下面介绍几个例子大家可以动手练习下刚才讲过命令

1.利用符号链接快速访问关键目录

符号链接是个非常实用功能假设有些目录或文件需要频繁使用但由于Linux文件和目录结构等原因这个文件或目录在很深子目录中比如Apache Web文档位于系统/usr/local/httpd/htdocs中并且不想每次都要从主目录进入这样个长路径的中(实际上这个路径也非常不容易记忆)

为了解决这个问题可以在主目录中创建个符号链接这样在需要进入该目录时只需进入这个链接即可

为了能方便地进入Web(/usr/local/httpd/htdocs)文档所在目录在主目录下可以使用以下命令:

$ ln -s /usr/local/httpd/htdocs gg

这样每次进入gg目录就可访问Web服务器文档以后如果不再访问Web服务器文档时删除gg即可而真正Web服务器文档并没有删除

2.使用dd命令将init.rd格式root.ram内容导入内存

dd =/dev/fd0 of=floppy.fd

dd =root.ram of=/dev/ram0 #

3.grep命令系统

grep是Linux/Unix中使用最广泛命令的许多Linux系统内部都可以

(1)如果要查询目录列表中目录思路方法如下:

$ ls -l | grep '∧d'

(2)如果在个目录中查询不包含目录所有文件思路方法如下:

$ ls -l | grep '∧[∧d]'

(3)用find命令grep如所有C源代码中“Chinput”思路方法如下:

$find /ZhXwin -name *.c -exec grep -q -s Chinput {} \;-pr



Tags:  linux常用命令 linux命令 linux文件处理命令 linux入门命令

延伸阅读

最新评论

发表评论