chi*_*uit 152 linux shell command-line shortcut deprecated
今天我发现你可以减少像尾巴一样的行为.
文件名较少,然后按Shift-F开始跟随模式.
就像尾巴一样,但你拥有更少的附加功能 - 比如滚动,搜索和搜索命中的突出显示.
多年来我一直在看尾巴的日志文件.
这只是让我思考:是否有其他命令过时并具有强大的替代方案?
请分享幸福 - 每个帖子一个命令.
And*_*ter 57
我喜欢指向我的ack,替代程序员的grep.
令我感到惊讶的是,人们(包括我)已经与使用find和xargs的拼凑在一起的别名和shell脚本生活了很长时间.
小智 29
并不完全取代任何东西,但moreutils是一个小型Unixy工具的集合,它们基本上是为了填补*nix工具箱中的漏洞.
因为,你只需要每个帖子一个命令,我想我必须选择海绵,它允许你将管道输出保存到一个用作输入的文件.IOW,它允许您就地修改文件,而不必担心临时文件.
例如,如果你这样做:
grep 'something' somefile.txt > somefile.txt
Run Code Online (Sandbox Code Playgroud)
somefile.txt将结束为空.所以,你可以使用海绵:
grep 'something' somefile.txt | sponge somefile.txt
Run Code Online (Sandbox Code Playgroud)
小智 22
mtr是traceroute的替代品(它是ping和traceroute的组合).
与traceroute不同,它几乎立即找到路由(因为它不会在移动到下一跳之前等待响应).
默认情况下,命令行版本安装在Debian中(package mtr-tiny).
Dav*_*ide 16
上下文敏感的自动完成.
好吧,我知道,这不是一个命令,它不太可能在许多Unices上找到,而是Linux.在我的Ubuntu Hardy中,bash_completion已经配置得非常好,这意味着不仅仅是文件和目录!例如,如果我输入
svn pr<TAB><TAB>
Run Code Online (Sandbox Code Playgroud)
我明白了:
praise propdel propedit propget proplist propset
Run Code Online (Sandbox Code Playgroud)
乃至
svn propget svn:k<TAB>
Run Code Online (Sandbox Code Playgroud)
我自动得到了
svn propget svn:keywords
Run Code Online (Sandbox Code Playgroud)
它也适用于ant并make自动读取默认文件或命令行中指定的文件!这是一个真正的节省时间!
Zat*_*rus 15
问题和标签是矛盾的.Linux不是Unix(愚蠢的Open Group),而且大多数"真正的"Unix机箱都没有Linux所能提供的软件.作为一个例子,在一个相当简单的AIX 5.3pl6安装上:
$ less ksh: less: not found.
是的,我管理这些系统,但我们同意在大多数情况下不加载非核心组件,因为我们需要它们来匹配现场部署的系统.
在你的工具箱中使用更新的工具真的很棒,但是如果你不了解"旧学校"的方式,那么如果你曾经在AIX/Solaris/HP-UX上,你将会处于一个受伤的世界/ etc系统没有更新的工具(甚至可能没有bash).
请注意,在我们的开发虚拟机上,我确实安装了尽可能多的现代工具,因为虽然我可以在更平坦的环境中工作,但这并不意味着我喜欢它.我在Linux(CentOS 5)系统上做了尽可能多的工作,仅仅因为它上面的工具仍然比我为AIX找到的任何东西都要新(Solaris更好一点; HP-UX更糟糕).
小智 11
值得一看的是一些普通命令的GNU版本,因为它们已经悄然获得了超出标准(XPG4等)版本的有用改进.
例如,递归grep要好得多find | xargs grep.
此外,find ... -print0 | xargs -0 ...处理长期可怕的引用问题,使xargs无法正确处理时髦的空间填充文件名.
GNU tar采用'j'和'z'标志直接处理bzipped和gzipped压缩文件.
而bash $()替代反引号使得偶尔嵌套的反引号表达式更易于读写.
tzo*_*zot 10
有人可能会说awk完全被淘汰了perl.
但是,因为我在perl存在之前使用awk,所以我仍然使用它; 至于更严肃的脚本,我使用python而不是perl.
Tar*_*mán 10
atool:处理没有头痛的档案
一些例子:
- aunpack archive.tgz解压缩归档中的所有文件.如果存档的作者如此不顾及将多个文件放在存档的根目录中,则该命令会自动创建一个目录并将文件移入其中.
- aunpack -e archive1.tgz archive2.zip解压缩每个存档.
- apack archive.tar.bz2*.txt创建一个包含当前工作目录中所有文本文件的新压缩存档.
- als archive.rar显示存档中包含的文件的名称.
例子来自:http://debaday.debian.net/2008/12/28/atool-handling-archives-without-headaches/
"重命名"是一个很好的替代方案,可以写一个将名称更改为一堆文件的长连词.
如果你使用的是GNU系统,请不要使用sed '1!G;h;$!d'; 相反,使用sed '1!G;h;$!d'.
bm(链接),而不是popd和pushd或创建临时别名,非常有用.
添加要使用标记调用的目录
bm -a /path/to/a/dir tag
Run Code Online (Sandbox Code Playgroud)
要转到此目录
cdbm tag
Run Code Online (Sandbox Code Playgroud)
无论在何处glibc安装,您都可以getent passwd foo代替grep foo /etc/passwd(类似地aliases ethers group hosts netgroup networks protocols rpc services shadow) - 它甚至可以在NIS设置中使用Right Thing(TM).
为什么在为你生成解压缩器gzip -dc foo.tar.gz | tar xf -时打扰打字tar xzf foo.tar.gz?
更进一步...为什么打扰打字tar xzf foo.tar.gz或tar xjf foo.tar.bz2GNU tar会自动检测压缩? tar xf foo.tar.(gz|bz2)只是神奇地工作.
我不确定这应该是答案还是仅仅是对问题的编辑.
在使用less作为尾部替换之前,您可以搜索"/ search_string",然后调用Follow命令(shift-F).现在任何滚动的"search_strings"都会突出显示.这对于扫描一堆程序输出或日志并查找特定字符串或模式非常有用.
不要忘记你也可以使用正则表达式!