必会的Linux管理命令---文件管理篇

一、文件管理

1 basename

1.1 功能说明

从文件名中去掉路径和扩展名
例:basename include/stdio.h .h
Output “stdio”.

1.2 选项

–help 显示此帮助信息并离开
–version 显示版本信息并离开

1.2 cat

1.2.1 功能说明

把档案串连接后传到基本输出(屏幕或加 > filename 到另一个档案)

1.2.2 语法
cat [-AbeEnstTuv] [–help] [–version] filename
1.2.3 参数

-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting

1.2.4 范例:
cat -n textfile1 > textfile2 # 把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -b textfile1 textfile2 >> textfile3 # 把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。

1.3 cd

1.3.1 功能说明

切换目录

1.3.2 语法
cd [目的目录]
1.3.3 补充说明

cd 指令可让用户在不同的目录间切换,但该用户必须拥有足够的权限进入目的目录。

1.4 chgrp

1.4.1 功能说明

变更文件或目录的所属群组。

1.4.2 语法
chgrp [-cfhRv][–help][–version][所属群组][文件或目录…]chgrp [-cfhRv][–help][–reference=<参考文件或目录>][–version][文件或目录…]
1.4.3 补充说明

在 UNIX 系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用 chgrp 指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。

14.4 参数

-c 或–changes 效果类似"-v"参数,但仅回报更改的部分。
-f 或–quiet 或–silent 不显示错误信息。
-h 或–no-dereference 只对符号连接的文件作修改,而不更动其他任何相关文件。
-R 或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v 或–verbose 显示指令执行过程。
–help 在线帮助。
–reference=<参考文件或目录> 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。
–version 显示版本信息。

1.5 chmod

1.5.1 功能说明

变更文件或目录的权限。

1.5.2 语法:
chmod [-cfRv][–help][–version][<权限范围>+/-/=<权限设置…>][文件或目录…]chmod [-cfRv][–help][–version][数字代号][文件或目录…]chmod [-cfRv][–help][–reference=<参考文件或目录>][–version][文件或目录…]
1.5.3 补充说明

在 UNIX 系统家族里,文件或目录权限的控制分别以读取,写入,执行 3 种一般权限来区分,另有 3 种特殊权限可供运用,再搭配拥有者与所属群组管理权限范围。您可以使用 chmod 指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果您对符号连接修改权限,其改变会作用在被连接的原始文件。权限范围的表示法如下:
u:User,即文件或目录的拥有者。
g:Group,即文件或目录的所属群组。
o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。
a:All,即全部的用户,包含拥有者,所属群组以及其他用户。
有关权限代号的部分,列表于下:
r:读取权限,数字代号为"4"。
w:写入权限,数字代号为"2"。
x:执行或切换权限,数字代号为"1"。
-:不具任何权限,数字代号为"0"。

1.5.4 参数

-c 或–changes 效果类似"-v"参数,但仅回报更改的部分。
-f 或–quiet 或–silent 不显示错误信息。
-R 或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v 或–verbose 显示指令执行过程。
–help 在线帮助。
–reference=<参考文件或目录> 把指定文件或目录的权限全部设成和参考文件或目录的权限相同
–version 显示版本信息。
<权限范围>+<权限设置> 开启权限范围的文件或目录的该项权限设置。
<权限范围>-<权限设置> 关闭权限范围的文件或目录的该项权限设置。
<权限范围>=<权限设置> 指定权限范围的文件或目录的该项权限设置。

1.6 chown

1.6.1 功能说明

变更文件或目录的拥有者或所属群组。

1.6.2 语法
chown [-cfhRv][–dereference][–help][–version][拥有者.<所属群组>][文件或目录…]chown [-chfRv][–dereference][–help][–version][.所属群组][文件或目录… …]chown [-cfhRv][–dereference][–help][–reference=<参考文件或目录>][–version][文件或目录…]
1.6.3 补充说明

在 UNIX 系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用 chown 指令去变更文件与目录的拥有者或所属群组,设置方式采用用户名称或用户识别码皆可,设置群组则用群组名称或群组识别码。

1.6.4 参数

-c 或–changes 效果类似"-v"参数,但仅回报更改的部分。
-f 或–quite 或–silent 不显示错误信息。
-h 或–no-dereference 之对符号连接的文件作修改,而不更动其他任何相关文件。
-R 或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v 或–version 显示指令执行过程。
–dereference 效果和"-h"参数相同。
–help 在线帮助。
–reference=<参考文件或目录> 把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同。
–version 显示版本信息。

1.7 comm

1.7.1 功能说明

比较两个已排过序的文件。

1.7.2 语法
comm [-123][–help][–version][1 个文件][2 个文件]
1.7.3 补充说明

这项指令会一列列地比较两个已排序文件的差异,并将其结果显示出来,如果没有指定任何参数,则会把结果分成 3 行显示:第 1 行仅是在第 1 个文件中出现过的列,第 2 行是仅在第 2 个文件中出现过的列,第 3 行则是在第 1 与第 2 个文件里都出现过的列。若给予的文件名称为"-",则 comm 指令会从标准输入设备读取数据。

1.7.4 参数

-1 不显示只在第 1 个文件里出现过的列。
-2 不显示只在第 2 个文件里出现过的列。
-3 不显示只在第 1 和第 2 个文件里出现过的列。
–help 在线帮助。
–version 显示版本信息。

1.8 cp

1.8.1 功能说明

复制文件或目录。

1.8.2 语法
cp [-abdfilpPrRsuvx][-S <备份字尾字符串>][-V <备份方式>][–help][–spares=<使用时机>][–version][源文件或目录][目标文件或目录] [目的目录]
1.8.3 补充说明

cp 指令用在复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,而最后的目的地并非是一个已存在的目录,则会出现错误信息。

1.8.4 参数

