您如何记住命令选项?[关闭]


13

我很想知道您使用什么技巧来记住各种命令的选项?一直在查找手册页很费时间,而且也不是很酷!


2
除其他事项外:unix.stackexchange.com/questions/138720/…对于创建我惯常搞砸或忘记的事情的自定义摘要非常有用。顺便说一句,您阅读手册页的次数越多,您就越会欣赏它们。
goldilocks 2014年

我有一段时间觉得我忘记了一切。我想知道我是否是唯一一个很难记住所有有用选项的人。.您的建议似乎是一个不错的解决方案。.谢谢!
Atul 2014年

3
阅读man页面非常酷... :)
jasonwryan 2014年

1
问:您如何到达卡内基音乐厅?答:练习!
evilsoup

4
我认为这值得一些XKCD:xkcd.com/1168
Darkhogg 2014年

Answers:


39

诀窍很简单:您只是不知道。这是浪费时间,只是没有必要。记住命令选项并不是特别有用的技能。了解材料的总体工作原理并模糊地知道首先存在哪些工具以及它们的用途非常重要。这里的一项非常重要的技能是知道如何找出您尚不了解的东西。

手册页很耗时间吗?不是这样 好像您不必阅读它们-至少不是每次都阅读 -都有搜索功能。所以,如果我不记得这神秘的选项是一个hdparm以禁用空闲计时器上的一些WD硬盘,我做的man hdparm/idle3,嘿,那是-J。像这样看起来的东西是如此之快,我什至不记得之后再做。

想象一下,实际上有人记住了所有hdparm选项。真浪费时间。

如果您只是偶然记住选项,那是很好的,因为您经常使用它们。这是自动发生的,甚至无需考虑。但是实际上有意识地花时间在记住它们上……这应该有什么用?纸笔考试?


4
建议:该技能是找到所需的东西,而不是死记硬背。man hdparm | less -p idle3这也是跳到所需术语的便捷方法……
jasonwryan 2014年

我完全同意这个答案,尽管我认为值得强调的是,记住一些通用程序的最常见选项是很正常的,只是因为您经常使用它们。像rm -i -f -rln -sdf -s -hcp -r -ils -l -h -a,等(名单从因人而异)。
David Z

8

Zsh具有运行帮助功能,默认情况下绑定到Alth。使用此功能,您可以开始键入带有很多或复杂选项rsync(例如难以记住)的命令,然后man打开该命令的页面。所以:

 rsync Alth

阅读man页面并计算出所需的开关,按一下q,然后返回到命令提示符,从上次停止的位置开始,准备使用必需的选项完成命令:

rysnc -azP file dir/

如Wiki所述:

可以通过定义run-help-command形式的辅助函数来进一步自定义该函数。标准发行版中提供了三种此类功能:run-help-git,run-help-svk和run-help-svn。

同样bash具有bash-complete,它将为许多命令提供许多参数选项。
ericx 2014年

2
@ericx“类似地”可能有点夸张了... Zsh也已完成,这是从此开始的一步。
jasonwryan 2014年

嘿...我听说过人们吹牛,但我从未尝试过zsh
ericx

同样,@ ericx bash的完成不支持在完成列表中添加描述,也不支持对条目--classify -F -- append file type indicators进行分组(例如,在zsh的GNU ls完成中),因此它不如zsh的有用。
斯特凡Chazelas

** root @ milicent **〜/ tmp ** Tue Aug 05 09:24:55#pkg info(-e -d -f -l -o -p -D)-r [显示反向依赖性](-e -d -r -f -o -p -D)-l [显示所有文件](-e -d -r -l -f -p -D)-o [显示原点](-e -d -r- l -o -f -D)-p [显示前缀](-e -d -r -l -o -p -D)-f [显示完整信息](-e -d -r -l -o -p -f)-D [显示消息](-e -f -r -l -o -p -D)-d [显示依赖项](-f -d -r -l -o -p -D)-e [如果已安装<pkg-name>,则返回0](-g -X -a -F)-x [处理与正则表达式模式匹配的软件包](-g -x -X -F)-a [处理所有软件包
ericx 2014年

4

使用很长的命令历史记录并进行搜索非常有用。

