V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
xvid73
V2EX  ›  分享创造

tldr.py: 妈妈再也不用担心我使用命令行了

  •  2
     
  •   xvid73 ·
    lord63 · 2015-10-25 22:19:14 +08:00 · 7805 次点击
    这是一个创建于 3323 天前的主题,其中的信息可能已经有所发展或是发生改变。

    tldr.py 实际上是 tldr 的一个命令行程序,帮助你快速查看命令的常用用法。tldr 是什么呢?按照官方的说法:

    Simplified and community-driven man pages.

    也就是说,是精简版的 man 。相比大而全的 man , tldr 是把常用和命令和选项提炼了出来方便你使用。之前也有一个很火的项目: the-art-of-command-line, 它的介绍是:

    Master the command line, in one page

    tldr 现在已经有很多大家贡献的命令,或许有些没有,或许有些不够好,这也许是一个诟病。但是不用担心,因为你完全可以自己总结,使用并维护自己的那一份,感觉不错的也可以去官方 repo 提个 PR 分享一下。当然,这是方便使用而已,需要深入使用或者其他场景使用的,那就使用 man 吧。


    下面说说这个 tldr.py , 具体的安装和初始化工作这里不再赘述,请前往 github 了解更为详细的说明

    具体日常的使用, 比如说想知道 du 这个命令的常用用法,

    $ tldr find du
    
    Estimate file space usage
    
    - get a sum of the total size of a file/folder in human readable units
    
      du -sh {{file/directory}}
    
    - list file sizes of a directory and any subdirectories in KB
    
      du -k {{file/directory}}
    
    - get recursively, individual file/folder sizes in human readable form
    
      du -ah {{directory}}
    
    - list the KB sizes of directories for N levels below the specified directory
    
      du --max-depth=1
    

    当然,实际上的显示是有颜色的,你也可以在配置文件中自行修改调整。基本的使用就是这样。


    详细的用法和说明都在 github 上。

    有问题和新的想法可以提。有兴趣的试用一下吧~期待测试回馈和使用感受
    就酱。

    第 1 条附言  ·  2015-10-31 18:45:43 +08:00

    提一下,之前已经有过一个 tldr 的客户端名字叫做 tldr ,它是直接发请求的,所以有时候使用时会感到些许延迟。 tldr.py 是使用本地文件的,前提是需要你手动 clone 下来 tldr 的 repo 。安装使用时请注意使用 pip install tldr.py,不要搞混了,详细说明请仔细阅读 github 的 readme 说明。有问题和想法欢迎继续反馈~

    32 条回复    2015-11-02 15:44:27 +08:00
    jukka
        1
    jukka  
       2015-10-25 23:51:56 +08:00 via iPhone
    其实很多人看不懂 man 不是因为长,是因为英文不好。
    MCVector
        2
    MCVector  
       2015-10-26 01:12:01 +08:00   ❤️ 1
    @jukka 我觉得 man 的可读性确实不高,相对于 HowTo 文档。
    jiang42
        3
    jiang42  
       2015-10-26 03:08:10 +08:00
    @jukka 看不懂有啥办法呢-。-反正我是因为太长不想看
    SharkIng
        4
    SharkIng  
       2015-10-26 07:01:08 +08:00
    cheat 是不是也一样这功能?
    imn1
        5
    imn1  
       2015-10-26 07:57:17 +08:00
    man 对我来说更多不是英文,而是完全没有例子,很多命令要自己试
    但有部分命令是不能试的,一试可能会很惨
    iambic
        6
    iambic  
       2015-10-26 09:49:26 +08:00
    这个跟 cheat 有什么区别呢?
    iambic
        7
    iambic  
       2015-10-26 09:50:19 +08:00
    hqs123
        8
    hqs123  
       2015-10-26 10:06:05 +08:00
    一堆鸡肠看不懂感觉楼主很厉害...
    xiaket
        9
    xiaket  
       2015-10-26 10:40:25 +08:00
    顺着这个 thread 说句, 个人觉得没有耐心读完 man 的人不太适合做技术工作...
    xvid73
        10
    xvid73  
    OP
       2015-10-26 10:44:10 +08:00
    @iambic 噗,之前我不知道这个项目 _(:3
    粗看了下,要是说区别的话, tldr 是只提供 man page ,对应的其他语言的客户端是其他开发者开发的, cheat 则自身有 cli 的同时还附带了默认的 man page 。看了下项目的起始时间, cheat 要稍微要早点。两者的思想基本是差不多的,都是提供简化常用的命令说明,但是 tldr 更注重提供原始的 man page ,把 man page 和具体实现剥离开来,开发其他平台和不同语言的都可以使用它。个人看法是这样。
    demo
        11
    demo  
       2015-10-26 11:32:15 +08:00
    没有 cheat 反应快
    joshz
        12
    joshz  
       2015-10-26 11:35:53 +08:00 via Android
    @xiaket 不大赞同,你如果没看过书,直接从 man page 学的,那我无话可说。但很显然大部分人都是通过书籍来度过最难过的入门阶段才可能去关注具体某个命令的个别参数的。把 man page 当 api 文档都挺难看,更别说通过这个来学习 shell 。重要的是 example 太少。
    joshz
        13
    joshz  
       2015-10-26 11:38:51 +08:00 via Android
    不过 man page 维护者写的书 Linux programming interface 口碑爆棚,很奇怪,可能是定位问题。
    xvid73
        14
    xvid73  
    OP
       2015-10-26 11:42:06 +08:00
    @demo 是说敲好命令后的反应么? tldr.py 是使用本地的文件的,应该速度不会太慢的,基本都没有延迟这种感觉的吧。求详细说明。
    demo
        15
    demo  
       2015-10-27 10:04:02 +08:00
    @xvid73 很明显就感觉得到,你在 shell 里试试:

    tldr :

    t1=`date +%s`;s1=`tldr tar`;t2=`date +%s`;echo ${t1}'\n'${t2};

    cheat :

    t3=`date +%s`;s2=`cheat tar`;t4=`date +%s`;echo ${t3}'\n'${t4};
    xvid73
        16
    xvid73  
    OP
       2015-10-27 10:50:37 +08:00
    @demo 我这里的测试情况都是 1 秒之内的。
    另外, tldr.py 的命令是 `tldr find tar` 而不是 `tldr tar`。之前已经有过一个 python 版本的叫做 tldr ,它是直接发请求的。 tldr.py 是使用本地文件的,命令执行速度理论上应该察觉不到延迟。
    你是在用 tld.py 么 _(:3
    xvid73
        17
    xvid73  
    OP
       2015-10-27 10:57:30 +08:00
    @demo 准确来说, tldr.py 的确要比 cheat 速度慢,但是这个级别是在 0.05 秒左右,对于一般用户来说使用时是感觉不到速度差别的吧。 _(:3
    kamushin
        18
    kamushin  
       2015-10-30 10:14:05 +08:00
    kamushin
        19
    kamushin  
       2015-10-30 10:15:43 +08:00
    @xiaket
    不,我觉得这个和 man 不冲突. 我们既需要大辞典也需要小词典不是么?
    有时候 man 里选项多的实在不想去看. 而有些选项是重要的, 有些选项则几乎用不到.
    wyf88
        20
    wyf88  
       2015-10-30 23:52:28 +08:00
    我也感觉反应速度好慢,然后发现要联网才能使用,只有我是这样吗?我是用 homebrew 安装的。
    xvid73
        21
    xvid73  
    OP
       2015-10-31 07:30:02 +08:00   ❤️ 1
    @wyf88 你安装的是 tldr.py 么?注意之前还有一个叫做 tldr 的,这个是需要联网的,因为它是直接发请求的。 tldr.py 是使用本地文件的,是不需要联网的 。你看看是不是这样 _(:3
    xvid73
        22
    xvid73  
    OP
       2015-10-31 07:31:36 +08:00
    @wyf88 安装请使用 `pip install tldr.py`, homebrew 那边我好像没搞啊。请继续反馈后续情况。
    wyf88
        23
    wyf88  
       2015-10-31 17:31:25 +08:00
    @xvid73 哦抱歉的确是我搞错了,我以为和这个 https://github.com/tldr-pages/tldr-python-client 是一样的。楼主这个不需要联网的很方便啊,赞!
    xvid73
        24
    xvid73  
    OP
       2015-10-31 18:31:14 +08:00
    @wyf88 恩,官方那边的话 issue 已经提及过新的 tldr.py ,但是我想先测试使用一段时间再去提个 PR 合进去,如果有许多问题的话就难为情了 _(:3
    基于本地文件的话不但速度快,而且可以自定义使用自己修改的 man pages 呢~
    Chrics
        25
    Chrics  
       2015-10-31 22:42:44 +08:00
    没有 mac 版不开心
    timqian
        26
    timqian  
       2015-10-31 23:43:46 +08:00 via Android
    的确是一个痛点,看到这个工具后感觉的确是这样。机会藏在生活中的不便之处。。。
    xvid73
        27
    xvid73  
    OP
       2015-11-01 09:10:52 +08:00
    @Chrics 没有环境测试 mac, 不过你可以用 virtualenv 建个虚拟环境装一下试试看,看看能不能用,我估计应该可以用的 _(:3
    vivisidea
        28
    vivisidea  
       2015-11-02 12:17:37 +08:00
    @iambic
    cheat 好评

    xx@xx-SSD:~$ cheat find
    # To find files by case-insensitive extension (ex: .jpg, .JPG, .jpG):
    find . -iname "*.jpg"

    # To find directories:
    find . -type d

    # To find files:
    find . -type f

    # To find files by octal permission:
    find . -type f -perm 777

    # To find files with setuid bit set:
    find . -xdev \( -perm -4000 \) -type f -print0 | xargs -0 ls -l

    # To find files with extension '.txt' and remove them:
    find ./path/ -name '*.txt' -exec rm '{}' \;

    # To find files with extension '.txt' and look for a string into them:
    find ./path/ -name '*.txt' | xargs grep 'string'

    # To find files with size bigger than 5 Mb and sort them by size:
    find . -size +5M -type f -print0 | xargs -0 ls -Ssh | sort -z

    # To find files bigger thank 2 MB and list them:
    find . -type f -size +20000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

    # To find files modified more than 7 days ago and list file information
    find . -type f -mtime +7d -ls

    # To find symlinks owned by a user and list file information
    find . -type l --user=username -ls

    # To search for and delete empty directories
    find . -type d -empty -exec rmdir {} \;

    # To search for directories named build at a max depth of 2 directories
    find . -maxdepth 2 -name build -type d

    # To search all files who are not in .git directory
    find . ! -iwholename '*.git*' -type f

    # Find all files that have the same node (hard link) as MY_FILE_HERE
    find . -type f -samefile MY_FILE_HERE 2>/dev/null
    vivisidea
        29
    vivisidea  
       2015-11-02 12:20:16 +08:00
    ```
    vivi@vivi-SSD:~$ seq 9 | sed 'H;g' | awk -v RS='' '{for(i=1;i<=NF;i++)printf("%dx%d=%d%s", i, NR, i*NR, i==NR?"\n":"\t")}'
    1x1=1
    1x2=2 2x2=4
    1x3=3 2x3=6 3x3=9
    1x4=4 2x4=8 3x4=12 4x4=16
    1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
    1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
    1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
    1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
    1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
    ```

    cheat awk 里面看到有个 9x9 乘法表的 example 。。。
    picasso250
        30
    picasso250  
       2015-11-02 14:00:34 +08:00
    http://git.oschina.net/xiaochi2/tldr-go

    我觉得只要把文档同步到国内就解决了吧。欢迎试用:

    go get git.oschina.net/xiaochi2/tldr-go
    tldr-go tar
    xvid73
        31
    xvid73  
    OP
       2015-11-02 15:40:02 +08:00
    @vivisidea 我没用过 cheat ,不过看到 find 那么多例子想到一点, tldr 的倾向是例子不要太多,五六个最多。
    就实现方式和发展而言,个人是看好 tldr 的。因为它把 man pages 和具体实现分开了。而其他语言版本的客户端在使用过程中会反馈给主 repo tldr , man pages 会越来越完善的。
    xvid73
        32
    xvid73  
    OP
       2015-11-02 15:44:27 +08:00
    @picasso250 赞~

    使用本地文件不仅速度快,可以离线使用,而且可以自定义修改使用自己的习惯,改改本地的 markdown 文件就马上可以用了。使用远端的我感觉总归是麻烦些。

    使用在线的好处有可以保持最新,不用额外的配置。

    个人比较喜欢本地的,实现时就用了本地的文件了 _(:3
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2868 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 06:47 · PVG 14:47 · LAX 22:47 · JFK 01:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.