[Ubuntu] add-apt-repository

有些特定軟體需要新增 PPA source 才可以安裝

要新增 PPA source 端就要使用 add-apt-repository 這個指令

要使用這個指令必須安裝 python-software-properties

sudo apt-get install python-software-properties -y

 

Ubuntu 13 以上的版本請改安裝 software-properties-common 這個套件

sudo apt-get install software-properties-common -y

 

Leave a comment

[Linux] 用 ln 建立檔案或目錄連結

使用方式為 ln [-hs] <來源> <目標>

EX: 在 /var/www 下建立一個名為 wpmu 的 Synbolic Link,來源端為 /home/wordpress

ln -s /home/wordpress /var/www/wpmu

 

這裡只說明參數 -h-s 的差異,詳細請見 官方文件

 

-h 為 Hard Link,讀取方式為一層一層取得檔案相關的關聯資料,再到對應的 inode 取得檔案的屬性,以及檔案內容資料所在的 block , 最後到 block area 取得檔案的資料。

不管在哪個目錄底下叫出檔案並修改,因為 Hard Link 只是在目錄下建立一個檔案關聯紀錄,因此修改檔案時皆會修改到同一個檔案,而刪除檔案時只是刪除一個檔案關聯紀錄,並不是刪除檔案本身,因此不會變動到檔案本身的 inode 與 block area,好處為較安全。

由於 Hard Link 是在同一個 partition 上建立檔案關聯,因此 Hard Link 有兩項限制:

  1. 不能跨 File System
  2. 不能對目錄做 link

 

 

而參數 -s 為 Synbolic Link,這就好理解多了,Synbolic Link 會建立一個新檔案,指向 link 到的檔案或目錄,所以原檔案或目錄被砍掉時,這個 link 就會失效。而因為 link 的建立方式是建立新檔案,因此會有獨立的 inode 與 block 佔用磁碟空間 (建立及運作方式雷同 Windows 的捷徑)。


Reference:宅男的電腦筆記

Leave a comment

[Ubuntu] 於指令列顯示 screen 的視窗編號

編輯 ~/.bashrc 這支檔案,並看到這一段(約在56~60行)

if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[email protected]\h\[\033[00m\]:\[\033[01;34m\]\w[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\[email protected]\h:\w\$ '
fi

 

這段是判斷有無開啟彩色 Terminal 顯示模式

第二行為預設的顯示設定,顯示的樣子大概像這樣

 

要顯示視窗則改成下列內容

if [ "$color_prompt" = yes ]; then
if [ "$WINDOW" = "" ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[email protected]\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[email protected]\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;35m\][W$WINDOW]\[\033[00m\]\$ '
fi
else

 

在彩色 Terminal 顯示模式裡面再加一個判斷 GNU Screen 是否啟用,沒有的話顯示預設樣式,有的話則顯示成有加入視窗編號的樣式

簡單說明一下 PS1 修改的內容區分為兩部分

\[\033[01;35m\] 這段是宣告文字顏色(這裡用亮紫色當示範)

[W$WINDOW] 圖片中顯示 [W6]$WINDOW 這個變數是視窗編號

 

修改儲存後輸入 screen 指令開新視窗後顯示的樣子就像這樣

 

完成收工!

One Comment

[Ubuntu] Apache 模組的啟用與停用

Ubuntu 與 FreeBSD 的 Apache Load Module 設定有點小小的不同,在 FreeBSD 上是直接在 httpd.conf 上把註解拿掉,重啟服務後 Module 就啟動了。不過在 Ubuntu 的設定檔都零零散散拆成很多檔案,Load Module 這部分的設定也是。

[email protected]:/etc/apache2$ ls
apache2.conf  conf.d  envvars  httpd.conf  magic  mods-available  mods-enabled  ports.conf  sites-available  sites-enabled

 

mods-available 是所有模組存放目錄,但是服務載入的模組是存放在 mods-enabled

注意到 apache2.conf 的其中幾行:

# Include module configuration:
Include mods-enabled/*.load
Include mods-enabled/*.conf

 

服務啟動時,只載入 mods-enabled 裡面的模組,而部分模組在安裝時預設是不啟動的(意即該模組不會出現在 mods-enabled

若要載入指定模組,可使用 a2enmod 這個指令。例如要啟用 mod-rewrite 模組:

[email protected]:~$ sudo a2enmod rewrite

 

輸入 ls /etc/apache2/mod-enabled,可以看到指定的 module 已經被放進 mods-enabled 裡了。

要停用模組可用 a2dismod

[email protected]:~$ sudo a2dismod rewrite

 

這時候 mod-rewrite 就從 mods-enabled 消失了,模組異動完後記得重啟服務才會生效:

[email protected]:~$ sudo service apache2 restart

 

※PS:a2enmod 實際上也只是把 mods-available 的模組用一個 Symbol Link 指過去 mods-enabled 而已,所以直接用 ln -s 指過去也不是不行 XD​。

Leave a comment