-a 或–archive 此参数的效果和同时指定"-dpR"参数相同。
-b 或–backup 删除,覆盖目标文件之前的备份,备份文件会在字尾加上一个备份字符串。
-d 或–no-dereference 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录。
-f 或–force 强行复制文件或目录,不论目标文件或目录是否已存在。
-i 或–interactive 覆盖既有文件之前先询问用户。
-l 或–link 对源文件建立硬连接,而非复制文件。
-p 或–preserve 保留源文件或目录的属性。
-P 或–parents 保留源文件或目录的路径。
-r 递归处理,将指定目录下的文件与子目录一并处理。
-R 或–recursive 递归处理,将指定目录下的所有文件与子目录一并处理。
-s 或–symbolic-link 对源文件建立符号连接,而非复制文件。
-S<备份字尾字符串>或–suffix=<备份字尾字符串> 用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备份字尾字符串是符号"~“。
-u 或–update 使用这项参数后只会在源文件的更改时间较目标文件更新时或是 名称相互对应的目标文件并不存在,才复制文件。
-v 或–verbose 显示指令执行过程。
-V<备份方式>或–version-control=<备份方式> 用”-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这字符串不仅可用"-S"参数变更,当使用"-V"参数指定不同备份方式时,也会产生不同字尾的备份字串。
-x 或–one-file-system 复制的文件或目录存放的文件系统,必须与 cp 指令执行时所处的文件系统相同,否则不予复制。
–help 在线帮助。
–sparse=<使用时机> 设置保存稀疏文件的时机。
–version 显示版本信息。

1.9 cut

1.9.1 功能说明

显示每行从开头算起 num1 到 num2 的文字。

1.9.2 语法
cut -cnum1-num2 filename
1.9.3 举例
shell>> cat example
test2
this is test1
shell>> cut -c0-6 example ## print 开头算起前 6 个字元
test2
this i

1.10 dd

1.10.1 功能说明

读取,转换并输出数据。

1.10.2 语法
dd [bs=<字节数>][cbs=<字节数>][conv=<关键字>][count=<区块数>][ibs=<字节数>][if=<文件>][obs=<字节数>][of=<文件>][seek=<区块数>][skip=<区块数>][–help][–version]
1.10.3 补充说明

dd 可从标准输入或文件读取数据,依指定的格式来转换数据,再输出到文件,设备或标准输出。

1.10.4 参数

bs=<字节数> 将 ibs( 输入)与 obs(输出)设成指定的字节数。
cbs=<字节数> 转换时,每次只转换指定的字节数。
conv=<关键字> 指定文件转换的方式。
count=<区块数> 仅读取指定的区块数。
ibs=<字节数> 每次读取的字节数。
if=<文件> 从文件读取。
obs=<字节数> 每次输出的字节数。
of=<文件> 输出到文件。
seek=<区块数> 一开始输出时,跳过指定的区块数。
skip=<区块数> 一开始读取时,跳过指定的区块数。
–help 帮助。
–version 显示版本信息。

1.11 diff

1.11.1 功能说明

比较文件的差异。

1.11.2 语法
diff [-abBcdefHilnNpPqrstTuvwy][-<行数>][-C <行数>][-D <巨集名称>][-I <字符或字符串>][-S <文件>][-W <宽度>][-x <文件或目录>][-X <文件>][–help][–left-column][–suppress-common-line][文件或目录1][文件或目录2]
1.11.3 补充说明

diff 以逐行的方式,比较文本文件的异同处。所是指定要比较目录,则 diff 会比较目录中相同文件名的文件,但不会比较其中子目录。

1.11.4 参数

-<行数> 指定要显示多少行的文本。此参数必须与-c 或-u 参数一并使用。
-a 或–text diff 预设只会逐行比较文本文件。
-b 或–ignore-space-change 不检查空格字符的不同。
-B 或–ignore-blank-lines 不检查空白行。
-c 显示全部内文,并标出不同之处。
-C<行数>或–context<行数> 与执行"-c-<行数>"指令相同。
-d 或–minimal 使用不同的演算法,以较小的单位来做比较。
-D<巨集名称>或 ifdef<巨集名称> 此参数的输出格式可用于前置处理器巨集。
-e 或–ed 此参数的输出格式可用于 ed 的 script 文件。
-f 或-forward-ed 输出的格式类似 ed 的 script 文件,但按照原来文件的顺序来显示不同处。
-H 或–speed-large-files 比较大文件时,可加快速度。
-l<字符或字符串>或–ignore-matching-lines<字符或字符串> 若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。
-i 或–ignore-case 不检查大小写的不同。
-l 或–paginate 将结果交由 pr 程序来分页。
-n 或–rcs 将比较结果以 RCS 的格式来显示。
-N 或–new-file 在比较目录时,若文件 A 仅出现在某个目录中,预设会显示:
Only in 目录:文件 A 若使用-N 参数,则 diff 会将文件 A 与一个空白的文件比较。
-p 若比较的文件为 C 语言的程序码文件时,显示差异所在的函数名称。
-P 或–unidirectional-new-file 与-N 类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比较。
-q 或–brief 仅显示有无差异,不显示详细的信息。
-r 或–recursive 比较子目录中的文件。
-s 或–report-identical-files 若没有发现任何差异,仍然显示信息。
-S<文件>或–starting-file<文件> 在比较目录时,从指定的文件开始比较。
-t 或–expand-tabs 在输出时,将 tab 字符展开。
-T 或–initial-tab 在每行前面加上 tab 字符以便对齐。
-u,-U<列数>或–unified=<列数> 以合并的方式来显示文件内容的不同。
-v 或–version 显示版本信息。
-w 或–ignore-all-space 忽略全部的空格字符。
-W<宽度>或–width<宽度> 在使用-y 参数时,指定栏宽。
-x<文件名或目录>或–exclude<文件名或目录> 不比较选项中所指定的文件或目录。
-X<文件>或–exclude-from<文件> 您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件。
-y 或–side-by-side 以并列的方式显示文件的异同之处。
–help 显示帮助。
–left-column 在使用-y 参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容。
–suppress-common-lines 在使用-y 参数时,仅显示不同之处。

1.12 dir

1.12.1 功能说明

列出<文件>的信息 (默认为目前的目录)。

1.12.2 语法
dir [选项][文件]
1.12.3 参数

