V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Laodaige
V2EX  ›  程序员

各位 V 友, 求推荐一些学习 bash 的 demo

  •  
  •   Laodaige · 2019-04-21 10:31:58 +08:00 · 4294 次点击
    这是一个创建于 2072 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想学习 bash 脚本,之前学习的东西都比较零零散散,想通过学习一些 bash 的简单 demo,建立一个比较系统的概念。希望各位 V 有推荐一些学习资源。不胜感激!

    32 条回复    2019-04-23 14:59:43 +08:00
    asaxing
        1
    asaxing  
       2019-04-21 10:47:14 +08:00
    Github 上找啊,我看过这个: https://github.com/fengyuhetao/shell
    rayhy
        2
    rayhy  
       2019-04-21 11:56:47 +08:00   ❤️ 1
    catalina
        3
    catalina  
       2019-04-21 12:01:11 +08:00 via Android   ❤️ 2
    你其实可以去找几个 linux 挖矿蠕虫的定时脚本,对照着资料看,要做到自动化入侵流程,这些脚本都是 shell 精髓的凝聚产物。
    Mistwave
        4
    Mistwave  
       2019-04-21 12:23:48 +08:00 via iPhone
    挺矛盾的
    学 demo 是快速上手能干活
    想要系统的概念就得系统地学 看书 听课
    lihongjie0209
        5
    lihongjie0209  
       2019-04-21 12:50:11 +08:00
    变量
    函数
    分支
    循环
    辅助一些基本的数据类型

    脚本语言就这么些东西,唯一的不同的就是语言语法在现在看来很奇葩: 比如说 bash

    我觉得 bash 脚本这种东西一行可以写完的就用 bash, 写不完的尽量用 Python 之类的现代化语言
    Laodaige
        6
    Laodaige  
    OP
       2019-04-21 12:50:34 +08:00
    @Mistwave 是的 之前学的东西挺零散的 看书 听课 学了一大堆东西 却没有成体系 还费时间 就想直接学点小 demo 这样更有映象些
    Laodaige
        7
    Laodaige  
    OP
       2019-04-21 12:57:23 +08:00
    @lihongjie0209 感谢回复! bash 相比现在语言的语法看起来是有点奇怪 那种比较大一点的处理用 python 是要方便很多 我想学习下 bash 可能是因为想更加系统的了解一下吧 之前太零散了
    Laodaige
        8
    Laodaige  
    OP
       2019-04-21 12:58:07 +08:00
    @asaxing 感谢回复! 这个项目感觉挺不错的 可以学习一下
    Laodaige
        9
    Laodaige  
    OP
       2019-04-21 12:58:25 +08:00
    @catalina 好的 我去找一下
    Laodaige
        10
    Laodaige  
    OP
       2019-04-21 12:59:03 +08:00
    @rayhy 谢谢! 第一个解释 bash 命令的网站挺不错的
    lihongjie0209
        11
    lihongjie0209  
       2019-04-21 13:00:21 +08:00
    @Laodaige bash 除了一些基本的编程语言特性,其他的功能都是由第三方的 package 提供的, 你说的学习 bash 是指学习 bash 语言呢还是学习第三方 package ?
    panda1001
        12
    panda1001  
       2019-04-21 13:04:26 +08:00 via Android
    oneinstack 秋水逸冰博客的各种脚本源码
    SuperMild
        13
    SuperMild  
       2019-04-21 13:11:21 +08:00
    鉴于现在各种编程语言及 IDE/编辑器的高速发展,感觉 bash 越来越没有存在感了,与其多学一套奇葩语法,还不如直接使用自己熟悉的语言。
    Laodaige
        14
    Laodaige  
    OP
       2019-04-21 13:37:21 +08:00
    @lihongjie0209 应该是学习 bash 语言本身吧 我的初衷应该是想通过学习一些 demo 进一步加深理解 bash 的命令 以满足日常的工作需求吧 不用每次遇到一下简单的操作都去百度啥的 感觉挺耗时间的。
    lihongjie0209
        15
    lihongjie0209  
       2019-04-21 13:42:34 +08:00
    @Laodaige
    for if..else while 有什么需要学习的?
    wheeler
        16
    wheeler  
       2019-04-21 13:44:34 +08:00
    shell 坑多,看这里: https://github.com/koalaman/shellcheck
    abmin521
        17
    abmin521  
       2019-04-21 13:50:38 +08:00 via Android
    @catalina 挖矿的还有很多奇淫技巧 一环套一环 不适合初学者

    推荐看看 google shell style

    似乎还有一个 bash 框架
    shawndev
        18
    shawndev  
       2019-04-21 14:26:31 +08:00   ❤️ 1
    devhints.io 或者搜索公众号文章《 Mac OSX 下好用的命令行》,如果觉得有用欢迎关注我的公众号 晨晓(chenxiaopost)
    tgyday
        19
    tgyday  
       2019-04-21 15:49:43 +08:00
    你要学的不是 bash 是想学习各种命令。。grep、awk、sed ==
    onlyice
        20
    onlyice  
       2019-04-21 16:24:07 +08:00
    https://devhints.io/bash

    要写的时候查。。
    persimmon
        21
    persimmon  
       2019-04-21 17:05:49 +08:00
    guili618
        22
    guili618  
       2019-04-21 19:45:56 +08:00
    http://mingxinglai.com/cn/2013/12/material-of-shell/
    从上面的网址,按图索骥,慢慢来
    zjp
        23
    zjp  
       2019-04-21 21:00:51 +08:00
    @rayhy https://www.explainshell.com/ 里第一个例子好玩 [狗头]
    ps1aniuge
        24
    ps1aniuge  
       2019-04-21 22:36:35 +08:00
    问:为什么不学 shell ?
    答:
    1 shell 太老了。语法上有各种小小的问题。(例如:详见 shell 十三问的 for 篇)
    2 shell 不是面向对象的,功能不强。
    3 shell 的正则,学习曲线陡峭。复杂的正则,很容易出错。
    实际上 ps 和 py 类似。都是用 [简单的对象方法] ,来实现 [复杂正则] 的功能。但是呢,shell 没有对象,也没有方法。
    4 常用外部 shell 命令还是要学,要会的。
    5 java 在发展,jshell,java12 快出了。
    .net 在发展,.net3 快出了。
    python 在发展,py37 快完善了。
    perl 不怎么发展,排名蹭蹭跌。
    bash 和 shell 命令,基本不发展。shell 已经完美了么? shell 中连布尔型变量都没有。
    6 shell 中的坑,幺蛾子,隐藏的问题太多。powershell 没这种问题。
    set +o noglob
    touch /tmp/a1log
    A="/tmp/a*log" ;echo $A
    #返回 /tmp/a1log

    B='/tmp/a*log' ;echo $B
    #返回 /tmp/a1log



    问:如何看待 bash,及 linux shell 脚本将来的地位,命运?
    问:powershell 在 linux 中的前景如何?
    答:
    就好像 [气泵射钉枪] 必将取代 [锤子] 一样,先进生产力必然代替落后的。
    就好像面向对象的 powershell,必然取代面向字符的 bat 那样。
    powershell 发展成熟后。以 bat,bash 为代表的,上一代面向字符串的脚本语言,面向字符串的命令,难免被边缘化。
    过几年后,开机启动脚本,特简单的脚本中,或许还残留有 bat,bash,字符串命令的身影。


    问:天天有分享,周周脚本题,的 powershell 学习研究群在哪?
    答:
    QQ 群号=183173532
    名称=powershell 交流群
    ps1aniuge
        25
    ps1aniuge  
       2019-04-21 22:39:36 +08:00
    问:目前哪些 linux 能安装上 powershell ?
    答:
    ◦Windows 10 IoT Core(arm32 的 cpu,本质上是 win,树莓派硬件上的 win10)
    ◦Raspbian Stretch(arm32 的 cpu,树莓派官方操作系统 Raspbian,基于大便,所以叫树莓便。)
    ◦MAC OS X 10.11
    ◦Ubuntu 14.04/16.04/18.04
    ◦Debian 8.x/9.x
    ◦CentOS 7.x/RHEL 7.x/Fedora26 及更高版本
    ◦open SUSE 42 及以上 /SUSE Linux Enterprise Server 12 SP2 及以上
    ◦Docker。LINUX 发行版中,安装容器 dockerd,docker 中运行 powershell。
    ◦Arch Linux ( arch linux 没有版本号)
    ◦Linux AppImage 容器(portable application single binary) https://github.com/probonopd/AppImageKit
    ◦Kali Linux
    ◦alpine Linux 这是 docker 专用的,轻量级 linux 发行版

    安装方法:
    https://docs.microsoft.com/zh-cn/powershell/scripting/setup/installing-powershell-core-on-linux?view=powershell-6
    sleepm
        26
    sleepm  
       2019-04-22 01:07:38 +08:00 via Android
    Laodaige
        27
    Laodaige  
    OP
       2019-04-22 10:41:09 +08:00
    @tgyday 我想了一下 的确是想学习记住更多的命令,并且可以用一些简单的命令组合 以满足方便工作的事情
    youyoumarco
        28
    youyoumarco  
       2019-04-22 10:41:50 +08:00
    @catalina 对,我也是这样认为,不过也有写的随便的
    yalin
        29
    yalin  
       2019-04-22 14:51:56 +08:00
    《鸟哥的 Linux 私房菜》: http://cn.linux.vbird.org/linux_basic/0320bash.php
    Laodaige
        30
    Laodaige  
    OP
       2019-04-22 16:36:47 +08:00
    @yalin 表示看了一些 鸟哥这个教程很详细 但是看完并记不住,而且有些地方比较啰嗦 但是还是挺不错的
    yalin
        31
    yalin  
       2019-04-22 16:48:02 +08:00
    @Laodaige 对啊,鸟哥很系统,甚至把来龙去脉都讲清楚了。如果你在工作中实践过一个项目就好了
    Laodaige
        32
    Laodaige  
    OP
       2019-04-23 14:59:43 +08:00
    @yalin 是的 实际的项目可能效果更好一点 所以想寻求 V 友推荐一些 bash 的 demo
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4331 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 01:06 · PVG 09:06 · LAX 17:06 · JFK 20:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.