liunx命令大全建议粘贴到word文档可方便查询
时间:2022-10-20 15:00:00
Liunx命令大全
文件管理
Cat (英语全拼:concatenate)该命令用于连接文件并打印到标准输出设备上
cat
[-AbeEnstTuv] [–help] [–version] fileName
-n 或 --number:由 1 开始编号所有输出的行数。
-b 或 --number-nonblank:和 -n 类似,只是空白行不编号。
-s 或 --squeeze-blank:遇到连续两行以上的空白行时,代替一行空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行结束处显示 $。
-T 或 --show-tabs: 将 TAB 字符显示为 ^I。
-A, --show-all:等价于 -vET。
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;
实例:
把 textfile1 加上行号后输入的文档内容 textfile2 本文档:
cat -n textfile1 > textfile2
把 textfile1 和 textfile2 将行号添加到文档内容中(空白行不加) textfile3 文档里:
cat -b textfile1 textfile2 >> textfile3
清空 /etc/test.txt 文档内容:
cat /dev/null > /etc/test.txt
Chattr
Linux chattr命令用于改变文件属性
该指令可以更改存储ext文件系统中的文件或目录属性有以下8种模式:
- a:使文件或目录仅供附加用途。
- b:不更新文件或目录的最终存取时间。
- c:压缩后存储文件或目录。
- d:将文件或目录排除在倾倒操作之外。
- i:文件或目录不得随意更改。
- s:保密删除文件或目录。
- S:即时更新文件或目录。
- u:防止意外删除。
语法
chattr [-RV][-v<版本编号>][ /-/=<属性>][文件或目录…]
参数
-R 递指定目录下的所有文件和子目录一并处理。
-v<版本编号> 设置文件或目录版本。
-V 显示执行指令的过程。
<属性> 本属性打开文件或目录。
-<属性> 关闭文件或目录的属性。
=<属性> 指定文件或目录的属性。
实例
用chattr修改命令防止系统中的关键文件:
chattr i /etc/resolv.conf
lsattr /etc/resolv.conf
以下属性将显示
----i-------- /etc/resolv.conf
适用于各种日志文件:
chattr a /var/log/messages
chgrp
Linux chgrp(英语全拼:change group)用于变更文件或目录的组的命令
与 chown 命令不同,chgrp 只要用户是该组的一员,就允许普通用户更改文件所属的组。
在 UNIX 在系统家庭中,文件或目录权限的控制由业主及其所属群体管理。您可以使用它 chgrp 指令变更文件和目录的组,设置方法可以是组名或组识别码。
语法
chgrp [-cfhRv][–help][–version][所属组][文件或目录]…] 或 chgrp [-cfhRv][–help][–reference=<参考文件或目录>][–version][文件或目录…]
参数说明
-c或–changes 效果类似"-v"参数,但只有更改部分的回报。
-f或–quiet或–silent 不要显示错误的信息。
-h或–no-dereference 只修改符号连接的文件,而不更改其他相关文件。
-R或–recursive 递指定目录下的所有文件和子目录一并处理。
-v或–verbose 显示执行指令的过程。
--help 在线帮助。
--reference=<参考文件或目录> 将指定文件或目录的所有组设置为与参考文件或目录相同的组。
--version 显示版本信息。
实例
例1:改变文件的组属性:
chgrp -v bin log2012.log
输出:
[root@localhost test]# ll
—xrw-r-- 1 root root 302108 11-13 06:03 log2012.log
[root@localhost test]# chgrp -v bin log2012.log
“log2012.log” 所属组已改为 bin
[root@localhost test]# ll
—xrw-r-- 1 root bin 302108 11-13 06:03 log2012.log
说明: 将log2012.log文件由root群组改为bin群组
例2:根据指定文件改变文件的组属性
chgrp --reference=log2012.log log2013.log
输出:
[root@localhost test]# ll
—xrw-r-- 1 root bin 302108 11-13 06:03 log2012.log
-rw-r–r-- 1 root root 61 11-13 06:03 log2013.log
[root@localhost test]# chgrp --reference=log2012.log log2013.log
[root@localhost test]# ll
—xrw-r-- 1 root bin 302108 11-13 06:03 log2012.log
-rw-r–r-- 1 root bin 61 11-13 06:03 log2013.log
说明: 改变文件log2013.log 群组属性使文件log2013.log组属性及参考文件log2012.log群组属性相同
Chmod Linux chmod(英语全拼:change mode)命令是控制用户对文件权限的命令
Linux/Unix 文件调用权分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)
chmod [-cfvR] [–help] [–version] mode file…
参数说明
mode : 权限设置字串,格式如下 :
[ugoa…][[±=][rwxX]…][,…]
其中:
u 表示该文件的拥有者,g 该文件的所有者属于同一组(group)者,o 表示其他人,a 说明这三者都是。
- 表示增加权限,- 表示取消权限,= 表示唯一设定权限。
r 表示可读取,w 表示可以写入,x 表示可执行,X 这意味着只有当文件是个子目录或文件设置为可执行时。
其他参数说明:
-c : 如果文件的权限确实改变了,则显示其改变
-f : 如果文件权限不能更改,请勿显示错误的信息
-v : 显示权限变更的详细信息
-R : 变更当前目录下的所有文件的权限与子目录相同(即逐一递归)
–help : 显示辅助说明
–version : 显示版本
实例
将文件 file1.txt 每个人都可以读 :
chmod ugo r file1.txt
将文件 file1.txt 每个人都可以读 :
chmod a r file1.txt
将文件 file1.txt 与 file2.txt 作为文件的所有者,可以写入与其属于同一个群体的人,但其他人不能写入 :
chmod ug w,o-w file1.txt file2.txt
将 ex1.py 设置为只能由文件所有者执行 :
chmod u x ex1.py
任何人都可以阅读目录下的所有文件和子目录 :
chmod -R a r *
此外chmod也可以用数字来表示权限如 :
chmod 777 file
语法为:
chmod abc file
其中a,b,c每个数字分别表示User、Group、及Other的权限。
r=4,w=2,x=1
? 若要 rwx 属性则 4 2 1=7;
? 若要 rw- 属性则 4 2=6;
? 若要 r-x 属性则 4 1=5。
chmod a=rwx file
和
chmod 777 file
效果相同
chmod ug=rwx,o=x file
和
chmod 771 file
效果相同
若用 chmod 4755 filename 这个程序可以有 root 的权限。
Chown Linux chown(英文全拼:change owner)设置文件所有者和文件关联组的命令。
Linux/Unix 是多人多工操作系统,所有文件都有所有者。 chown 将指定文件的所有者改为指定的用户或组,用户可以是用户名或用户 ID,组可以是组名或者组 ID,支持通配符的文件列表是一个需要改变权限的文件列表。 。
chown 需要超级用户 root 执行此命令的权限。
只有超级用户和属于组的文件所有者才能更改文件关联组。如果需要设置关联组,可能需要使用非超级用户chgrp 命令。
使用权限 : root
语法
chown [-cfhvR] [–help] [–version] user[:group] file…
参数 :
• user : 新的文件拥有者的使用者 ID
• group : 新的文件拥有者的使用者组(group)
• -c : 显示更改的部分的信息
• -f : 忽略错误信息
• -h :修复符号链接
• -v : 显示详细的处理信息
• -R : 处理指定目录以及其子目录下的所有文件
• --help : 显示辅助说明
• --version : 显示版本
实例
把 /var/run/httpd.pid 的所有者设置 root:
chown root /var/run/httpd.pid
将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :
chown runoob:runoobgroup file1.txt
将当前前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:
chown -R runoob:runoobgroup *
把 /home/runoob 的关联组设置为 512 (关联组ID),不改变所有者:
chown :512 /home/runoob
cksum Linux cksum命令用于检查文件的CRC是否正确。确保文件从一个系统传输到另一个系统的过程中不被损坏。
CRC是一种排错检查方式,该校验法的标准由CCITT所指定,至少可检测到99.998%的已知错误。
指定文件交由指令"cksum"进行校验后,该指令会返回校验结果供用户核对文件是否正确无误。若不指定任何文件名称或是所给予的文件名为"-",则指令"cksum"会从标准输入设备中读取数据
语法
cksum [–help][–version][文件…]
参数:
• --help:在线帮助。
• --version:显示版本信息。
• 文件…:需要进行检查的文件路径
实例
使用指令"cksum"计算文件"testfile1"的完整性,输入如下命令:
$ cksum testfile1
以上命令执行后,将输出校验码等相关的信息,具体输出信息如下所示:
1263453430 78 testfile1 //输出信息
上面的输出信息中,"1263453430"表示校验码,"78"表示字节数。
注意:如果文件中有任何字符被修改,都将改变计算后CRC校验码的值。
Cmp Linux cmp命令用于比较两个文件是否有差异。
当相互比较的两个文件完全一样时,则该指令不会显示任何信息。若发现有所差异,预设会标示出第一个不同之处的字符和列数编号。若不指定任何文件名称或是所给予的文件名为"-",则cmp指令会从标准输入设备读取数据。
语法
cmp [-clsv][-i <字符数目>][–help][第一个文件][第二个文件]
参数:
• -c或–print-chars 除了标明差异处的十进制字码之外,一并显示该字符所对应字符。
• -i<字符数目>或–ignore-initial=<字符数目> 指定一个数目。
• -l或–verbose 标示出所有不一样的地方。
• -s或–quiet或–silent 不显示错误信息。
• -v或–version 显示版本信息。
• --help 在线帮助。
实例
要确定两个文件是否相同,请输入:
cmp prog.o.bak prog.o
这比较 prog.o.bak 和 prog.o。如果文件相同,则不显示消息。如果文件不同,则显示第一个不同的位置;例如:
prog.o.bak prog.o differ: char 4, line 1
如果显示消息 cmp: EOF on prog.o.bak,则 prog.o 的第一部分与 prog.o.bak 相同,但在 prog.o 中还有其他数据。
Diff
Linux diff命令用于比较文件的差异
diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录
语法
diff [-abBcdefHilnNpPqrstTuvwy][-<行数>][-C <行数>][-D <巨集名称>][-I <字符或字符串>][-S <文件>][-W <宽度>][-x <文件或目录>][-X <文件>][–help][–left-column][–suppress-common-line][文件或目录1][文件或目录2]
参数:
• -<行数> 指定要显示多少行的文本。此参数必须与-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:比较两个文件
[root@localhost test3]# diff log2014.log log2013.log
3c3
< 2014-03
2013-03
8c8
< 2013-07
2013-08
11,12d10
< 2013-11
< 2013-12
上面的"3c3"和"8c8"表示log2014.log和log20143log文件在3行和第8行内容有所不同;"11,12d10"表示第一个文件比第二个文件多了第11和12行。
实例2:并排格式输出
[root@localhost test3]# diff log2014.log log2013.log -y -W 50
2013-01 2013-01
2013-02 2013-02
2014-03 | 2013-03
2013-04 2013-04
2013-05 2013-05
2013-06 2013-06
2013-07 2013-07
2013-07 | 2013-08
2013-09 2013-09
2013-10 2013-10
2013-11 <
2013-12 <
[root@localhost test3]# diff log2013.log log2014.log -y -W 50
2013-01 2013-01
2013-02 2013-02
2013-03 | 2014-03
2013-04 2013-04
2013-05 2013-05
2013-06 2013-06
2013-07 2013-07
2013-08 | 2013-07
2013-09 2013-09
2013-10 2013-10
2013-11
2013-12
说明:
• "|"表示前后2个文件内容有不同
• "<"表示后面文件比前面文件少了1行内容
• ">“表示后面文件比前面文件多了1行内容
Diffstat Linux diffstat命令根据diff的比较结果,显示统计数字。
diffstat读取diff的输出结果,然后统计各文件的插入,删除,修改等差异计量。
语法
diff [-wV][-n <文件名长度>][-p <文件名长度>]
参数:
• -n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
• -p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。
• -w 指定输出时栏位的宽度。
• -V 显示版本信息。
实例
用户也可以直接使用”|"将diff指令所输出的结果直接送给diffstat指令进行统计结果的显示。
使用该指令时,若所比较的文件或者子目录不在当前目录下,则应该使用其完整路径。
将目录"test1"和"test2"下的同名文件"testf.txt"使用diff指令进行比较。然后使用diffstat指令对结果进行统计显示,输入如下命令:
$ diff test1 test2 | diffstat #进行比较结果的统计显示
注意:使用这条命令可以非常方便地实现统计显示的功能。
对于查看文件中的内容,用户可以通过指令"cat"进行查看即可,具体操作如下:
$ cat test1/testf.txt #查看test1/testf的内容
abc
def
ghi
jkl
mno
pqr
stu
vws
$ cat test2/testf.txt #查看test2/testf的内容
abc
def
ghi
jkl
mno
从上面的文件内容显示,可以看到两个文件内容的差别。现在来运行刚才的命令,对文件比较的结果进行统计显示,结果如下:
testfile | 2 ± #统计信息输出显示
1 file changed, 1 insertion(+), 1 deletion(-)
File Linux file命令用于辨识文件类型
通过file指令,我们得以辨识该文件的类型。
语法
file [-bcLvz][-f <名称文件>][-m <魔法数字文件>…][文件或目录…]
参数:
• -b 列出辨识结果时,不显示文件名称。
• -c 详细显示指令执行过程,便于排错或分析程序执行的情形。
• -f<名称文件> 指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。
• -L 直接显示符号连接所指向的文件的类别。
• -m<魔法数字文件> 指定魔法数字文件。
• -v 显示版本信息。
• -z 尝试去解读压缩文件的内容。
• [文件或目录…] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。
实例
显示文件类型:
[root@localhost ~]# file install.log
install.log: UTF-8 Unicode text
[root@localhost ~]# file -b install.log <== 不显示文件名称
UTF-8 Unicode text
[root@localhost ~]# file -i install.log <== 显示MIME类别。
install.log: text/plain; charset=utf-8
[root@localhost ~]# file -b -i install.log
text/plain; charset=utf-8
显示符号链接的文件类型
[root@localhost ~]# ls -l /var/mail
lrwxrwxrwx 1 root root 10 08-13 00:11 /var/mail -> spool/mail
[root@localhost ~]# file /var/mail
/var/mail: symbolic link to `spool/mail’
[root@localhost ~]# file -L /var/mail
/var/mail: directory
[root@localhost ~]# file /var/spool/mail
/var/spool/mail: directory
[root@localhost ~]# file -L /var/spool/mail
/var/spool/mail: directory
Find Linux find 命令用来在指定目录下查找文件。
任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示
语法
find path -option [ -print ] [ -exec -ok command ] {} ;
参数说明 :
find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。
expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。
-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
-amin n : 在过去 n 分钟内被读取过
-anewer file : 比文件 file 更晚被读取过的文件
-atime n : 在过去n天内被读取过的文件
-cmin n : 在过去 n 分钟内被修改过
-cnewer file :比文件 file 更新的文件
-ctime n : 在过去n天内被修改过的文件
-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-type c : 文件类型是 c 的文件。
d: 目录
c: 字型装置文件
b: 区块装置文件
p: 具名贮列
f: 一般文件
l: 符号连结
s: socket
-pid n : process id 是 n 的文件
你可以使用 ( ) 将运算式分隔,并使用下列运算。
exp1 -and exp2
! expr
-not expr
exp1 -or exp2
exp1, exp2
实例
将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:
find . -name “*.c”
将目前目录其其下子目录中所有一般文件列出
find . -type f
将当前目录及其子目录下所有最近 20 天内更新过的文件列出:
find . -ctime -20
查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:
find /var/log -type f -mtime +7 -ok rm {} ;
查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
find . -type f -perm 644 -exec ls -l {} ;
查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:
find / -type f -size 0 -exec ls -l {} ;
Git Linux git命令是文字模式下的文件管理员
git是用来管理文件的程序,它十分类似DOS下的Norton Commander,具有互动式操作界面。它的操作方法和Norton Commander几乎一样。
语法
git
操作说明:
• F1 :执行info指令,查询指令相关信息,会要求您输入欲查询的名称。
• F2 :执行cat指令,列出文件内容。
• F3 :执行gitview指令,观看文件内容。
• F4 :执行vi指令,编辑文件内容。
• F5 :执行cp指令,复制文件或目录,会要求您输入目标文件或目录。
• F6 :执行mv指令,移动文件或目录,或是更改其名称,会要求您输入目标文件或目录。
• F7 :执行mkdir指令,建立目录。
• F8 :执行rm指令,删除文件或目录。
• F9 :执行make指令,批处理执行指令或编译程序时,会要求您输入相关命令。
• F10 :离开git文件管理员。
Gitview Linux gitview命令用于观看文件的内容,它会同时显示十六进制和ASCII格式的字码
语法
gitview [-bchilv][文件]
参数:
• -b 单色模式,不使用ANSI控制码显示彩色。
• -c 彩色模式,使用ANSI控制码显示色彩。
• -h 在线帮助。
• -i 显示存放gitview程序的所在位置。
• -l 不使用先前的显示字符。
• -v 显示版本信息。
实例
使用指令gitview以彩色模式观看文件"/home/ rootlocal/demo.txt"中的内容,输入如下命令:
$ gitview -c /home/rootlocal/demo.txt #使用gitview指令观看指定文件内容
Indent Linux indent命令用于调整C原始代码文件的格式。
indent可辨识C的原始代码文件,并加以格式化,以方便程序设计师阅读
语法
indent [参数][源文件] 或 indent [参数][源文件][-o 目标文件]
参数:
• -bad或–blank-lines-after-declarations 在声明区段或加上空白行。
• -bap或–blank-lines-after-procedures 在程序或加上空白行。
• -bbb或–blank-lines-after-block-comments 在注释区段后加上空白行。
• -bc或–blank-lines-after-commas 在声明区段中,若出现逗号即换行。
• -bl或–braces-after-if-line if(或是else,for等等)与后面执行区段的"{“不同行,且”}“自成一行。
• -bli<缩排格数>或–brace-indent<缩排格数> 设置{ }缩排的格数。
• -br或–braces-on-if-line if(或是else,for等等)与后面执行跛段的”{“不同行,且”}“自成一行。
• -bs或–blank-before-sizeof 在sizeof之后空一格。
• -c<栏数>或–comment-indentation<栏数> 将注释置于程序码右侧指定的栏位。
• -cd<栏数>或–declaration-comment-column<栏数> 将注释置于声明右侧指定的栏位。
• -cdb或–comment-delimiters-on-blank-lines 注释符号自成一行。
• -ce或–cuddle-else 将else置于”}"(if执行区段的结尾)之后。
• -ci<缩排格数>或–continuation-indentation<缩排格数> 叙述过长而换行时,指定换行后缩排的格数。
• -cli<缩排格数>或–case-indentation-<缩排格数> 使用case时,switch缩排的格数。
• -cp<栏数>或-else-endif-column<栏数> 将注释置于else与elseif叙述右侧定的栏位。
• -cs或–space-after-cast 在cast之后空一格。
• -d<缩排格数>或-line-comments-indentation<缩排格数> 针对不是放在程序码右侧的注释,设置其缩排格数。
• -di<栏数>或–declaration-indentation<栏数> 将声明区段的变量置于指定的栏位。
• -fc1或–format-first-column-comments 针对放在每行最前端的注释,设置其格式。
• -fca或–format-all-comments 设置所有注释的格式。
• -gnu或–gnu-style 指定使用GNU的格式,此为预设值。
• -i<格数>或–indent-level<格数> 设置缩排的格数。
• -ip<格数>或–parameter-indentation<格数> 设置参数的缩排格数。
• -kr或–k-and-r-style 指定使用Kernighan&Ritchie的格式。
• -lp或–continue-at-parentheses 叙述过长而换行,且叙述中包含了括弧时,将括弧中的每行起始栏位内容垂直对其排列。
• -nbad或–no-blank-lines-after-declarations 在声明区段后不要加上空白行。
• -nbap或–no-blank-lines-after-procedures 在程序后不要加上空白行。
• -nbbb或–no-blank-lines-after-block-comments 在注释区段后不要加上空白行。
• -nbc或–no-blank-lines-after-commas 在声明区段中,即使出现逗号,仍旧不要换行。
• -ncdb或–no-comment-delimiters-on-blank-lines 注释符号不要自成一行。
• -nce或–dont-cuddle-else 不要将else置于"}"之后。
• -ncs或–no-space-after-casts 不要在cast之后空一格。
• -nfc1或–dont-format-first-column-comments 不要格式化放在每行最前端的注释。
• -nfca或–dont-format-comments 不要格式化任何的注释。
• -nip或–no-parameter-indentation 参数不要缩排。
• -nlp或–dont-line-up-parentheses 叙述过长而换行,且叙述中包含了括弧时,不用将括弧中的每行起始栏位垂直对其排列。
• -npcs或–no-space-after-function-call-names 在调用的函数名称之后,不要加上空格。
• -npro或–ignore-profile 不要读取indent的配置文件.indent.pro。
• -npsl或–dont-break-procedure-type 程序类型与程序名称放在同一行。
• -nsc或–dont-star-comments 注解左侧不要加上星号()。
• -nsob或–leave-optional-semicolon 不用处理多余的空白行。
• -nss或–dont-space-special-semicolon 若for或while区段仅有一行时,在分号前不加上空格。
• -nv或–no-verbosity 不显示详细的信息。
• -orig或–original 使用Berkeley的格式。
• -pcs或–space-after-procedure-calls 在调用的函数名称与"{"之间加上空格。
• -psl或–procnames-start-lines 程序类型置于程序名称的前一行。
• -sc或–start-left-side-of-comments 在每行注释左侧加上星号()。
• -sob或–swallow-optional-blank-lines 删除多余的空白行。
• -ss或–space-special-semicolon 若for或swile区段今有一行时,在分号前加上空格。
• -st或–standard-output 将结果显示在标准输出设备。
• -T 数据类型名称缩排。
• -ts<格数>或–tab-size<格数> 设置tab的长度。
• -v或–verbose 执行时显示详细的信息。
• -version 显示版本信息。
Indent代码格式化说明
使用的indent参数 值 含义
–blank-lines-after-declarations bad 变量声明后加空行
–blank-lines-after-procedures bap 函数结束后加空行
–blank-lines-before-block-comments bbb 块注释前加空行
–break-before-boolean-operator bbo 较长的行,在逻辑运算符前分行
–blank-lines-after-commas nbc 变量声明中,逗号分隔的变量不分行
–braces-after-if-line bl “if"和”{"分做两行
–brace-indent 0 bli0 "{"不继续缩进
–braces-after-struct-decl-line bls 定义结构,“struct"和”{"分行
–comment-indentationn c33 语句后注释开始于行33
–declaration-comment-columnn cd33 变量声明后注释开始于行33
–comment-delimiters-on-blank-lines ncdb 不将单行注释变为块注释
–cuddle-do-while ncdw “do — while"的"while"和其前面的”}“另起一行
–cuddle-else nce “else"和其前面的”}“另起一行
–case-indentation 0 cli0 switch中的case语句所进0个空格
–else-endif-columnn cp33 #else, #endif后面的注释开始于行33
–space-after-cast cs 在类型转换后面加空格
–line-comments-indentation n d0 单行注释(不从1列开始的),不向左缩进
–break-function-decl-args nbfda 关闭:函数的参数一个一行
–declaration-indentationn di2 变量声明,变量开始于2行,即不必对齐
–format-first-column-comments nfc1 不格式化起于第一行的注释
–format-all-comments nfca 不开启全部格式化注释的开关
–honour-newlines hnl Prefer to break long lines at the position of newlines in the input.
–indent-leveln i4 设置缩进多少字符,如果为tab的整数倍,用tab来缩进,否则用空格填充。
–parameter-indentationn ip5 旧风格的函数定义中参数说明缩进5个空格
–line-length 75 l75 非注释行最长75
–continue-at-parentheses lp 续行从上一行出现的括号开始
–space-after-procedure-calls pcs 函数和”(“之间插入一个空格
–space-after-parentheses nprs 在”(“后”)“前不插入空格
–procnames-start-lines psl 将函数名和返回类型放在两行定义
–space-after-for saf for后面有空格
–space-after-if sai if后面有空格
–space-after-while saw while后面有空格
–start-left-side-of-comments nsc 不在生成的块注释中加*
–swallow-optional-blank-lines nsob 不去掉可添加的空行
–space-special-semicolon nss 一行的for或while语句,在”;“前不加空。
–tab-size ts4 一个tab为4个空格(要能整除”-in”)
–use-tabs ut 使用tab来缩进
Cut Linux cut命令用于显示每行从开头算起 num1 到 num2 的文字。
语法
cut [-bn] [file]
cut [-c] [file]
cut [-df] [file]
使用说明:
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
参数:
• -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
• -c :以字符为单位进行分割。
• -d :自定义分隔符,默认为制表符。
• -f :与-d一起使用,指定显示哪个区域。
• -n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的
范围之内,该字符将被写出;否则,该字符将被排除
实例
当你执行who命令时,会输出类似如下的内容:
$ who
rocrocket :0 2009-01-08 11:07
rocrocket pts/0 2009-01-08 11:23 (:0.0)
rocrocket pts/1 2009-01-08 14:15 (:0.0)
如果我们想提取每一行的第3个字节,就这样:
$ who|cut -b 3
c
c
ln Linux ln(英文全拼:link files)命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
语法
ln [参数][源文件或目录][目标文件或目录]
其中参数的格式为
[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]
[–help] [–version] [–]
命令功能 :
Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。
软链接:
• 1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
• 2.软链接可以 跨文件系统 ,硬链接不可以
• 3.软链接可以对一个不存在的文件名进行链接
• 4.软链接可以对目录进行链接
硬链接:
• 1.硬链接,以文件副本的形式存在。但不占用实际空间。
• 2.不允许给目录创建硬链接
• 3.硬链接只有在同一个文件系统中才能创建
命令参数
必要参数:
• -b 删除,覆盖以前建立的链接
• -d 允许超级用户制作目录的硬链接
• -f 强制执行
• -i 交互模式,文件存在则提示用户是否覆盖
• -n 把符号链接视为一般目录
• -s 软链接(符号链接)
• -v 显示详细的处理过程
选择参数:
• -S "-S<字尾备份字符串> "或 “–suffix=<字尾备份字符串>”
• -V “-V<备份方式>“或”–version-control=<备份方式>”
• --help 显示帮助信息
• --version 显示版本信息
实例
给文件创建软链接,为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效:
ln -s log2013.log link2013
输出:
[root@localhost test]# ll
-rw-r–r-- 1 root bin 61 11-13 06:03 log2013.log
[root@localhost test]# ln -s log2013.log link2013
[root@localhost test]# ll
lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log
-rw-r–r-- 1 root bin 61 11-13 06:03 log2013.log
给文件创建硬链接,为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同
ln log2013.log ln2013
输出:
[root@localhost test]# ll
lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log
-rw-r–r-- 1 root bin 61 11-13 06:03 log2013.log
[root@localhost test]# ln log2013.log ln2013
[root@localhost test]# ll
lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log
-rw-r–r-- 2 root bin 61 11-13 06:03 ln2013
-rw-r–r-- 2 root bin 61 11-13 06:03 log2013.log
Less less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件
语法
less [参数] 文件
参数说明:
• -b <缓冲区大小> 设置缓冲区的大小
• -e 当文件显示结束后,自动离开
• -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
• -g 只标志最后搜索的关键词
• -i 忽略搜索时的大小写
• -m 显示类似more命令的百分比
• -N 显示每行的行号
• -o <文件名> 将less 输出的内容在指定文件中保存起来
• -Q 不使用警告音
• -s 显示连续空行为一行
• -S 行过长时间将超出部分舍弃
• -x <数字> 将"tab"键显示为规定的数字空格
• /字符串:向下搜索"字符串"的功能
• ?字符串:向上搜索"字符串"的功能
• n:重复前一个搜索(与 / 或 ? 有关)
• N:反向重复前一个搜索(与 / 或 ? 有关)
• b 向上翻一页
• d 向后翻半页
• h 显示帮助界面
• Q 退出less 命令
• u 向前滚动半页
• y 向前滚动一行
• 空格键 滚动一页
• 回车键 滚动一行
• [pagedown]: 向下翻动一页
• [pageup]: 向上翻动一页
实例
1、查看文件
less log2013.log
2、ps查看进程信息并通过less分页显示
ps -ef |less
3、查看命令历史使用记录并通过less分页显示
[root@localhost test]# history | less
22 scp -r tomcat6.0.32 root@192.168.120.203:/opt/soft
23 cd …
24 scp -r web root@192.168.120.203:/opt/
25 cd soft
26 ls
……省略……
4、浏览多个文件
less log2013.log log2014.log
说明:
输入 :n后,切换到 log2014.log
输入 :p 后,切换到log2013.log
附加备注
1.全屏导航
• ctrl + F - 向前移动一屏
• ctrl + B - 向后移动一屏
• ctrl + D - 向前移动半屏
• ctrl + U - 向后移动半屏
2.单行导航
• j - 向前移动一行
• k - 向后移动一行
3.其它导航
• G - 移动到最后一行
• g - 移动到第一行
• q / ZZ - 退出 less 命令
4.其它有用的命令
• v - 使用配置的编辑器编辑当前文件
• h - 显示 less 的帮助文档
• &pattern - 仅显示匹配模式的行,而不是整个文件
5.标记导航
当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:
• ma - 使用 a 标记文本的当前位置
• 'a - 导航到标记 a 处
Locate 一般情况我们需要出入 locate your_file_name查找指定文件
Linux locate命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。
语法
locate [-d ][–help][–version][范本样式…]
参数:
• -b, --basename – 仅匹配路径名的基本名称
• -c, --count – 只输出找到的数量
• -d, --database DBPATH – 使用 DBPATH 指定的数据库,而不是默认数据库 /var/lib/mlocate/mlocate.db
• -e, --existing – 仅打印当前现有文件的条目
• -1 – 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的 权限资料。
• -0, --null – 在输出上带有NUL的单独条目
• -S, --statistics – 不搜索条目,打印有关每个数据库的统计信息
• -q – 安静模式,不会显示任何错误讯息。
• -P, --nofollow, -H – 检查文件存在时不要遵循尾随的符号链接
• -l, --limit, -n LIMIT – 将输出(或计数)限制为LIMIT个条目
• -n – 至多显示 n个输出。
• -m, --mmap – 被忽略,为了向后兼容
• -r, --regexp REGEXP – 使用基本正则表达式
• --regex – 使用扩展正则表达式
• -q, --quiet – 安静模式,不会显示任何错误讯息
• -s, --stdio – 被忽略,为了向后兼容
• -o – 指定资料库存的名称。
• -h, --help – 显示帮助
• -i, --ignore-case – 忽略大小写
• -V, --version – 显示版本信息
实例
查找 passwd 文件,输入以下命令:
locate passwd
搜索 etc 目录下所有以 sh 开头的文件 :
locate /etc/sh
忽略大小写搜索当前用户目录下所有以 r 开头的文件 :
locate -i ~/r
附加说明
locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。
locate 的速度比 find 快,它并不是真的查找,而是查数据库,一般文件数据库在 /var/lib/slocate/slocate.db 中,所以 locate 的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:
updatedb
默认情况下 updatedb 每天执行一次。
Lsattr Linux lsattr命令用于显示文件属性。
用chattr执行改变文件或目录的属性,可执行lsattr指令查询其属性。
语法
lsattr [-adlRvV][文件或目录…]
参数:
• -a 显示所有文件和目录,包括以".“为名称开头字符的额外内建,现行目录”.“与上层目录”…"。
• -d 显示,目录名称,而非其内容。
• -l 此参数目前没有任何作用。
• -R 递归处理,将指定目录下的所有文件及子目录一并处理。
• -v 显示文件或目录版本。
• -V 显示版本信息。
实例
1、用chattr命令防止系统中某个关键文件被修改:
chattr +i /etc/resolv.conf
然后用mv /etc/resolv.conf等命令操作于该文件,都是得到Operation not permitted 的结果。
vim编辑该文件时会提示W10: Warning: Changing a readonly file错误。要想修改此文件就要把i属性去掉:
chattr -i /etc/resolv.conf
使用 lsattr 命令来显示文件属性:
lsattr /etc/resolv.conf
输出结果为:
----i-------- /etc/resolv.conf
2、让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
chattr +a /var/log/messages
Mattrib Linux mattrib命令用来变更或显示MS-DOS文件的属性。
mattrib为mtools工具指令,模拟MS-DOS的attrib指令,可变更MS-DOS文件的属性。
语法
mattrib [-a|+a] [-h|+h] [-r|+r] [-s|+s] [-/] [-X] msdosfile [ msdosfiles … ]
参数:
• -a/+a 除去/设定备份属性。
• -h/+h 除去/设定隐藏属性。
• -r/+r 除去/设定唯读属性。
• -s/+s 除去/设定系统属性。
• -/ 递回的处理包含所有子目录下的档案。
• -X 以较短的格式输出结果。
实例
列出 A 槽 MSDOS 格式磁片上所有文件的属性。
mattrib a:
除去 A 槽磁片上 msdos.sys 档案的隐藏、系统与唯读属性。
mattrib -h -s -r a:msdos.sys
除去 A 槽磁片上包含子目录下所有档案的唯读属性。
mattrib -r -/ a:.
mc Linux mc命令用于提供一个菜单式的文件管理程序。
执行mc之后,将会看到菜单式的文件管理程序,共分成4个部分。
mc [-abcdfhkPstuUVx][-C <参数>][-l <文件>][-v <文件>][目录]
参 数:
• -a 当mc程序画线时不用绘图字符画线。
• -b 使用单色模式显示。
• -c 使用彩色模式显示。
• -C<参数> 指定显示的颜色。
• -d 不使用鼠标。
• -f 显示mc函数库所在的目录。
• -h 显示帮助。
• -k 重设softkeys成预设置。
• -l<文件> 在指定文件中保存ftpfs对话窗的内容。
• -P 程序结束时,列出最后的工作目录。
• -s 用慢速的终端机模式显示,在这模式下将减少大量的绘图及文字显示。
• -t 使用TEMPCAP变量设置终端机,而不使用预设置。
• -u 不用目前的shell程序。
• -U 使用目前的shell程序。
• -v<文件> 使用mc的内部编辑器来显示指定的文件。
• -V 显示版本信息。
• -x 指定以xterm模式显示。
Linux MC 相关操作
命令按键 描 述
F9 or Esc+9 激活菜单栏
Tab 在两个窗口间移动
F10 or Esc+0 退出MC
Control-Enter or Alt-Enter 可以将文件名拷贝到命令行
F1 or Esc+1 打开帮助页面
虽然MC很好用,不过我还是建议大家使用命令行工具!
Mdel Linux mdel命令用来删除 MSDOS 格式的档案
在删除只读之前会有提示信息产生。
语法
mdel [-v] msdosfile [ msdosfiles … ]
参数:
• -v 显示更多的讯息。
实例
将 A 槽磁片根目录中的 autoexec.bat 删除。
mdel a:autoexec.bat .
mdir Linux mdir命令用于显示MS-DOS目录。
mdir为mtools工具指令,模拟MS-DOS的dir指令,可显示MS-DOS文件系统中的目录内容
语法
mdir [-afwx/][目录]
参数:
• -/ 显示目录下所有子目录与文件。
• -a 显示隐藏文件。
• -f 不显示磁盘所剩余的可用空间。
• -w 仅显示目录或文件名称,并以横排方式呈现,以便一次能显示较多的目录或文件。
• -X 仅显示目录下所有子目录与文件的完整路径,不显示其他信息。
实例
显示a盘中的内容
$ mdir -/ a:*
以上命令执行后,mdir将显示指定盘"a:"中的所有子目录及其中的文件信息,如下所示:
Volume in drive A has no label #加载信息
Volume Serial Number is 13D2~055C
Directory for A:\ #以下为目录信息
./TEST
#显示格式为文件名,目录大小,修改时间
AUTORUN.INF 265 2011-08-23 16:53
AUTORUN.BAT 43 2011-08-23 16:56
3 files 308 bytes #统计总大小
724 325 bytes free #剩余空间
More 类似于cat
Linux more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h
语法
more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames…]
参数:
• -num 一次显示的行数
• -d 提示使用者,在画面下方显示 [Press space to continue, ‘q’ to quit.] ,如果使用者按错键,则会显示 [Press ‘h’ for instructions.] 而不是 ‘哔’ 声
• -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
• -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
• -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
• -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
• -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
• -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
• +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
• +num 从第 num 行开始显示
• fileNames 欲显示内容的文档,可为复数个数
实例
逐页显示 testfile 文档内容,如有连续两行以上空白行则以一行空白行显示。
more -s testfile
从第 20 行开始显示 testfile 之文档内容。
more +20 testfile
常用操作命令
• Enter 向下n行,需要定义。默认为1行
• Ctrl+F 向下滚动一屏
• 空格键 向下滚动一屏
• Ctrl+B 返回上一屏
• = 输出当前行的行号
• :f 输出文件名和当前行的行号
• V 调用vi编辑器
• !命令 调用Shell,并执行命令
• q 退出more
mmove Linux mmove命令用于在MS-DOS文件系统中,移动文件或目录,或更改名称。
mmove为mtools工具命令,模拟MS-DOS的move命令,可在MS-DOS文件系统中移动现有的文件或目录,或是更改现有文件或目录的名称。
语法
mmove [源文件或目录…][目标文件或目录]
参数说明:
• [源文件或目录…]: 执行操作的源文件或目录路径
• [目标文件或目录]: 执行操作后的目标文件或目录路径
实例
使用指令mmove将文件"autorun.bat"移动到目录"test"中,输入如下命令:
$ mmove autorun.bat test #移动文件到目录test中
以上命令执行以后,指令mmove会将文件"autorun.bat"移动到指定目录"test"中。
注意:用户可以使用mdir指令查看移动后的文件或目录信息。mtools
Mv Linux mv(英文全拼:move file)命令用来为文件或目录改名、或将文件或目录移入其它位置。
语法
mv [options] source dest
mv [options] source… directory
参数说明:
• -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
• -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
• -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
• -n: 不要覆盖任何已存在的文件或目录。
• -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
mv 参数设置与运行结果
命令格式 运行结果
mv source_file(文件) dest_file(文件) 将源文件名 source_file 改为目标文件名 dest_file
mv source_file(文件) dest_directory(目录) 将文件 source_file 移动到目标目录 dest_directory 中
mv source_directory(目录) dest_directory(目录) 目录名 dest_directory 已存在,将 source_directory 移动到目录名 dest_directory 中;目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory
mv source_directory(目录) dest_file(文件) 出错
实例
将文件 aaa 改名为 bbb :
mv aaa bbb
将 info 目录放入 logs 目录中。注意,如果 logs 目录不存在,则该命令将 info 改名为 logs。
mv info/ logs
再如将 /usr/runoob 下的所有文件和目录移到当前目录下,命令行为:
$ mv /usr/runoob/* .
Od Linux od命令用于输出文件内容。
od指令会读取所给予的文件的内容,并将其内容以八进制字码呈现出来。
语法
od [-abcdfhilovx][-A <字码基数>][-j <字符数目>][-N <字符数目>][-s <字符串字符数>][-t <输出格式>][-w <每列字符数>][–help][–version][文件…]
参数:
• -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 显示版本信息。
实例
创建 tmp 文件:
$ echo abcdef g > tmp
$ cat tmp
abcdef g
使用 od 命令:
$ od -b tmp
0000000 141 142 143 144 145 146 040 147 012
0000011
使用单字节八进制解释进行输出,注意左侧的默认地址格式为八字节:
$ od -c tmp
0000000 a b c d e f g \n
0000011
使用ASCII码进行输出,注意其中包括转义字符
$ od -t d1 tmp
0000000 97 98 99 100 101 102 32 103 10
0000011
使用单字节十进制进行解释
$ od -A d -c tmp
0000000 a b c d e f g \n
0000009
Paste Linux paste 命令用于合并文件的列
paste 指令会把每个文件以列对列的方式,一列列地加以合并。
语法
paste [-s][-d <间隔字符>][–help][–version][文件…]
参数:
• -d<间隔字符>或–delimiters=<间隔字符> 用指定的间隔字符取代跳格字符。
• -s或–serial 串列进行而非平行处理。
• --help 在线帮助。
• --version 显示帮助信息。
• [文件…] 指定操作的文件路径
实例
使用paste指令将文件"file"、“testfile”、“testfile1"进行合并,输入如下命令:
paste file testfile testfile1 #合并指定文件的内容
但是,在执行以上命令之前,首先使用"cat"指令对3个文件内容进行查看,显示如下所示:
$ cat file #file文件的内容
xiongdan 200
lihaihui 233
lymlrl 231
$ cat testfile #testfile文件的内容
liangyuanm ss
$ cat testfile1 #testfile1文件的内容
huanggai 56
zhixi 73
当合并指令”$ paste file testfile testfile1"执行后,程序界面中将显示合并后的文件内容,如下所示:
xiongdan 200
lihaihui 233
lymlrl 231
liangyuanm ss
huanggai 56
zhixi 73
若使用paste指令的参数"-s",则可以将一个文件中的多行数据合并为一行进行显示。例如,将文件"file"中的3行数据合并为一行数据进行显示,输入如下命令
$ paste -s file #合并指定文件的多行数据
上面的命令执行后,显示的数据内容如下所示:
xiongdan 200 lihaihui 233 lymlrl 231
注意:参数"-s"只是将testfile文件的内容调整显示方式,并不会改变原文件的内容格式。