如果不指定 - cftuSUX 或 --sort 任何一个选项,则根据字母大小排序。
-a, --a–ll 不隐藏任何以 . 字符开始的项目
-A, --almost-all 列出除了 . 及 … 以外的任何项目
–author 印出每个文件著作者
-b, --escape 以八进制溢出序列表示不可打印的字符
–block-size=大小 块以指定<大小>的字节为单位
-B, --ignore-backups 不列出任何以 ~ 字符结束的项目
-c 配合 -lt:根据 ctime 排序及显示 ctime (文件状态最后更改的时间) 配合 -l:显示 ctime 但根据名称排序,否则:根据 ctime 排序
-C 按列列举。
-f 不进行排序,-aU 选项生效,-lst 选项失效
-F, --classify 加上文件类型的指示符号 (/=@| 其中一个)
-i, --inode 印出每个文件的 inode 号
-I, --ignore=样式 不印出任何符合 shell 万用字符<样式>的项目
-k 即 --block-size=1K
-l 使用较长格式列出信息
-L, --dereference 当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息
-m 所有项目以逗号分隔,并填满整行行宽
-n, --numeric-uid-gid 类似 -l,但列出 UID 及 GID 号
-N, --literal 印出未经处理的项目名称 (例如不特别处理控制字符)
-o 类似 -l,但不列出有关组的信息
-p, --file-type 加上文件类型的指示符号 (/=@| 其中一个)
-q, --hide-control-chars 以 ? 字符代替无法打印的字符
–show-control-chars 直接显示无法打印的字符 (这是默认方式,除非调用的程序名称是‘ls’而且是在终端机画面输出结果)
-Q, --quote-name 将项目名称括上双引号
–quoting-style=方式 使用指定的 quoting <方式>显示项目的名称:literal、locale、shell、shell-always、c、escape
-r, --reverse 依相反次序排列
-R, --recursive 同时列出所有子目录层
-s, --size 以块大小为单位列出所有文件的大小
-S 按文件大小排序。
-t 按修改时间排序
-u 配合 -lt:显示访问时间而且依访问时间排序;配合 -l:显示访问时间但根据名称排序;否则:根据访问时间排序
-U 不进行排序;依文件系统原有的次序列出项目
-v 根据版本进行排序
-w, --width=COLS 自行指定萤幕宽度而不使用目前的数值
-x 逐行列出项目而不是逐栏列出
-X 根据扩展名排序
-1 每行只列出一个文件
–help 显示此帮助信息并离开
–version 显示版本信息并离开

1.13 dos2unix

1.13.1 功能说明

将一个 DOS 格式的文件转换为 UNIX 格式的文件。主要差别在换行符。

1.13.2 语法:
dos2unix [-hkqV] [-c convmode] [-o file] [-n infile outfile …]
1.13.3 参数:

-h --help 帮助
-k --keepdate 保留文件输出日期
-q --quiet 安静模式,屏蔽所有警告。
-V --version 显示版本。
-c --convmode 转换模式,可以是 ASCII, 7bit, ISO, Mac, 默认为 ASCII
-l --newline 增加一行。
-o --oldfile 写到原始文件中
file … 转换为旧文件的模式
-n --newfile 写入新文件
infile 输入文件名
outfile 输出文件名

1.14 egrep

1.14.1 功能说明

在文件内查找指定的字符串。
egrep 执行效果如 grep -E,使用的语法及参数可参照 grep 指令,与 grep 不同点在于解读字符串的方法,egrep 是用 extended regular expression 语法来解读,而 grep 则用 basic regular expression 语法,extended regular expression 比 basic regular expression 有更完整的表达规范。

1.15 fgrep

1.15.1 功能说明

查找文件里符合条件的字符串。本指令相当于执行 grep 指令加上参数"-F",详见 grep 指令说明。

1.15.2 语法
fgrep [范本样式][文件或目录…]

1.16 file

1.16.1 功能说明

辨识文件类型。

1.16.2 语法
file [-beLvz][-f <名称文件>][-m <魔法数字文件>][文件或目录…]
1.16.3 补充说明

通过 file 指令,我们得以辨识该文件的类型。

1.16.4 参数

-b 列出辨识结果时,不显示文件名称。
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-f<名称文件> 指定名称文件,其内容有一个或多个文件名称呢感,让 file 依序辨识这些文件,格式为每列一个文件名称。
-L 直接显示符号连接所指向的文件的类别。
-m<魔法数字文件> 指定魔法数字文件。
-v 显示版本信息。
-z 尝试去解读压缩文件的内容。

1.17 find

1.17.1 功能说明

查找文件或目录。

1.17.2 语法
find [目录…][-amin <分钟>][-anewer <参考文件或目录>][-atime <24小时数>][-cmin <分钟>]
[-cnewer <参考文件或目录>][-ctime <24 小时数>][-daystart][-depyh][-empty][-exec <执行指令>]
[-false][-fls <列表文件>][-follow][-fprint <列表文件>][-fprint0 <列表文件>]
[-fprintf <列表文件><输出格式>][-fstype <文件系统类型>][-gid <群组识别码>]
[-group <群组名称>][-help][-ilname <范本样式>][-iname <范本样式>]
[-inum <inode 编号>][-ipath <范本样式>][-iregex <范本样式>][-links <连接数目>]
[-lname < 范本样式 >][-ls][-maxdepth < 目 录 层 级 >][-mindepth < 目 录 层 级 >][-mmin < 分钟>][-mount]
[-mtime <24 小时数>][-name <范本样式>][-newer <参考文件或目录>]
[-nogroup][noleaf] [-nouser][-ok <执行指令>][-path <范本样式>][-perm <权限数值>]
[-print][-print0][-printf <输出格式>][-prune][-regex <范本样式>][-size <文件大小>]
[-true][-type <文件类型>][-uid <用户识别码>][-used <日数>][-user <拥有者名称>]
[-version][-xdev][-xtype <文件类型>]
1.17.3 补充说明

find 指令用于查找符合条件的文件。任何位于参数之前的字符串都将被视为欲查找的目录。

1.17.4 参数

