2016年11月5日 星期六

11/4Linux心得

11/4

  • 期中筆記整理
一、Debian概介
  1. Linux其中之一的發行版,是處理自由軟體的工具,一個自由的作業系統 (OS),安裝在電腦上使用,但不會稱之為作業系統。作業系統就是能讓電腦工作的一系列基本程式和實用工具
  2. 不只是提供一個純粹的作業系統,還附帶了超過 5萬個套件,這些預先編譯好的軟體被包裹成一種良好的格式以便於在機器上進行安裝
  3. 目前穩定版本:Debian Jessie
目前為止,所有開發代號均出自Pixar的電影玩具總動員。
  1. 由Debian桌面計畫 (Debian Desktop subproject) 組織維護
    (1)
    由志工組成
    (2)
    座右銘:能用的軟體 (Software that Just Works.)。
     → 
    把 Debian、GNU、Linux帶入主流社會
  2. 支援 GNOME與KDE桌面環境 (desktop environment),也儘可能支援其他桌面環境。GNOME與KDE完全以自由軟體組成,但只要遵守其所訂定的規則,即可容許使用者安裝其他軟體
二、社群契約 Debian Social Contract
→  Debian社群 與 自由軟體社群(非所有使用者,參加自由軟體社群者才需要訂立此份契約)
→  標的:Debian中的軟體
  1. Debian始終是高質量100%的自由軟體 Debian will remain 100% free同時支持在Debian上開發及使用自由或非自由軟體,容許使用者使用非自由軟體,不加上任何限制,而這個系統不會依賴於任何非自由軟體。
  1. 回報自由軟體社群 We will give back to the free software community
    反饋錯誤(bug)的修正、改良的意見、使用者的需求等資訊,不會私自流傳,力盡所能打造最優秀的系統,以利自由軟體得到最廣泛的使用及散布。 
  2. 絕不隱瞞問題 We will not hide problems
    始終把整個的錯誤報告資料庫開放給公眾閱讀。
  3. 優先考慮我們的使用者及自由軟體   Our priorities are our users and free software
  1. 哪些作品不符合我們的自由軟體規範
    Works that do not meet our free software standards

    FTP
    庫中留出「contrib」、「non-free」目錄,不自由的軟體會被特別放在不自由的目錄下,在這些目錄下的套件,儘管已被配置成可以在Debian下使用,仍然不屬於 Debian 系統,例如:skype。此外,開發者為了非自由軟體,提供公共資源,例如:程式錯誤追蹤系統、通信論壇。
三、Debian行為準則 Debian Code of Conduct
→ 對象:Debian開發者 (Debian producer)
  1. 尊重 Be respectful
    例如:對盲人(視覺功能障礙),以純文字顯示,最後將一列列的文字顯示在點字機上供其觸摸辨識,基本上沒有圖,即使有圖,在圖本身內也會顯示註明,告知並解釋說明,不能放了圖後就什麼都不做。
  2. 假設大家都是正直的人 Assume good faith
  3. 願意與人合作 Be collaborative
  4. 精簡程式 Try to be concise
  5. 公開開放 Be open
  6. 發生問題時要體諒他人 In case of problems
四、自由軟體 與 開放原始碼
(一) 自由軟體
其使用者有使用、複製、散佈、研究、改寫、再利用該軟體的自由。
更精確地說,自由軟體賦予使用者四種自由,使之完全具備以下四種權益:
  1. 自由之零:
    不論任何目的,有使用該軟體的自由。
  1. 自由之一:
    有研究該軟體如何運作,並且得以改寫來符合使用者自身需求的自由。
    → 前提:取得該軟體之源碼
  2. 自由之二:
    有重新散佈該軟體的自由,每個人都可以藉由散佈自由軟體來敦親睦鄰。可以放在別的網站供大眾下載,也可以包在其他軟體中,或供其他軟體使用其中的功能碼等等。
  1. 自由之三:
    有改善再利用該軟體的自由,並且得以發表改寫版供公眾使用,使整個社群受惠。→ 前提:取得該軟體之源碼
自由軟體基金會(Free Software Foundation,簡稱FSF)以下列四種標準為主要基準,檢視各種授權條款,判定其屬性:
1.    給予使用者使用軟體的四種自由→必要符合,才會被納入自由軟體的範疇
其他則依程度作為參考
2.    符合著佐權的規定
3.    與GNU GPL相容 → 所指為GPL第二版、第三版
4.    實務運作沒有困難

授權條款共有82種,分為兩大類:
1.    相容於GNU GPL:43種
2.    不相容於GNU GPL:39種