我基本上收集了所有shell历史记录文件,并通过它们进行grep。

在许多情况下,找到的结果非常有用,因为容易找到好的关键字。
搜索您使用的特定参数(例如URL),您还将找到相关的命令和选项。在搜索特殊选项时,您可能还会找到相关的参数。


4

大多数命令都有--help以便快速参考,通常足以提醒我以前知道的内容。

就是说,养成写--help而不是-h甚至-?的习惯。在查看用法输出或手册页之前,您永远都不知道-h是什么。在最坏的情况下,-h可能是--hazardous-automatic-destruction的简写形式。


2
... GNU系统上的大多数命令。Unix系统上的命令通常没有--help-?需要用zsh,或引号cshtcsh或者在当前目录中fish是否包含名称-后跟单个字符的文件。-:在那里可能更好。
斯特凡Chazelas

好吧..许多非GNU系统具有如此惊人的用法输出,即使看起来也毫无意义。在这种情况下,请参见手册页和最好的运气,因为很难记住。
kerolasa 2014年

“那有写作的习惯”。缺少单词?
Faheem Mitha 2014年

1

我喜欢的一个选项是创建具有相同或相似选项的别名,例如

alias rmi='rm -i'
alias rmiv='rm -iv'
alias rmv='rm -v'
alias cpr='cp -r'
alias cprv='cp -rv'

这样,您就拥有了一个不错的捷径,您很快就会记住它,但是它还将保留有关其反映的实际选项的信息。

使用别名的另一种方法是选择最常用的选项,并使用它们来制作一个超短别名。例如对于ls我几乎总是这样做l,那是因为我有:

alias l='ls -alFtrG'

另一个选择是将您喜欢的选项引入基本命令,例如

alias ls='ls -F --color=always'

最后练习,练习,练习和耐心。继续输入常用选项,您将最终学习它们。几天之内常见的情况,几周之内常见的情况,是的,要花上几年的时间才能让您知道。认为这是一种享受,因为Unix编程将在很长一段时间内继续为您带来娱乐。

我喜欢的另一个选项是别名,它使搜索历史记录变得容易,为此,我有两个相似的别名:

alias hg='history | tail -200 | grep -i'
alias hga='history | grep -i'

这些让我搜索命令的用法,例如:

hg ls将显示历史记录中ls的最近使用情况,
hga ls将显示我整个历史记录中ls的所有使用情况。

我发现hga趋向于显示过多后,才发展了hg。


4
如果OP忘记了rm -iv做什么,OP可能也将不记得做什么rmiv。我不认为这是连字符。
tobyink

我个人别名rm -ivsafe_deleterm_prompt
slebetman

感谢大伙们!我想我要为记住的东西多得多,而不是学习更多。.我将学习何时使用该武器,而不是学习子弹的尺寸和速度!幸运的是在这里有这么多优秀的Linux爱好者。.为Unix / Linux欢呼!
Atul 2014年

1

我通常会这样做:

man ${CMD} | grep 'what was I thinking about?'

或其一些变化。使用some grep可以分别为contextafterbefore指定-C / A / B。如果没有,nl并且sed可以很好地匹配:

man hdparm |                      #hard to forget
nl -bp'idle3' -nln -w1 |          #I had to grep man to put this together
sed -n '/^[0-9]/{N;N;N;s///p}'    #no print until line begins w/ number, next,next,next

           Drive's "idle3" timeout value.  This timeout
            controls how often the drive parks its heads
            and  enters  a  low power consumption state.
            The factory default is  eight  (8)  seconds,
           zero (0) to disable the WD idle3 timer  com‐
            pletely (NOT RECOMMENDED!).

     -k     Get/set  the "keep_settings_over_reset" flag

--help如果拥有菜单,则可以使用相同的技术,但是您可能需要这样做,${CMD} --help 2>&1 | ..filter..因为将这些内容打印到是一种相当标准的做法stderr

无论如何,我想这个故事的寓意是,至少 要记住mangrep。也许不要汗流sweat背。


1
+1。grep在寻找特定功能时,我经常会手动处理页面,这非常方便。
约翰·史密斯

grep的 -A -B -C选项也可能很有用,例如man bash | grep -A 25 PROMPTING$
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.