-amin<分钟> 查找在指定时间曾被存取过的文件或目录,单位以分钟计算。
-anewer<参考文件或目录> 查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录。
-atime<24 小时数> 查找在指定时间曾被存取过的文件或目录,单位以 24 小时计算。
-cmin<分钟> 查找在指定时间之时被更改的文件或目录。
-cnewer<参考文件或目录> 查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录。
-ctime<24 小时数> 查找在指定时间之时被更改的文件或目录,单位以 24 小时计算。
-daystart 从本日开始计算时间。
-depth 从指定目录下最深层的子目录开始查找。
-expty 寻找文件大小为 0 Byte 的文件,或目录下没有任何子目录或文件的空目录。
-exec<执行指令> 假设 find 指令的回传值为 True,就执行该指令。
-false 将 find 指令的回传值皆设为 False。
-fls<列表文件> 此参数的效果和指定"-ls"参数类似,但会把结果保存为指定的列表文件。
-follow 排除符号连接。
-fprint<列表文件> 此参数的效果和指定"-print"参数类似,但会把结果保存成指定的列表文件。
-fprint0<列表文件> 此参数的效果和指定"-print0"参数类似,但会把结果保存成指定的列表文件。
-fprintf<列表文件><输出格式> 此参数的效果和指定"-printf"参数类似,但会把结果保存成指定的列表文件。
-fstype<文件系统类型> 只寻找该文件系统类型下的文件或目录。
-gid<群组识别码> 查找符合指定之群组识别码的文件或目录。
-group<群组名称> 查找符合指定之群组名称的文件或目录。
-help 或–help 在线帮助。
-ilname<范本样式> 此参数的效果和指定"-lname"参数类似,但忽略字符大小写的差别。
-iname<范本样式> 此参数的效果和指定"-name"参数类似,但忽略字符大小写的差别。
-inum<inode 编号> 查找符合指定的 inode 编号的文件或目录。
-ipath<范本样式> 此参数的效果和指定"-ipath"参数类似,但忽略字符大小写的差别。
-iregex<范本样式> 此参数的效果和指定"-regexe"参数类似,但忽略字符大小写的差别。
-links<连接数目> 查找符合指定的硬连接数目的文件或目录。
-iname<范本样式> 指定字符串作为寻找符号连接的范本样式。
-ls 假设 find 指令的回传值为 True,就将文件或目录名称列出到标准输出。
-maxdepth<目录层级> 设置最大目录层级。
-mindepth<目录层级> 设置最小目录层级。
-mmin<分钟> 查找在指定时间曾被更改过的文件或目录,单位以分钟计算。
-mount 此参数的效果和指定"-xdev"相同。
-mtime<24 小时数> 查找在指定时间曾被更改过的文件或目录,单位以 24 小时计算。
-name<范本样式> 指定字符串作为寻找文件或目录的范本样式。
-newer<参考文件或目录> 查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录。
-nogroup 找出不属于本地主机群组识别码的文件或目录。
-noleaf 不去考虑目录至少需拥有两个硬连接存在。
-nouser 找出不属于本地主机用户识别码的文件或目录。
-ok<执行指令> 此参数的效果和指定"-exec"参数类似,但在执行指令之前会先询问用户,若回答"y"或"Y",则放弃执行指令。
-path<范本样式> 指定字符串作为寻找目录的范本样式。
-perm<权限数值> 查找符合指定的权限数值的文件或目录。
-print 假设 find 指令的回传值为 True,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称之前皆有"./“字符串。
-print0 假设 find 指令的回传值为 True,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行。
-printf<输出格式> 假设 find 指令的回传值为 True,就将文件或目录名称列出到标准输出。格式可以自行指定。
-prune 不寻找字符串作为寻找文件或目录的范本样式。
-regex<范本样式> 指定字符串作为寻找文件或目录的范本样式。
-size<文件大小> 查找符合指定的文件大小的文件。
-true 将 find 指令的回传值皆设为 True。
-typ<文件类型> 只寻找符合指定的文件类型的文件。
-uid<用户识别码> 查找符合指定的用户识别码的文件或目录。
-used<日数> 查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算。
-user<拥有者名称> 查找符合指定的拥有者名称的文件或目录。
-version 或–version 显示版本信息。
-xdev 将范围局限在先行的文件系统中。
-xtype<文件类型> 此参数的效果和指定”-type"参数类似,差别在于它针对符号连接检查。

1.18 grep

1.18.1 功能说明

查找文件里符合条件的字符串。

1.18.2 语法
grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][–help][范本样式][文件或目录…]
1.18.3 补充说明

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为“-”,则 grep指令会从标准输入设备读取数据。

1.18.4 参数

-a 或–text 不要忽略二进制的数据。
-A<显示列数>或–after-context=<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之后的内容。
-b 或–byte-offset 在显示符合范本样式的那一列之前,标示出该列第一个字符的位编号。
-B<显示列数>或–before-context=<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前的内容。
-c 或–count 计算符合范本样式的列数。
-C<显示列数>或–context=<显示列数>或-<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d<进行动作>或–directories=<进行动作> 当指定要查找的是目录而非文件时,必须使用这项参数,否则 grep 指令将回报信息并停止动作。
-e<范本样式>或–regexp=<范本样式> 指定字符串做为查找文件内容的范本样式。
-E 或–extended-regexp 将范本样式为延伸的普通表示法来使用。
-f<范本文件>或–file=<范本文件> 指定范本文件,其内容含有一个或多个范本样式,让 grep 查找符合范本条件的文件内容,格式为每列一个范本样式。
-F 或–fixed-regexp 将范本样式视为固定字符串的列表。
-G 或–basic-regexp 将范本样式视为普通的表示法来使用。
-h 或–no-filename 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
-H 或–with-filename 在显示符合范本样式的那一列之前,表示该列所属的文件名称。
-i 或–ignore-case 忽略字符大小写的差别。
-l 或–file-with-matches 列出文件内容符合指定的范本样式的文件名称。
-L 或–files-without-match 列出文件内容不符合指定的范本样式的文件名称。
-n 或–line-number 在显示符合范本样式的那一列之前,标示出该列的列数编号。
-q 或–quiet 或–silent 不显示任何信息。
-r 或–recursive 此参数的效果和指定“-d recurse”参数相同。
-s 或–no-messages 不显示错误信息。
-v 或–revert-match 反转查找。
-V 或–version 显示版本信息。
-w 或–word-regexp 只显示全字符合的列。
-x 或–line-regexp 只显示全列符合的列。
-y 此参数的效果和指定“-i”参数相同。
–help 在线帮助。