(二) 開放原始碼
一種發展軟體的方法,自許為較佳品質、高可信度、更有彈性、低成本,更可終結廠商的壟斷。
開放原始碼促進會 (Open Source Initiative,簡稱OSI) 定義:
不僅要讓使用者近用原始碼,其授權條款必須完全符合十項範疇:
  1. 自由再散佈:
    允許自由再散佈程式,並且
    不可收取授權金,不過仍然可以收取授權金以外的費用。
  2. 公開原始碼:
    以
    原始碼形式散佈程式,以備他人修改。
  3. 衍生作品:
    允許他人
    修改原程式, 並且得以散佈修改過的程式。
  4. 完整的原始碼:
    必須保持原始碼的完整性,
    散佈修改程式時,應以不同的版本編號呈現修改過的版本,或附加修正檔於原程式。
  5. 不得對任何人或團體有差別待遇:
    讓開放原始碼軟體得以
    廣泛散佈。
  6. 不得對使用範圍有差別待遇或限制:
    可以在
    任何範圍內運用,不僅限於免費公益使用,還包括商業領域,可作為賺錢的工具。
  7. 授權條款中的權利適用於收到程式的所有使用者收到程式的人就要接受這個授權條款。
  8. 不得專屬於特定產品:
    通用的,不得因產品別而特別制定另一個授權條款,仍應使用相同的授權條款,態度一致。
  9. 不得限制其他軟體:
    多個程式一併散佈時,不得限制其他程式必須是開放原始碼。
  10. 技術中立:
    可以
    在任何環境散佈,包括非網際網路、非圖形化使用者環境。
五、指令Important Shell Commands
1.  建立目錄
mkdir 目錄 → 建立新增目錄資料夾
= cp + rm
2.  切換目錄資料夾
(1)  cd 資料夾名稱 → 變更目錄 (change to directory)
例如:cd / → 根目錄(root)
例如:cd /usr/doc/package-name(套件名稱)
註:檔案系統階層標準 (Filesystem Hierarchy Standard,簡稱FHS)



(1)  系統只有一個根目錄
→ bin  dev  home    lib   lost+found mnt proc run srv tmp var
   boot etc   initrd.img lib64 media     opt root sbin sys usr vmlinuz
(2)  家目錄(home)在根目錄之下
(3)  每一使用者皆有一資料夾,在家目錄之下
→ 下載 公共 圖片 影片 文件 桌面 模板 音樂
→ 相當於圖形介面中的檔案 (檔案庫),類似MS Windows中的檔案總管
(2)  cd .. → 回到上一層目錄
(3)  cd ~(毛毛蟲);cd → 回到使用者的家目錄
(4)  ls 目錄名稱 → 列舉目錄資料夾中的檔案 (List files)
(5)  ls *.* = ls * → 列出在目錄中的所有檔案(包含任意副檔名)
註:*
不限字數的萬用符號
註:由於Linux原本是伺服器,很多人同時使用,因此有些資料夾需要root密碼才能進入修改
3.  複製
(1)  檔案
cp 檔案名稱(路徑) 目錄(路徑) → 複製檔案至目錄 (目的地)
例如:cp 檔案名稱 /home/mate/文件
(2)  目錄
cp -r 目錄(路徑) 目錄(路徑) → 複製整個目錄資料夾至目錄 (目的地)
4.  刪除
(1)  檔案
rm -i 檔案路徑 → 刪除檔案前會先主動詢問,避免操作錯誤
rm -f 檔案路徑 → 檔案被root直接強制刪除,不會有任何警告,使用時要小心
(2)  目錄
rm -d 目錄路徑 → 刪除空目錄,刪除前會先主動詢問
rm -r 目錄路徑 → 將目錄內所有檔案及目錄一同刪除,不會有任何警告
5.  開啟檔案
(1)  vi+空格+檔名
(2)  nano+空格+檔名
例如:nano copyright
6.  離開關閉檔案
(1)  vi → :q退出
(2)  nano → ^X (Ctrl+x) 離開
7.  新增並存檔
Ø   vi
(1)  路徑
註:前面若沒有給路徑,就會存在家目錄
(2)  vi 儲存的檔案名稱
(3)  : 我要輸入指令 => 跑到最末行
(4)  a (append) → 由游標之後加入資料
或
i (insert) → 由游標之前加入資料
ð  進入輸入模式
(5)  輸入資料 (位置仍然在最末行)
(6)  Enter下一行
(7)  Backspace輸入的資料跑到最上一層,進入指令模式
(8)  再編輯檔案 → :a或 :i 進入輸入模式
:a → 在該行後一段加入所輸入的資料
:i → 在該行前一段加入所輸入的資料
(9)  :w寫入並存檔
ð  “儲存的檔案名稱” [New File] ? lines, ? characters written
(10)      :q 退出關閉檔案,並回到一開始的指令模式
註:vi提供兩種操作模式
(1)  指令模式 (command mode)
當使用者進入 vi 後,即處在指令模式下,此刻鍵入之任何字元皆被視為指令。在此模式下可進行刪除、修改等動作。
(2)  輸入模式 (insert mode)
輸入資料。
Ø   nano
(1)  路徑
註:前面若沒有給路徑,就會存在家目錄
(2)  nano 儲存的檔案名稱
(3)  Ctrl O寫入
(4)  確認要寫入的檔案名稱Enter
(5)  Ctrl X離開
(6)  指令
指令
說明
^O
寫入
^X
離開
Ø   echo
(1)  路徑
註:前面若沒有給路徑,就會存在家目錄
(2)  echo >檔案名稱
8.       連接檔或標準輸入並列印
(1)  cat 檔案名稱 → 將檔案內容列印到螢幕上直接檢視
(2)  pager 檔案名稱 → 進入並顯示檔案內容
Ctrl z存檔跳回
(3)  cat >>檔案名稱 → 輸入資料新增進原檔最後端
Enter → Ctrl z存檔跳回
(4)  command >檔案 → 以指令的輸出結果替代檔案內容
(5)  command >>檔案 → 將指令的輸出結果附加於檔案之後
(6)  指令1 | 指令2 → 將指令1 的輸出結果做為指令2的輸入
9.       移動或重新命名檔案
(1)  mv 檔案名稱 目錄 → 將檔案移動到某目錄
(2)  mv 檔案名稱1 檔案名稱2 → 重新命名檔案名稱1為檔案名稱2
10.    壓縮檔案 => 三種格式
(1)  gzip 檔案名稱 => .gz
(2)  bzip2 檔案名稱 => .bz2
(3)  xz 檔案名稱 => .xz
註:各種類型的壓縮檔案,有不同的壓縮邏輯
11.    解壓縮檔案
(1)  .gz:gzip 檔案名稱.gz -d
(2)  .bz2:bzip2 檔案名稱.bz2 -d
(3)  .xz:xz 檔案名稱.xz -d
12.    搜尋檔案中的特定純文字串
grep 字串 檔案路徑 → 在檔案內找出包含特定字串的文字列
13.    顯示字串 => 傳送資料
echo 字串 → 將字串顯示至螢幕上
14.    其他
ln -s 檔案 連結 → 建立一個指向檔案的符號連結
ps [選項] → 顯示當前的程序kill [-9] 程序代號 → 傳送訊號給程序

