百科问答小站 logo
百科问答小站 font logo



Linux大神都是怎么记住这么多命令的? 第1页

  

user avatar   rockrover 网友的相关建议: 
      

曾经常年使用Linux,这题我会!先说结论,其实不需要记住太多命令和参数,刻意去背命令、背参数更没必要。

更新:没想到获得大家这么多认可,文末再更新2个实用技巧。

1、真正常用的不多。

如果你的操作相对固定,只要记住20个左右的命令,基本就能满足需要了,大都是增删改查一些文件、目录或进程等,比如ls/cd/cp/mv/rm/ps/pwd/mkdir/vi等,其他不常用的,再去现用现查就行。

2、结合英文含义记忆。

什么?20个也记不住?结合命令的英文含义吧,是不是清晰了很多?比如

ls = list
cd = change directory
cp = copy
rm = remove
mv = move
pwd = print work directory
ps = process status
df = disk free
du = disk usage
mkdir = make directory
rmdir = remove directory
su = switch user
chown = change owner
chmod = change mode

不只是命令,参数也是类似的,可以用英文含义辅助记忆,比如:

-a = all
-l = list
-f = force
-h = -human-readable
-n = number
-u = user
-z = zip

3、活用补全和帮助

太长的命令记不住时,用tab补全,比如iptables那一堆;具体的参数记不住时,用man或者help。

输入很长的文件名或路径名时,也可以使用tab补全,很省劲,不用一点点敲了。

4、建立个人知识库

对于那些常用的、带有多个参数的命令行,或是用了awk/grep/sed进行了复杂嵌套的,不需要特地背下来,如果敲错一点点,整个命令的输出都会有问题,甚至有可能酿成大祸!

建议把这些用一个文档保存下来,不单单要保存命令,还要注明这些命令是做什么的。等到需要的时候,直接打开文档复制就好,又准确又省事。

5、TLDR工具

TLDR是著名的Linux命令行手册开源项目,是英语Too Long Didn't Read(太长不看)的缩写,就是想反对冗长的man和help内容,建立一个简化的、社区驱动的手册集合。

TLDR可以安装在Linux上,然后使用tldr <commandname>就能快速查找,也有Web、Android 和 iOS 版本可以使用。

6、Linux命令查询中文资源

TLDR虽好,但毕竟是英文网站。很多人遇到不会的命令,还是习惯随手去百度查,但查出来的不一定是最合适的命令,甚至可能是错误的。

那么有Linux命令查询的中文资源吗?当然有!我在大量查询和对比之后,推荐这两个:

这个站应该是著名的《Linux就该这么学》的作者建立的,可以根据命令或功能进行双向查询。

  • Linux(微信小程序)

是的,名字就叫Linux,是“Linux中国”公众号开发的,基于TLDR项目翻译,同样可以命令或功能双向查询。有兴趣的同学也可以参与编辑,共同完善。

7、利用工具辅助

虽然不提倡死记硬背,但我认为,初学者还是有必要完整过一遍常用命令,可以对哪些命令能做什么有一个整体印象,对理解Linux也很有帮助。建议跟着纸质书学习,看起来更舒服一些,也可以作为工具书,放在手边随时翻阅。

  • 工具书

命令行方面的Linux工具书,强烈推荐以下几本经典教材,当时都看了不止一遍。

大家可以点进去看看目录,对比一下哪本更适合自己。

  • 鼠标垫

还有一种做法,就是买一个大鼠标垫,大小和内容都能定制,类似这样的:

不单单是Linux,连Java、Python、MySQL、Android等等,都不用刻意记了,低头就能查,哈哈。实在查不到或者更加冷门的,再去查书或者搜索也不迟。

  • 机械键盘

Linux命令记熟了,不展示一下怎么行,必须再配个机械键盘啊!噼里啪啦一通,命令行输入+各种快捷键,半天不碰鼠标,周围人不由地投来仰慕的眼神。

总结一下,以上主要介绍了这些办法:

1、常用的命令建议记住,其实没多少

2、记忆的时候结合英文含义,会更容易

3、善用自动补全和帮助

4、建立个人知识库

5、安装TLDR工具

6、使用中文网站或小程序

7、利用工具书或鼠标垫进行辅助

纯手打,如果各位觉得有帮助,别光收藏,请双击点个赞吧,抱拳感谢!


