抱怨:linux命令参数好多啊

2012-11-04 12:38:39 +08:00
 zenomac
命令多,参数多,man page看的一不清二不楚

有些即使读明白了 不实践还是不懂。

而且还要学bash编程。。。

门槛很高的感觉啊。大家都是怎么过来的
一点一点积累?


有没有完全python代替bash 而且体验比较好的解决方案呢
6461 次点击
所在节点    Linux
43 条回复
sivacohan
2012-11-04 12:47:18 +08:00
恩,据unix编程艺术说,unix系统设计的对象就是程序员,众所周知,这个群体对复杂度的容忍是出奇的高。。。
SErHo
2012-11-04 13:16:43 +08:00
不是程序员也用不了那么多的命令和参数,就算是程序员,也不见得必须用多少命令和参数。
thedevil7
2012-11-04 14:16:40 +08:00
1. 不是每个命令都需要所有参数.
2. 很多 man page 底部都有 example.
3. 通常需要的功能可以通过 google 得出对应的命令参数.
4. 多看, 多利用 man page 的搜索功能查找自己需要的信息.

很喜欢 shell 下面的操作感, 因为一切需求都可以通过命令解决.
推荐
1. 跟着鸟哥学 linux, 这本书讲得很基础.
2. 用最小安装盘装一遍 Gentoo(Arch 也可以). 对于刚开始用 linux的同学, 其中可以学到很多东西.
binux
2012-11-04 14:31:32 +08:00
其实你仔细想一想,参数是最简单的解决方案
一个程序如果需要添加功能,参数是最快的,如果是图形化,还得设计相应的UI、UE,最终也会变得非常复杂。如果不添加功能,那就需要为新功能重写一个程序,而这个程序很多功能是相似的,参数虽然简单了,但是你不得不面对一大堆程序。
zenomac
2012-11-04 14:35:53 +08:00
@sivacohan 是啊。。。觉得这个时代man page这种东西应该改良一下啊。


@SErHo 有道理。 还是现用现学。


@thedevil7 嗯,你说的都在做。 只是觉得这一套下来 学习成本有点高。 为什么不能降低复杂度,整体体验更好一些。类unix系统这方面对新手的友好度实在是不敢恭维。2012了都。
thedevil7
2012-11-04 14:58:10 +08:00
@zenomac
因为用的人需要这么多设置. 用 linux 就是为了能够针对自己定制各种东西.
Narcissu5
2012-11-04 15:06:04 +08:00
据说windows server 2012 带了2000多个cmdlet——什么东西搞深了都不简单啊

按照微软的吐糟,bash所以复杂是因为它都是面向字符设计的,没有利用这个时代OOP的特性。说到底linux确实应该有longhorn式的跨越了。
lwjefSub
2012-11-04 15:44:40 +08:00
是挺复杂的,慢慢来吧。