1.19 head

1.19.1 功能说明

先是文件的前几行(默认 10 行)。

1.19.2 语法
head [options] [files]
1.19.3 参数

-c, --bytes=[-]N 每个文件显示前 N 字节;
-n, --lines=[-]N 每个文件显示前 N 行;
-q, --quiet, --silent 不打印文件头
-v, --verbose 打印文件头
–help 显示此帮助信息并离开
–version 显示版本信息并离开

1.19.4 例子
# 显示文件 phone_list 前 20 行
head -20 phone_list
# 显示有 202 区号的前 10 个号码
grep(202)’ phone_list | head

1.20 Less

1.20.1 功能说明

less 命令的功能几乎和 more 命令一样,也是用来按页显示文件,不同之处在于 less 命令在显示文件时允许用户既可以向前又可以向后翻阅文件。同时因为 less 并未在一开始就读入整个档案,因此在遇上大型档案的开启时,会比一般的文书编辑器(如 vi)来的快速。

1.20.2 语法
less [options] [filename]

1.21 ln

1.21.1 功能说明

连接文件或目录。

1.21.2 语法
ln [-bdfinsv][-S <字尾备份字符串>][-V <备份方式>][–help][–version][源文件或目录][目标文件或目录]
#或 
ln [-bdfinsv][-S <字尾备份字符串>][-V <备份方式>][–help][–version][源文件或目录…][目的目录]
1.21.3 补充说明

ln 指令用在连接文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,且最后的目的地并非是一个已存在的目录,则会出现错误信息。

1.21.4 参数

-b 或–backup 删除,覆盖目标文件之前的备份。
-d 或-F 或–directory 建立目录的硬连接。
-f 或–force 强行建立文件或目录的连接,不论文件或目录是否存在。
-i 或–interactive 覆盖既有文件之前先询问用户。
-n 或–no-dereference 把符号连接的目的目录视为一般文件。
-s 或–symbolic 对源文件建立符号连接,而非硬连接。
-S<字尾备份字符串>或–suffix=<字尾备份字符串> 用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的字尾备份字符串是符号"~“,您可通过”-S"参数来改变它。
-v 或–verbose 显示指令执行过程。
-V<备份方式>或–version-control=<备份方式> 用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用"-S"参数变更,当使用"-V"参数<备份方式>指定不同备份方式时,也会产生不同字尾的备份字符串。
–help 在线帮助。
–version 显示版本信息。

1.22 locate

1.22.1 功能说明

查找文件。

1.22.2 语法
locate [-d <数据库文件>][–help][–version][范本样式…]
1.22.3 补充说明

locate 指令用于查找符合条件的文件,它会去保存文件与目录名称的数据库内,查找合乎范本样式条件的文件或目录。

1.22.4 参数

-d<数据库文件>或–database=<数据库文件> 设置 locate 指令使用的数据库。locate 指令预设的数据库位于/var/lib/slocate 目录里,文件名为 slocate.db,您可使用这个参数另行指定。
–help 在线帮助。
–version 显示版本信息。

1.23 ls

1.23.1 功能说明

列出目录内容。

1.23.2 语法
ls [-1aAbBcCdDfFgGhHiklLmnNopqQrRsStuUvxX][-I < 范 本 样 式 >][-T < 跳 格 字 数 >][-w < 每 列 字 符数>][–block-size=<区块大小>][–color=<使用时机>][–format=<列表格式>][–full-time][–help][–indicator-style=<标注样式 >][–quoting-style=< 引 号 样 式 >][–show-control-chars][–sort=< 排序方式 >][–time=< 时 间 戳记>][–version][文件或目录…]
1.23.3 补充说明

执行 ls 指令可列出目录的内容,包括文件和子目录的名称。

1.23.4 参数

-1 每列仅显示一个文件或目录名称。
-a 或–all 下所有文件和目录。
-A 或–almost-all 显示所有文件和目录,但不显示现行目录和上层目录。
-b 或–escape 显示脱离字符。
-B 或–ignore-backups 忽略备份文件和目录。
-c 以更改时间排序,显示文件和目录。
-C 以又上至下,从左到右的直行方式显示文件和目录名称。
-d 或–directory 显示目录名称而非其内容。
-D 或–dired 用 Emacs 的模式产生文件和目录列表。
-f 此参数的效果和同时指定"aU"参数相同,并关闭"lst"参数的效果。
-F 或–classify 在执行文件,目录,Socket,符号连接,管道名称后面,各自加上"“,”/“,”=“,”@“,”|“号。
-g 次参数将忽略不予处理。
-G 或–no-group 不显示群组名称。
-h 或–human-readable 用"K”,“M”,“G"来显示文件和目录的大小。
-H 或–si 此参数的效果和指定”-h"参数类似,但计算单位是 1000Bytes 而非 1024Bytes。
-i 或–inode 显示文件和目录的 inode 编号。
-I<范本样式>或–ignore=<范本样式> 不显示符合范本样式的文件或目录名称。
-k 或–kilobytes 此参数的效果和指定"block-size=1024"参数相同。
-l 使用详细格式列表。
-L 或–dereference 如遇到性质为符号连接的文件或目录,直接列出该连接所指向的原始文件或目录。
-m 用",“号区隔每个文件和目录的名称。
-n 或–numeric-uid-gid 以用户识别码和群组识别码替代其名称。
-N 或–literal 直接列出文件和目录名称,包括控制字符。
-o 此参数的效果和指定”-l" 参数类似,但不列出群组名称或识别码。
-p 或–file-type 此参数的效果和指定"-F"参数类似,但不会在执行文件名称后面加上"*“号。
-q 或–hide-control-chars 用”?“号取代控制字符,列出文件和目录名称。
-Q 或–quote-name 把文件和目录名称以”“号标示起来。
-r 或–reverse 反向排序。
-R 或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-s 或–size 显示文件和目录的大小,以区块为单位。
-S 用文件和目录的大小排序。
-t 用文件和目录的更改时间排序。
-T<跳格字符>或–tabsize=<跳格字数> 设置跳格字符所对应的空白字符数。
-u 以最后存取时间排序,显示文件和目录。
-U 列出文件和目录名称时不予排序。
-v 文件和目录的名称列表以版本进行排序。
-w<每列字符数>或–width=<每列字符数> 设置每列的最大字符数。
-x 以从左到右,由上至下的横列方式显示文件和目录名称。
-X 以文件和目录的最后一个扩展名排序。
–block-size=<区块大小> 指定存放文件的区块大小。
–color=<列表格式> 培植文件和目录的列表格式。
–full-time 列出完整的日期与时间。
–help 在线帮助。
–indicator-style=<标注样式> 在文件和目录等名称后面加上标注,易于辨识该名称所属的类型。
–quoting-syte=<引号样式> 把文件和目录名称以指定的引号样式标示起来。
–show-control-chars 在文件和目录列表时,使用控制字符。
–sort=<排序方式> 配置文件和目录列表的排序方式。
–time=<时间戳记> 用指定的时间戳记取代更改时间。
–version 显示版本信息。

