linux文件命令

来源:互联网 发布:淘宝怎么更换手机号码 编辑:程序博客网 时间:2024/06/07 07:06

1.查找文件、

查询"命令"的源文件,手册或可执行程序(在资料库中查询而不是在整个磁盘目录结构中

查询):
locate the binary, source, and manual page files for a command
语  法:whereis

参  数:
 -b  只查找二进制文件。
 -B<目录>  只在设置的目录下查找二进制文件。

 -f  不显示文件名前的路径名称。
 -m  只查找说明文件。
 -M<目录>  只在设置的目录下查找说明文件。

 -s  只查找原始代码文件。
 -S<目录>  只在设置的目录下查找原始代码文件。

 -u  查找不包含指定类型的文件。



通用查找:
find :在目录结构中搜索文件,linux下最强大的文件查找工具。find可以按照文件名、

读取修改时间、大小、类型等等来筛选文件。(这些条件可以组合).
find pathname -options [ -exec -ok ...]

按文件名:
find / -name my*  (其它常用路徑:. 当前路径;.. 父路径).

按时间:(值为n(时间n以内)或者+n(时间n以外))
-atime n  最近n天内访问过的文件(即:当前时间-24×n小时)。
-ctime n   最近n天内状态改变过的文件
-mtime n   最近n天内修改过的文件
-newer 文件或目录名 查找在该文件或目录的修改(m)时间后被修改的那些文件(其中在

newer前还可以增加a,c以查找在某个访问或者状态改变以后被访问和改变状态的那些文

件).
上面的time还可以改为min以使用分钟作为度量单位。

按大小:(值前面可以加上"+"或者"-"以查找比指定大小大或者小的文件).
-size n[bkMG]    大小为n(b为比特,k为KB,M为MB,G为GB)的文件

按类型:
-typ <文件类型>  寻找符合指定的文件类型的文件。
类型可以为:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件

按所有者:
-user name    查找所有者为name的所有文件
-group name    所有者用户组名称是name的所有文件

查找完成后可以进行以下操作:
-delete 删除找出的所有文件(慎用)
-exec command {} /;针对找到的所有文件执行command命令。如:-exec rm {} /;将会

删除找到的所有文件。(慎用,可以先用-exec ls -l { } /;查看一下,确定是要删除的

文件以后再删除。)
-ok  command {} /;  与"-exec"类似,但在执行指令之前会先询问用户,若回答"y"或

"Y",则放弃执行指令。









2.查看文件内容
  查看小文件(小于一页)
cat -n filename  :
cat一次性把文件内容全部显示出来,显示完了cat命令就返回了,不能进行交互式操作

,适合察看内容短小、不超过一屏的文件;

查看大文件
  只查看前后:
  head –v  -4/-n 4  a.txt   显示一个文件的内容的前4行。(默认为10)
   head –v  -c 25   a.txt   显示一个文件的内容的前25字节。
  tail –v -4/-n 4  a.txt   显示一个文件的内容的后4行。(默认为10)
  tail –v  -c 25  a.txt    显示一个文件的内容的后25字节
  tail –v -f  -4 a.txt    显示一个文件的内容的后4行,同时实时监控文件的内容,

当有有内容增加时,也将新增加的内容显示出来,适合于实时监控内容不断增加的文件

,如日志文件。还可以用“-s 数字”选项来改变实时扫描文件所间隔的秒数。
 分页查看全部内容,且可用vi修改内容。(其中less还支持搜索内容)。

more  对文件或其它输出进行分页显示。more无法在每行前面加行号,但可以用“=”输

出当前行的行号;用“:f”输出文件名和当前行的行号;

动作命令:
b,f .....上下滚屏,
backspace下翻页,
enter 显示下n行(默認為一行)。
v 调用vi编辑器;
q 退出more


还可以用管道|将其它命令的输出结果输入到more 以利于more的分屏显示功能。



less 对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具

,比more 更强大,且支持文件内搜索的功能。

-N 在每行前输出行号;

动作命令:
b 向上滚动一屏;
f 向下滚动一屏;
上下箭头 上下滚动一行。
10%  查看从11%开始的内容
/abc    搜索字符串'abc'。
v 调用vi编辑器;
q 退出less

回车键 向下移动一行; 空格键 向下移动一页。
g 跳到第一行;
G 跳到最后一行;


-p pattern 搜索pattern;比如在/etc/profile搜索单词MAIL,就用 less -p MAIL

/etc/profile

3.文本文件搜索工具
grep:(General Regular Expression Printer)是一种强大的文本搜索工具. 在一个或多

个文件中或者指定目录中的文件中查找给定的模式,以行为单位搜索那些包含给定模板的

输入文件。当在一行中找到匹配,就拷贝改行到标准输出(默认)。搜索的结果被送到

屏幕,不影响原文件内容。默认情况下为-G。
通过-E、-F命令选项来使用egrep和fgrep的功能(egrep是grep的扩展,支持更多的re元

字符, fgrep就是fixed grep,把所有的字母都看作单词,也就是说,正则表达式中的

元字符表示回其自身的字面意义,不再特殊,分别对应Unix的grep家族的grep、egrep和

fgrep。)
-E或--extended-regexp   将范本样式为延伸的普通表示法来使用。
-F或--fixed-regexp   将范本样式视为固定字符串的列表。
-G或--basic-regexp   将范本样式视为普通的表示法来使用(默认)。

grep [选项]<模式>  [一个或多个文件]