user avatar   zorrolang 网友的相关建议: 
      

本来觉得这个问题不需要回答,所以一直忽略,但没想到这个问题被推送过来这么多次,看来还真有很多人有此疑问。鉴于此我也发表一下个人观点好了,毕竟“怎么记住XXX”这种事情肯定是仁者见仁智者见智的。

像题主描述的,从Windows转到Linux上的使用者一般都会先对Linux上这么多的命令行操作感到困扰,于是便有此一问“这么多命令怎么记住?”,我的回答是:这么多命令是不可能记住的。但是为什么"Linux大神(引用自题主使用的称呼)"会给人一种可以记住众多命令的感觉呢?我就说三点原因,欢迎补充:

  • 熟练使用高频核心

首先,任何的领域或者说任何领域的任何层面,都有很少一部分很核心、使用频率极高、极其重要的内容。这些内容是需要记住的,比如bash, ls, cd, cat, less, grep, find, yum/apt-get, rpm/dpkg, vi/emacs等,比如某部分程序员常用的git, make, gcc等。这些东西就像加减乘除一样,与其说它们是被记住的,还不如说它们是被使用的过于频繁而形成了习惯。即使都是Linux用户,因每个人所涉领域不同,所面对的工作不同,常用的东西会有一些不同。但是熟练使用高频核心的东西是首要条件。

可能将来某一个因为你换工作了或者其它原因,你的工作环境改变了,你所熟练的高频核心的东西也会改变,以前熟练的慢慢就会“退化”到只记住基本原理的地步。比如我很久以前是Debian系的工作环境,我对apt, dpkg,甚至deb包打包工作等都比较熟悉,但是后来我因为工作更换,切换到了Fedora系的工作环境,于是我开始对yum, rpm等东西渐渐熟悉,对原来dpkg的使用就变得慢慢生疏了。

  • 文档才是“记住这么多命令“的关键

像上面说的,我们有很多高频使用的命令,但即使是我们高频使用的命令我们也并不能记住它们的全部参数全部用法(全部记住是不可能的)。所以掌握查阅文档的本领就是能否自我提升的第一关了。前面了解自己所处领域的高频核心的东西可能是别人(通过面对面传授、视频讲解、博客、入门书籍等)告诉你的,但是这只能算是师傅领进门,后面的修行还是要靠个人。这个“修行靠个人”的首要条件就是会自己查阅理解文档。比如我上面说自己后来对dpkg之类的命令生疏了,但是这并不影响我需要的时候使用它们,因为我毕竟还是知道它的基本原理的,使用的时候查阅文档我就可以找到我需要的参数以及用法。

"Linux大神"也是记不住那么多命令的那么多参数的,甚至连它们自己写的命令怎么用他们也记不住(不是开玩笑,千真万确),他们需要翻看自己写的或别的作者写的权威文档,来了解/确认更细节的使用方式。比如我们都知道grep命令很常用,一般我们用它查找一个匹配内容,可能-r/-R/-n是我们常用的参数选项,这也确实能应付90%的使用情况,但是突然有一天,比如我想让grep打印匹配行的前或后几行的内容,该怎么办?

注意此时并不能通过你“知道用什么参数”和“不知道用什么参数”来评判水平高低,这只能说明你对这方面的用法是否有过些许或者经常的接触,并不能作为水平高低的评判。而能看出水平高低的,是你在不知道怎么做的情况下如何找到解决方式。可能有的人会先跑到知乎、QQ群等平台提问“求大神救救孩子吧,grep怎么打印找的行的后面几行阿?在线等,急!”,然后就放那先不管了。可能有的人会找度娘“百度:grep如何打印匹配的后面几行”,然后在众说纷纭的论坛、博客里边找边试,能工作就行。而有的人可能会先尝试查看grep的manual (man grep),在里面搜索如"after/before/context/line等等"这样的关键字,或者快速的翻越相关章节,寻找grep是否直接提供这样的用法,如果grep不提供则再想办法通过其它综合命令的途径达到目的。