1.24 mkdir

1.24.1 功能说明

建立目录

1.24.2 语法
mkdir [-p][–help][–version][-m <目录属性>][目录名称]
1.24.3 补充说明

mkdir 可建立目录并同时设置目录的权限。

1.24.4 参数

-m<目录属性>或–mode<目录属性> 建立目录时同时设置目录的权限。
-p 或–parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录。
–help 显示帮助。
–verbose 执行时显示详细的信息。
–version 显示版本信息。

1.25 more

1.25.1 功能说明

类似 cat ,不过会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。

1.25.2 语法
more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames…]
1.25.3 参数
-num 一次显示的行数
-d 提示使用者,在画面下方显示 [Press space to continue, ‘q’ to quit.] ,如果使用者按错键,则会显示[Press ‘h’ for instructions.] 而不是 ‘哔’ 声
-l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
-f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
-p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
-c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
-s 当遇到有连续两行以上的空白行,就代换为一行的空白行
-u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
+/ 在每个档案显示前搜寻该字串(pattern),然后从该字串之后开始显示
+num 从第 num 行开始显示
fileNames 欲显示内容的档案,可为复数个数
1.25.4 例子
more -s testfile ## 逐页显示 testfile 之档案内容,如有连续两行以上空白行则以一行空白行显示。
more +20 testfile ## 从第 20 行开始显示 testfile 之档案内容。

1.26 mv

1.26.1 功能说明

移动或更名现有的文件或目录。

1.26.2 语法
mv [-bfiuv][–help][–version][-S <附加字尾>][-V <方法>][源文件或目录][目标文件或目录]
1.26.3 补充说明

mv 可移动文件或目录,或是更改文件或目录的名称。

1.26.4 参数

-b 或–backup 若需覆盖文件,则覆盖前先行备份。
-f 或–force 若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文 件或目录。
-i 或–interactive 覆盖前先行询问用户。
-S<附加字尾>或–suffix=<附加字尾> 与-b 参数一并使用,可指定备份文件的所要附加的字尾。
-u 或–update 在移动或更改文件名时,若目标文件已存在,且其文件日期比源文件新,则不覆盖目标文件。
-v 或–verbose 执行时显示详细的信息。
-V=<方法>或–version-control=<方法> 与-b 参数一并使用,可指定备份的方法。
–help 显示帮助。
–version 显示版本信息。

1.27 od

1.27.1 功能说明

输出文件内容。

1.27.2 语法
od [-abcdfhilovx][-A <字码基数>][-j <字符数目>][-N <字符数目>][-s <字符串字符数>][-t <输出格式>][-w <每列字符数>][–help][–version][文件…]
1.27.3 补充说明

od 指令会读取所给予的文件的内容,并将其内容以八进制字码呈现出来。

1.27.4 参数

-a 此参数的效果和同时指定”-ta"参数相同。
-A<字码基数> 选择要以何种基数计算字码。
-b 此参数的效果和同时指定"-toC"参数相同。
-c 此参数的效果和同时指定"-tC"参数相同。
-d 此参数的效果和同时指定"-tu2"参数相同。
-f 此参数的效果和同时指定"-tfF"参数相同。
-h 此参数的效果和同时指定"-tx2"参数相同。
-i 此参数的效果和同时指定"-td2"参数相同。
-j<字符数目>或–skip-bytes=<字符数目> 略过设置的字符数目。
-l 此参数的效果和同时指定"-td4"参数相同。
-N<字符数目>或–read-bytes=<字符数目> 到设置的字符数目为止。
-o 此参数的效果和同时指定"-to2"参数相同。
-s<字符串字符数>或–strings=<字符串字符数> 只显示符合指定的字符数目的字符串。
-t<输出格式>或–format=<输出格式> 设置输出格式。
-v 或–output-duplicates 输出时不省略重复的数据。
-w<每列字符数>或–width=<每列字符数> 设置每列的最大字符数。
-x 此参数的效果和同时指定"-h"参数相同。
–help 在线帮助。
–version 显示版本信息。

1.28 pwd

1.28.1 功能说明

显示工作目录。

1.28.2 语法
pwd [–help][–version]
1.28.3 补充说明

执行 pwd 指令可立刻得知您目前所在的工作目录的绝对路径名称。

1.28.4 参数

–help 在线帮助。
–version 显示版本信息。

1.29 rename

1.29.1 功能说明

文件批量改名。

1.29.2 语法
rename from to file

该命令的各选项含义如下:
from 源字符。
to 目标字符。
file 要改名的文件

1.29.3 例子

rename .rm .rmvb *
// 把所有文件的后辍由 rm 改为 rmvb
rename ‘tr/A-Z/a-z/’ *
// 把所有文件名中的大写改为小写

1.30 rm

1.30.1 功能说明

删除文件或目录。

1.30.2 语法
rm [-dfirv][–help][–version][文件或目录…]
1.30.3 补充说明

执行 rm 指令可删除文件或目录,如欲删除目录必须加上参数"-r",否则预设仅会删除文件。

1.30.4 参数

