2016年11月5日 星期六

105/11/04 第八週 Linux桌面系統

課程進度:考前總複習


Debian參考卡片
shell command
mv cd 檔案跟目錄的流動舉實例告訴我怎麼搬怎麼弄

linux檔案的排列標準叫filesystem hierarchy standard檔案系統階層標準

可以從入門

/ 根目錄
/home 看這電腦到底有哪些使用者
如果你在dmtsai菜這個目錄裡面

cd .. 回到上一層
到了home
cd /lib/module

圖形介面跑得比較慢 如果在終端機裡面就可以快一點
(有擺盤 跟 打包過的)
指令的英文縮寫他們會把母音踢掉

echo 把你要的字串顯示在螢幕上
可能可以用在程式裡面

你可以先事事看把你doc檔壓縮起來 看他檔案大小剩多少
太小沒什麼好壓的  各家的壓縮軟體跟檔案性質處理起來的效率不同

pager 跟cd
好像一樣
可以去分辨一下

mkdir新增一個目錄

cp 複製

find [目錄表達式]
你的檔案不知道放到哪裡就用這個

grep 搜尋字串 檔案
他只能搜尋純文字檔

每一個稱為一個section程序
看看你現在有多少個section

kill程式當掉的時候先找出一個section再把他kill

su [使用者名稱] 切換那個使用者
sudo    以一般使用者身分執行root的功能
command > 檔案
比如我把ls > abc
再打cat abc
裡面就是我剛剛輸入的abc
你用了一個箭頭原來的abc就沒有了
他是新的 (覆蓋)

如果換成 >> 變成附加上去

指令1|指令2
前面這結果本來要輸出在螢幕的 把她送給指令2來使用

比如
ls > abc       ls內容存到abc
再多寫一個ls > abc |cat他就把abc 顯示出來

所有指令都有進有出

有些檔案一定要root才能打開
理由很簡單
因為linux原來的設計是伺服器 就是給多人使用
跟MSwindows不一樣 那是個人電腦
你如果直接進去root限制住大家那大家就不用玩了
所以以只要管你自己那邊就好

shell外殼
駭客入侵 就是別人取得你的root的控制權

所有的程式裡面都有n個程式 每個程式裡面還有若干個模組
你看到的exe檔就是一個壓縮檔

apt
MSwindows把安裝檔打包命名為exe

課程用的是.deb 適用於debian 跟 ubuntu

.rpm 適用於 fedora 跟 openSUSE

但實際上Linux有很多種
那他要用什麼
超商這麼多家 為什麼還有雜貨店
因為高興而已

但是在電腦裡面每件事都有道理

.deb也是延伸檔
檔案都是會根據作業系統裡面的東西來處理
所以不能把.deb放在mswindows裡面處理
除非你經過特殊處理

現在很多軟體都適用於各種OS
心中想的是要給所有的人用
他們就會抓標準的模組
跨平台就是這個意思compile

如果他不這樣你就只能自己去compile

apt install [套件名]
安裝用
套件名稱(安裝包的檔名)

你覺得太長怎麼辦
你如果只有一個檔案開頭式不一樣的
以現況來說式g
再按tab
他會自己幫你補齊(抓)你沒打完的字

apt或 mv 之類的這也是程式 只是他們稱為指令
安裝完之後你不要用了你會把他刪除
apt remove [套件名] 全部處理掉
apt autoremove 這個很少人用 他會處理掉跟其他檔案相依不多的
因為我們沒有能力去判斷那個程式到底用在什麼地方
或是常誤判

redepends 別人相依於他
depends 他相依於別人

apt update 更新source list裡面的套件
更新套件列表
這清單會告訴你這電腦裡面所有的套件
有這資料之後才能upgrade
如果少了更新的步驟
可能會在上一次upgrade的實後出現了 但是還沒更新目錄

就像圖書館裡面我們會依照目錄去更新舊版的書
如果目錄沒有更新她就不會處理到那些沒被放進目錄的書了
這樣有跟沒有就一樣了

/*我們只考到shell
其他的留到之後
參考卡片 裡面放的是用的比較多的指令
不會全部教 所以要自己看看

你現在有一個瀏覽器
你在裝三個進來
google oprea firefox edge  safari

我們用linux的人就是一定要用那個很精準的
要用什麼就裝什麼
不要裝 一個懶人包 從出生到死亡裝這個就好的 這種不要

越南文 漢語拼音 客家文 其實都不是文字 只是用英文拼音加上表示聲調的符號*/

debiandesktop.pdf

(Debian社群)與自由軟體簽訂契約

