linux minfo命令详解

人气:162 ℃/2023-02-22 19:24:36

linux系统下minfo命令是什么呢?下面是minfo命令的主要内容:

1、minfo命令简介:

minfo为mtools工具指令,可以显示MS-DOS系统磁盘的各项参数,包括磁区数,磁头数...等等。

2、语法:

</>minfo [-v][驱动器代号]

3、参数说明:

-v 除了一般信息外,并显示可开机磁区的内容。

实例:

显示DOS系统参数

# minfo -v C: //显示系统参数

以上就是小编今天的分享了,希望可以帮助到大家。

linuxsed命令详细教程

一篇文章总结完sed常见用法

提醒:本文为合集文章,后续会持续更新!

关注我,每日提升!

以前用vim操作文档的时候,可以查找也可以替换,但只限于在文本内部操作,而不能输出到屏幕上。sed工具以及后面要介绍的awk工具就能把替换的文本输出到屏幕上,而且还有其他更丰富的功能。

12.2.1打印某行

sed命令的格式为:sed -n 'n'p filename,单引号内的n是一个数字,表示第几行。-n选项的作用是只显示我们要打印的行,无关紧要的内容不显示。示例命令如下:

# sed -n '2'p /etc/passwdbin:x:1:1:bin:/bin:/sbin/nologin

你可以去掉-n选项对比一下差异。要想把所有行都打印出来,可以使用命令sed -n '1,$'p filename,如下所示:

# sed -n '1,$'p test.txtrot:x:0:0:/rot:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologinoperator:x:11:0:operator:/rooot:/sbin/nologinroooot:x:0:0:/rooooot:/bin/bash1111111111111111111111111111111aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

当然,我们也可以指定一个区间打印,如下所示:

# sed -n '1,3'p test.txtrot:x:0:0:/rot:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologinoperator:x:11:0:operator:/rooot:/sbin/nologin

12.2.2打印包含某个字符串的行

示例命令如下:

# sed -n '/root/'p test.txtoperator:x:11:0:operator:/root:/sbin/nologin

这种用法就类似于grep了,在grep中使用的特殊字符(如^、$、.、*等)同样也能在sed中使用,如下所示:

# sed -n '/^1/'p test.txt1111111111111111111111111111111# sed -n '/in$/'p test.txtoperator:x:11:0:operator:/root:/sbin/nologinoperator:x:11:0:operator:/rooot:/sbin/nologin# sed -n '/r..o/'p test.txtoperator:x:11:0:operator:/root:/sbin/nologinoperator:x:11:0:operator:/rooot:/sbin/nologinroooot:x:0:0:/rooooot:/bin/bash# sed -n '/ooo*/'p test.txtoperator:x:11:0:operator:/root:/sbin/nologinoperator:x:11:0:operator:/rooot:/sbin/nologinroooot:x:0:0:/rooooot:/bin/bash

sed命令加上-e选项可以实现多个行为,如下所示:

# sed -e '1'p -e '/111/'p -n test.txtrot:x:0:0:/rot:/bin/bash1111111111111111111111111111111

12.2.3删除某些行

示例命令如下:

# sed '1'd test.txtoperator:x:11:0:operator:/root:/sbin/nologinoperator:x:11:0:operator:/rooot:/sbin/nologinroooot:x:0:0:/rooooot:/bin/bash1111111111111111111111111111111aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa# sed '1,3'd test.txtroooot:x:0:0:/rooooot:/bin/bash1111111111111111111111111111111aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa# sed '/oot/'d test.txtrot:x:0:0:/rot:/bin/bash1111111111111111111111111111111aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

这里参数d表示删除的动作,它不仅可以删除指定的单行以及多行,而且可以删除匹配某个字符的行,还可以删除从某一行开始到文档最后一行的所有行。不过,这个操作仅仅是在显示器屏幕上并不显示这些行而已,文档还好好的,请不要担心。

12.2.4替换字符或者字符串

示例命令如下:

