---
# System prepended metadata

title: 伴伴學 x HACK a nice day：Linux for Beginners
tags: [HACK a nice day]

---

---
tags: HACK a nice day
---

# 伴伴學 x HACK a nice day：Linux for Beginners


## 活動進行摘要

* Zoom 聊天室用

```
FB社團: https://www.facebook.com/groups/accomdemy
分享共筆: https://hackmd.io/@andrewintw/ByP9nsesO
活動一覽: https://hackmd.io/@accomdemy/rkmKTY1Yu
```

* 分享時間 (section1~3)
* 玩玩 GitHub (有時間的話)
    * 從伴伴學 github fork [accomdemy](https://github.com/accomdemy/accomdemy)
    * 把這份共筆 push 到我的 forked repo
    * 對伴伴學 github 送出 pull request (PR)
    * Ref: [commit emoji]([https://github.com/ikatyang/emoji-cheat-sheet](https://gist.github.com/parmentf/035de27d6ed1dce0b36a))


## 預先準備軟體

在課程之前，你可以事先下載（甚至安裝）以下的軟體

* [VirtualBox](https://www.virtualbox.org/wiki/Downloads) (win/mac/linux)
    * VirtualBox platform packages (主程式, 可以先安裝)
    * VirtualBox Oracle VM VirtualBox Extension Pack (建議下載)
* [Vagrant](https://www.vagrantup.com/downloads) (win/mac/linux) (可以先安裝)
* [Ubuntu 18.04LTS 伺服器版本 iso](https://ftp.ubuntu-tw.org/ubuntu-releases/18.04.5/ubuntu-18.04.5-live-server-amd64.iso)
* [MobaXterm Home Edition (Portable edition)](https://mobaxterm.mobatek.net/download-home-edition.html) (非必要。用來連線 ssh、打 windows 指令的環境)


## Section 1 -- 前導


### What is OS

![](https://i.imgur.com/zBSJ2b7.png)

* Application 和 Hardware 之間的中介層
* 控制硬體的資源（RAM、儲存空間、行程...）
    * 執行 WORD 的時候，需要 OS 配記憶體資源給 WORD 運作
    * 下載 5GB 的檔案時，OS 需要保留能夠存放 5GB 資料的資源(ex: 硬碟空間)


### Linux 歷史

* 1985, GNU Project, Richard Stallman(RMS)
* 1987/5/23, GCC (GNU Compiler Collection/GNU C Compiler)
* 1989/6/8, bash 
* 1991/8/25, comp.os.minix Newsgroup

![](https://i.imgur.com/L6B7Ffi.jpg)

* 1991/9/17, linux kernel 0.01 Released (10,239 lines)
* 芬蘭三寶 :joy:：聖誕老人、Nokia、Linux
* 1993, Red Hat, Inc
* 1993/9/15, Debian 0.01 Released
* Hacker 文化
    * [Revolution OS (作業系統革命)](https://www.youtube.com/watch?v=vWwvh3036Fw) (紀錄片 2001)
    * [The Code](https://www.bilibili.com/video/BV1us411z7X4) (紀錄片 2001)
    * How To Become A Hacker ([英文](http://www.catb.org/~esr/faqs/hacker-howto.html)/[簡中](https://translations.readthedocs.io/en/latest/hacker_howto.html))


### Linux Distribution

* 發行版 (distro)
* Linux --> 指的是 Linux Kernel
* 作業系統要能夠讓人使用，還需要應用程式
* https://distrowatch.com/
* [LFS Project - Linux From Scratch!](https://www.linuxfromscratch.org/lfs/)


## Section 2 -- 建立 Linux 環境


* Multi-booting (多重開機)

### What is virtualization (虛擬化技術)

![](https://decotl.com/wp-content/uploads/2020/01/VIRTUALIZATION.png)

* 使用軟體
    * [Oracle VirtualBox](https://www.virtualbox.org/)
    * [VMware](https://www.vmware.com/tw.html)
    * Microsoft Virtual PC
* 延伸伴學: [20210610 伴伴學：揚翔帶你用 Docker 自架服務](https://youtu.be/gNuTBnhdOuQ)


### Lab Time!

* Create your First Virtual Machine
* Install Ubuntu OS on Virtual Machine


## Section 3 -- CLI & Linux File System Hierarchy


### SSH 連線

* ip address
* port --> service


### 基礎指令

* ls
* cd
* pwd
* mkdir
* touch
* cp
* mv
* rm
* cat
* less

### 安裝套件

```
$ sudo apt-get update
$ apt-cache search <pkgname> # 搜尋套件
$ sudo apt-get install <pkgname>  # 安裝
```

### Linux vs Windows


* [FHS, Filesystem Hierarchy Standard](https://zh.wikipedia.org/wiki/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E5%B1%82%E6%AC%A1%E7%BB%93%E6%9E%84%E6%A0%87%E5%87%86)
* mount point vs C:\ D:\
* /dev device node vs 裝置管理員
* apt/yum/... vs 控制台>程式和功能
* 可執行檔 vs .exe


### 其他你應該知道的

* 行程相關　ps, kill, jobs, &
* 導向操作　>, >>, 1>, 2>, 2>&1
* 管線操作　|
* xargs
* awk
* sed
* tr
* vim 或 nano 編輯器的使用


## 補充 (如果有時間的話)

* [install raspberry pi OS](https://www.raspberrypi.org/documentation/installation/)
* [use google VPS](https://andrewintw.github.io/create-a-vps-on-google-compute-engine/)



## 工商時間 :joy:

[Learn Linux with the Raspberry Pi](https://www.youtube.com/watch?v=0k23A-GIRjw&list=PLyHt1h0azRjBHl51dAS10jcCs0XxQ6Iw7) 是今年 3 月份在 [HACK a nice day](https://www.facebook.com/groups/hackanicedays) 社團執行的線上分享計畫。

目的是帶領大家透過 Raspberry Pi 官網的資料去學 Linux。目前執行了兩個系列分享：「Raspberry Pi Documentation 導讀」以及「Linux Command Night」。


### Raspberry Pi Documentation 導讀

主要是導讀 Pi 官方的文件。

[分享筆記](https://hackmd.io/@andrewintw/rJFgInh-d) 

part1 忘記錄影了 :joy: 不過不太重要 XD

{%youtube 0k23A-GIRjw %}

{%youtube t39lHga7eYU %}


### Linux Command Night

主要是分享 Linux 指令，這些都是我工作上會用到的指令和觀念。

[分享筆記](https://hackmd.io/@andrewintw/BJJ1JImM_)

{%youtube VrIP07CeseU %}

{%youtube fcuHtJqBP-Q %}

{%youtube iTkB0Af3sQo %}


### 特定主題分享 (內網穿透)

{%youtube 9u6n45gaXWY %}

# Q&A

```
- Q from Paul: 如何盈利？
- A from Andrew & 黑貓: 有分社群版本或企業版，可能是靠企業版在賺錢（實際上不是靠企業版在賺錢的）在購買官方技術支援的時候才付費，Ubuntu本身是沒有在營利的，但相關技術支援公司Canonical 公司有在盈利。
- 馬爸之後可以分享Linux的賺錢模式
```

```
- Q from Adam: Virtual Box還支援32位元嗎？
- A from Andrew: 現在還有支援
- A from Jerry: https://www.virtualbox.org/wiki/Downloads
上面沒寫清楚
不知道32bit os是否可以安裝
- A from Will: If you're looking for the latest VirtualBox 5.2 packages, see VirtualBox 5.2 builds. Please also use version 5.2 if you still need support for 32-bit hosts, as this has been discontinued in 6.0. Version 5.2 will remain supported until July 2020. 所以能用的只有5.2
- A from Zhu Qi: 補充一下，一般Vitual box / VMWare 等虛擬機軟體，都能支持32-bit/64-bit的.iso鏡像安裝包
```

```
- Q from Bruce: 請問有用過WSL嗎 
- A from Andrew: 沒用過，待會可以玩玩看
- A from 舜傑：用過，讚讚
```

```
- Q from 皮爸:如果有兩個鍵盤，兩個滑鼠，可以操作嗎？
- A from Andrew: 可以，但是不太知道為什麼
- A from Jerry: 以前有這樣的設備，以前電腦貴，真的有這樣的裝置在賣
```

```
- Q from 皮爸: 真的很像docker，為什麼不用docker?
- A from Andrew: VM比較像機器，要裝什麼就裝什麼。Docker有相依性的問題，如果熟的話也可以用Docker。Virtual box建立網路拓墣很方便。可以搜尋vagrant vs docker
- Sharing from Adam: 16.4 ubuntu 有中文版。
- A from Will: VM是從硬體開始模擬，模擬完整的電腦。Docker還是需要靠主機系統。
```

```
- Q from Paul: what is sudo?
- A from Dar: super user do
- A from Andrew: Sudo 事實上是一個群組，有加入這個群組的人就可以使用這個指令，執行root的權限
```

```
- Q from 皮爸：副檔名
- A from Andrew: 關於.exe檔可以用file指令來看看
```

```
- Q from 皮爸：apt可以下載，但公司網路有限制，有辦法離線安裝嗎？
- A from Andrew: 用deb這個關鍵字搜尋，可以使用manual install
- A from Dar: https://pkgs.org/download/apt-offline
- https://gist.github.com/ycku/fa3110bce427cf2c1f1ca4a680d594e8
- A from Dahai: https://www.debian.org/distrib/packages
- A from Will: /etc/apt/source.conf
- 裡面就藏.DEB的主機
- 不然就是找package mirror server
```

```
From Dar:
保護 電腦不輸入 rm

http://blog.xsoin.com/2016/10/rm-rf.html

alias rm = trash
trash() {
  mv $@ ~/.trash/
}

alias rm='echo "This is not the command you are looking for."; false'
```

## 完整聊天紀錄

```
我對所有人說： 07:51 PM
@@ 你是紫彤嗎?
Tzu Tung Lee對所有人說： 07:52 PM
我是 ＸD
我對所有人說： 07:54 PM
:)
Maggie對所有人說： 08:05 PM
皮爸是邊吃邊聊嗎 哈
大家都吃飽了嗎
皮爸對所有人說： 08:06 PM
歹勢 哈哈哈
Maggie對所有人說： 08:09 PM
你也太晚吃飯了～～～
話說will who跟之前的老朋友will是同一位嗎～
我對所有人說： 08:11 PM
FB社團: https://www.facebook.com/groups/accomdemy
分享共筆: https://hackmd.io/@andrewintw/ByP9nsesO
活動一覽: https://hackmd.io/@accomdemy/rkmKTY1Yu
Paul Hsu對所有人說： 08:12 PM
me
Maggie對所有人說： 08:12 PM
手可以放下了嗎
Will Who對所有人說： 08:12 PM
是的maggie
皮爸對所有人說： 08:12 PM
ＸＤ
Maggie對所有人說： 08:23 PM
好奇今天第一次參與的新同學是從哪邊知道伴伴學的活動啊？
Dahai Pon對所有人說： 08:28 PM
Debian發行版本名是用玩具總動員的角色
黑貓對所有人說： 08:28 PM
原來是這樣嗎xddd
Dahai Pon對所有人說： 08:28 PM
ubuntu來自南非
黑貓對所有人說： 08:28 PM
我都沒注意到欸
Paul Hsu對所有人說： 08:28 PM
好奇他們怎麼賺錢
Maggie對所有人說： 08:28 PM
好有趣😂
Paul Hsu對所有人說： 08:28 PM
還是完全非營利
Dahai Pon對所有人說： 08:33 PM
我不用ＩＥ我都用PCMAN
皮爸對所有人說： 08:33 PM
我都用ＫＫＭＡＮ
Dahai Pon對所有人說： 08:34 PM
XD
Jerry Yeh對所有人說： 08:34 PM
https://forum.ubuntu.org.cn/viewtopic.php?t=489877
黑貓對所有人說： 08:34 PM
https://canonical.com/
鄭鴻旗對所有人說： 08:35 PM
https://forum.lxde.org/viewtopic.php?t=437&start=120
當年投稿設計 lubuntu
Paul Hsu對所有人說： 08:37 PM
謝謝回答～
我順便把Q&A整理在Andrew做的共筆上面：https://hackmd.io/@andrewintw/ByP9nsesO
有人在臉書直播問：GRUB?
Marconi對所有人說： 08:39 PM
隨著 AI 的流行, google 的 AI 工具 colab 也是基於 ubuntu 版本, 也有越來越多人把 colab 當 ubuntu 來玩
馬爸對所有人說： 08:39 PM
要離開一下
若有興趣再補充 Linux 賺錢的模式
Paul Hsu對所有人說： 08:40 PM
期待馬爸分享
Maggie對所有人說： 08:40 PM
Marconi後來有找到合適的人才嗎～
鄭鴻旗對所有人說： 08:40 PM
馬爸，我想聽～
黑貓對所有人說： 08:50 PM
通常舊電腦 我都直接裝linux了
XDDD
Will Who對所有人說： 08:51 PM
只有32bit的大概15年了吧
建議換掉，隨便一台小電腦耗電跟效能都贏
鄭鴻旗對所有人說： 08:51 PM
超老筆電....
陳 洛桐對所有人說： 08:51 PM
其實也是可以，請問有關鍵字嗎，還是直接google就好
那台年紀比我還大
Jerry Yeh對所有人說： 08:52 PM
https://www.virtualbox.org/wiki/Downloads
上面沒寫清楚
不知道32bit os是否可以安裝
陳 洛桐對所有人說： 08:52 PM
加減用而已，不然我就要拿來練焊接了........
Maggie對所有人說： 08:52 PM
建議留著做古董收藏😂😂
陳 洛桐對所有人說： 08:53 PM
我再找找看好了，我也是看到這個
Will Who對所有人說： 08:53 PM
If you're looking for the latest VirtualBox 5.2 packages, see VirtualBox 5.2 builds. Please also use version 5.2 if you still need support for 32-bit hosts, as this has been discontinued in 6.0. Version 5.2 will remain supported until July 2020.
Jerry Yeh對所有人說： 08:53 PM
電子產品要收藏很累
Will Who對所有人說： 08:54 PM
所以你能用的就5.2
Bruce對所有人說： 08:54 PM
RS232真是時代的眼淚
黑貓對所有人說： 08:55 PM
現在RS232/RS485都還有在用
Jerry Yeh對所有人說： 08:55 PM
終端機時代連線都是rs-232
Bruce對所有人說： 08:55 PM
現在都用USB 轉RS232或485
Jerry Yeh對所有人說： 08:56 PM
Rs-232不死的
黑貓對所有人說： 08:56 PM
我之前有在玩PLC 也是用USB to RS232
Bruce對所有人說： 08:57 PM
以前玩8051還要自己用一組rs2323轉uart的電路
現在好方便
黑貓對所有人說： 08:58 PM
科技的進步啊
Paul Hsu對所有人說： 08:59 PM
lol
Maggie對所有人說： 08:59 PM
引導者有自己ㄉ堅持
皮爸對所有人說： 08:59 PM
哈哈哈
Maggie對所有人說： 08:59 PM
殼以啊
皮爸對所有人說： 08:59 PM
給你一個讚
黑貓對所有人說： 08:59 PM
要硬就硬起來
讚
Maggie對所有人說： 08:59 PM
棒
陳 洛桐對所有人說： 08:59 PM
讚~~~
鄭鴻旗對所有人說： 08:59 PM
敬他的堅持
Bruce對所有人說： 09:00 PM
請問有用過WSL嗎
舜傑 張對所有人說： 09:00 PM
我有過
黑貓對所有人說： 09:02 PM
WSL也很好用
我離開一下 裝個WSL
Paul Hsu對所有人說： 09:02 PM
行動派
Yang-Hsiang Chang對所有人說： 09:03 PM
https://cocalc.com/doc/terminal.html 發現一個 Online Linux Terminal
Jerry Yeh對所有人說： 09:07 PM
沒試過，感覺是雙螢幕，二個人共用一台電助
電腦
是的
就是這樣
Marconi對所有人說： 09:07 PM
就是 server 的概念
Paul Hsu對所有人說： 09:07 PM
虛擬網咖
Jerry Yeh對所有人說： 09:07 PM
以前有這樣的設備
阿好伯對所有人說： 09:07 PM
乾脆也虛擬WIN10
皮爸對所有人說： 09:08 PM
有點搞笑
黑貓對所有人說： 09:08 PM
現在也是可以這樣做 方法很多
Jerry Yeh對所有人說： 09:08 PM
以前電腦貴，真的有這樣的裝置在賣
黑貓對所有人說： 09:08 PM
有對岸的公司連每個人的主機環境也這樣幹
Jerry Yeh對所有人說： 09:12 PM
做隨身碟
Paul Hsu對所有人說： 09:13 PM
聽起來好方便
Will Who對所有人說： 09:13 PM
大公司很多都這樣，還有網咖也是
Bruce對所有人說： 09:13 PM
每次都可以聽到新奇的東西真好
黑貓對所有人說： 09:14 PM
確實
Will Who對所有人說： 09:14 PM
thin client
黑貓對所有人說： 09:14 PM
畢竟誰不想花錢管一堆獨立個體 還不如集中管理
Will Who對所有人說： 09:22 PM
moba的local terminal 其實也是linux
Will Who對所有人說： 09:29 PM
玩起來感覺就是virtualbox版本的docker hub
皮爸對所有人說： 09:42 PM
真的很像docker
那為何不用docker
Paul Hsu對所有人說： 09:51 PM
蠻棒的比喻
一下就懂了
黑貓對所有人說： 09:51 PM
細胞壁的概念
Dahai Pon對所有人說： 09:58 PM
以前掛載是掛「磁帶」
Will Who對所有人說： 10:00 PM
一般稱做樹狀結構
Jerry Yeh對所有人說： 10:02 PM
根目錄 家目錄要說明一下
絕對路徑與相對路徑
Dahai Pon對所有人說： 10:03 PM
TAB鍵
Paul Hsu對所有人說： 10:06 PM
跟貓貓有什麼關係
Jerry Yeh對所有人說： 10:08 PM
https://walker-a.com/archives/6571
Will Who對所有人說： 10:09 PM
沒有...工程師的浪漫
Jerry Yeh對所有人說： 10:09 PM
推一下這個，剛搞錯
黑貓對所有人說： 10:09 PM
先離開了 有事情要處理
Jerry Yeh對所有人說： 10:09 PM
晚安先下線了
Paul Hsu對所有人說： 10:09 PM
晚安
A0224460N ZHU QI對所有人說： 10:09 PM
晚安！
舜傑 張對所有人說： 10:11 PM
裝個sl指令來玩
Paul Hsu對所有人說： 10:13 PM
不好意思 剛剛有講到sudo指令的意思和用法嗎
Dahai Pon對所有人說： 10:13 PM
sl 哺哺
dar對所有人說： 10:15 PM
sudo =>  super user do
Paul Hsu對所有人說： 10:16 PM
Thanks Dar!
Dahai Pon對所有人說： 10:16 PM
可以敲碗 正規表示式 嗎？
Will Who對所有人說： 10:16 PM
那大概今天不用睡了
皮爸對所有人說： 10:17 PM
正規表達式超暈
天書
Dahai Pon對所有人說： 10:17 PM
下次啦
Paul Hsu對所有人說： 10:17 PM
如果所有人都可以用sudo指令，那何必分權限？
舜傑 張對所有人說： 10:18 PM
不是所有人都可用sudo
Will Who對所有人說： 10:18 PM
sudo有很詳細的設定，不是打了就可以用
Paul Hsu對所有人說： 10:18 PM
了解
舜傑 張對所有人說： 10:19 PM
可以做權限管理
dar對所有人說： 10:19 PM
https://kknews.cc/zh-tw/news/ab6g366.html
apt-get install sl  
火車
Paul Hsu對所有人說： 10:21 PM
cool~
Will Who對所有人說： 10:21 PM
ascii art
dar對所有人說： 10:22 PM
星際大戰 
telnet towel.blinkenlights.nl
鄭鴻旗對所有人說： 10:22 PM
https://hackmd.io/8AgJel5iR5Gq3_YL1Zvl0Q
Command Line Aesthetic 命令列美學
Paul Hsu對所有人說： 10:23 PM
是永久刪除嗎
Dahai Pon對所有人說： 10:25 PM
要小心 -rf
Will Who對所有人說： 10:26 PM
exit
Dahai Pon對所有人說： 10:26 PM
節目結束來下這個指令 哈哈
Will Who對所有人說： 10:28 PM
ssh pi@192.168.4.106
沒事...打錯
Paul Hsu對所有人說： 10:36 PM
蠻有趣的
舜傑 張對所有人說： 10:37 PM
是不是該找時間講WSL
dar對所有人說： 10:41 PM
https://pkgs.org/download/apt-offline
https://gist.github.com/ycku/fa3110bce427cf2c1f1ca4a680d594e8
Dahai Pon對所有人說： 10:41 PM
https://www.debian.org/distrib/packages
Will Who對所有人說： 10:43 PM
/etc/apt/source.conf
裡面就藏.DEB的主機
不然就是找package mirror server
dar對所有人說： 10:44 PM
保護 電腦不輸入 rm

http://blog.xsoin.com/2016/10/rm-rf.html

alias rm = trash
trash() {
  mv $@ ~/.trash/
}
alias rm='echo "This is not the command you are looking for."; false'
Paul Hsu對所有人說： 10:47 PM
要來去複習舜傑的分享了
Dahai Pon對所有人說： 10:55 PM
也可以用雙引號把有空白的字串包起來
Paul Hsu對所有人說： 10:59 PM
帥
Dahai Pon對所有人說： 11:02 PM
這兩位聲音有點像
我累了
Paul Hsu對所有人說： 11:02 PM
XDD
但可以懂欸
vagrant比較討厭
Wu對所有人說： 11:03 PM
收獲良多，感謝
Paul Hsu對所有人說： 11:03 PM
linux指令覺得可懂
@Wu 是第一次參加伴伴學嗎
Wu對所有人說： 11:04 PM
是的，第一次有出聲
Paul Hsu對所有人說： 11:04 PM
哈哈 歡迎以後再來共學
Wu對所有人說： 11:04 PM
好的，很充實，感謝
Paul Hsu對所有人說： 11:04 PM
神
sam對所有人說： 11:05 PM
讚
Paul Hsu對所有人說： 11:05 PM
但是講得很棒
吃宵夜r
Wu對所有人說： 11:05 PM
Andrew 很強
Paul Hsu對所有人說： 11:05 PM
話說舜傑也有敲碗WSL
舜傑 張對所有人說： 11:06 PM
WSL我可以講
dar對所有人說： 11:06 PM
https://regex101.com/
Paul Hsu對所有人說： 11:06 PM
讚讚
舜傑 張對所有人說： 11:06 PM
只是還要花時間準備
Paul Hsu對所有人說： 11:10 PM
預習
lol
Dahai Pon對所有人說： 11:10 PM
多謝
```