-n  显示匹配行的行号。
-i:进行不区分大小写的搜索。
-l 只列出包含匹配行的文件名。
-L 列出不匹配的文件名
-w 只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’)
-x或--line-regexp   只显示全行匹配的那些行。
-c  计算符合范本样式的行数。
-C number 除了显示符合范本样式的那一行之外,还显示该行之前后number行的内容。(

可以简写为-number.)
-A  number 除了显示符合范本样式的那一行之外,还显示该行之后number行的内容。
-B  number 除了显示符合范本样式的那一行之外,还显示该行之前number行的内容。
-f 指定范本文件,,格式为每行一个范本样式。

grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行, grep

grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的

行。
-v:反转搜索。显示不与模式匹配的行;
-h或--no-filename   在显示符合范本样式的那一列之前,不显示该列所属的文件名称


-H或--with-filename 在显示符合范本样式的那一列之前,显示该列所属的文件名称(默

认)。

 
模式如果只是一个不包含空格的简单单词,则可以省略单引号。
模式是一个正则表达式,尽管在大多数情况下只是一个简单的单词。
如果要搜索的字符串中包含空格,那么必须用单引号将其括起来 ('Walsen,  Stacey')

。如果模式字符串包含通配符,那么需要用单引号将其括起来。(最常用的位置匹配符

:'^'--匹配行开始位置(如'^a');'$'--匹配行结束位置(如'a$');'/<'--匹配单词的

开始位置(如'/<a');'/>'--匹配单词的结束位置(如'a/>');)
比如:
grep magic /usr/src/linux/Documentation/*
在‘/usr/src/linux/Documentation’目录下的所有文件中搜索带字符串‘magic’的行

,-r 对该目录下的子目录也进行搜索;-d skip 不对该目录下的子目录搜索。默认情况

下,对该目录下的子目录不搜索,并且会显示grep: sound: Is a directory 的提示。

附注:
ps -ef|grep httpd 用以显示httpd进程的详细信息.使用带有 -ef 选项的 ps,返回系

统中所有用户的所有进程的完整列表。一般将此 ps 命令的结果传送到 grep 中,则该

结果更易于查看。
-e 显示系统中的所有进程,除了核心进程。
-f 显示进程的详细信息
| 管道命令,前一个命令的输出做为后一个命令的输入
grep 查找字符 "httpd"

Ps 只为您提供当前进程的快照。要即时查看最活跃的进程,可使用 top。
Top 实时地提供进程信息。它还拥有交互式的状态,允许用户输入命令,如 n 后面跟有

5 或 10 等数字。其结果是指示 top 显示 5 或 10 个最活跃的进程。Top 持续运行,

直到您按 "q" 退出 top 为止。
 
一般,可以结合这两个命令来实时查看当前系统中所允许的进程的详细信息。


sed :
sed [options] '{command}' [filename]
 替换: sed  's/tiger/wolf/'

多次修改
第一种是使用 "-e" 选项,它通知程序使用了多条编辑命令。例如:
$ echo The tiger cubs will meet on Tuesday after school | sed -e '
s/tiger/wolf/' -e 's/after/before/'
The wolf cubs will meet on Tuesday before school
$

这是实现它的非常复杂的方法,因此 "-e" 选项不常被大范围使用。更好的方法是用分

号来分隔命令:
$ echo The tiger cubs will meet on Tuesday after school | sed '
s/tiger/wolf/; s/after/before/'
The wolf cubs will meet on Tuesday before school
$
注意分号必须紧跟斜线之后。或者,
$ echo The tiger cubs will meet on Tuesday after school | sed '
> s/tiger/wolf/
> s/after/before/'
The wolf cubs will meet on Tuesday before school
$

全局修改

让我们开始一次看似简单的编辑。假定在要修改的消息中出现了多次要修改的项目。默

认方式下,结果可能和预期的有所不同,如下所示:

$ echo The tiger cubs will meet this Tuesday at the same time
as the meeting last Tuesday | sed 's/Tuesday/Thursday/'
The tiger cubs will meet this Thursday at the same time
as the meeting last Tuesday
$
为了替换出现在同一行中的多个项目,必须指定在全局进行该操作:

$ echo The tiger cubs will meet this Tuesday at the same time
as the meeting last Tuesday | sed 's/Tuesday/Thursday/g'
The tiger cubs will meet this Thursday at the same time
as the meeting last Thursday
$
用 "2" 来替换 "1",但仅在单词 "two" 之后才作替换,而不是每一行的所有位置。

$ sed '/two/ s/1/2/' sample_one

请再次记住唯一改变了的是显示。如果您查看源文件,您将发现它始终保持不变。您必

须将输出保存至另一个文件,以实现永久保存。

以下命令将修改后的输出保存至一个新的文件:

$ sed '
> /two/ s/1/2/
> /three/ s/1/3/' sample_one > sample_two



sed 和 awk
如果是按行操作,就统统都用 sed就足够了。如果是不仅按行,还要按列操作,那么就

用 awk吧。
awk是一种用于处理数据和生成报告的编程语言。awk可以编程 有判断循环结构,
sed更简练些。

一般的使用格式是:
    awk '{pattern + action}' {filenames}
awk与sed和grep很相似,但其功能却大大强于sed和grep。awk提供了极其强大的功能:

它几乎可以完成 grep和sed所能完成的全部工作,同时,它还可以可以进行样式装入、

流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语

言所应具有的几乎所有精美特性。实际上,awk的确拥有自己的语言:awk程序设计语言

,awk的三位创建者已将它正式定义为:样式扫描和处理语言。





4.编辑文件内容
vi


5.其它简单的常用命令
tee filename   tee = T 这是管线工人的术语, 类似于水管工人使用的 T 型管。
 -a   附加到既有文件的后面,而非覆盖它.
用于读取输入,并且把输入同时输出到标准输出设备和文件。如果tee后面没有指定文件

,则只将其内容输出到标准输出设备。
























原创粉丝点击