# sed '1,2s/ot/to/g' test.txtrto:x:0:0:/rto:/bin/bashoperator:x:11:0:operator:/roto:/sbin/nologinoperator:x:11:0:operator:/rooot:/sbin/nologinroooot:x:0:0:/rooooot:/bin/bash1111111111111111111111111111111aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

上例中的参数s就表示替换的动作,参数g表示本行全局替换,如果不加g则只替换本行出现的第一个,这个用法其实和vim的替换大同小异。

除了可以使用/作为分隔符外,我们还可以使用其他特殊字符,例如#和@。如下所示:

# sed 's#ot#to#g' test.txtrto:x:0:0:/rto:/bin/bashoperator:x:11:0:operator:/roto:/sbin/nologinoperator:x:11:0:operator:/rooto:/sbin/nologinroooto:x:0:0:/rooooto:/bin/bash1111111111111111111111111111111aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa# sed 's@ot@to@g' test.txtrto:x:0:0:/rto:/bin/bashoperator:x:11:0:operator:/roto:/sbin/nologinoperator:x:11:0:operator:/rooto:/sbin/nologinroooto:x:0:0:/rooooto:/bin/bash1111111111111111111111111111111aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

现在思考一下:如何删除文档中所有的数字或者字母?示例命令如下:

# sed 's/[0-9]//g' test.txtrot:x:::/rot:/bin/bashoperator:x:::operator:/root:/sbin/nologinoperator:x:::operator:/rooot:/sbin/nologinroooot:x:::/rooooot:/bin/bashaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

[0-9]表示任意的数字。这里你也可以写成[a-zA-Z]或者[0-9a-zA-Z]。如下所示:

# sed 's/[a-zA-Z]//g' test.txt::0:0:/://::11:0::/://::11:0::/://::0:0:/://1111111111111111111111111111111

12.2.5调换两个字符串的位置

示例命令如下:

# sed 's/\(rot\)\(.*\)\(bash\)/\3\2\1/' test.txtbash:x:0:0:/rot:/bin/rotoperator:x:11:0:operator:/root:/sbin/nologinoperator:x:11:0:operator:/rooot:/sbin/nologinroooot:x:0:0:/rooooot:/bin/bash1111111111111111111111111111111aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

小括号在sed中属于特殊符号,必须在前面加转义字符\,替换时则写成类似\1、\2或\3的形式。上例中用()把想要替换的字符打包成了一个整体。有这个转义字符\,会让这个表达式看起来乱糟糟的,阿铭有个方法可以省略它。如下所示:

# sed -r 's/(rot)(.*)(bash)/\3\2\1/' test.txtbash:x:0:0:/rot:/bin/rotoperator:x:11:0:operator:/root:/sbin/nologinoperator:x:11:0:operator:/rooot:/sbin/nologinroooot:x:0:0:/rooooot:/bin/bash1111111111111111111111111111111aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

没错,正如你看到的,就是这个-r选项让这个表达式更加清晰了,-r的作用跟grep的-E的作用是一样的,它让sed支持扩展正则,扩展正则其实就是使用了诸如:()、{}、|、 、?等特殊符号的正则。

除了调换两个字符串的位置,阿铭还常常用sed在某一行前后增加指定内容,如下所示:

# sed 's/^.*$/123&/' test.txt123rot:x:0:0:/rot:/bin/bash123operator:x:11:0:operator:/root:/sbin/nologin123operator:x:11:0:operator:/rooot:/sbin/nologin123roooot:x:0:0:/rooooot:/bin/bash1231111111111111111111111111111111123aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

12.2.6直接修改文件的内容

示例命令如下:

# sed -i 's/ot/to/g' test.txt# cat test.txtrto:x:0:0:/rto:/bin/bashoperator:x:11:0:operator:/roto:/sbin/nologinoperator:x:11:0:operator:/rooto:/sbin/nologinroooto:x:0:0:/rooooto:/bin/bash1111111111111111111111111111111aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

这样就可以直接更改test.txt文件中的内容了。但必须注意,在修改前最好先备份一下文件,以免改错。

感谢阅读,关注“阿铭Linux”

持续为你输出高质量Linux技术文档!

推荐

首页/电脑版/网名
© 2026 NiBaKu.Com All Rights Reserved.