老实讲,我已经不记得我多少次说过“你什么意思”这句话了。
很多人的提问几乎没有任何信息含量。
想要在*nix世界里提问,首先你可能已经学习过了《提问的艺术》,如果你还没学习过,那请先去学习一次。这篇文章哪都有,而且有中文版。于是本文的牢骚纯粹作为那篇文章的补充。
前提:不要做白痴!
至少如果你的问题如果包含一条出错信息,那么你应该先去搜索。如果你使用Google的话,应该至少学会引号的使用,这样能使你搜索的结果是包含整句话,而不是零散的几个词。其次,搜索要去掉所有只能在你机器上重现的内容,例如路径,进程号。
另外要善用Google的按时间搜索功能,如果你发现五年前有人遇到类似的问题,那么那个问题很可能不是你的问题。要找最近出现的内容。
1、不是害羞的时候!
如果你知道什么,不要有意把你知道的内容隐瞒起来。
2、你都干了些什么?!
精确不代表冗余的内容,在了解你的问题的基础上,你要列出相关的内容。以下是一些经验之谈。一个关键的方法就是找你做了什么。例如你安装了什么软件包,修改了什么配置。
在自己知识范围内确定可能的问题。
如果输出提示和什么文件相关,可以通过包管理器去查询那个文件所属的包。
在少数情况下,问题是可能绕一个曲线才会触发的(例如我有幸曾经发现过一次glibc的bug……触发曲线是 KDE->Qt->Strigi->glibc,但这种情况少之又少。),找到你知道的直接相关的问题。
找到前后的差异是很重要的。而且也是最容易的。包管理器都会提供你安装的log记录,如果你不记得了,包管理器的log也会帮你记得。
3、举一反三!
如果你的问题和许多环境有关,那么最好确定下你的问题是否与某个环境有关。比如我经常被问到的输入法问题,如果不能启用输入法,那么究竟是哪个程序不能启用?那么有哪个程序又能启用?这些也都是重要的信息。
再比如显卡驱动,你当然可能只有一台电脑,那么开源闭源驱动至少可以换着试试看。究竟是驱动的问题还是程序的问题这是一条重要的分水岭。
4、寻找同行者!
Linux的环境是非常复杂的,而且在这个环境下,很多人对于自己环境没有问题出于一种幸灾乐祸的态度(你懂的),比如说,你在Fedora的论坛上说你的Ubuntu出问题了,很大可能会收到的回答就是,来投奔Fedora吧!事实上也不能太怪别的论坛的人,他们可能压根不知道在你那边发生了什么。
所以先问和你有相同环境的人,也是很重要的一点,比较你们二人的环境配置也是有助于找到你的问题。
其实除了第一条之外,后三条和核心思想只有一句话,那就是比较。不要指望其他人一口气指出你的问题,你和他的距离已经超过世界上最遥远的距离了。