V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
codermagefox
V2EX  ›  Linux

怎么样才算精通 Linux ?

  •  
  •   codermagefox ·
    CoderMageFox · 2018-01-02 09:48:59 +08:00 · 10113 次点击
    这是一个创建于 2299 天前的主题,其中的信息可能已经有所发展或是发生改变。

    真的比较好奇这个问题,希望能得到一个理性的回答.

    事先声明:

    1.我 Linux 很菜,只是能用的水平,希望大家能用我能听懂的语言描述.当然,不懂的名词我可以去搜.

    2.不希望变成引战贴,我知道一千个人有一千个哈姆雷特,我想知道 V2 各位的哈姆雷特是啥样的.

    3.提这个问题只是单纯的好奇.我是个前端,日常工作中涉及许多 Linux 使用,也看了一点鸟哥的书,说实话都是命令,不太想看.我想要知道运维 /Linux 开发者眼中的精通 Linux 是啥样的.毕竟以我的菜鸡水平,对 Linux 高手是真的很崇拜.

    那么,你心目中的精通 Linux 是什么样的?

    97 条回复    2018-03-20 10:09:05 +08:00
    thinkmore
        1
    thinkmore  
       2018-01-02 09:55:13 +08:00
    你看,大家都不敢回复了
    AppxLite
        2
    AppxLite  
       2018-01-02 09:55:30 +08:00   ❤️ 24
    精通,就是无所不会,无所不知的那种状态,否则,怎么能叫精通?能精通 Linux 之人,不知道 Linux 之父敢不敢自称自己精通 Linux。但是有一批人,可以动不动就敢说出要求程序狗精通 XXX,那就是 HR。
    springsummer
        3
    springsummer  
       2018-01-02 09:55:38 +08:00
    我也是菜鸡。不过 linux 就是命令行操作的吧。也就是跳过图形界面直接用代码说话。命令行都不熟练谈何精通
    codermagefox
        4
    codermagefox  
    OP
       2018-01-02 09:57:02 +08:00
    @AppxLite 我其实本来写了一行:"那些说只有 Linus 精通 Linux 的,请顺便说一下你们是怎么定义熟练掌握 Linux 的",后来怕引战,删掉了
    danili
        5
    danili  
       2018-01-02 09:58:34 +08:00
    所谓精通就是尽可能不会出问题,出了问题知道问题原因也知道如何解决。
    hjc4869
        6
    hjc4869  
       2018-01-02 09:58:48 +08:00 via iPhone
    我觉得楼主可能更多的指精通 GNU 的 userland,而不是 Linux 内核?
    codermagefox
        7
    codermagefox  
    OP
       2018-01-02 09:59:03 +08:00
    @thinkmore 这不是还有你回复了吗.快快快说说,你觉得啥样算精通,没事的,要是有引战的我帮你喷他
    codermagefox
        8
    codermagefox  
    OP
       2018-01-02 10:01:02 +08:00
    @hjc4869 我不懂它们之间的区别,搜了一下,您说的是应用和系统内核的区别吗?
    nosay
        9
    nosay  
       2018-01-02 10:01:31 +08:00
    用了 5 年 linux 只敢说稍微熟练...里面水太深
    alen
        10
    alen  
       2018-01-02 10:05:33 +08:00   ❤️ 1
    去问问 HR,她知道怎么回答你。(手动滑稽
    x18960
        11
    x18960  
       2018-01-02 10:06:07 +08:00
    精通是相对而言的吧
    在外行 输入命令行 人家就认为你是精通
    反之, 你得会 XXX,XXX,XXX,XXX,XXX 然后经验 XX 年 就是精通
    很喜欢 2L
    hundan
        12
    hundan  
       2018-01-02 10:06:27 +08:00 via Android   ❤️ 1
    认真研究过源码和架构的人,知道其优点和不足,能用工具进行更好的操作,遇到问题总是可以很快定位,应该可以说是精通了
    shuperjolly
        13
    shuperjolly  
       2018-01-02 10:10:16 +08:00
    常用功能与问题能一眼看出是那方便的问题,就算是不熟悉的操作或者问题也能快速定位问题并且利用互联网解决问题。到了这个水平我觉得说精通不为过了。
    falcon05
        14
    falcon05  
       2018-01-02 10:17:07 +08:00 via iPhone
    论精通全世界没几个人敢说的,说熟练这里还能聊聊
    pisser
        15
    pisser  
       2018-01-02 10:18:51 +08:00
    为什么要精通,招聘说精通的公司去死。
    codermagefox
        16
    codermagefox  
    OP
       2018-01-02 10:19:47 +08:00
    @falcon05 那么你定义的这几个人是什么水平?或者说,是谁?咱只是讨论一下嘛
    codermagefox
        17
    codermagefox  
    OP
       2018-01-02 10:20:21 +08:00
    @pisser 这里的讨论和 HR 没关系,只和我的好奇心有关:)
    ryanhui
        18
    ryanhui  
       2018-01-02 10:23:53 +08:00
    抛开计算机,在生活里要说精通某样东西恐怕也很难。
    codermagefox
        19
    codermagefox  
    OP
       2018-01-02 10:24:32 +08:00
    @ryanhui 所以不强求是真的精通,只希望看看每个人对精通的不同理解.
    612
        20
    612  
       2018-01-02 10:25:51 +08:00 via iPhone
    我觉得红帽那套总结的挺好的,RHCSA RHCE RHCA 只要不是背题库,真的理解了,熟记了,然后考过了,这几个证可以代表他的 linux 水平。
    gleymonkey
        21
    gleymonkey  
       2018-01-02 10:26:22 +08:00
    精通。。问问李纳斯吧。
    defunct9
        22
    defunct9  
       2018-01-02 10:26:42 +08:00
    精通这 2 个字都不敢说啊,最多敢说熟悉。
    MeteorCat
        23
    MeteorCat  
       2018-01-02 10:28:06 +08:00 via Android
    man xxxx
    jiangzhuo
        24
    jiangzhuo  
       2018-01-02 10:29:37 +08:00
    我觉得以 linus 定义精通没问题吧,难道还有比精通更高的?
    就像以凯瑞甘定义灵能十级一样
    Bardon
        25
    Bardon  
       2018-01-02 10:36:43 +08:00
    所以,简历中附上 HR 认为的精通,觉得没啥问题,🤷‍♂️...
    codermagefox
        26
    codermagefox  
    OP
       2018-01-02 10:37:26 +08:00
    @jiangzhuo 黄旭东灵能十一级
    cevincheung
        27
    cevincheung  
       2018-01-02 10:38:39 +08:00
    我认为所谓精通 linux 就是必须 1 年内给 kernel 提交并被接受 10 次 pull request 吧?
    xratzh
        28
    xratzh  
       2018-01-02 10:41:14 +08:00
    重要部件提交数
    ryd994
        29
    ryd994  
       2018-01-02 10:47:14 +08:00 via Android
    @612 然而那是 RHEL 水平
    Linux 只是内核,除了内核开发者,一般用户自称精通就是笑话
    anjing01
        30
    anjing01  
       2018-01-02 10:49:05 +08:00   ❤️ 10
    之前 linux 架构师,定位一个 nfs v3 问题如下:
    1、查看日志
    2、man 手册
    3、strace 定位
    4、查看官方源码
    5、定位问题后发现是个 bug,发个 issue

    平时用开源软件,经常重新修改源码编译,为了最优解,不像我 dpkg/apt/yum/zypper/rpm 去搞...不过人家有足够的时间折腾,就是干这个的。他从来都只说是比我们多看了点书而已,经常去参加各类聚会——技术大咖类型的那种讨论会。

    ——对了,当初我刚进那个公司写的 shell 脚本,被他批的那个惨啊,至今记忆犹新:
    1、脚本用法说明呢?版本号呢?
    2、这个系统判断呢?(线上绝大部分是 debian 系统)
    3、这个错误退出提示呢?
    4、这个日志输出呢?
    5、这个环境变量不加,也不加绝对路径,万一命令位置不对呢?
    6、不要用``,要用$()
    7、这个重复的操作,写个函数不行么...
    8、....

    shell 脚本不就命令堆叠么,整那么复杂,后来让我看看 /etc/init.d/里面的各类启动脚本,要以这个为标准写 shell 脚本...
    Lonely
        31
    Lonely  
       2018-01-02 10:49:24 +08:00 via iPhone
    那我问问楼主,怎样才叫精通前端呢?
    dychenyi
        32
    dychenyi  
       2018-01-02 10:50:11 +08:00   ❤️ 2
    精通一词博大精深。。。
    请问你精通吃饭吗? 未必。。
    WispZhan
        33
    WispZhan  
       2018-01-02 10:53:24 +08:00
    看是什么方向。内核?驱动?应用?运维?日常使用?
    codermagefox
        34
    codermagefox  
    OP
       2018-01-02 10:53:36 +08:00
    @Lonely 那我抖个机灵,Brendan Eich 就是精通前端了:)
    612
        35
    612  
       2018-01-02 10:53:51 +08:00 via iPhone
    @ryd994 对的,只是 RHEL,我的遗漏。
    sunnyadam
        36
    sunnyadam  
       2018-01-02 11:02:15 +08:00
    谁敢说精通。。。。我都只敢说了解,会用 lol
    chenyu0532
        37
    chenyu0532  
       2018-01-02 11:05:12 +08:00
    不要执迷于这些,努力提高自己就可以了
    WispZhan
        38
    WispZhan  
       2018-01-02 11:05:43 +08:00
    @WispZhan 噢,看到楼主说了是运维。我对运维了解不多。
    必要的起码是:
    1.精通 Shell 或者至少一门其他脚本语言。
    2.日志管理
    3.常用开发环境搭建
    4.遇到 Linux 平台下的日常运维问题能够解决问题,并且了解原因以及常用解决办法。
    5.防火墙
    6.网络配置(虚拟网络,网桥,DNS,NAT 等等)
    7.系统用户权限配置
    8.Linux 服务(譬如 systemd 的配置或者写法)

    balbalabal 之类的一大堆。


    ---
    还有现在的自动化方向的 CI/CD,容器以及虚拟化方向的 K8s,openstack 等等
    hardman
        39
    hardman  
       2018-01-02 11:06:33 +08:00
    精通 是有自己的一套方法也可以给其他人布道
    codermagefox
        40
    codermagefox  
    OP
       2018-01-02 11:07:26 +08:00
    @chenyu0532 单纯好奇.
    zoffy
        41
    zoffy  
       2018-01-02 11:10:06 +08:00   ❤️ 1
    "精通"这个词已经违反程序员的政治正确了
    zlfzy
        42
    zlfzy  
       2018-01-02 11:10:46 +08:00
    人家问你会 linux 吗,你不要说熟悉或者还好,更不要说精通
    你要说“略懂,略懂”。
    深藏功与名
    codermagefox
        43
    codermagefox  
    OP
       2018-01-02 11:11:58 +08:00
    @zoffy
    @zlfzy
    只是单纯好奇,和找工作啥的都无关.求大佬们给我描述一下你们认为的精通是啥样的,就算政治不正确的也行
    lykme
        44
    lykme  
       2018-01-02 11:21:07 +08:00
    招聘的要求是我亲自打的,对于不同技术栈有不同要求。Linux 要求精通也得看哪个位面。
    相反好多求职者简历上自己写精通的不少,比如精通 MySQL、精通 Linux。一般这么写的,多半是水货
    pq
        45
    pq  
       2018-01-02 11:21:55 +08:00
    如果是指某个发行版,我觉得没人敢自称“精通” Linux ;如果单指内核,可能会有部分开发者是精通的吧;如果是指从传统 UNIX 继承下来的那些东西,比如 sed & awk 之类,基本上学习半年就算精通了。。。
    Cambrian07
        46
    Cambrian07  
       2018-01-02 11:36:19 +08:00   ❤️ 1
    感觉自己开发的系统都不敢说精通了……
    citydog
        47
    citydog  
       2018-01-02 11:47:57 +08:00
    怎么才算精通 windows ?用了这么多年 windows 了,谁来带头吹个牛逼?哈哈
    codermagefox
        48
    codermagefox  
    OP
       2018-01-02 11:48:42 +08:00
    @citydog 我会 windows 系统的开关机.
    Flygoat
        49
    Flygoat  
       2018-01-02 11:51:40 +08:00 via iPhone
    @cevincheung 10 个 commit/patch 还可以 pr 有点过分了
    全世界能给 kernel pr 的也没多少人
    AngelCriss
        50
    AngelCriss  
       2018-01-02 11:51:54 +08:00 via Android
    怎么样才算精通 Windows ?
    mengzhuo
        51
    mengzhuo  
       2018-01-02 12:00:07 +08:00
    光内核我觉得应该是从按下电源键到 shell 执行命令,内存、中断、进程、线程、信号管理,CPU 指令、平台差异所有流程和代码都知道

    运维的话,参考楼上吧
    webjin1
        52
    webjin1  
       2018-01-02 12:09:05 +08:00 via Android
    是啊,一千个人有一千个哈利波特,没必要纠结。
    uuair
        53
    uuair  
       2018-01-02 12:12:54 +08:00   ❤️ 1
    在很早以前的绿色联盟的 irc 里面,有一个程序员,每天默默无闻的聊聊天,搞搞技术,后来出了一些花边新闻,就是黑了那个那个服务器,发现了那个那个漏洞,然后哥们准备去上班了,为了熟悉 linux,自己动手写了一个,完全自己写了一个,虽然跟现有的 linux 一样,但是从各个方面写了一遍。
    这样的人,我觉得就是精通 linux 了。
    tabris17
        54
    tabris17  
       2018-01-02 12:13:40 +08:00
    我说个内核功能,你能报出源代码在哪个文件哪几行,这样应该就算精通了
    cevincheung
        55
    cevincheung  
       2018-01-02 12:15:04 +08:00
    @Flygoat #49 对啊。HR 不是要“精通”吗? 呵呵呵呵呵呵呵呵呵呵呵,自己公司给多少钱 HR 自己心里没点 B 数吗。233333
    willakira
        56
    willakira  
       2018-01-02 12:21:45 +08:00   ❤️ 1
    精通和 bugfree 一样,基本上都是不可能的
    一定要理解的话,就是在自己的 role 职责范围内能够用 Linux 将 productivity 发挥到比较高的水准
    case by case:
    - 有的人比较擅长内核调优而且职责就是 Performance Engineer。
    - 有的人是运维工程师,脚本和各种命令工具用的飞起
    - 有的人是 SWE,linux 下面能够熟练使用各种开发和调试工具
    这些我觉得都可以认为是精通 Linux
    wweir
        57
    wweir  
       2018-01-02 12:24:39 +08:00   ❤️ 1
    使用《性能之颠》里的一句话回答这个问题:
    所谓专家,就是在即使很小的领域,把所有的坑踩了一圈的人。
    northisland
        58
    northisland  
       2018-01-02 12:27:45 +08:00 via iPhone
    翻过文件系统的代码
    Macbooker
        59
    Macbooker  
       2018-01-02 12:36:16 +08:00 via iPhone
    @ryanhui 大厨师能不能说精通烹饪
    赛车手能不能说精通驾驶
    全运会季军能不能说精通某体育项目

    没必要把精通的门槛提那么高,那叫大师
    我觉得前 5%足以算得上精通
    AppxLite
        60
    AppxLite  
       2018-01-02 12:36:18 +08:00
    @danili 这不是叫熟悉么?
    misaka19000
        61
    misaka19000  
       2018-01-02 12:59:19 +08:00
    读了 Linux 最新内核的源码并且能独立写出一个相似的操作系统内核,这应该算是精通了吧。熟悉了 Linux 操作的那种只能算是 API 程序员👨‍💻‍
    SgtDaJim
        62
    SgtDaJim  
       2018-01-02 13:13:48 +08:00
    @anjing01
    6、不要用``,要用$()

    请教下这是为什么?
    watara
        63
    watara  
       2018-01-02 13:40:04 +08:00   ❤️ 1
    @SgtDaJim 我也应为这个被说过,不过没说为啥,我的理解可能是容易和单引号弄混吧
    aksoft
        64
    aksoft  
       2018-01-02 13:40:21 +08:00
    用固定电话按一个 phone linux。。。
    Attenuation
        65
    Attenuation  
       2018-01-02 13:49:17 +08:00
    提问:怎样精通 c++?
    reticentfat
        66
    reticentfat  
       2018-01-02 14:02:14 +08:00
    能够再造一个轮子就是内核
    daiwa
        67
    daiwa  
       2018-01-02 14:15:03 +08:00   ❤️ 1
    @SgtDaJim @watara `` 嵌套处理比较麻烦,不如 $() 直观
    laycher
        68
    laycher  
       2018-01-02 14:41:07 +08:00
    面试简历上都这么写的。
    wclebb
        69
    wclebb  
       2018-01-02 14:44:45 +08:00
    怎么说呢……
    能达到 1%领域的人,才能自称精通吧?……

    上次我在简历上写熟悉 PhotoShop 等几个软件时,我想了想总觉得熟悉这两个字好像有什么不对的地方……
    123s
        70
    123s  
       2018-01-02 15:02:00 +08:00
    修改内核,写驱动?
    abcbit
        71
    abcbit  
       2018-01-02 15:24:56 +08:00 via iPhone
    @aksoft 只用 0 和 1 嗎?很久以前有大神這樣做了一個 win95
    msg7086
        72
    msg7086  
       2018-01-02 15:54:12 +08:00
    迈向精通 Linux 的第一步:先搞清楚精通 Linux 到底是在精通什么。
    GNU userland ?
    Linux ?
    各大发行版?
    桌面?
    Shell script ?
    运维?

    ( Linux 就是一个内核。你平时用的 Linux,全名叫 Linux 发行版,就是把一堆软件包在 Linux 内核外面,让人能用。)
    konakona
        73
    konakona  
       2018-01-02 17:07:11 +08:00
    1. 记住与日常工作有关的一切命令和命令里的参数。
    2. 遇到任何问题,都能有大概思路知道如何去解决问题,并且速度快,效率高。

    这就叫熟悉。

    至于精通,你可以靠写一本 Linux 深入浅出来自我实现。
    salmon5
        74
    salmon5  
       2018-01-02 17:17:09 +08:00
    简历里面 写各种精通的,一律 KO,绝对没错。
    redapple0204
        75
    redapple0204  
       2018-01-02 19:42:06 +08:00
    简单点说,比如你发现一个进程总是占用 100% CPU,通过层层检查,发现是显卡驱动中的一个 针对特别硬件的新 bug。然后你决定修改驱动,同时顺便优化了一下 kernel 相关代码,一夜之后,当黎明的曙光照在显示屏上时,你决定将修改部分提交到社区。三天后,Linus 群发邮件,说这将是下一个 kernel 版本的一个重要特性,并感谢你的贡献。当然,你并没有及时看到邮件,因为你正一边搂着女友,一边跟她讲多年前看过的《暗店街》。

    作者:wsivoky
    链接: https://www.zhihu.com/question/23834032/answer/31723357
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    PythonAnswer
        76
    PythonAnswer  
       2018-01-02 22:26:03 +08:00 via Android
    熟练日常使用,已经很 nb 了。碰到问题能解决,机器保持流畅稳定运行,有时还能向社区提个 bug。
    tszyh
        77
    tszyh  
       2018-01-02 23:05:42 +08:00
    只敢说熟练
    tiankong233
        78
    tiankong233  
       2018-01-02 23:40:13 +08:00 via Android
    请问我会用一键脚本搭个酸酸的那种算入门吗?
    ydxred
        79
    ydxred  
       2018-01-03 01:41:01 +08:00
    多使用 rm -rf / 就会越来越熟练的
    lulinux
        80
    lulinux  
       2018-01-03 07:01:15 +08:00 via Android
    小撸主义认为:形容词通常用于竞争和冲突,而且描述一件事物的性质总是有一个相对参照物的。前一句可以让你看透,后一句可以让你看开。
    wonpn
        81
    wonpn  
       2018-01-03 08:38:39 +08:00 via Android
    精通 windows,linux,android,ios 等单词的发音与拼写
    dawncold
        82
    dawncold  
       2018-01-03 08:58:52 +08:00
    熟悉 Linux 内核模块的结构,能改的动,熟悉几个发行版的使用?常用命令使用,排查问题能知道搜什么内容就可以吧
    lixuedong
        83
    lixuedong  
       2018-01-03 09:58:08 +08:00
    @ydxred 前边得加上 sudo 呀
    shuizhengqi
        84
    shuizhengqi  
       2018-01-03 10:03:46 +08:00
    可以手写内核,并开发出类似安卓的系统
    innoink
        85
    innoink  
       2018-01-03 10:06:41 +08:00
    单纯一个精通,没有参照,没法说,应该放在一个评价体系当中
    比如,按照水平分出 1-10 个等级,规定“精通”代表哪一级,是第 5 级还是第 10 级
    hqdmy
        86
    hqdmy  
       2018-01-03 10:36:11 +08:00
    这个词啊,现在就不要叫真儿啦.就跟"美女""帅哥"一样
    huiyue
        87
    huiyue  
       2018-01-03 10:47:55 +08:00
    从不敢说精通任何一样东西。
    jadeity
        88
    jadeity  
       2018-01-03 11:11:39 +08:00
    自己发行一个版本
    est
        89
    est  
       2018-01-03 11:20:04 +08:00   ❤️ 2
    跟 Linus 结婚。
    codermagefox
        90
    codermagefox  
    OP
       2018-01-03 11:39:43 +08:00
    @est 加入,特别关注
    SingeeKing
        91
    SingeeKing  
       2018-01-03 12:42:19 +08:00
    个人感觉 Linux 不存在精通,只能精通某些发行版吧
    vjnjc
        92
    vjnjc  
       2018-01-03 14:09:35 +08:00
    题目问的不好,比如怎样才能称得上是精通算法。据我所知,很多算法很厉害的哥们都不会自夸说精通算法,因为找出一题他不会的算法太容易了。
    anjing01
        93
    anjing01  
       2018-01-03 18:13:13 +08:00
    @SgtDaJim 美观好用把?好像官方也建议用这个
    SgtDaJim
        94
    SgtDaJim  
       2018-01-04 09:25:13 +08:00
    @anjing01 我也不清楚。。我也是被人推荐然后一直用$()。。觉得确实是能避免'和`的混淆。。
    yylucifer
        95
    yylucifer  
       2018-01-05 09:45:19 +08:00
    好像 Linus 都不敢说自己精通 Linux。。
    kinneyyan
        96
    kinneyyan  
       2018-01-06 10:53:13 +08:00 via Android
    @AppxLite 哈哈哈兄弟说得走心了
    thinkmore
        97
    thinkmore  
       2018-03-20 10:09:05 +08:00
    @codermagefox 我认为精通就是出了什么 Linux 相关的问题,你都知道怎么产生的并且知道解决方案
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2755 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 12:49 · PVG 20:49 · LAX 05:49 · JFK 08:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.