契約的甲方(debian社群)乙方(自由軟體社群)

契約標的是這些軟體

這契約是debian社群去訂的 所以他們是甲方

行為準則 Debian Code of Conduct
debian計畫採用這行為準則給參與者
在那些mailinglists, IRC channels等裡面也都是用這行為準則

他的對象是producers 即製作debian的人

所以我們是使用他的人不用管這個準則

如果我是debian system producer
我要思考到這個東西可不可以給盲人用 之類的
那盲人怎麼用電腦  摸的
所以我要想辦法把所有東西弄成文字呈現
而且可以轉換
讓盲人也能看到那個說明

他們看不到那個圖 但是他可以知道那個圖裡面的文字

尊重

正信 正面看事情

要跟人家合作

做出來的軟體要精簡

open

有問題的時候怎麼辦  參考第一條

上毛老師的課有哪兩個規則?
第一條 毛老師永遠是對的
第二條 有問題怎麼辦 參考第一條!

自由軟體 什麼叫自由軟體 什麼叫開放原碼
考試叫你寫300字

linux發行版的時間軸
從一個作業系統分出很多個發行版distribution
表示那個作業系統是受歡迎的
早年的都不見了

2016年11月3日 星期四

105/10/28 第七週 Linux桌面系統

課程進度:實作 Debian GNU/Linux Reference Card

Getting Help
man page or man bash
能從線上取得每一個指令及許多設定檔

man = manual(操作說明)
page可以是檔案的格式不知道的指令
按q可離開man的環境
e.g. man poweroff

command [--help, -h] 說明指令(如何做)
用在查詢 你曾經用過的指令所具備的選項參數