指令 < 檔案 → 將檔案內容作為指令的輸入

註:圖形化介面由於必須顯示圖,因此速度較慢。在終端機操作速度較快 → 最大優點

  • 安裝
一、步驟
  1. 在網路上下載檔案(執行檔):檔案類型依不同的作業系統而有所不同
    ˙Windows
        .exe
    ˙Linux
        (1) .deb → 適用於 Debian / Ubuntu (較流行)
        註:延伸檔名與實際內容無關 → 保密機制
        延伸檔名是.deb,不一定代表是Debian,可能魚目混珠,讓他人無法以相對應的軟體
        開啟檔案
  2.     註:.deb 與 .exe是同一物,只是包裝方法不同
        (2) .rpm → 適用於 Fedora / OpenSUSE
    ˙跨平臺安裝
        原始檔 => 自己 compile (不會按照標準函式Standard Function編譯)
  3. 按點二下,將檔案內容安裝進入電腦 (要有root權限)
註:電腦中有 N 個程式,每一程式中有若干個模組

二、指令

(一) sudo
讓一般使用者能以root執行某個指令
(二) Dpkg
  1. dpkg -l 套件名 → 列出套件 ⇒ 查看是否有此套件
  2. dpkg -I 套件.deb 顯示套件資訊
  3. dpkg -c 套件.deb → 列出套件檔的內容 (包含哪些軟體)
  4. dpkg -i 套件.deb → 安裝套件檔
  5. debsums → 檢驗已安裝套件的驗証碼(檢驗碼)
註:Checksum校驗和
註:ISBN一碼錯誤必定不會通過檢查,但二碼錯誤可能也許會通過
註:ssh建構於Dpkg之上,接近使用者
  1. sudo$dpkg –i 下載/google(+ Tab定位鍵 ð 全名)
 → 不必將全名打出來,打前面幾個字後按下Tab鍵,可自動顯示全名
(三) APT
1.    apt install 套件名 → 從檔案庫中安裝套件及其相依套件
2.    apt update → 更新列在/etc/apt/sources.list檔案庫中的套件清單列表  (先)
3.    apt upgrade → 將所有已安裝套件更新為最新版  (後)
4.    apt depends 套件名稱 → 列出該套件的所有相依套件
5.    apt rdepends 套件名稱 → 列出相依於該套件的所有套件
例如:???與IE、Chrome相依
  1. apt remove 套件名稱 → 移除套件及所有相依於它的套件
  2. apt autoremove → 移除不再有相依關係的套件(單獨存在的套件,與任意程式無關)
    →
    一般不會執行此程式,因為沒有能力判斷被移除的套件是否仍有其他用處
註:套件
整個檔案名稱

三、新任務
Debian預設瀏覽器:Firefox火狐狸 (GNU GPL授權 ⇨ 可改名 ⇒ 曾經更名為ice)
再安裝三個瀏覽器
The major web browsers are Firefox, Google Chrome, Internet Explorer/Microsoft Edge, Opera, and Safari.

註:Microsoft Edge
Win 10 的 IE

註:Wiki 語言包含客家語/Hak-kâ-ngî (聲音記錄下來的方法)?

  • GNU/Linux Distribution Timeline 時間軸
  1. 存在長久:使用率高
  2. 分支出來:受歡迎
  3. URL https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg

沒有留言:

張貼留言