Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
gaoyadianta
V2EX  ›  Linux

shell 脚本的教程

  •  
  •   gaoyadianta · Jun 9, 2017 · 7831 views
    This topic created in 3436 days ago, the information mentioned may be changed or developed.

    大家有什么推荐的么,在线教程或者书籍都可以,欢迎推荐

    Supplement 1  ·  Jun 12, 2017
    看大家好多人好像对 shell 脚本的易用性都是槽点慢慢,那大家一般用什么脚本做类似的工作呢?能完全替代 shell 的
    51 replies  •  2017-06-11 14:35:45 +08:00
    jswh
    jswh
    Jun 9, 2017
    1
    man bash
    GG668v26Fd55CP5W
    GG668v26Fd55CP5W
    Jun 9, 2017
    2
    自己学,然后写一本。
    gaoyadianta
    gaoyadianta
    OP
    Jun 9, 2017
    3
    @falcon05 咳咳,正在自己学,怎么学呢
    gaoyadianta
    gaoyadianta
    OP
    Jun 9, 2017
    4
    @jswh 现在好像默认的 shell 是 dash 吧,这样 man 出来的是命令行?跟写脚本文件一样?
    jswh
    jswh
    Jun 9, 2017
    5
    @gaoyadianta 我不知道 dash,但是大部分都是兼容 bash 的。而且,一般服务器端的脚本执行也都是 bash 吧。
    rrubick
    rrubick
    Jun 9, 2017
    6
    cxbig
    cxbig
    Jun 9, 2017
    7
    鸟哥的 Linux 系列书籍不错。
    实际运用都是拿到需求后 Google 解决方案。
    linus3389
    linus3389
    Jun 9, 2017
    8
    pip install cheat
    Miy4mori
    Miy4mori
    Jun 9, 2017 via iPhone
    9
    我个人比较喜欢《 Shell 脚本学习指南》这本,另外我很好奇 dash 是什么?
    Miy4mori
    Miy4mori
    Jun 9, 2017 via iPhone
    10
    @gaoyadianta 一般默认都是 bash,但是不一定,不过 sh 是都有的。
    aheadlead
    aheadlead
    Jun 9, 2017
    11
    我觉得还是仔细考虑下是不是一定要用 shell
    感觉学 shell 非常痛苦… 各种奇技淫巧 读也读不懂
    gaoyadianta
    gaoyadianta
    OP
    Jun 9, 2017
    12
    @Miy4mori sh 就是指向 dash 的软连接
    gaoyadianta
    gaoyadianta
    OP
    Jun 9, 2017
    13
    @cxbig 我说的是脚本,不是 Linux 开发,基本语法之类的
    gaoyadianta
    gaoyadianta
    OP
    Jun 9, 2017
    14
    @aheadlead 是呢,那你觉得什么脚本好一些,python 吗
    cxbig
    cxbig
    Jun 9, 2017
    15
    @gaoyadianta
    你说的 dash 可能是一个 Mac 的技术手册 App
    1. sh 是 sh,bash 是 bash。他们不是一个东西,sh 更基础。
    2. shell 脚本就是基本 命令堆起来的。
    cxbig
    cxbig
    Jun 9, 2017
    16
    @gaoyadianta
    如果你会 PHP/Python/Ruby/Go/Node 这些语言,可以用他们来实现你的需求。
    比原生 shell 来的快,只要目标机器装有这些语言的支持就行。
    Miy4mori
    Miy4mori
    Jun 9, 2017 via iPhone
    17
    @gaoyadianta 我大概查了一下,你可能说的是 ubuntu 自某个版本后把 sh 指向了 dash,之前都是指向 bash 的。shell 脚本可以指定以什么 shell 执行的,这些都不是问题,最通用的应该还是 bash。
    gaoyadianta
    gaoyadianta
    OP
    Jun 9, 2017
    18
    @cxbig 不是,我不用 mac,dash 是符合 posix 标准的 shell,是 ubuntu 默认的 shell,sh 就是指向 dash 的软连接。是命令堆起来的我知道,但是还是有差别的嘛,就比方说写循环,写函数之类的
    gaoyadianta
    gaoyadianta
    OP
    Jun 9, 2017
    19
    @Miy4mori ubuntu6.5 以后就默认 dash 了,这俩差别很小,我去搜搜你说的那本
    gaoyadianta
    gaoyadianta
    OP
    Jun 9, 2017
    20
    @magic3584 全英文看起来有压力啊
    neighbads
    neighbads
    Jun 9, 2017
    22
    直接去翻系统的 脚本。。。。。翻个几个就差不多了。。。
    momocraft
    momocraft
    Jun 9, 2017
    23
    仍然推荐 bash: 足够普及, 而且比 posix sh 多一些方便的功能. 看 abs 那本书就行.

    性能一般不是问题, 或者说需要 sh 做的事再慢也有限
    cxbig
    cxbig
    Jun 9, 2017
    24
    @gaoyadianta
    要不你去确认一下? Ubuntu 默认的是 Bash,Dash 是哪来的?
    sh 是 linux 最核心的命令解释器,bash/zsh 这些是基于它的扩展。你搞反了。

    命令行也可以直接写函数和循环啊。shell 脚本文件只是一个承载命令的文件而已。
    gaoyadianta
    gaoyadianta
    OP
    Jun 9, 2017
    25
    @knightdf 这网站不错啊,回头看看
    gaoyadianta
    gaoyadianta
    OP
    Jun 9, 2017
    26
    @momocraft abs 那本?没懂
    gaoyadianta
    gaoyadianta
    OP
    Jun 9, 2017
    27
    @cxbig 确认了,ubuntu 默认的就是 dash,https://wiki.ubuntu.com/DashAsBinSh
    只不过这两个的差别很小,怎么大家一直在讨论这个问题了...
    你说的我懂,但是我就是需要一个教程...比方说,我有一个很复杂的功能,总不能一行一行敲命令行吧,我要写脚本程序的话,语法缩进之类的和命令行是有差别的,关键是,命令行也要学啊,所以都得需要一个教程啊
    LCD
    LCD
    Jun 9, 2017 via Android
    28
    恕我愚钝,dash 是啥?
    cxbig
    cxbig
    Jun 9, 2017
    29
    @gaoyadianta
    好吧,算我孤陋寡闻,还真有个 Dash。从未用过。从 0804 上手 Ubuntu 开始就一直用的是 Bash。
    是有略微的差别,但是不大。你去网上搜的解决方案基本都可以直接放文件里跑。
    缩进不影响功能,只影响阅读。
    都是一步步来的,我也是一个个命令手动试,成功了放文件里。
    wlsnx
    wlsnx
    Jun 9, 2017
    30
    shell 不是 python,不强制缩进,语法也和命令行没区别,教程到网上随便一找就有了。推荐《 Linux 命令行与 shell 脚本编程大全》,还有 https://github.com/jlevy/the-art-of-command-line
    ynyounuo
    ynyounuo
    Jun 9, 2017
    32
    @gaoyadianta
    @cxbig
    同样学习了,从没有了解过 dash - -
    gaoyadianta
    gaoyadianta
    OP
    Jun 9, 2017
    33
    @cxbig 恩,好的
    @LCD 可以参考下回复,说的挺清楚了
    @wlsnx 还是有些需要注意的问题的,有些问题写命令行的话,是不会遇到的
    @deweixu 谢谢~
    momocraft
    momocraft
    Jun 9, 2017
    34
    @gaoyadianta Advanced Bash-Scripting Guide http://tldp.org/LDP/abs/html/
    wanglaihuai
    wanglaihuai
    Jun 10, 2017 via Android❤️1
    35
    大神们没人看过这个网站呢? http://man.linuxde.net
    cxbig
    cxbig
    Jun 10, 2017
    36
    @wanglaihuai
    这个太差了,很简单的命令都识别不了。
    试试了下:
    find . -type f
    =>
    很抱歉,你查询的 *** 命令还没有被录入!

    用这个好了:
    https://explainshell.com/
    wanglaihuai
    wanglaihuai
    Jun 10, 2017 via Android
    37
    @cxbig 原来如此,多谢大神指点😃
    Owenjia
    Owenjia
    Jun 10, 2017
    38
    推荐看下下面这两个:
    穷佐罗的 Linux 书 http://liwei.life/category/shell/
    快乐的 Linux 命令行( The Linux Command Line 中文版) http://billie66.github.io/TLCL/index.html
    CYKun
    CYKun
    Jun 10, 2017 via Android
    39
    《 Linux Shell 脚本攻略》
    happywowwow
    happywowwow
    Jun 10, 2017
    40
    语法特性太多 我是记不住
    之前看这个 每次要写的时候还是要拿来看一看 http://www.cnblogs.com/barrychiao/archive/2012/10/22/2733210.html
    还有一个 http://mywiki.wooledge.org/BashFAQ
    sss3600123
    sss3600123
    Jun 10, 2017 via iPhone
    41
    装了 fish,命令都可以补全,感觉还可以
    zdt3476
    zdt3476
    Jun 10, 2017
    42
    我一般是要用到什么就去查什么,前提是有其他语言的基础,用的久了,基本的东西也学的 7788 了。
    xiaket
    xiaket
    Jun 10, 2017
    44
    @sss3600123 fish 的坑不是一般的多...
    Vicer
    Vicer
    Jun 10, 2017 via Android
    46
    我的博客有很多 shell,大多数是实用的。
    写的很烂,轻拍。
    https://moeclub.org
    cxbig
    cxbig
    Jun 10, 2017
    47
    @sss3600123 不建议新人学 Fish
    毕竟不是普遍内置的工具,安装会额外增加系统负载,而且语法结构大不一样,和其他解析器的兼容较差。
    USCONAN
    USCONAN
    Jun 10, 2017
    48
    dash 和 bash 的腳本不兼容比較坑
    TangMonk
    TangMonk
    Jun 10, 2017
    49
    Fish 好用是好用,主要是很多主流的软件不兼容
    scinart
    scinart
    Jun 10, 2017 via iPhone
    50
    Advanced Bash-Scripting Guide +1
    Reficul
    Reficul
    Jun 11, 2017
    51
    ash,dash,bash,zsh,fish 各有各的不同,那些 awk,sed,grep 轮子都是方的,学起来痛苦无比=-=,不过学会了比用高级语言可能还能快一点
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4798 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 99ms · UTC 07:49 · PVG 15:49 · LAX 23:49 · JFK 02:49
    ♥ Do have faith in what you're doing.