說明文件通常放在 /usr/share/doc這個目錄
而且這個目錄主要是以套件(packages)為主的
e.g. /usr/share/doc/*libreoffice*

ls [加上檔名或目錄名稱]
想看某目錄下有什麼目錄或檔案就用ls(list的意思)她就幫你列出來
ls -d 列出目錄本身

~毛毛蟲
回到家目錄(/root)

cd [完整路徑名稱]
(Change Directory的縮寫)
變換工作目錄的指令
e.g. cd /usr/share/doc 會進到那個路徑下的doc目錄

僅輸入cd
相當於 cd ~
相當於~
回到家目錄

做每個動作的時候都要先知道自己到底在哪裡
pwd [-P]顯示目前的所在位置
(Print Working Directory的縮寫)

cat [檔案名稱]
(Concatenate 連續  的簡寫)
在終端機列出文件的內容

cat > [檔案名稱]
開啟新檔,創一個新的檔案
可以在終端機裡輸入文字
然後存檔離開

cat >> [檔案名稱]
附加內容進一個已存在的檔案

2016年11月1日 星期二

105/10/21 第六週 Linux桌面系統

大部分的人對這些自由軟體善惡的想法

不是所有的Linux都是良善的
做這個圖的人認為某種程度上來說認同的人較多
認為較優秀的是redhat
最爛的是Ubuntu
又不守規矩又邪惡
最混了 又麻煩
軟體包裝等弄了很多稀奇古怪的東西在裡面
又不告訴人家她是怎麼做的

我們用的是Debian
他才不管你混不混亂只要做好人又可以


SLACKWARE建議你用好的方式做她也不管你

archlinux的介面不會讓人覺得好用
因為他沒有圖形介面

就像打棒球一樣

打球的時候不用管他有沒有講髒話
只要管他有沒有打到球有沒有得分就好
用戶友好是狗屁,用戶中心才是王道

linux from search 他不是好人也不是壞人她只是有秩序跟沒有秩序

redhat台灣所有人都躲他
公元兩千年時 自由軟體那群人他們的態度跟redhat不一樣
他們把重心放在大陸
所以把台灣當作大陸的一省
所以台灣這群做自由軟體的相關人士就不用redhat了

但是我們電腦要用的作業系統跟政治立場放在一起談論
是沒有道理的
不相干的兩回事馬

系上最早用的是slackware

自由軟體的真諦

對各位這樣的初學者來說
我們把自由軟體跟開放原始碼當作是同件事
實際上他是同件事嗎 絕對不是
如果他是同件事就不會有兩個名詞所以是不一樣的
那自由軟體跟開放原始碼不是專有名詞
沒有申請專利也沒有商標
所以任何人都可以說這是你的軟體你的程式碼
都可以 沒問題

日本有間公司叫軟體銀行
可它既不是軟體也不是銀行

自由軟體或開放原始碼也是一樣
大部分情況下我們會去理他
你要告訴我的學生 我是好人
但你問我 我會跟你說這傢伙是壞蛋
可是你沒來問我 我也不會告訴你啊

他允許你去複製安裝使用等等等 並表示他沒有智慧財產權
因為有所以她才能允許你對他做這些動作

授權到什麼程度是自由軟體 授權到什麼程度是開放原始碼
闖紅燈是不是會被罰錢 不會 只有被逮到才會被罰錢
也有人闖紅燈是沒被逮到 但她永遠都不能再闖紅燈了
所以到底是什麼 就根據這個授權條款

開放原始碼基金會 他們會審核
這個授權條款若符合他們的定義我們就用它

原來是畫成這樣沒中文也沒顏色區分
 [Categories of software]

一邊叫自由軟體 一邊叫專屬軟體
一切為二
自由軟體裡面
另外一個軟體叫開放原始碼軟體
在這裡面有一部份是自由軟體 有一部份是開放原始碼軟體
public domain這軟體已經是全人類共有的
BSD
copyleft著佐權 其中一個叫GPL

專屬來源沒有source
鴉片軟體跟鴉片一樣 用了就離不開她了
歪斜斜的像鞋子一樣的那區域內是可以自由下載

實際上
唯一能分的是自由軟體跟專屬軟體有區隔
很難解釋專屬軟體可以免費下載

以前是買硬體 你會問這硬體能不能做到我要的這件事
你去買床墊你只是去買一個能給你躺下來舒服用的東西你不是買床墊
這軟體也是一樣 以前的軟體是根據這個機器去設立的


能夠賺大量錢的人都不是好人

1983年他就很不爽軟體要賣錢這件事她就弄了一個GNU計畫
GNU:我做一套作業系統裡面要有核心、文書處理、試算表、能夠繪圖編修影片等等

哪個軟體要放裡面?
他一個一個去找

但他這裡面做到現在他還是沒有核心
到了1992還1993年時那時候Linux已經出來了

他覺得這也不錯所以他就用了
GNU裡面有沒有不用Linux的核心呢
也有那個叫BSD
他同意你這樣做也授權你這樣做

目前是在法國、歐盟、阿丁美洲、印度這四個辦公室

自由軟體基金會 宗旨有二
1.電腦使用者的自由
2.捍衛所有自由軟體使用者的權益
對象是使用者不是軟體

圖書館的對象是書嗎 不是 是使用者
你現在這個讀者都不能滿足 那你怎麼去滿足其他讀者
所以你一定要面對這個讀者
所以她對象是自由軟體的使用者

DRM
原來是digital right management
他把它改名字

這個世界就是要靠匿名來維持
如果全部都公開的話這個世界就是獨裁者 控制所有的一切
你在變化的時候 你一定要匿名 你才有能力做這件事
才有這場域讓你做這件事 如果沒有匿名就去做 你根本想就不敢想

自由軟體基金會的工作如下(都是因為前面這些宗旨)

1.維護自由軟體哲學的文章
2.維護自由軟體定義
3.界定什麼軟體才是自由軟體
4.贊助 GNU 計畫,自由軟體方式授權的完整作業系統。

5.贊助與推動重要的自由軟體發展,包括完整的電子郵件與外殼服務,以及郵寄名單。持續發展 GNU 作業系統,讓志工很容易地參與,包括贊助大草原(Savannah)網站,做為自由軟體的套件庫與發展中心。


著作權大部分是前面這個軟體所有
他們會轉讓
他就根據美國的法律授權
大部分的是GNU通用公共授權條款(許可證)
這個我們指的就是自由軟體基金會
確保 自由軟體基金會 你有這個義務
去遵守交通規則
如果這馬路你是開的 沒問題你想怎麼在上面開車都可以 政府管不著
但是這不是你一個人用的 所以上面就會來管你

要做瘋狂事情的一定是學生
為什麼要有時間規範 一定要有個時間規範你才會做事啊

定義
甚麼叫自由軟體請你用3X個字來說明


自由軟體所指稱的軟體,其使用者有使用、複製、散佈、研究、改寫、再利用該軟體的自由。更精確地說,自由軟體賦予使用者四種自由:

l   不論目的為何,有使用該軟體的自由(自由之零)。

2   有研究該軟體如何運作的自由,並且得以改寫該軟體來符合使用者自身的需求(自由之一)。取得該軟體之源碼為達成此目的之前提。

3   有重新散佈該軟體的自由,所以每個人都可以藉由散佈自由軟體來敦親睦鄰(自由之二)。

4   有改善再利用該軟體的自由,並且可以發表改寫版供公眾使用,如此一來,整個社群都可以受惠。如前項,取得該軟體之源碼為達成此目的之前提(自由之三)。


如果一軟體的使用者具有上述四種權利,則該軟體得以被稱之為「自由軟體」。也就是說,使用者必須能夠自由地、以不收費或是收取合理的散佈費用的方式、在任何時間再散佈該軟體的原版或是改寫版 在任何地方給任何人 使用。如果使用者不必問任何人或是支付任何的許可費用從事這些行為,就表示她/他擁有自由軟體所賦予的自由權利。


指使用者有這些自由
桌子椅子沒有自由 是用桌椅的人才有自由

授權使用者這些方法

同樣一個東西他違不違法是在用的人 不是他本身

你可以研究他 然後改寫以符合自己的需要
在圖書館裡面借書期限是二十天你要改三十天可不可以 那你就去研究
喔原來在這裡 你就去把它改^你要的三十天

四種自由都有就算是自由軟體

授權條款
一前面四個授權標準檢視各式各樣的自由條款↓

給予使用者使用軟體的四種自由

1 符合著佐權的規定。

2 與GNU GPL相容,指的是GPL第二版及第三版。

3 實務運作沒有困難。

你自己寫了一個軟體加入說明跟授權條款
就可以是自由軟體

用了就好了 其他不用去管它
特別點名非自由軟體 尤其是他名字裡面有free這個字眼的

如果你看到一個授權條款不在那32跟28個裡面的 要自己去判斷

下節課從開放原始碼說起
天地間的萬物是沒有絕對的
你這件事情不管你做得多好還是有人會說你做錯

認為自由軟體妖言惑眾根本沒有所謂的自由軟體
所以弄了開放原始碼
想辦法知道他有什麼不一

開放軟體
是一個發展軟體的方法
認為自己可以終結廠商的壟斷
對象也是軟體 也有授權
這授權條款如果符合我的範疇就可以算開放軟體

自由再散布:允許自由再散布程式,並且不可以因此而收取授權金,不過仍然可以收取授權金以外的費用;

原始碼:以原始碼形式散布程式,以備他人修改。

衍生作品:允許他人修改原程式, 並且允許他人散布修改過的程式。

原創原始碼的完整性:必須保持原始碼的完整性,修改過的版本,應以不同的版本編號呈現,或以修正檔方式,附加於原程式的形式,來散布修改程式。

前面是對軟體後面是對人

不得對任何人或團體有差別待遇:其目的係讓開放原始碼軟體可以廣泛地散布。

不得對使用範圍有差別待遇:可以在任何範圍內運用,包括商業領域。

散布授權條款:授權條款中的權利適用於收到程式的所有使用者。

授權條款不得專屬於特定產品:軟體內的部份程式被拿出來單獨散布時,仍應使用相同的授權條款。

授權條款不得限制其他軟體:多個程式一併散布時,不得限制其他程式必須是開放原始碼。

授權條款必須技術中立: 可以在任何環境散布,包括非網際網路環境以及非圖形化使用者環境。
(通用的)

這十個跟前面四個有沒有衝突
開放原始馬這十個講的是軟體
自由軟體上面四個講的是使用者

著佐權(GNU計畫提出)
不是放棄著作權
我要求你用了這軟體所產生的西東西同樣也要用我的這個授權軟體來授權

有時候會矛盾

但一定是有限制的自由才是自由
是盧梭跟洛克說的

軟體可以授權文件也可以授權
GNU自由文檔許可證(GNU Free Documentation License, FDL)

自由軟體大部分講道德層面 (出發的角度)主要保障使用者權益
開放原始碼講商業層面 主要保障開發者權益

所有的事情基本上越新的越好
新的是當代的概念 舊的是過時的概念
但例外太多了

自由軟體是一個社會運動
我們的重點是叫他用這類軟體不是說開源跟自由有什麼不一樣

開源軟體給人家錯誤印象

自由軟體就是免費
別的東西你都不管了可以修改研究再散播你都不管了
開源軟體你就看到他有原始碼但其他你就不管她授權條款了
這樣也不對
那兩個指示他的基礎還有別的東西在上面
不表示他們就是這樣的呢
根據軟體的許可證規定各有不同

寫一個軟體只有公司的人在用的叫alpha版
外面的人也可以用叫beta版
不同價值觀可以得到類似的結論

軟體就專心在收錢 但他應該要專心在開發跟使用
不只妨礙到其他方面
如果軟體收錢的話你就阻礙使用者的進步
搞了老半天你是拼命去管理這些東西不是去開發她

對事情一定要有態度
對於你自己切身關係的東西你不能保持沉默
你一定要表達你的態度