有人可能会问,那要是我都不知道该用哪个命令怎么办,我们都不知道该man什么?即使面对全新的命令时,文档也是一把金钥匙。比如你面对一个需求,需要你在bash脚本里解析json文件。这时候你可能要先通过一些途径了解到都有什么能在bash下使用的工具能解析json文件,比如Google搜索关键字"bash json"(或者问有经验的人),你可能看到很多方案,你需要逐个简单了解并评估,然后你发现有一个叫"jq"的命令行工具既可以做这样的事又符合你的预期。这是一个对你来说全新的命令,但是如果你具备阅读jq相关文档的能力,你就可以在短时间(比如一天)内快速掌握其主要用法,然后一边参照其格式说明一边完成编程。

这种具备(快速及时地)查找、翻阅并掌握权威文档内容的能力,是让别人觉得你什么命令都记得住的关键,也是离开新手村的关键条件。“Linux大神”们就是因为具备这种能力,才让很多人以为是什么都记得住。

  • 命令下面的底层知识是终极限制器

虽然我们上面说文档是记住这么多命令的关键,但是还有一个更关键的问题是:即使你找到了文档或书籍,但是你可能发现自己看!不!懂!

每一份文档也都是有阅读基础要求的,不是我每个字都认识我就能理解所有用这些字写出来的东西。可能一些浅显的内容,比如ls的-i选项写着"print the index number of each file",但凡知道"inode number"是什么的就能知道这句的意思。当然连inode number是什么都还不知道的就连这句话也理解不了。有些命令则可能需要专业的理解,比如iptables,dmsetup,debugfs/xfs_db,crash等,你如果不具备相关领域的基础知识,光看使用说明也会是一头雾水,可能每一个术语都够一个新手看很多篇其它文档或论文来了解一番的了。当然如果你真的具备独立阅读这些文档或论文并掌握这方面知识的能力,那这种问题也是挡不住你的。就怕你和你的问题差不只一两层级的知识,那将是以指数级增加的差距。

总之,如果你具备理解文档所需的基础知识,翻阅文档对你来说就像家常便饭一样,比用字典查生僻字还容易。如果你和所需知识差越多的层级,那就像学渣问学霸问题的段子写的那样,能从一个问题追问到解放前。

所以不是"Linux大神"能“记住”这么多命令,而是"Linux大神"具备更多的知识和学习新知识的能力。不是他们命令记得多,而是他们的能力可以让他们快速理解并掌握很多命令的意思。

我就说这三点,不知道看到这里你是否还觉得"Linux大神"是靠什么神奇方法记住众多命令的。隐藏在小小命令行下面的是勤于动手、知识水平、学习能力等众多因素。


user avatar   Ivony 网友的相关建议: 
      

记不住你就自己搞点别名呗……


user avatar   pansz 网友的相关建议: 
      

这个问题透着一股邪乎味儿,怎么看怎么危险啊……

建议专业机构给予支援。


user avatar   niubig 网友的相关建议: 
      

这个问题透着一股邪乎味儿,怎么看怎么危险啊……

建议专业机构给予支援。


user avatar   zhao-hong-xin-17 网友的相关建议: 
      

从道理来说,早减晚增本身是没啥毛病的,毕竟只是个选项,丰俭由人。

大家怕的是某些人通过这些选项,再加点私货。而且这个说法和推迟退休一起出来,由不得大家多想。

按照目前的舆论情况,如果你敢允许早退减拿,估计只要不在体制内的人就统统早退了,反正也没啥规定领了社保就不能接着打工,对吧?甚至还可以把原来交给社保的那块放自己口袋。

所以,让你早退减拿是不可能的,忽悠大家晚退多拿的可能性比较大。




  

相关话题

  Windows 环境下为什么没有免费的 PDF 编辑软件? 
  嵌入式 Linux 如何操作 GPIO ? 
  Linux主机中增加一块内存条后,物理地址如何扩展? 
  Linux C++ 服务器端这条线怎么走?一年半能做出什么? 
  用 VS Code 替代 Vim 可行吗? 
  如何评价 360 安全卫士 for Linux? 
  终端、Shell、tty 和控制台(console)有什么区别? 
  国内有哪些比较好的 Linux 发行版? 
  为什么Linux下要把创建进程分为fork()和exec()(一系列函数)两个函数来处理? 
  Linux不同发行版之间可以互换吗? 

前一个讨论
游戏《战舰世界》里有哪些 bug?
下一个讨论
怎样区分苏27,苏30,苏35,歼11,歼16?





© 2024-12-22 - tinynew.org. All Rights Reserved.
© 2024-12-22 - tinynew.org. 保留所有权利