Linux系统信息存放在文件里
![](/icons/19659dou.gif)
文件和普通
![](/icons/19659de.gif)
公务文件类似
![](/icons/19659dou2.gif)
每个文件都有自己
![](/icons/19659de.gif)
名字、内容、存放地址及其它
![](/icons/19659yi.gif)
些管理信息
![](/icons/19659dou.gif)
如文件
![](/icons/19659de.gif)
用户、文件
![](/icons/19659de.gif)
大小等
![](/icons/19659dou2.gif)
文件可以是
![](/icons/19659yi.gif)
封信、
![](/icons/19659yi.gif)
个通讯录
![](/icons/19659dou.gif)
或者是
![](/icons/19659chengxu.gif)
![](/icons/19659de.gif)
源语句、
![](/icons/19659chengxu.gif)
![](/icons/19659de.gif)
数据
![](/icons/19659dou.gif)
甚至可以包括可执行
![](/icons/19659de.gif)
![](/icons/19659chengxu.gif)
和其它非正文内容
![](/icons/19659dou2.gif)
Linux文件系统具有良好
![](/icons/19659de.gif)
结构
![](/icons/19659dou.gif)
系统提供了很多文件处理
![](/icons/19659chengxu.gif)
![](/icons/19659dou2.gif)
这里主要介绍常用
![](/icons/19659de.gif)
文件处理命令
![](/icons/19659dou2.gif)
file
1.作用
file通过探测文件内容判断文件类型
![](/icons/19659dou.gif)
使用权限是所有用户
![](/icons/19659dou2.gif)
2.格式
file [options] 文件名
3.[options]主要参数
-v:在标准输出后显示版本信息
![](/icons/19659dou.gif)
并且退出
![](/icons/19659dou2.gif)
-z:探测压缩过
![](/icons/19659de.gif)
文件类型
![](/icons/19659dou2.gif)
-L:允许符合连接
![](/icons/19659dou2.gif)
-f name:从文件namefile中读取要分析
![](/icons/19659de.gif)
文件名列表
![](/icons/19659dou2.gif)
4.简单介绍说明
使用file命令可以知道某个文件究竟是 2进制(ELF格式)
![](/icons/19659de.gif)
可执行文件
![](/icons/19659dou.gif)
还是Shell Script文件
![](/icons/19659dou.gif)
或者是其它
![](/icons/19659de.gif)
什么格式
![](/icons/19659dou2.gif)
file能识别
![](/icons/19659de.gif)
文件类型有目录、Shell脚本、英文文本、 2进制可执行文件、C语言源文件、文本文件、DOS
![](/icons/19659de.gif)
可执行文件
![](/icons/19659dou2.gif)
5.应用例子
如果我们看到
![](/icons/19659yi.gif)
个没有后缀
![](/icons/19659de.gif)
文件grap
![](/icons/19659dou.gif)
可以使用下面命令:
$ file grap
grap: English text
此时系统显示这是
![](/icons/19659yi.gif)
个英文文本文件
![](/icons/19659dou2.gif)
需要介绍说明
![](/icons/19659de.gif)
是
![](/icons/19659dou.gif)
file命令不能探测包括图形、音频、视频等多媒体文件类型
![](/icons/19659dou2.gif)
mkdir
1.作用
mkdir命令
![](/icons/19659de.gif)
作用是建立名称为dirname
![](/icons/19659de.gif)
子目录
![](/icons/19659dou.gif)
和MS DOS下
![](/icons/19659de.gif)
md命令类似
![](/icons/19659dou.gif)
它
![](/icons/19659de.gif)
使用权限是所有用户
![](/icons/19659dou2.gif)
2.格式
mkdir [options] 目录名
3.[options]主要参数
-m
![](/icons/19659dou.gif)
——mode=模式:设定权限<模式>;
![](/icons/19659dou.gif)
和chmod类似
![](/icons/19659dou2.gif)
-p
![](/icons/19659dou.gif)
——parents:需要时创建上层目录;如果目录早已存在
![](/icons/19659dou.gif)
则不当作
![](/icons/19659cuowu.gif)
![](/icons/19659dou2.gif)
-v
![](/icons/19659dou.gif)
——verbose:每次创建新目录都显示信息
![](/icons/19659dou2.gif)
——version:显示版本信息后离开
![](/icons/19659dou2.gif)
4.应用例子
在进行目录创建时可以设置目录
![](/icons/19659de.gif)
权限
![](/icons/19659dou.gif)
此时使用
![](/icons/19659de.gif)
参数是“-m”
![](/icons/19659dou2.gif)
假设要创建
![](/icons/19659de.gif)
目录名是“tsk”
![](/icons/19659dou.gif)
让所有用户都有rwx(即读、写、执行
![](/icons/19659de.gif)
权限)
![](/icons/19659dou.gif)
那么可以使用以下命令:
$ mkdir -m 777 tsk
grep
1.作用
grep命令可以指定文件中搜索特定
![](/icons/19659de.gif)
内容
![](/icons/19659dou.gif)
并将含有这些内容
![](/icons/19659de.gif)
行标准输出
![](/icons/19659dou2.gif)
grep全称是Global Regular Expression Pr
![](/icons/19659int.gif)
![](/icons/19659dou.gif)
表示全局正则表达式版本
![](/icons/19659dou.gif)
它
![](/icons/19659de.gif)
使用权限是所有用户
![](/icons/19659dou2.gif)
2.格式
grep [options]
3.主要参数
[options]主要参数:
-c:只输出匹配行
![](/icons/19659de.gif)
计数
![](/icons/19659dou2.gif)
-I:不区分大小写(只适用于单
![](/icons/19659zifu.gif)
)
![](/icons/19659dou2.gif)
-h:查询多文件时不显示文件名
![](/icons/19659dou2.gif)
-l:查询多文件时只输出包含匹配
![](/icons/19659zifu.gif)
![](/icons/19659de.gif)
文件名
![](/icons/19659dou2.gif)
-n:显示匹配行及行号
![](/icons/19659dou2.gif)
-s:不显示不存在或无匹配文本
![](/icons/19659de.gif)
![](/icons/19659cuowu.gif)
信息
![](/icons/19659dou2.gif)
-v:显示不包含匹配文本
![](/icons/19659de.gif)
所有行
![](/icons/19659dou2.gif)
pattern正则表达式主要参数:
\:忽略正则表达式中特殊
![](/icons/19659zifu.gif)
![](/icons/19659de.gif)
原有含义
![](/icons/19659dou2.gif)
^:匹配正则表达式
![](/icons/19659de.gif)
开始行
![](/icons/19659dou2.gif)
$: 匹配正则表达式
![](/icons/19659de.gif)
结束行
![](/icons/19659dou2.gif)
\<:从匹配正则表达式
![](/icons/19659de.gif)
行开始
![](/icons/19659dou2.gif)
\>;:到匹配正则表达式
![](/icons/19659de.gif)
行结束
![](/icons/19659dou2.gif)
[ ]:单个
![](/icons/19659zifu.gif)
![](/icons/19659dou.gif)
如[A]即A符合要求 .
[ - ]:范围
![](/icons/19659dou.gif)
如[A-Z]
![](/icons/19659dou.gif)
即A、B、C
![](/icons/19659yi.gif)
直到Z都符合要求 .
![](/icons/19659dou2.gif)
:所有
![](/icons/19659de.gif)
单个
![](/icons/19659zifu.gif)
![](/icons/19659dou2.gif)
* :有
![](/icons/19659zifu.gif)
![](/icons/19659dou.gif)
长度可以为0.
正则表达式是Linux/Unix系统中非常重要
![](/icons/19659de.gif)
概念
![](/icons/19659dou2.gif)
正则表达式(也称为“regex”或“regexp”)是
![](/icons/19659yi.gif)
个可以描述
![](/icons/19659yi.gif)
类
![](/icons/19659zifu.gif)
串
![](/icons/19659de.gif)
模式(Pattern)
![](/icons/19659dou2.gif)
如果
![](/icons/19659yi.gif)
个
![](/icons/19659zifu.gif)
串可以用某个正则表达式来描述
![](/icons/19659dou.gif)
我们就说这个
![](/icons/19659zifu.gif)
和该正则表达式匹配(Match)
![](/icons/19659dou2.gif)
这和DOS中用户可以使用通配符“*”代表任意
![](/icons/19659zifu.gif)
类似
![](/icons/19659dou2.gif)
在Linux系统上
![](/icons/19659dou.gif)
正则表达式通常被用来查找文本
![](/icons/19659de.gif)
模式
![](/icons/19659dou.gif)
以及对文本执行“搜索-替换”操作和其它功能
![](/icons/19659dou2.gif)
4.应用例子
查询DNS服务是日常工作的
![](/icons/19659yi.gif)
![](/icons/19659dou.gif)
这意味着要维护覆盖区别网络
![](/icons/19659de.gif)
大量IP地址
![](/icons/19659dou2.gif)
有时IP地址会超过2000个
![](/icons/19659dou2.gif)
如果要查看nnn.nnn网络地址
![](/icons/19659dou.gif)
但是却忘了第 2部分中
![](/icons/19659de.gif)
其余部分
![](/icons/19659dou.gif)
只知到有两个句点
![](/icons/19659dou.gif)
例如nnn nn……
![](/icons/19659dou2.gif)
要抽取其中所有nnn.nnn IP地址
![](/icons/19659dou.gif)
使用[0-9 ]\{3 \}\.[0-0\{3\}\.含义是任意数字出现3次
![](/icons/19659dou.gif)
后跟句点
![](/icons/19659dou.gif)
接着是任意数字出现3次
![](/icons/19659dou.gif)
后跟句点
![](/icons/19659dou2.gif)
$grep '[0-9 ]\{3 \}\.[0-0\{3\}\' ipfile
补充介绍说明
![](/icons/19659dou.gif)
grep家族还包括fgrep和egrep.fgrep是fix grep
![](/icons/19659dou.gif)
允许查找
![](/icons/19659zifu.gif)
串而不是
![](/icons/19659yi.gif)
个模式;egrep是扩展grep
![](/icons/19659dou.gif)
支持基本及扩展
![](/icons/19659de.gif)
正则表达式
![](/icons/19659dou.gif)
但不支持\q模式范围
![](/icons/19659de.gif)
应用及和的相对应
![](/icons/19659de.gif)
![](/icons/19659yi.gif)
些更加规范标准
![](/icons/19659de.gif)
模式
![](/icons/19659dou2.gif)
dd
1.作用
dd命令用来复制文件
![](/icons/19659dou.gif)
并根据参数将数据转换和格式化
![](/icons/19659dou2.gif)
2.格式
dd [options]
3.[opitions]主要参数
bs=字节:强迫 ibs=<字节>;及obs=<字节>;
![](/icons/19659dou2.gif)
cbs=字节:每次转换指定
![](/icons/19659de.gif)
<字节>;
![](/icons/19659dou2.gif)
conv=关键字:根据以逗号分隔
![](/icons/19659de.gif)
关键字表示
![](/icons/19659de.gif)
方式来转换文件
![](/icons/19659dou2.gif)
count=块数目:只复制指定<块数目>;
![](/icons/19659de.gif)
输入数据
![](/icons/19659dou2.gif)
ibs=字节:每次读取指定
![](/icons/19659de.gif)
<字节>;
![](/icons/19659if.gif)
=文件:读取<文件>;内容
![](/icons/19659dou.gif)
而非标准输入
![](/icons/19659de.gif)
数据
![](/icons/19659dou2.gif)
obs=字节:每次写入指定
![](/icons/19659de.gif)
<字节>;
![](/icons/19659dou2.gif)
of=文件:将数据写入<文件>;
![](/icons/19659dou.gif)
而不在标准输出显示
![](/icons/19659dou2.gif)
seek=块数目:先略过以obs为单位
![](/icons/19659de.gif)
指定<块数目>;
![](/icons/19659de.gif)
输出数据
![](/icons/19659dou2.gif)
skip=块数目:先略过以ibs为单位
![](/icons/19659de.gif)
指定<块数目>;
![](/icons/19659de.gif)
输入数据
![](/icons/19659dou2.gif)
4.应用例子
dd命令常常用来制作Linux启动盘
![](/icons/19659dou2.gif)
先找
![](/icons/19659yi.gif)
个可引导内核
![](/icons/19659dou.gif)
令它
![](/icons/19659de.gif)
根设备指向正确
![](/icons/19659de.gif)
根分区
![](/icons/19659dou.gif)
然后使用dd命令将其写入软盘:
$ rdev vmlinuz /dev/hda
$dd
![](/icons/19659if.gif)
=vmlinuz of=/dev/fd0
上面代码介绍说明
![](/icons/19659dou.gif)
使用rdev命令将可引导内核vmlinuz中
![](/icons/19659de.gif)
根设备指向/dev/hda
![](/icons/19659dou.gif)
请把“hda”换成自己
![](/icons/19659de.gif)
根分区
![](/icons/19659dou.gif)
接下来用dd命令将该内核写入软盘
find
1.作用
find命令
![](/icons/19659de.gif)
作用是在目录中搜索文件
![](/icons/19659dou.gif)
它
![](/icons/19659de.gif)
使用权限是所有用户
![](/icons/19659dou2.gif)
2.格式
find [path][options][expression]
path指定目录路径
![](/icons/19659dou.gif)
系统从这里开始沿着目录树向下查找文件
![](/icons/19659dou2.gif)
它是
![](/icons/19659yi.gif)
个路径列表
![](/icons/19659dou.gif)
相互用空格分离
![](/icons/19659dou.gif)
如果不写path
![](/icons/19659dou.gif)
那么默认为当前目录
![](/icons/19659dou2.gif)
3.主要参数
[options]参数:
-depth:使用深度级别
![](/icons/19659de.gif)
查找过程方式
![](/icons/19659dou.gif)
在某层指定目录中优先查找文件内容
![](/icons/19659dou2.gif)
-maxdepth levels:表示至多查找到开始目录
![](/icons/19659de.gif)
第level层子目录
![](/icons/19659dou2.gif)
level是
![](/icons/19659yi.gif)
个非负数
![](/icons/19659dou.gif)
如果level是0
![](/icons/19659de.gif)
话表示仅在当前目录中查找
![](/icons/19659dou2.gif)
-mindepth levels:表示至少查找到开始目录
![](/icons/19659de.gif)
第level层子目录
![](/icons/19659dou2.gif)
-mount:不在其它文件系统(如Msdos、Vfat等)
![](/icons/19659de.gif)
目录和文件中查找
![](/icons/19659dou2.gif)
-version:打印版本
![](/icons/19659dou2.gif)
[expression]是匹配表达式
![](/icons/19659dou.gif)
是find命令接受
![](/icons/19659de.gif)
表达式
![](/icons/19659dou.gif)
find命令
![](/icons/19659de.gif)
所有操作都是针对表达式
![](/icons/19659de.gif)
![](/icons/19659dou2.gif)
它
![](/icons/19659de.gif)
参数非常多
![](/icons/19659dou.gif)
这里只介绍
![](/icons/19659yi.gif)
些常用
![](/icons/19659de.gif)
参数
![](/icons/19659dou2.gif)
—name:支持统配符*和?
![](/icons/19659dou2.gif)
-atime n:搜索在过去n天读取过
![](/icons/19659de.gif)
文件
![](/icons/19659dou2.gif)
-ctime n:搜索在过去n天修改过
![](/icons/19659de.gif)
文件
![](/icons/19659dou2.gif)
-group grpoupname:搜索所有组为grpoupname
![](/icons/19659de.gif)
文件
![](/icons/19659dou2.gif)
-user 用户名:搜索所有文件属主为用户名(ID或名称)
![](/icons/19659de.gif)
文件
![](/icons/19659dou2.gif)
-size n:搜索文件大小是n个block
![](/icons/19659de.gif)
文件
![](/icons/19659dou2.gif)
-pr
![](/icons/19659int.gif)
:输出搜索结果
![](/icons/19659dou.gif)
并且打印
![](/icons/19659dou2.gif)
4.应用窍门技巧
find命令查找文件
![](/icons/19659de.gif)
几种思路方法:
(1)根据文件名查找
例如
![](/icons/19659dou.gif)
我们想要查找
![](/icons/19659yi.gif)
个文件名是lilo.conf
![](/icons/19659de.gif)
文件
![](/icons/19659dou.gif)
可以使用如下命令:
find / -name lilo.conf
find命令后
![](/icons/19659de.gif)
“/”表示搜索整个硬盘
![](/icons/19659dou2.gif)
(2)快速查找文件
根据文件名查找文件会遇到
![](/icons/19659yi.gif)
个实际问题
![](/icons/19659dou.gif)
就是要花费相当长
![](/icons/19659de.gif)
![](/icons/19659yi.gif)
段时间
![](/icons/19659dou.gif)
特别是大型Linux文件系统和大容量硬盘文件放在很深
![](/icons/19659de.gif)
子目录中时
![](/icons/19659dou2.gif)
如果我们知道了这个文件存放在某个目录中
![](/icons/19659dou.gif)
那么只要在这个目录中往下寻找就能节省很多时间
![](/icons/19659dou2.gif)
比如smb.conf文件
![](/icons/19659dou.gif)
从它
![](/icons/19659de.gif)
文件后缀“
![](/icons/19659dou2.gif)
conf”可以判断这是
![](/icons/19659yi.gif)
个配置文件
![](/icons/19659dou.gif)
那么它应该在/etc目录内
![](/icons/19659dou.gif)
此时可以使用下面命令:
find /etc -name smb.conf
这样
![](/icons/19659dou.gif)
使用“快速查找文件”方式可以缩短时间
![](/icons/19659dou2.gif)
(3)根据部分文件名查找思路方法
有时我们知道只某个文件包含有abvd这4个字
![](/icons/19659dou.gif)
那么要查找系统中所有包含有这4个
![](/icons/19659zifu.gif)
![](/icons/19659de.gif)
文件可以输入下面命令:
find / -name '*abvd*'
输入这个命令以后
![](/icons/19659dou.gif)
Linux系统会将在/目录中查找所有
![](/icons/19659de.gif)
包含有abvd这4个
![](/icons/19659zifu.gif)
![](/icons/19659de.gif)
文件(其中*是通配符)
![](/icons/19659dou.gif)
比如abvdrmyz等符合条件
![](/icons/19659de.gif)
文件都能显示出来
![](/icons/19659dou2.gif)
(4) 使用混合查找方式查找文件
find命令可以使用混合查找
![](/icons/19659de.gif)
思路方法
![](/icons/19659dou.gif)
例如
![](/icons/19659dou.gif)
我们想在/etc目录中查找大于500000字节
![](/icons/19659dou.gif)
并且在24小时内修改
![](/icons/19659de.gif)
某个文件
![](/icons/19659dou.gif)
则可以使用-and (和)把两个查找参数链接起来组合成
![](/icons/19659yi.gif)
个混合
![](/icons/19659de.gif)
查找方式
![](/icons/19659dou2.gif)
find /etc -size +500000c -and -mtime +1
mv
1.作用
mv命令用来为文件或目录改名
![](/icons/19659dou.gif)
或者将文件由
![](/icons/19659yi.gif)
个目录移入另
![](/icons/19659yi.gif)
个目录中
![](/icons/19659dou.gif)
它
![](/icons/19659de.gif)
使用权限是所有用户
![](/icons/19659dou2.gif)
该命令如同DOS命令中
![](/icons/19659de.gif)
ren和move
![](/icons/19659de.gif)
组合
![](/icons/19659dou2.gif)
2.格式
mv[options] 源文件或目录 目标文件或目录
3.[options]主要参数
-i:交互方式操作
![](/icons/19659dou2.gif)
如果mv操作将导致对已存在
![](/icons/19659de.gif)
目标文件
![](/icons/19659de.gif)
覆盖
![](/icons/19659dou.gif)
此时系统询问是否重写
![](/icons/19659dou.gif)
要求用户回答“y”或“n”
![](/icons/19659dou.gif)
这样可以避免误覆盖文件
![](/icons/19659dou2.gif)
-f:禁止交互操作
![](/icons/19659dou2.gif)
mv操作要覆盖某个已有
![](/icons/19659de.gif)
目标文件时不给任何指示
![](/icons/19659dou.gif)
指定此参数后i参数将不再起作用
![](/icons/19659dou2.gif)
4.应用例子
(1)将/usr/cbu中
![](/icons/19659de.gif)
所有文件移到当前目录(用“
![](/icons/19659dou2.gif)
”表示)中:
$ mv /usr/cbu/ * .
(2)将文件cjh.txt重命名为wjz.txt:
$ mv cjh.txt wjz.txt
ls
1.作用
ls命令用于显示目录内容
![](/icons/19659dou.gif)
类似DOS下
![](/icons/19659de.gif)
dir命令
![](/icons/19659dou.gif)
它
![](/icons/19659de.gif)
使用权限是所有用户
![](/icons/19659dou2.gif)
2.格式
ls [options][filename]
3.options主要参数
-a
![](/icons/19659dou.gif)
——all:不隐藏任何以“
![](/icons/19659dou2.gif)
”
![](/icons/19659zifu.gif)
开始
![](/icons/19659de.gif)
项目
![](/icons/19659dou2.gif)
-A
![](/icons/19659dou.gif)
——almost-all:列出除了“ . ”及 “…… ”以外
![](/icons/19659de.gif)
任何项目
![](/icons/19659dou2.gif)
——author:印出每个文件著作者
![](/icons/19659dou2.gif)
-b
![](/icons/19659dou.gif)
——escape:以 8进制溢出序列表示不可打印
![](/icons/19659de.gif)
![](/icons/19659zifu.gif)
![](/icons/19659dou2.gif)
——block-size=大小:块以指定<大小>;
![](/icons/19659de.gif)
字节为单位
![](/icons/19659dou2.gif)
-B
![](/icons/19659dou.gif)
——ignore-backups:不列出任何以 ~
![](/icons/19659zifu.gif)
结束
![](/icons/19659de.gif)
项目
![](/icons/19659dou2.gif)
-f:不进行排序
![](/icons/19659dou.gif)
-aU参数生效
![](/icons/19659dou.gif)
-lst参数失效
![](/icons/19659dou2.gif)
-F
![](/icons/19659dou.gif)
——
![](/icons/19659class.gif)
![](/icons/19659if.gif)
y:加上文件类型
![](/icons/19659de.gif)
指示符号 (*/=@| 其中
![](/icons/19659yi.gif)
个)
![](/icons/19659dou2.gif)
-g:like -l
![](/icons/19659dou.gif)
but do not list owner.
-G
![](/icons/19659dou.gif)
——no-group:inhibit display of group information.
-i
![](/icons/19659dou.gif)
——inode:列出每个文件
![](/icons/19659de.gif)
inode号
![](/icons/19659dou2.gif)
-I
![](/icons/19659dou.gif)
——ignore=样式:不印出任何符合Shell万用
![](/icons/19659zifu.gif)
<样式>;
![](/icons/19659de.gif)
项目
![](/icons/19659dou2.gif)
-k:即——block-size=1K.
-l:使用较长格式列出信息
![](/icons/19659dou2.gif)
-L
![](/icons/19659dou.gif)
——dereference:当显示符号链接
![](/icons/19659de.gif)
文件信息时
![](/icons/19659dou.gif)
显示符号链接所指示
![](/icons/19659de.gif)
对象
![](/icons/19659dou.gif)
而并非符号链接本身
![](/icons/19659de.gif)
信息
![](/icons/19659dou2.gif)
-m:所有项目以逗号分隔
![](/icons/19659dou.gif)
并填满整行行宽
![](/icons/19659dou2.gif)
-n
![](/icons/19659dou.gif)
——numeric-uid-gid:类似-l
![](/icons/19659dou.gif)
但列出UID及GID号
![](/icons/19659dou2.gif)
-N
![](/icons/19659dou.gif)
——literal:列出未经处理
![](/icons/19659de.gif)
项目名称
![](/icons/19659dou.gif)
例如不特别处理控制
![](/icons/19659zifu.gif)
![](/icons/19659dou2.gif)
-p
![](/icons/19659dou.gif)
——file-type:加上文件类型
![](/icons/19659de.gif)
指示符号 (/=@| 其中
![](/icons/19659yi.gif)
个)
![](/icons/19659dou2.gif)
-Q
![](/icons/19659dou.gif)
——quote-name:将项目名称括上双引号
![](/icons/19659dou2.gif)
-r
![](/icons/19659dou.gif)
——reverse:依相反次序排列
![](/icons/19659dou2.gif)
-R
![](/icons/19659dou.gif)
——recursive:同时列出所有子目录层
![](/icons/19659dou2.gif)
-s
![](/icons/19659dou.gif)
——size:以块大小为序
![](/icons/19659dou2.gif)
4.应用举例
ls命令是Linux系统使用频率最多
![](/icons/19659de.gif)
命令
![](/icons/19659dou.gif)
它
![](/icons/19659de.gif)
参数也是Linux命令中最多
![](/icons/19659de.gif)
![](/icons/19659dou2.gif)
使用ls命令时会有几种区别
![](/icons/19659de.gif)
颜色
![](/icons/19659dou.gif)
其中蓝色表示是目录
![](/icons/19659dou.gif)
绿色表示是可执行文件
![](/icons/19659dou.gif)
红色表示是压缩文件
![](/icons/19659dou.gif)
浅蓝色表示是链接文件
![](/icons/19659dou.gif)
加粗
![](/icons/19659de.gif)
黑色表示符号链接
![](/icons/19659dou.gif)
灰色表示是其它格式文件
![](/icons/19659dou2.gif)
ls最常使用
![](/icons/19659de.gif)
是ls- l
![](/icons/19659dou.gif)
见图1所示
![](/icons/19659dou2.gif)
图1 使用ls-l命令
文件类型开头是由10个
![](/icons/19659zifu.gif)
构成
![](/icons/19659de.gif)
![](/icons/19659zifu.gif)
串
![](/icons/19659dou2.gif)
其中第
![](/icons/19659yi.gif)
个
![](/icons/19659zifu.gif)
表示文件类型
![](/icons/19659dou.gif)
它可以是下述类型的
![](/icons/19659yi.gif)
:-(普通文件)、d(目录)、l(符号链接)、b(块设备文件)、c(
![](/icons/19659zifu.gif)
设备文件)
![](/icons/19659dou2.gif)
后面
![](/icons/19659de.gif)
9个
![](/icons/19659zifu.gif)
表示文件
![](/icons/19659de.gif)
访问权限
![](/icons/19659dou.gif)
分为3组
![](/icons/19659dou.gif)
每组3位
![](/icons/19659dou2.gif)
第
![](/icons/19659yi.gif)
组表示文件属主
![](/icons/19659de.gif)
权限
![](/icons/19659dou.gif)
第 2组表示同组用户
![](/icons/19659de.gif)
权限
![](/icons/19659dou.gif)
第 3组表示其他用户
![](/icons/19659de.gif)
权限
![](/icons/19659dou2.gif)
每
![](/icons/19659yi.gif)
组
![](/icons/19659de.gif)
3个
![](/icons/19659zifu.gif)
分别表示对文件
![](/icons/19659de.gif)
读(r)、写(w)和执行权限(x)
![](/icons/19659dou2.gif)
对于目录
![](/icons/19659dou.gif)
表示进入权限
![](/icons/19659dou2.gif)
s表示当文件被执行时
![](/icons/19659dou.gif)
把该文件
![](/icons/19659de.gif)
UID或GID赋予执行进程
![](/icons/19659de.gif)
UID(用户ID)或GID(组 ID)
![](/icons/19659dou2.gif)
t表示设置标志位(留在内存
![](/icons/19659dou.gif)
不被换出)
![](/icons/19659dou2.gif)
如果该文件是目录
![](/icons/19659dou.gif)
那么在该目录中
![](/icons/19659de.gif)
文件只能被超级用户、目录拥有者或文件属主删除
![](/icons/19659dou2.gif)
如果它是可执行文件
![](/icons/19659dou.gif)
那么在该文件执行后
![](/icons/19659dou.gif)
指向其正文段
![](/icons/19659de.gif)
指针仍留在内存
![](/icons/19659dou2.gif)
这样再次执行它时
![](/icons/19659dou.gif)
系统就能更快地装入该文件
![](/icons/19659dou2.gif)
接着显示
![](/icons/19659de.gif)
是文件大小、生成时间、文件或命令名称
![](/icons/19659dou2.gif)
d
![](/icons/19659if.gif)
f
1.作用
d
![](/icons/19659if.gif)
f命令用于两个文件的间
![](/icons/19659de.gif)
比较
![](/icons/19659dou.gif)
并指出两者
![](/icons/19659de.gif)
区别
![](/icons/19659dou.gif)
它
![](/icons/19659de.gif)
使用权限是所有用户
![](/icons/19659dou2.gif)
2.格式
d
![](/icons/19659if.gif)
f [options] 源文件 目标文件
3.[options]主要参数
-a:将所有文件当作文本文件来处理
![](/icons/19659dou2.gif)
-b:忽略空格造成
![](/icons/19659de.gif)
区别
![](/icons/19659dou2.gif)
-B:忽略空行造成
![](/icons/19659de.gif)
区别
![](/icons/19659dou2.gif)
-c:使用纲要输出格式
![](/icons/19659dou2.gif)
-H:利用试探法加速对大文件
![](/icons/19659de.gif)
搜索
![](/icons/19659dou2.gif)
-I:忽略大小写
![](/icons/19659de.gif)
变化
![](/icons/19659dou2.gif)
-n ——rcs:输出RCS格式
![](/icons/19659dou2.gif)
cmp
1.作用
cmp(“compare”
![](/icons/19659de.gif)
缩写)命令用来简要指出两个文件是否存在差异
![](/icons/19659dou.gif)
它
![](/icons/19659de.gif)
使用权限是所有用户
![](/icons/19659dou2.gif)
2.格式
cmp[options] 文件名
3.[options]主要参数
-l: 将字节以十进制
![](/icons/19659de.gif)
方式输出
![](/icons/19659dou.gif)
并方便将两个文件中区别
![](/icons/19659de.gif)
以 8进制
![](/icons/19659de.gif)
方式输出
cat
1.作用
cat(“concatenate”
![](/icons/19659de.gif)
缩写)命令用于连接并显示指定
![](/icons/19659de.gif)
![](/icons/19659yi.gif)
个和多个文件
![](/icons/19659de.gif)
有关信息
![](/icons/19659dou.gif)
它
![](/icons/19659de.gif)
使用权限是所有用户
![](/icons/19659dou2.gif)
2.格式
cat [options] 文件1 文件2……
3.[options]主要参数
-n:由第
![](/icons/19659yi.gif)
行开始对所有输出
![](/icons/19659de.gif)
行数编号
![](/icons/19659dou2.gif)
-b:和-n相似
![](/icons/19659dou.gif)
只不过对于空白行不编号
![](/icons/19659dou2.gif)
-s:当遇到有连续两行以上
![](/icons/19659de.gif)
空白行时
![](/icons/19659dou.gif)
就代换为
![](/icons/19659yi.gif)
行
![](/icons/19659de.gif)
空白行
![](/icons/19659dou2.gif)
4.应用举例
(1)cat命令
![](/icons/19659yi.gif)
个最简单
![](/icons/19659de.gif)
用处是显示文本文件
![](/icons/19659de.gif)
内容
![](/icons/19659dou2.gif)
例如
![](/icons/19659dou.gif)
我们想在命令行看
![](/icons/19659yi.gif)
下README文件
![](/icons/19659de.gif)
内容
![](/icons/19659dou.gif)
可以使用命令:
$ cat README
(2)有时需要将几个文件处理成
![](/icons/19659yi.gif)
个文件
![](/icons/19659dou.gif)
并将这种处理
![](/icons/19659de.gif)
结果保存到
![](/icons/19659yi.gif)
个单独
![](/icons/19659de.gif)
输出文件
![](/icons/19659dou2.gif)
cat命令在其输入上接受
![](/icons/19659yi.gif)
个或多个文件
![](/icons/19659dou.gif)
并将它们作为
![](/icons/19659yi.gif)
个单独
![](/icons/19659de.gif)
文件打印到它
![](/icons/19659de.gif)
输出
![](/icons/19659dou2.gif)
例如
![](/icons/19659dou.gif)
把README和INSTALL
![](/icons/19659de.gif)
文件内容加上行号(空白行不加)的后
![](/icons/19659dou.gif)
将内容附加到
![](/icons/19659yi.gif)
个新文本文件File1 中:
$ cat README INSTALL File1
(3)cat还有
![](/icons/19659yi.gif)
个重要
![](/icons/19659de.gif)
功能就是可以对行进行编号
![](/icons/19659dou.gif)
见图2所示
![](/icons/19659dou2.gif)
这种功能对于
![](/icons/19659chengxu.gif)
文档
![](/icons/19659de.gif)
编制
![](/icons/19659dou.gif)
以及法律和科学文档
![](/icons/19659de.gif)
编制很方便
![](/icons/19659dou.gif)
打印在左边
![](/icons/19659de.gif)
行号使得参考文档
![](/icons/19659de.gif)
某
![](/icons/19659yi.gif)
部分变得容易
![](/icons/19659dou.gif)
这些在编程、科学研究、业务报告甚至是立法工作中都是非常重要
![](/icons/19659de.gif)
![](/icons/19659dou2.gif)
图2 使用cat命令/etc/named.conf文件进行编号
对行进行编号功能有-b(只能对非空白行进行编号)和-n(可以对所有行进行编号)两个参数:
$ cat -b /etc/named.conf
ln
1.作用
ln命令用来在文件的间创建链接
![](/icons/19659dou.gif)
它
![](/icons/19659de.gif)
使用权限是所有用户
![](/icons/19659dou2.gif)
2.格式
ln [options] 源文件 [链接名]
3.参数
-f:链结时先将源文件删除
![](/icons/19659dou2.gif)
-d:允许系统管理者硬链结自己
![](/icons/19659de.gif)
目录
![](/icons/19659dou2.gif)
-s:进行软链结(Symbolic Link)
![](/icons/19659dou2.gif)
-b:将在链结时会被覆盖或删除
![](/icons/19659de.gif)
文件进行备份
![](/icons/19659dou2.gif)
链接有两种
![](/icons/19659dou.gif)
![](/icons/19659yi.gif)
种被称为硬链接(Hard Link)
![](/icons/19659dou.gif)
另
![](/icons/19659yi.gif)
种被称为符号链接(Symbolic Link)
![](/icons/19659dou2.gif)
默认情况下
![](/icons/19659dou.gif)
ln命令产生硬链接
![](/icons/19659dou2.gif)
硬连接指通过索引节点来进行
![](/icons/19659de.gif)
连接
![](/icons/19659dou2.gif)
在Linux
![](/icons/19659de.gif)
文件系统中
![](/icons/19659dou.gif)
保存在磁盘分区中
![](/icons/19659de.gif)
文件不管是什么类型都给它分配
![](/icons/19659yi.gif)
个编号
![](/icons/19659dou.gif)
称为索引节点号(Inode Index)
![](/icons/19659dou2.gif)
在Linux中
![](/icons/19659dou.gif)
多个文件名指向同
![](/icons/19659yi.gif)
索引节点是存在
![](/icons/19659de.gif)
![](/icons/19659dou2.gif)
![](/icons/19659yi.gif)
般这种连接就是硬连接
![](/icons/19659dou2.gif)
硬连接
![](/icons/19659de.gif)
作用是允许
![](/icons/19659yi.gif)
个文件拥有多个有效路径名
![](/icons/19659dou.gif)
这样用户就可以建立硬连接到重要文件
![](/icons/19659dou.gif)
以防止“误删”
![](/icons/19659de.gif)
功能
![](/icons/19659dou2.gif)
其原因如上所述
![](/icons/19659dou.gif)
![](/icons/19659yinwei.gif)
对应该目录
![](/icons/19659de.gif)
索引节点有
![](/icons/19659yi.gif)
个以上
![](/icons/19659de.gif)
连接
![](/icons/19659dou2.gif)
只删除
![](/icons/19659yi.gif)
个连接并不影响索引节点本身和其它
![](/icons/19659de.gif)
连接
![](/icons/19659dou.gif)
只有当最后
![](/icons/19659yi.gif)
个连接被删除后
![](/icons/19659dou.gif)
文件
![](/icons/19659de.gif)
数据块及目录
![](/icons/19659de.gif)
连接才会被释放
![](/icons/19659dou2.gif)
也就是说
![](/icons/19659dou.gif)
文件才会被真正删除
![](/icons/19659dou2.gif)
和硬连接相对应
![](/icons/19659dou.gif)
Lnux系统中还存在另
![](/icons/19659yi.gif)
种连接
![](/icons/19659dou.gif)
称为符号连接(Symbilc Link)
![](/icons/19659dou.gif)
也叫软连接
![](/icons/19659dou2.gif)
软链接文件有点类似于
![](/icons/19659de.gif)
快捷方式
![](/icons/19659dou2.gif)
它实际上是特殊文件
![](/icons/19659de.gif)
![](/icons/19659yi.gif)
种
![](/icons/19659dou2.gif)
在符号连接中
![](/icons/19659dou.gif)
文件实际上是
![](/icons/19659yi.gif)
个文本文件
![](/icons/19659dou.gif)
其中包含
![](/icons/19659de.gif)
有另
![](/icons/19659yi.gif)
文件
![](/icons/19659de.gif)
位置信息
![](/icons/19659dou2.gif)
动手联系
上面我们介绍了Linux文件处理命令
![](/icons/19659dou.gif)
下面介绍几个例子
![](/icons/19659dou.gif)
大家可以动手练习
![](/icons/19659yi.gif)
下刚才讲过
![](/icons/19659de.gif)
命令
![](/icons/19659dou2.gif)
1.利用符号链接快速访问关键目录
符号链接是
![](/icons/19659yi.gif)
个非常实用
![](/icons/19659de.gif)
功能
![](/icons/19659dou2.gif)
假设有
![](/icons/19659yi.gif)
些目录或文件需要频繁使用
![](/icons/19659dou.gif)
但由于Linux
![](/icons/19659de.gif)
文件和目录结构等原因
![](/icons/19659dou.gif)
这个文件或目录在很深
![](/icons/19659de.gif)
子目录中
![](/icons/19659dou2.gif)
比如
![](/icons/19659dou.gif)
Apache Web文档位于系统
![](/icons/19659de.gif)
/usr/local/httpd/htdocs中
![](/icons/19659dou.gif)
并且不想每次都要从主目录进入这样
![](/icons/19659yi.gif)
个长
![](/icons/19659de.gif)
路径的中(实际上
![](/icons/19659dou.gif)
这个路径也非常不容易记忆)
![](/icons/19659dou2.gif)
为了解决这个问题
![](/icons/19659dou.gif)
可以在主目录中创建
![](/icons/19659yi.gif)
个符号链接
![](/icons/19659dou.gif)
这样在需要进入该目录时
![](/icons/19659dou.gif)
只需进入这个链接即可
![](/icons/19659dou2.gif)
为了能方便地进入Web(/usr/local/httpd/htdocs)文档所在
![](/icons/19659de.gif)
目录
![](/icons/19659dou.gif)
在主目录下可以使用以下命令:
$ ln -s /usr/local/httpd/htdocs gg
这样每次进入gg目录就可访问Web服务器
![](/icons/19659de.gif)
文档
![](/icons/19659dou.gif)
以后如果不再访问Web服务器
![](/icons/19659de.gif)
文档时
![](/icons/19659dou.gif)
删除gg即可
![](/icons/19659dou.gif)
而真正
![](/icons/19659de.gif)
Web服务器
![](/icons/19659de.gif)
文档并没有删除
![](/icons/19659dou2.gif)
2.使用dd命令将init.rd格式
![](/icons/19659de.gif)
root.ram内容导入内存
dd
![](/icons/19659if.gif)
=/dev/fd0 of=floppy.fd
dd
![](/icons/19659if.gif)
=root.ram of=/dev/ram0 #
3.grep命令系统
![](/icons/19659diaoyong.gif)
grep是Linux/Unix中使用最广泛
![](/icons/19659de.gif)
命令的
![](/icons/19659yi.gif)
![](/icons/19659dou.gif)
许多Linux系统内部都可以
![](/icons/19659diaoyong.gif)
它
![](/icons/19659dou2.gif)
(1)如果要查询目录列表中
![](/icons/19659de.gif)
目录
![](/icons/19659dou.gif)
思路方法如下:
$ ls -l | grep '∧d'
(2)如果在
![](/icons/19659yi.gif)
个目录中查询不包含目录
![](/icons/19659de.gif)
所有文件
![](/icons/19659dou.gif)
思路方法如下:
$ ls -l | grep '∧[∧d]'
(3)用find命令
![](/icons/19659diaoyong.gif)
grep
![](/icons/19659dou.gif)
如所有C源代码中
![](/icons/19659de.gif)
“Chinput”
![](/icons/19659dou.gif)
思路方法如下:
$find /ZhXwin -name *.c -exec grep -q -s Chinput {} \;-pr
延伸阅读
最新评论