-d 或–directory 直接把欲删除的目录的硬连接数据删成 0,删除该目录。
-f 或–force 强制删除文件或目录。
-i 或–interactive 删除既有文件或目录之前先询问用户。
-r 或-R 或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v 或–verbose 显示指令执行过程。
–help 在线帮助。
–version 显示版本信息。

1.31 rmdir

1.31.1 功能说明

删除目录。

1.31.2 语法
rmdir [-p][–help][–ignore-fail-on-non-empty][–verbose][–version][目录…]
1.31.3 补充说明

当有空目录要删除时,可使用 rmdir 指令。

1.31.4 参数

-p 或–parents 删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除。
–help 在线帮助。
–ignore-fail-on-non-empty 忽略非空目录的错误信息。
–verbose 显示指令执行过程。
–version 显示版本信息。

1.32 sed

1.32.1 功能说明

利用 script 来处理文本文件。

1.32.2 语法
sed [-hnV][-e<script>][-f<script 文件>][文本文件]
1.32.3 补充说明

sed 可依照 script 的指令,来处理、编辑文本文件。

1.32.4 参数
-e<script>或–expression=<script> 以选项中指定的 script 来处理输入的文本文件。    
-f<script 文件>或–file=<script 文件> 以选项中指定的 script 文件来处理输入的文本文件。    
-h 或–help 显示帮助。    
-n 或–quiet 或–silent 仅显示 script 处理后的结果。    
-V 或–version 显示版本信息。

1.33 sort

1.33.1 功能说明

将文本文件内容加以排序。

1.33.2 语法
sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][–help][–verison][文件]
1.33.3 补充说明

sort 可针对文本文件的内容,以行为单位来排序。

1.33.4 参数

-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f 排序时,将小写字母视为大写字母。
-i 排序时,除了 040 至 176 之间的 ASCII 字符外,忽略其他的字符。
-m 将几个排序好的文件进行合并。
-M 将前面 3 个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-o<输出文件> 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-t<分隔字符> 指定排序时所用的栏位分隔字符。
+<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
–help 显示帮助。
–version 显示版本信息。

1.34 tail

1.34.1 功能说明

查看文件的后 N 行,有实时监控的功能。

1.34.2 语法
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
或者
tail [ -r ] [ -n Number ] [ File ]

tail 命令从指定点开始将 File 参数指定的文件写到标准输出。如果没有指定文件,则会使用标准输入。Number 变量
指定将多少单元写入标准输出。Number 变量的值可以是正的或负的整数。如果值的前面有 +(加号),从文件开头
指定的单元数开始将文件写到标准输出。如果值的前面有 -(减号),则从文件末尾指定的单元数开始将文件写到
标准输出。如果值前面没有 +(加号)或 -(减号),那么从文件末尾指定的单元号开始读取文件。

1.34.3 参数

-b Number 从 Number 变量表示的 512 字节块位置开始读取指定文件。
-c Number 从 Number 变量表示的字节位置开始读取指定文件。
-f 如果输入文件是常规文件或如果 File 参数指定 FIFO(先进先出),那么 tail 命令不会在复制了输入文件的最后的指定单元后终止,而是继续从输入文件读取和复制额外的单元(当这些单元可用时)。如果没有指定 File 参数,并且标准输入是管道,则会忽略 -f 标志。tail -f 命令可用于监视另一个进程正在写入的文件的增长。
-k Number 从 Number 变量表示的 1KB 块位置开始读取指定文件。
-m Number 从 Number 变量表示的多字节字符位置开始读取指定文件。使用该标志提供在单字节和双字节字符代码集环境中的一致结果。
-n Number 从首行或末行位置来读取指定文件,位置由 Number 变量的符号(+ 或 - 或无)表示,并通过行号 Number 进行位移。
-r 从文件末尾以逆序方式显示输出。-r 标志的缺省值是以逆序方式显示整个文件。如果文件大于 20,480 字节,那么-r 标志只显示最后的 20,480 字节。-r 标志只有与 -n 标志一起时才有效。否则,就会将其忽略。

1.34.4 例子

tail -f /var/log/messages
参数-f 使 tail 不停地去读最新的内容,这样有实时监视的效果,用 Ctrl+c 来终止!

1.35 touch

1.35.1 功能说明

改变文件或目录时间。

1.35.2 语法
touch [-acfm][-d < 日期时间 >][-r < 参考文件或目录 >][-t < 日期时间 >][–help] [–version][ 文 件 或 目录…]touch [-acfm][–help][–version][日期时间][文件或目录…]
1.35.3 补充说明

使用 touch 指令可更改文件或目录的日期时间,包括存取时间和更改时间。

1.35.4 参数

-a 或–time=atime 或–time=access 或–time=use 只更改存取时间。
-c 或–no-create 不建立任何文件。
-d<时间日期> 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决 BSD 版本 touch 指令的兼容性问题。
-m 或–time=mtime 或–time=modify 只更改变动时间。
-r<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同。
-t<日期时间> 使用指定的日期时间,而非现在的时间。
–help 在线帮助。
–version 显示版本信息。

1.36 uniq

1.36.1 功能说明

检查及删除文本文件中重复出现的行列。

1.36.2 语法
uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][–help][–version][输入文件][输出文件]
1.36.3 补充说明

uniq 可检查文本文件中重复出现的行列。

1.36.4 参数

-c 或–count 在每列旁边显示该行重复出现的次数。
-d 或–repeated 仅显示重复出现的行列。
-f<栏位>或–skip-fields=<栏位> 忽略比较指定的栏位。
-s<字符位置>或–skip-chars=<字符位置> 忽略比较指定的字符。
-u 或–unique 仅显示出一次的行列。
-w<字符位置>或–check-chars=<字符位置> 指定要比较的字符。
–help 显示帮助。
–version 显示版本信息。
[输入文件] 指定已排序好的文本文件。
[输出文件] 指定输出的文件。

1.37 unix2dos

1.37.1 功能说明

将 UNIX 格式的文件转化为 DOS 格式。

1.37.2 语法
unix2dos [-hkqV] [-o file] [-c convmode] [-n infile outfile …]
1.37.3 参数

