一天几个linux命令 linux常用命令多少个( 四 )


以数值来排序
sort 默认是按照字符串排序的,这样就会出现10比3小的情况,sort -n 就可以告诉sort 以整数排序
-t 后面跟 分隔符
-k 后面跟数字,表示用第几列排序
如 sort -t : -k 2 表示把每行 以:号分割,按照第二列排序
banana:30:5.5
orange:20:3.4
apple:10:2.5
我们可以看到 , 当baidu 和soho都是100的时候,baidu排在前面,当当前域按照默认规矩,是从第一个域开始进行升序排序,因此baidu排在了sohu前面 。
sort 支持 -k 2 -k3这种模式,如果一天几个linux命令你需要,你可以继续这么写下去
你仔细看看,在-k 3后面偷偷加上了一个小写字母r,r和-r的作用是一样,你也可以把前面的-n去掉 在r后面加上n,如下
其实-k 选项 功能很强大,语法[ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ]
从逗号前后 分为两大部分 , 即-k 2,2,是严格使用第一个域排序,如果只设置-k 2 其实是按照从第一个域到行尾 。逗号分开的每部分又有一个点表示子域,即-k 1.2表示 按照第一个域的第二个字符排序 , Modifiers就是我们用到的n和r如 -k 1.2nr具体我们看下面的例子 。
我们使用了-k 1.2,这就表示对第一个域的第二个字符开始到本域的最后一个字符为止的字符串进行排序 。你会发现baidu因为第二个字母是a而名列榜首 。sohu和 google第二个字符都是o,但sohu的h在google的o前面,所以两者分别排在第二和第三 。这和之前说到的按照默认的排序规则 是不同的,当第一个域的第二个字符相同时 , 他不会去按照第一个字符排序 , 而是按照后面的字符排序,这是因为-k 1.2是对第一个域的第二个字符开始到本域的最后一个字符为止的字符串进行排序 。而之前的夸域其实是一种假象 。
-u只识别用-k设定的域,发现相同,就将后续相同的行都删除
但是这时候,却一行也没有删除 。原来-u是会权衡所有-k选项,将都相同的才会删除 , 只要其中有一级不同都不会轻易删除的
可以用到b、d、f、i、n 或 r 。
其中n和r你肯定已经很熟悉了 。
b表示忽略本域的签到空白符号 。
d表示对本域按照字典顺序排序(即,只考虑空白和字母) 。
f表示对本域忽略大小写进行排序 。
i表示忽略“不可打印字符”,只针对可打印字符进行排序 。(有些ASCII就是不可打印字符,比如\a是报警,\b是退格,\n是换行,\r是回车等等)
linux必学的60个命令【一天几个linux命令 linux常用命令多少个】Linux必学的60个命令:
安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;
系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode 。
Linux的优点
1、Linux由众多微内核组成,其源代码完全开源;
2、Linux继承了Unix的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4、TCP/IPv6和链路层拓扑程序等,且可以利用Unix的网络特性开发出新的协议栈;
3、Linux系统工具链完整,简单操作就可以配置出合适的开发环境,可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性;

推荐阅读