如何使用Unix CLI有效地学习工作

时间:2008-11-22 19:08:25

标签: unix shell

您是否知道任何教授在UNIX命令行中工作的良好习惯的资源?

编辑:我不是指关于shell或man page的一般书籍。我的意思是你只能看到看专业人员使用命令行的东西。例如,当在两个目录之间频繁更改时,他们使用“pushd”命令,当重复命令时,他们使用“历史”。我可以阅读这些命令,但我想养成有效使用它们的习惯。

9 个答案:

答案 0 :(得分:7)

我说的是出于我自己的经历所以它可能不适用于你;

提高效率的最佳方式实际上是每天使用它,而不是使用图形工具,即使它们使外观变得容易。然后,您将意识到您关心的大多数常见任务,而不是试图立即完成任务,您将获得一个相当不错的起点来开始学习。手册页是首先要看的东西,但无论如何都需要搜索非显而易见的技巧。知道你究竟想要什么,无限增加找到它的可能性。

例如,您可以在“查找”的手册页中找到如何更轻松地搜索所有mp3文件,而不是如何处理一般文件(从哪里开始?)。

答案 1 :(得分:4)

一些常见的bash命令行操作,不按顺序执行:

  • 命令行编辑:您希望熟悉emacs或vi并将其应用于编辑命令。
  • 完成:使用TAB扩展文件名和路径。
    • 注意:有大量的文件,命令和历史记录完成功能,并且可以配置。大话题。
  • “cd - ”:返回您所在的最后一个目录
  • 〜=主目录(或用户主目录的用户)
  • “ESC。” :从上一个命令
  • 扩展到最终的arg
  • “!string”:执行以string
  • 开头的最后一个命令
  • 学习find,grep,sed,piping“|”和重定向“>”。你经常将这些结合起来做有用的事情。
  • 来自shell提示符的循环,例如“for”循环 - 重复行动
  • 了解正则表达式!通常用于匹配文件。
    • 示例:ls x [0-5] *。{zip,tar} =以x开头的列表文件,后跟数字0到5,后跟任何以.zip或.tar结尾的字符串

如果可能,请向他人询问他们最喜欢的技巧,阅读手册并练习。

答案 2 :(得分:3)

对于更高级的东西This似乎相当全面

答案 3 :(得分:3)

这是一个很好的资源:“Rute User's Tutorial and Exposition”(http://rute.2038bug.com/index.html.gz

答案 4 :(得分:1)

stackoverflow.com尤其是bash标签;-) (当然还有bash man page

答案 5 :(得分:1)

如果你想要的东西“你只能看到专业人士使用命令行”,那么你已经回答了自己的问题:观看使用命令行的专业人士。除非另一个人多次做同样的事情,否则我个人并不觉得这非常有用;在一次会议之后很难选择一些东西,因为很难同时观看屏幕和键盘。

我认为关键是不要试图立即成为专家。只需经常使用命令行,并注意您可能没有尽可能使用它,但不要让它阻止您使用它。

浏览shell的手册页,以及提示列表,而不是记住其中的所有内容,而只是选择要尝试的一些内容。浏览一下,直到某些东西吸引你的眼球并让你思考,“哎呀,听起来很有用。”然后尝试一下。并非一切都会立即发挥作用;您可能需要等待一段时间才能遇到可以尝试一些事情的情况。也许你可以在桌面上记下Post-It笔记上的一些东西,提醒你某些功能是可能的,所以当你遇到一个更加模糊的功能可能很方便的情况时,你会更有可能记得尝试它

答案 6 :(得分:1)

坦率地说,在真空中学习这些东西是不可能的。你需要解决问题。

虽然熟悉可用的工具(其中有无数的工具)肯定有帮助,但“学习”它需要应用它。应用它需要“真正的”问题来解决。

例如,系统管理员的技能组可能与使用数据库的人不同,因为他们的角色不同。

我使用它们进行数据处理,主要使用一个off文件。 /tmp/x.sh和/tmp/x.x裸露在目录文件夹中。

我的锤子往往倾向于:ls,find,sort,sed,vi,awk,grep和comm。结合简单的shell脚本,例如:for cat /tmp/list;做..完成

但我做了很多ETL工作,而且脚本文件很少,这就是为什么我的shell脚本技能如此薄弱。

我确实依赖一个脚本:

#!/bin/sh
# latest -- show latest files
ls -lt $@ | head

95%的时间我正在处理的文件都在前10个最新文件中。而“最新的* .txt”就是一个桃子。

所以,底线,你需要解决的问题。你需要学习'man'命令,man -k很高兴找到东西。您还需要利用大多数手册页底部的“另请参阅”。这是“我不知道你能做到”的宝库。

然后,开始解决问题。开始弄清楚“什么会有好处”,然后看看它是否存在(很可能)。如果没有,awk,perl或python可以凭空捏造那些“美好的东西”。

答案 7 :(得分:0)

加入LUG。这是我早期学到大部分东西的地方。要求组织者做一个“Bash Tips and Tricks Night”。

Deft shell用户喜欢炫耀。

答案 8 :(得分:0)

对于这类事情来说,apropos是一个非常好的工具。每当你发现自己不确定做某事的最佳方式,或者希望你不重复自己时,只需使用带有一两个关键字的apropos来找到可以提供帮助的其他命令。在像debian这样的发行版中,您还可以安装基于Web的帮助工具,搜索系统上可用的所有手册:texinfo,手册页,html和pdf等。

除此之外,是的,请至少阅读一次你的shell手册 - 最好,在你学到更多知识,达到极限并希望提高效率的同时,重复一遍。

加入LUG的想法也很好;你肯定会从别人的演示中学习。