-h --help 帮助。
-k --keepdate 保留文件日期。
-q --quiet 安静模式,屏蔽所有警告。
-V --version 显示版本。
-c --convmode 转换模式,可以是 ASCII, 7bit, ISO, Mac, 默认为 ASCII
-l --newline 增加一行。
-o --oldfile 写到原始文件中
file … 转换为旧文件的模式
-n --newfile 写入新文件
infile 输入文件名
outfile 输出文件名

1.38 vdir

1.38.1 功能说明

列举目录内容,功能同ls -lb

1.38.2 语法
vdir [options] [files] 

1.39 vi

1.39.1 功能说明

文本编辑。

1.39.2 语法
vim [参数] [文件 …] 编辑指定的文件
或:
vim [参数] - 从标准输入(stdin)读取文本
或:
vim [参数] -t tag 编辑时使用指定的 tag
或:
vim [参数] -q [errorfile] 编辑时加载第一个错误
1.39.3 参数

– 只有在这之后的文件
-v Vi 模式 (同 “vi”)
-e Ex 模式 (同 “ex”)
-s 安静 (batch) 模式 (只能与 “ex” 一起使用)
-d Diff 模式 (同 “vimdiff”, 可迅速比较两文件不同处)
-y 简易模式 (同 “evim”, modeless)
-R 只读模式 (同 “view”)
-Z 限制模式 (同 “rvim”)
-m 不可修改 (写入文件)
-M 文本不可修改
-b 二进制模式
-l Lisp 模式
-C ‘compatible’ 传统 Vi 兼容模式
-N ‘nocompatible’ 不完全与传统 Vi 兼容,可使用 Vim 加强能力
-V[N] Verbose 等级
-D 调试模式
-n 不使用交换文件, 只使用内存
-r 列出交换文件后退出
-r (加文件名) 恢复上次崩溃的资料(Recover crashed session)
-L 与 -r 一样
-A 按阿拉伯模式启动
-H 按犹太模式启动
-F 按波斯模式启动
-T 设定终端为
-u 使用 替换任何 .vimrc
–noplugin 不加载任何 plugin
-o[N] 打开 N 个窗口 (预设是每个文件一个)
-O[N] 同 -o 窗体垂直分割

  • 启动后跳到文件结尾
    + 启动后跳到第 行
    –cmd 加载任何 vimrc 前执行
    -c 加载第一个文件后执行
    -S 加载第一个文件后载入 Session 文件
    -s 从 读入一般模式命令
    -w 对文件 附加(append)所有输入的命令
    -W 对文件 写入所有输入的命令
    -x 编辑编码过的文件
    -i 使用 而非 .viminfo
    -h or --help 帮助。
    –version 版本。
1.39.4 命令
1.39.4.1 进入输入模式

新增 (append)
a :从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动。
A:从光标所在列最後面的地方开始新增资料。
插入 (insert)
i:从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。
I :从光标所在列的第一个非空白字元前面开始插入资料。
开始 (open)
o :在光标所在列下新增一列并进入输入模式。
O: 在光标所在列上方新增一列并进入输入模式。

1.39.4.2 退出 vi

在指令模式下键入:q,:q!,:wq 或:x(注意:号),就会退出 vi。其中:wq 和:x 是存盘退出,而:q 是直接退出,如果文件已有新的变化,vi 会提示你保存文件而:q 命令也会失效,这时你可以用:w 命令保存文件后再用:q 退出,或用:wq 或:x 命令退出,如果你不想保存改变后的文件,你就需要用:q!命令,这个命令将不保存文件而直接退出 vi。

1.39.4.3 删除与修改文件的命令:

x:删除光标所在字符。
dd :删除光标所在的列。
r :修改光标所在字元,r 後接著要修正的字符。
R:进入取替换状态,新增文字会覆盖原先文字,直到按 [ESC] 回到指令模式下为止。
s:删除光标所在字元,并进入输入模式。
S:删除光标所在的列,并进入输入模式。
1.39.4.4 屏幕翻滚类命令
Ctrl+u: 向文件首翻半屏
Ctrl+d: 向文件尾翻半屏
Ctrl+f: 向文件尾翻一屏
Ctrl+b: 向文件首翻一屏
nz: 将第 n 行滚至屏幕顶部,不指定 n 时将当前行滚至屏幕顶部。

1.39.4.5 删除命令

ndw 或 ndW: 删除光标处开始及其后的 n-1 个字
do: 删至行首
d$: 删至行尾
ndd: 删除当前行及其后 n-1 行
x 或 X: 删除一个字符,x 删除光标后的,而 X 删除光标前的
Ctrl+u: 删除输入方式下所输入的文本

1.39.4.6 搜索及替换命令

/pattern: 从光标开始处向文件尾搜索 pattern
?pattern: 从光标开始处向文件首搜索 pattern
n: 在同一方向重复上一次搜索命令
N: 在反方向上重复上一次搜索命令
😒 /p1/p2/g: 将当前行中所有 p1 均用 p2 替代
:n1,n2s/p1/p2/g: 将第 n1 至 n2 行中所有 p1 均用 p2 替代
:g/p1/s//p2/g: 将文件中所有 p1 均用 p2 替换

1.39.4.7 复制,黏贴

(1) 选定文本块,使用 v 进入可视模式;移动光标键选定内容
(2) 复制选定块到缓冲区,用 y;复制整行,用 yy
(3) 剪切选定块到缓冲区,用 d;剪切整行用 dd
(4) 粘贴缓冲区中的内容,用 p

1.39.4.8 其他

在同一编辑窗打开第二个文件,用:sp [filename]
在多个编辑文件之间切换,用 Ctrl+w

1.40 wc

1.40.1 功能说明

计算字数。

1.40.2 语法
wc [-clw][–help][–version][文件…]
1.40.3 补充说明

利用 wc 指令我们可以计算文件的 Byte 数、字数、或是列数,若不指定文件名称、或是所给予的文件名为“-”,则 wc 指令会从标准输入设备读取数据。

1.40.4 参数

-c 或–bytes 或–chars 只显示 Bytes 数。
-l 或–lines 只显示列数。
-w 或–words 只显示字数。
–help 在线帮助。
–version 显示版本信息。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bruce_Eckel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值