v 用一种特殊形式显示控制字符, LFD 与 TAB 除外。 加了 v 选项后, T 和 E 选项将起作用。其中∶
T 将 TAB 显示为“ I "。该选项需要与 v 选项一起使用。即如果 没有使用 v 选项,则这个选项将被忽略。
E 在每行的末尾显示一个$符。该选项需要与 v 选项一起使用。
u 输出不经过缓冲区。
A 等于vET。
t 等于vT。
e 等于vE。
例1∶$ cat example.txt
则在屏幕上显示出example.txt 文件的内容。
例2∶$ cat -A exam2.txt
则在屏幕上显示出exam2.txt 文件的内容,而且如果文件中含有特殊字符的话,一 并显示。
i空格 若指定i,显示下面的i行;否则,显示下一整屏。
i回车 若指定i,显示下面的i行;否则,显示下一行。
iD 按Ctrl+D,若指定i,显示下面的i行;否则,往下显示半屏(一般为 11 行)。
id 同iD 。
iz 同“i空格”类似,只是i将成为以下每个满屏的缺省行数。
is 跳过下面的i行再显示一个整屏。预设值为1。
if 跳过下面的i屏再显示一个整屏。预设值为1。
iB 按Ctrl+B,往回跳过(即向文件首回跳)i屏,再显示一个满 屏。预设值为1。
b 与iB相同。
’ 回到上次搜索的地方
q或Q 退出more。
= 显示当前行号。
v 在当前行启动/usr/bin/vi对之进行编辑修改。
h 显示各命令的帮助信息。
i/pattern 查找匹配该模式的第i行。预设值为1。
in 查找符合表达式的倒数i行。预设值为1。
!cmd或 ∶!cmd在子shell中执行cmd命令。
i∶n 在命令行中指定了多个文件名的情况下,可用此命令使之显示第i个文件,若i过大(出界),则显示文件名列表中的最后一个文件。
i∶p 在命令行中指定了多个文件名的情况下,可用此命令使之显示倒数第i个文件。若i过大(出界),则显示第一个文件。
i∶f 显示当前文件的文件名和行数。
例1∶用分页的方式显示一个文件的内容。
$ more example1.c
/*-------------------------------------------*/
/* example1.c */
/*-------------------------------------------*/
#define _MAIN_C_
#inc1ude < BBS. h >;
jmp_buf byebye;
int talkrequest=NA;
static uschar Enter_uflag i
#ifdef SHOW_IDLE_TIME
--More- (3%)
例2∶显示一个文件的内容,但显示之前先清屏,并且在显示器的最下方显示完整的百分比。
$ more dc example1.c
执行该命令后,先清屏,然后显示文件example.c的内容。
/*-------------------------------------------*/
/* example1.c */
/*-------------------------------------------*/
/* author f opus.BBS@BBS.cs.nthu.edu.tw */
/* target f BBS main/login/top-menu routines */
/* create f 99/10/23 */
/* update f 99/12/15 */
/*-------------------------------------------*/
#define _MAIN_C_
#inc1ude < BBS. h >;
jmp_buf byebye;
int talkrequest=NA;
static uschar Enter_uflag i
#ifdef SHOW_IDLE_TIME
char fromhost( );
--More- (3%)[Press space to c ontinue , 'q' to quit .]
例3∶显示一个文件的内容,要求每十行显示一次,且显示之前先清屏。
$ more c 10 example1.c
执行该命令后,先清屏,然后将以每十行每十行的方式
显示文件example.c的内容。
/*-----------------------------------*/
/* example1.c */
/*-----------------------------------*/
/* create f 99/10/23 */
/* update f 99/12/15 */
/*-----------------------------------*/
#define _MAIN_C_
inc1ude < BBS. h >;
--More- (3%)
如果用户希望查看一个文件究竟保存的是什么内容,可以只查看文件的头几 行,而不必浏览整个文件。用 head 命令只显示文件或标准输入的头几行。
语法∶head [n ] 文件
功能∶显示指定文件的前若干行。
说明∶该命令显示每个指定文件的前面 n 行。如果没有给出 n 值,缺省设置为 10。如果没有指定文件,head 就从标准输人读取。例如显示文件 example.c 的前3行。
$ head 3 example.c
/*-------------------------------------------*/
/* example1.c */
/*-------------------------------------------*/
tail命令
同样,如果用户想查看文件的尾部,可以使用tail命令。
语法∶tail [+ / num ] [参数] 文件
说明∶该命令显示一个文件的指定内容。它把指定文件的指定显示范围内的内 容显示在标准输出上。如果没有给定文件名,则使用标准输入文件。
tail命令中各个选项的含义为∶
+num 从第num行以后开始显示。
num 从距文件尾num行处开始显示。如果省略num参数,系统默认值为10。
l 以文本行为num的计数单位。与参数选项+num或num选项同时使用时, num 表示要显示的文本行行数。
c 以字节为num的计数单位。与参数选项+num或num选项同时使用时, num 表示要显示的字符数。(l、c选项可以省略,系统默认值为l,即按行计数)。
例如∶
A 指定地址基数,包括∶
d 十进制
o 八进制(系统默认值)
x 十六进制
n 不打印位移值
t 指定数据的显示格式,主要的参数有∶
c ASCII字符或反斜杠序列
d 有符号十进制数
f 浮点数
o 八进制(系统默认值为02)
u 无符号十进制数
x 十六进制数
除了选项c以外的其他选项后面都可以跟一个十进制数n,指定每个显 示值所包含的字节数。说明∶od命令系统默认的显示方式是八进制, 这也是该命令的名称由来(Octal Dump)。但这不是最有用的显示方 式,用ASCII码和十六进制组合的方式能提供更有价值的信息输出。
E 每个模式作为一个扩展的正则表达式对待。
F 每个模式作为一组固定字符串对待(以新行分隔),而不作为正则表达式。
b 在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量。
c 只显示匹配行的数量。
i 比较时不区分大小写。
h 在查找多个文件时,指示grep不要将文件名加入到输出之前。
l 显示首次匹配串所在的文件名并用换行符将其隔开。当在某文件中多次出现匹配串时,不重复显示此文件名。
n 在输出前加上匹配串所在行的行号(文件首行行号为1)。
v 只显示不包含匹配串的行。
x 只显示整行严格匹配的行。
e expression 指定检索使用的模式。用于防止以“-"开头的模式被解释为命令选项。
f expfile 从expfile文件中获取要搜索的模式,一个模式占一行。
对该组命令的使用还需注意以下方面∶
1.
以名称和文件属性查找。
name '字串’查找文件名匹配所给字串的所有文件,字串内可用通 配符*、?、
。lname '字串’查找文件名匹配所给字串的所有 符号链接文件,字串内可用通配符*、?、
。
-gid n查找属于ID号为n的用户组的所有文件。
-uid n查找属于ID号为n的用户的所有文件。
-group '字串’查找属于用户组名为所给字串的所有的文件。
-user '字串’查找属于用户名为所给字串的所有的文件。
-empty查找大小为0的目录或文件。
-path '字串’查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]。
-perm 权限查找具有指定权限的文件和目录,权限的表示可以如 711, 644。
-size n[bckw]查找指定文件大小的文件,n后面的字符表示单位,缺省为b,代表512字节的块。
-type x查找类型为x的文件,x为下列字符之一∶
b 块设备文件
c 字符设备文件
d 目录文件
p 命名管道(FIFO)
f 普通文件
l 符号链接文件(symbolic links)
s socket文件
-xtype x与-type基本相同,但只查找符号链接文件。
2.
以时间为条件查找
amin n 查找n分钟以前被访问过的所有文件。
atime n 查找n天以前被访问过的所有文件。
cmin n 查找n分钟以前文件状态被修改过的所有文件。
ctime n 查找n天以前文件状态被修改过的所有文件。
mmin n 查找n分钟以前文件内容被修改过的所有文件。
mtime n 查找n天以前文件内容被修改过的所有文件。
3.
可执行的操作
exec 命令名称 对符合条件的文件执行所给的Linux 命令,而不询问用户是否需要执行该命令。表示命令的参 数即为所找到的文件;命令的末尾必须以“ ;”结束。
ok 命令名称 对符合条件的文件执行所给的Linux 命令,与exec不同的是,它会询问用户是否需要执行该命令。
ls 详细列出所找到的所有文件。
fprintf 文件名将找到的文件名写入指定文件。
print 在标准输出设备上显示查找出的文件名。
printf 格式格式的写法请参考有关C语言的书。
例1∶查找当前目录中所有以main开头的文件,并显示这些文件的内容。
$ find . name 'main*' exec more {} \;
例2∶删除当前目录下所有一周之内没有被访问过的a .out或*.o文件。
$ find . \(name a.out o name '*.o'\)\
>; atime +7 exec rm {} \;
m 若给定文件已排好序,合并文件。
c 检查给定文件是否已排好序,如果它们没有都排好序,则打印一个出错信息,并以状态值1退出。
u 对排序后认为相同的行只留其中一行。
o 输出文件将排序输出写到输出文件中而不是标准输出,如果输 出文件是输入文件之一,sort先将该文件的内容写入一个临时文件, 然后再排序和写输出结果。
改变缺省排序规则的选项主要有∶
d 按字典顺序排序,比较时仅字母、数字、空格和制表符有意义。
f 将小写字母与大写字母同等对待。
I 忽略非打印字符。
M 作为月份比较∶“JAN""FEB""DEC"。
r 按逆序输出排序结果。
+posl pos2 指定一个或几个字段作为排序关键字,字段位置从posl开始,到pos2为止(包括posl,不包括pos2)。如不指定pos2,则关键字为从posl到行尾。字段和字符的位置从0开始。
b 在每行中寻找排序关键字时忽略前导的空白(空格和制表符)。
t separator指定字符separator作为字段分隔符。
uniq命令
c 显示输出中,在每行行首加上本行在文件中出现的次数。它可 取代u和d选项。
d 只显示重复行。
u 只显示文件中不重复的各行。
n 前n个字段与每个字段前的空白一起被忽略。一个字段是一个 非空格、非制表符的字符串,彼此由制表符和空格隔开(字段从0开始编号)。
+n 前n个字符被忽略,之前的字符被跳过(字符从0开始编号)。
f n与n相同,这里n是字段数。
s n与+n相同,这里n是字符数。
统计文件大小命令
wc命令
b 忽略行尾的空格,而字符串中的一个或多个空格符都视为相等。 如How are you与How are you被视为相同的字符串。
c 采用上下文输出格式(提供三行上下文)。
C n采用上下文输出格式(提供n行上下文)。
e 产生一个合法的ed脚本作为输出。
r 当file1和file2是目录时,递归作用到各文件和目录上。
文件的复制、删除和移动命令
cp命令
a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷 贝目录,其作用等于dpR选项的组合。
d 拷贝时保留链接。
f 删除已经存在的目标文件而不提示。
i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y 时目标文件将被覆盖,是交互式拷贝。
p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制 到新文件中。
r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子 目录和文件。此时目标文件必须为一个目录名。
l 不作拷贝,只是链接文件。
mv命令
用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另 一个目录中。该命令如同DOS下的ren和move的组合。
I 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时 系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。
f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示, 指定此选项后,i选项将不再起作用。
需要注意的是,mv与cp的结果不同。mv好象文件“搬家”,文件个数并末增 加,而cp对文件进行复制,文件个数增加了。
f 忽略不存在的文件,从不给出提示。
r 指示rm将参数中列出的全部目录和子目录均递归地删除。
i 进行交互式删除。
使用rm命令要格外小心。因为一旦一个文件被删除,它是不能被恢复的。例 如,用户在输入cp,mv或其他命令时,不小心误输入了rm命令,当用户按了 回车键并认识到自己的错误时,已经太晚了,文件已经没有了。为了防止此 种情况的发生,可以使用rm命令中的 i选项来确认要删除的每个文件。如果 用户输入y,文件将被删除。如果输入任何其他东西,文件将被保留。在下 一个例子中,用户要删除文件test和example。然后会被要求对每个文件进行 确认。用户最终决定删除example文件,保留test文件。
$ rm ii test example
Remove test ?n
Remove example ?y
$
文件链接命令
ln命令
a 显示指定目录下所有子目录与文件,包括隐藏文件。
A 显示指定目录下所有子目录与文件,包括隐藏文件。但不列出“." 和“.."。
b 对文件名中的不可显示字符用八进制逃逸字符显示。
c 按文件的修改时间排序。
C 分成多列显示各项。
d 如果参数是目录,只显示其名称而不显示其下的各文件。往往与l选 项一起使用,以得到目录的详细信息。
f 不排序。该选项将使lts选项失效,并使aU选项有效。
F 在目录名后面标记“/",可执行文件后面标记“*",符号链接后 面标记“@",管道(或FIFO)后面标记“|",socket文件后面标记“="。
i 在输出的第一列显示文件的i节点号。
l 以长格式来显示文件的详细信息。这个选项最常用。每行列出的信 息依次是∶
文件类型与权限 链接数 文件属主 文件属组 文件大小 建立或最近修改的时间 名字对于符号链接文件,显示的文件名之后有“”和引用文件路径名。
m 输出按字符流格式,文件跨页显示,以逗号分开。
n 输出格式与l选项相同,只不过在输出中文件属主和属组是用相应的 UID号和GID号来表示,而不是实际的名称。
o 与l选项相同,只是不显示拥有者信息。
p 在目录后面加一个“/"。
q 将文件名中的不可显示字符用“?"代替。
r 按字母逆序或最早优先的顺序显示输出结果。
R 递归式地显示指定目录的各个子目录中的文件。
s 给出每个目录项所用的块数,包括间接块。
t 显示时按修改时间(最近优先)而不是按名字排序。若文件修改时间 相同,则按字典顺序。修改时间取决于是否使用了c或u选顶。缺省的 时间标记是最后一次修改时间。
u 显示时按文件上次存取的时间(最近优先)而不是按名字排序。即将 -t的时间标记修改为最后一次访问的时间。
x 按行显示出各排序项的信息。
改变文件或目录的访问权限命令
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。文件或目录的访问权限分为只读,只写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作。可执行权限表示允许将该文件作为一个程序执行。文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改。用户也可根据需要把访问权限设置为需要的任何组合。有三种不同类型的用户可对文件或目录进行访问∶文件所有者,同组用户、其他用户。所有者一般是文件的创建者。所有者可以允许同组用户有权访问文件,还可以将文件的访问权限赋予系统中的其他用户。在这种情况下,系统中每一位用户都能访问该用户拥有的文件或目录。每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。当用ls -l命令显示文件或目录的详细信息时,最左边的一列为文件的访问权限。例如∶
r 可读。
w 可写。
x 可执行。
X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
s 在文件执行时把进程的属主或组ID置为该文件的文件属主。
t 保存程序的文本到交换设备上。
u 与文件属主拥有一样的权限。
g 与和文件属主同组的用户拥有一样的权限。
o 与其他用户拥有一样的权限。
c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
r 把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
t 列出档案文件的内容,查看已经备份了哪些文件。
u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
x 从档案文件中释放文件。
辅助选项∶
b 该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20 (20*512 bytes)。
f 使用档案文件或设备,这个选项通常是必选的。
k 保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。
m 在还原文件时,把所有文件的修改时间设定为现在。
M 创建多卷的档案文件,以便在几个磁盘中存放。
v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
w 每一步都要求确认。
z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。
gzip命令