我很想知道您使用什么技巧来记住各种命令的选项?一直在查找手册页很费时间,而且也不是很酷!
man
页面非常酷... :)
我很想知道您使用什么技巧来记住各种命令的选项?一直在查找手册页很费时间,而且也不是很酷!
man
页面非常酷... :)
Answers:
诀窍很简单:您只是不知道。这是浪费时间,只是没有必要。记住命令选项并不是特别有用的技能。了解材料的总体工作原理并模糊地知道首先存在哪些工具以及它们的用途非常重要。这里的一项非常重要的技能是知道如何找出您尚不了解的东西。
手册页很耗时间吗?不是这样 好像您不必阅读它们-至少不是每次都阅读 -都有搜索功能。所以,如果我不记得这神秘的选项是一个hdparm
以禁用空闲计时器上的一些WD硬盘,我做的man hdparm
和/idle3
,嘿,那是-J
。像这样看起来的东西是如此之快,我什至不记得之后再做。
想象一下,实际上有人记住了所有hdparm
选项。真浪费时间。
如果您只是偶然记住选项,那是很好的,因为您经常使用它们。这是自动发生的,甚至无需考虑。但是实际上有意识地花时间在记住它们上……这应该有什么用?纸笔考试?
man hdparm | less -p idle3
这也是跳到所需术语的便捷方法……
rm -i -f -r
,ln -s
,df -s -h
,cp -r -i
,ls -l -h -a
,等(名单从因人而异)。
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
,它将为许多命令提供许多参数选项。
zsh
bash
的完成不支持在完成列表中添加描述,也不支持对条目--classify -F -- append file type indicators
进行分组(例如,在zsh的GNU ls完成中),因此它不如zsh的有用。
大多数命令都有--help以便快速参考,通常足以提醒我以前知道的内容。
就是说,养成写--help而不是-h甚至-?的习惯。在查看用法输出或手册页之前,您永远都不知道-h是什么。在最坏的情况下,-h可能是--hazardous-automatic-destruction的简写形式。
--help
。-?
需要用zsh
,或引号csh
,tcsh
或者在当前目录中fish
是否包含名称-
后跟单个字符的文件。-:
在那里可能更好。
我喜欢的一个选项是创建具有相同或相似选项的别名,例如
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。
rm -iv
做什么,OP可能也将不记得做什么rmiv
。我不认为这是连字符。
rm -iv
来safe_delete
或rm_prompt
我通常会这样做:
man ${CMD} | grep 'what was I thinking about?'
或其一些变化。使用some grep
可以分别为context,after和before指定-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
。
无论如何,我想这个故事的寓意是,至少 要记住man
和grep
。也许不要汗流sweat背。
grep
在寻找特定功能时,我经常会手动处理页面,这非常方便。