刚看见一篇文章 简洁的bash编程技巧
http://kodango.me/simple-bash-programming-skills
banxi1988
2012-11-04 16:38:32 +08:00
@lwjefSub 看了,不错,感觉中文的bash方面的资料不够多啊,我在ubuntu软件源里有找到 bash高级教程呢。
kakaryan
2012-11-04 17:27:48 +08:00
bash不是重点吧...
重点应该是grep,sed,awk等等一系列牛逼工具的使用,而且要在实际应用中去活学活用,用得多了,这些工具就像水一样自然的从你手里流出来了.
shell编程真的是其次的东西.
推荐你去cu的shell版多泡泡...
http://bbs.chinaunix.net/forum-24-1.html
ssword
2012-11-04 17:43:29 +08:00
当需要某个功能但没有那个参数什么的才是真·坑爹无双(
SAGAN
2012-11-04 17:44:07 +08:00
用多了就熟悉了. 完整的工具链和命令行环境是Linux最好的地方之一. 对比起来Windows的那个PowerShell就跟屎一样.
iwege
2012-11-04 18:01:41 +08:00
论体验论友好,你完全忽视了shell这玩意都是纯文本,搜索、共享、更改都很方便。比起动不动就要看配图,没有配图你都不知道对方在说什么的UI工具而言,这不是已经非常了得了么。

新手根本就不需要知道其他七七八八的东西,拿来命令行,run。一切都解决了,如果他要学习,自己可以分析这个脚本的设计思路,做代码分析等等等等。如果他想将这个脚本部分加入到自己的脚本上来说,也是ok的。

UI 层的确是给某些UI向的新手很大的便利,但是在能改动的层面上,文本才是王道,尤其是UI层无法穷举shell 无尽的组合。但是如果只是普通的 game launcher 这种简单配置,UI层来做是没问题的。
skydark
2012-11-04 18:10:35 +08:00
参数多是为了方便各种人的需求的,对特定人来说一般需要的部分会少很多,用多了自然就能记住自己最常用的那几个了。剩下的记不住就记不住吧。
kodango
2012-11-04 18:35:47 +08:00
@lwjefSub 哈哈 感谢推荐

@zenomac
我个人认为,学习shell有几个条件:
1)你要经常与Linux打交道,最好是命令行。
2)你要对学习有兴趣,你掌握一个命令会很开心,你遇到一个问题会思考着去解决(即使不懂)。
3)你要有主动性,遇到问题不要在论坛上丢下然后就等着,这样永远也解决不了问题。毕竟技术论坛的人气向来不高,回答的滞后性很大。你要学者自己去google搜索,或者像国外的stackoverflow/superuser等纯技术问答社区去找答案。

至于man手册很长,枯燥不易懂,没关系,我看没几个人会去通读整篇手册把。手册是遇到问题查阅用的,本身就不是一篇教程让人学习通读的。

还有命令行参数多的问题,我觉得把功能强的参数肯定多,因为功能多少和参数个数其实是成正比的,但是你可能用到全部参数吗?肯定不会的,你只会用其中的几个(3、4、5个左右),所以不要试图全部掌握,一步一步来,用到得时候再说。

就那grep做例子把,参数也挺多,但是可能你一个参数都不需要,等你哪一天用grep的时候有了忽略大小写的需求是,你在去查grep的help,这是你会发现有一个-i的参数,你也用得到;又到一天,你突然发现你grep的时候想显示在文件的哪一行,这时候你又发现了-n参数。。

等你用久了,你会发现grep比较有用的参数,就有个积累了。

ls命令也一样,最长用的就几个,比如-l/-h/-a,其他的用到时候再说哈哈。

当然也有那种参数很少的,这种命令往往是功能单一比较小巧的命定,比如一些内置命令、head/tail等等。
kodango
2012-11-04 18:51:22 +08:00
补充一句,chinaunix是个好论坛,虽然人不多(?我个人感觉),但是资料很丰富,老一辈们沉淀下来的技术文档很赞。
chenge
2012-11-04 19:04:02 +08:00
其实没那么难。命令参数虽多,常用的就不多,就十多条。请参考我写的短文:linux的六个管理。

http://chenge.diandian.com/post/2012-10-19/40039721456

没有捷径,就是日积月累。shell的基本使用目前看还是必须学的。
hyq
2012-11-04 19:06:29 +08:00
@kodango +1
一般情况下,只要记得几个简单的就够了,然后学会怎么查阅文档。
我觉得学习shell最重要的还是得弄清楚shell的管道和shell的内置命令,如for,[,$((expr)),至于grep,awk,sed等,了解其主要功能特点,重点掌握最常用的功能就行了
像grep的参数,我只记得-v,find的参数,我只记得-name 和-exec。
学精通了当然可以极大地提高效率,但是一般来说,学得差不多就行了。除非你是网管。
Kymair
2012-11-04 19:30:22 +08:00
Unix基于纯文本的管道说实话已经有点过时了… 当然对于一直浸淫在其下的人也许觉得这不是问题
基于JSON或者edn(https://github.com/edn-format/edn)之类的格式应该会好很多

OS X下的services是挺好的IPC, 不像Windows下就只有剪贴板
cabbala
2012-11-04 21:11:50 +08:00
老的MANPAGE最大的问题是EXAMPLE不详细

EXAMPLE是必须的啊必须的,好在现在大家写MANPAGE就写EXAMPLE了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/51675

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX