Slide 1

Slide 1 text

Linux Racterub @ ITAC 1

Slide 2

Slide 2 text

我是誰 • 元智電通英專⼤⼀ • ID: Racterub • 2017-19 AIS3 學員 • 2019 台灣好厲駭 學員 • 最近在補技術債QQ • 我就爛 2

Slide 3

Slide 3 text

Linux • Linux 是什麼? 3

Slide 4

Slide 4 text

Linux • Linux 是什麼? • ⼀個作業系統 (廢話) 4

Slide 5

Slide 5 text

Linux • Linux 是什麼? • ⼀個作業系統 (廢話) • 今天會讓你們實際操作,希望你們已經先載好了 5

Slide 6

Slide 6 text

Linux • Linux 是什麼? • ⼀個作業系統 (廢話) • 今天會讓你們實際操作,希望你們已經先載好了 • 沒載好的找我領 USB 6

Slide 7

Slide 7 text

Linux • Linux 是什麼? • ⼀個作業系統 (廢話) • 今天會讓你們實際操作,希望你們已經先載好了 • 沒載好的找我領 USB • Linux 有什麼⽤? 7

Slide 8

Slide 8 text

Linux • Linux 是什麼? • ⼀個作業系統 (廢話) • 今天會讓你們實際操作,希望你們已經先載好了 • 沒載好的找我領 USB • Linux 有什麼⽤? • 炫砲 8

Slide 9

Slide 9 text

我原本在想要不要講他的一些背景 但是大概你們會先睡死 9

Slide 10

Slide 10 text

Ubuntu • Linux 底下的⼀個分⽀ • 新⼿好入⾨ • ⽬前⼤約有⼀億⼈在使⽤ ubuntu 10

Slide 11

Slide 11 text

• / 根⽬錄 • /bin 系統內建會⽤到的執⾏檔 • /boot 系統啟動會⽤到的檔案 • /dev Linux 核⼼有認識的設備和裝置的資訊 • /etc 系統設定檔 • /home 所有(非 root)使⽤者的家⽬錄 Filesystem 11

Slide 12

Slide 12 text

Filesystem • /lib & /lib64 系統程式庫和核⼼模組 • /media & /mnt 裝置的掛載點 • /opt 無法透過套件安裝的軟體的安裝點 • /proc 每個 process 相關檔案 • /root root 使⽤者的家⽬錄 • /usr/bin Ubuntu 預載或是透過套件安裝的安裝點 12

Slide 13

Slide 13 text

Filesystem • /usr/local ⾃⼰⼿動編譯安裝的安裝點 • /var 常態性變動的檔案 • /tmp 暫存檔 (每次重開機都會清除) Ref: http://linux.vbird.org/linux_basic/0210filepermission.php#dir_fhs 13

Slide 14

Slide 14 text

好ㄌ 該來實際用用看 了 14

Slide 15

Slide 15 text

VM • Ubuntu 18.04.3 bionic • 匯入 • ⼯具 -> 匯入 • 密碼: itac 15

Slide 16

Slide 16 text

VM • How to use? • 打開 Terminal • 輸入 cd ~/Desktop/ • (如果要重置的話輸入 removepg ) • (輸入完再輸入 cd ../playground ) 16

Slide 17

Slide 17 text

VM • 檢查⼀些設定 • 設定 -> 網路 -> 連接埠轉送 • 應該會長這樣

Slide 18

Slide 18 text

常見指令 我們這裡只討論 Bash :D 18

Slide 19

Slide 19 text

? • 如果想知道指令該怎麼⽤,有什麼 option 可以⽤ • man && -- help • man • -- help 19

Slide 20

Slide 20 text

Commands • ls [options] :列出當前⽬錄 • options • -a all • -l long-list • -h human-readable • cd :切換當前⽬錄 20

Slide 21

Slide 21 text

Commands • cp [options] :複製檔案/資料夾 • -r recursive • rm [options] <file> :刪除檔案/資料夾 • -r recursive 21

Slide 22

Slide 22 text

Command • mkdir :建立資料夾 • rmdir :刪除資料夾 • rmdir v.s rm? • rmdir 只能刪除空資料夾,rm 則沒限制 22

Slide 23

Slide 23 text

Command • find [options] :搜尋檔案/資料夾 • -type • d 資料夾 • f 檔案 • l 連結檔 (Only symbolic link) • s socket 23

Slide 24

Slide 24 text

Command • find [options] :搜尋檔案/資料夾 • -name <filename> • 這個指令建議配 sudo 使⽤,要不然會噴⼀堆垃圾給你 24

Slide 25

Slide 25 text

Command • cat <filename> :讀取並輸出檔案內容 • head / tail [options] <filename> :讀取前⾯部分檔案內容並 輸出 • -c 讀取前N-bytes • -n 讀取前N⾏ 25

Slide 26

Slide 26 text

Command • ssh @ [options] • options • -p 指定 port • -i 指定 key file • -R -L 可做 port-forwarding • https://dev.to/samuyi/the-how-to-of-ssh-port- forwarding-1f4e

Slide 27

Slide 27 text

Command • vim / emacs • 痾那個 • 我不會⽤ emacs • 不要砲我 • 會的可以上來教 • https://emacs.was.best 27

Slide 28

Slide 28 text

Vim • Vim 共有三個 mode (常⽤到的 • Normal mode • Insert mode • Visual mode 28

Slide 29

Slide 29 text

Vim • Normal mode • 輸入 “:” 就可以輸入指令 • :w 寫入檔案 • :q 離開 vim • 也可 :wq 就是寫入後離開 • 按下 i 就可以進入 insert mode 29

Slide 30

Slide 30 text

Vim • Insert mode • 就簡單的輸入模式 • 要切換成 normal mode 就按 esc 30

Slide 31

Slide 31 text

阿系統空空的是能幹嘛? 用 apt 安裝 ! 31

Slide 32

Slide 32 text

apt • sudo apt [arg1, arg2 …] • command • install • update • upgrade • show • list • info • remove 32

Slide 33

Slide 33 text

Webservers 33

Slide 34

Slide 34 text

Webserver • 主流 • IIS (Microsoft) • Apache (Apache Software foundation) • Nginx (Nginx, Inc. or F5 Networks) 34

Slide 35

Slide 35 text

Webservers • IIS • 是由微軟公司提供的基於運⾏Microsoft Windows的網際 網路基本服務。 35

Slide 36

Slide 36 text

36

Slide 37

Slide 37 text

Webservers • Apache • Based on httpd • 有多個模組可以使⽤, 包含 php, python .. ,亦有認證 模組 37

Slide 38

Slide 38 text

38

Slide 39

Slide 39 text

Webservers • Nginx • 這跟剛剛兩款⼜有⼀點不⼀樣了,除了網⾴伺服器,他 還可以反向代理,負載平衡和 HTTP 快取 • 效能相對 apache 會好⼀點 (不⼀定) • 這次會教你們⽤ nginx 接上 php 39

Slide 40

Slide 40 text

40

Slide 41

Slide 41 text

該來手動架 server 了 41

Slide 42

Slide 42 text

Nginx • 系統內建並沒有 nginx ,所以必須透過 apt 安裝 • sudo apt install nginx 42 ▲安裝完成⽤瀏覽器會看到這⼀⾴

Slide 43

Slide 43 text

Nginx • 好的,這樣就算架好 server 了 • 我們可以寫⾃⼰的 html 來玩 • 預設的網⾴根⽬錄是在 /var/www/html 43

Slide 44

Slide 44 text

Nginx • 可以顯⽰⾃⼰要的東⻄了,但是我們要接 php 才可以在網 ⾴上顯⽰ php 執⾏出來的內容 • 我們依舊需要 apt 來安裝 :D • sudo apt install php-fpm (ubuntu 18.04 預設是 7.2 版的 ㄛ) 44

Slide 45

Slide 45 text

Nginx + php • Nginx 跟 php-fpm 是載好了,但是兩個完全沒搭上線,需 要⾃⼰進 nginx 的設定檔才⾏ 45

Slide 46

Slide 46 text

Nginx + php ▲注意,這邊 php7.0-fpm.sock 要改成 php7.2-fpm.sock 46 安裝完了之後就要在 Nginx 接上 php,所以需要在兩個地⽅改設定 ▲在 index.html 後⾯加上 index.php

Slide 47

Slide 47 text

Nginx + php • 最後還要修改⼀個 php 的設定,他會造成你的 php server 出現漏洞 • 檔案在 /etc/php/7.2/fpm/php.ini • ;cgi.fix_pathinfo = 1 ➤ cgi.fix_pathinfo = 0 47

Slide 48

Slide 48 text

Nginx + php • 最後重啟 nginx 跟 php-fpm 就可以了 • sudo systemctl restart nginx • sudo systemctl restart php7.2-fpm 48

Slide 49

Slide 49 text

Nginx + php • 在 /var/www/html 撰寫⾃⼰的 php 檔應該就可以正常顯⽰ 了喔 ! 49

Slide 50

Slide 50 text

Domains? 50

Slide 51

Slide 51 text

Domains • 簡單來說,domain ⼤概會像這樣運作 w w w.yzu.edu.tw ? DNS Server Client 51

Slide 52

Slide 52 text

Domains • 簡單來說,domain ⼤概會像這樣運作 w w w.yzu.edu.tw ? 139.162.77.188 DNS Server Client 52

Slide 53

Slide 53 text

Domains

Slide 54

Slide 54 text

Domains • 簡單來說,domain ⼤概會像這樣運作 racterub.m e? 139.162.77.188 DNS Server Client www.yzu.edu.tw (140.138.8.10) HTTP GET 54

Slide 55

Slide 55 text

Domains (racterub.me)

Slide 56

Slide 56 text

Domains 56

Slide 57

Slide 57 text

Domains 57

Slide 58

Slide 58 text

資源 • ⿃哥 http://linux.vbird.org/ • DigitalOcean https://www.digitalocean.com/community/ tutorials/how-to-install-linux-nginx-mysql-php-lemp- stack-ubuntu-18-04

Slide 59

Slide 59 text

QA? 59

Slide 60

Slide 60 text

@racterub @racterub 60