2012年9月30日 星期日

免費的鍵盤、滑鼠共用軟體 - Synergy

時常使用兩部以上電腦同時作業的人,都會對桌上的堆滿的鍵盤、滑鼠很煩腦。不但佔用空間,不時的切換鍵盤、滑鼠,弄得都不清楚在使用哪一部電腦。使用 KVM 切換器,又要花錢,又不一定適用。有個免費軟體 synergy,可以提供這項功能,而且支援三種主要電腦系統:Windows, Mac OS X 及 Linux (包含 Ubuntu/Debian, Fedora/Red Hat)。
    因為我只有 Windows 和 Fedora 系統,以下就以這兩種系統的安裝、設定為例。

2012年9月28日 星期五

常用 YUM 命令:安裝、移除、查詢及回復

前文“Fedora 中常用的 YUM 更新命令”只將更新有關的 YUM 用法寫出,其它有些也很方便、好用的 YUM 命令,並未寫出。
    本文將筆者常用的 YUM 命令,完整說明於後,方便初學者參考、使用。

2012年9月26日 星期三

應急用的 SFTP 客戶端程式 – sftp

前文 “藉 SSH 的 SFTP 次服務,進行安全的「檔案傳輸」” 僅提及 SSH 的次服務 SFTP 的方便性、安全性。這是「伺服器」端的服務程式,不是「客戶」端的程式。
    在使用「圖形化介面」FTP 客戶程式時,只要用原來 SSH 服務的「埠號」、「帳號」和「密碼」就可以。但是,若該系統非自已管理,又未安裝這些「圖形化介面」FTP 客戶程式時,又想做一些檔案傳輸時,只有回到原始的「文字介面」了。
    幸好,Linux 系統的預設安裝中,都有 sftp 這個程式,在「終端機」下這個命令,就可以連到另一台電腦,
[SiB@Celeron-D ~]$ sftp -P 5566 SiB@192.168.10.17
上例中,『5566』、『SiB』及『192.168.10.17』分別為另一部電腦的 SSH 之『埠號』、『帳號名』及『網路位址』。

註:有時在急救系統時,不能安裝程式,又想備份一些設定時,sftp 應該很適合。

已測試版本:

  • Fedora: 14, 17

2012年9月24日 星期一

解決「更新 Fedora 後,仍啟動舊版 Kernel」的問題

有時候,明明已經更新系統,可是重開機時仍舊自動啟動舊版本的核心(Kernel)。如果在「啟動選單」時,強制選擇最新版本,當次啟動版本就正確。但是,下一次重新開機時,又會自動啟動舊版。
  原因出現在設定開機啟動程序那個檔案,在檔案『 /boot/grub2/grub.conf 』的約第 12 列,有一個設定預設啟動版本的命令,
set default="2"
如果,它的設定為 2,表示它預設從「啟動選單」的第二項開始。通常是因為更新前的設定為 1,所以更新後自動加 1,將 1 這個順位保留給更新後的版本。
  要修改這個啟動順序,有兩個方式:

更改為由第一順位啟動

將該列改為
set default="1"
但是,下次有更新系統核心時,這個動作仍要再做一次。

更改為與上次啟動相同版本

若做以下修改
set default="${saved_entry}"
當下次開機時,在開機選單出現時,做一次選擇後,Grub 這個啟動套件,會自動將這次啟動版本記錄下來,以後開機就會與上次啟動同一版本。

已測試版本:

  • Fedora: 17

2012年9月22日 星期六

在 GNOME 中,用戶自訂「常用程式」選單

將常用的程式收集在 GNOME 的「應用程式」選單中,的確是一個很酷的作法。但是,前文 “將常用程式收在 GNOME 的「應用程式」子選單” 的方法只能由系統管理者修改,如果是系統中多數用戶常用的程式,這種設定的方式一次就方便了許多用戶。但是,對於沒有 root 權限的一般用戶,想要自訂自己專用的「常用程式選單」,前文的方法就不可行了。
    如果仔細研讀 GNOME 的文件,會發現到其實一般使用者也可自訂「常用程式選單」。設定的程序說明如下:

2012年9月20日 星期四

用較短的命令,加快建立由 SSH 重導之 VNC 連線

前文“開啟個人化的 VNC 服務,供「遠端桌面」連線”提到的啟動 VNC 方法,可能會遇到幾個問題:
  • 須由系統管理員開啟「防火牆」上的埠,供 VNC 使用。
  • 命令加上參數太長了,不是記不住,就是容易打錯字。
  • 太長的命令列,完整打完需要點時間,不是很方便。
解決上面三個問題,可以用前文提過的兩個做法來解決。

2012年9月18日 星期二

將常用的「命令 + 參數」合成「新命令」,方便執行

Linux 裏常有些操作命令加入參數後,真是長得記不住。雖然,可以按「↑」鍵,把之前下過的命令找回來。但是,不常下的命令,或是不知多久前下過的命令,想要找回來可有點麻煩。
    最好的方法就是把這個「命令」和「參數」先寫在一檔案中,再執行這個檔案以下達命令,而且
快速又不用擔心打錯字
主要步驟有三:編輯命令檔、改變命令檔模式、及執行。命令檔模式若不修改,就會影響執行的方式。詳細說明如下:

2012年9月16日 星期日

升級到 VirtualBox 4.2 的小插曲

從 VirtualBox 2.x 用到現在,也隨著它的更新使用最新版。看到 4.2 版發佈,馬上執行更新指令
[root@Core-i7 ~]# yum update
奇怪!怎麼沒有更新到 VirtualBox 4.2 ,還是 4.1.22 呢?正奇怪是怎麼回事,哈!是自己忘了重要步驟。由於,最近一年多來 VirtualBox 都沒有大改版(註:4.1.0 版是 Jul. 19, 2011 發佈),才會忘了這步驟。趕快記下來,免得又健忘了。

VirtualBox 版本由 m.n 升級到 m.(n+1) 時的步驟

以這次由 VirtualBox 4.1.22 升級到 4.2 為例,完整升級命令應該是
[root@Core-i7 ~]# yum remove  VirtualBox-4.1
. . . . . .
[root@Core-i7 ~]# yum install VirtualBox-4.2
才對,接著,當然就順利升級成功。

注意一:要以上列命令執行更新,要先將 VirtualBox 安裝成可由 YUM 自動更新才行。
注意二:VirtualBox 版本由 m.n 升級到 (m+1).0 時的步驟,也要先移除舊版、再安裝新版。
注意三:以上這些升級,並不影響使用中的虛擬機之設定。

已測試版本:

  • Fedora: 14 + VirtualBox: 2.x ~ 4.1.22
  • Fedora: 17 + VirtualBox: 4.1.x ~ 4.2
  • Fedora: 18 + VirtualBox: 4.2.18 ~ 4.3  (2013-10-18 測試)
  • Fedora: 19 + VirtualBox: 4.2.18 ~ 4.3  (2013-10-18 測試)

2012年9月14日 星期五

在 GNOME 3 「後備模式」的面板上加入小工具

在 GNOME 2 的面板上,常會加上一些小工具,方便顯示些訊息,或做些操控。GNOME 3 大改版後,有非常像平版的操作介面,覺得不太習慣。平常都把桌面切回「後備模式」,舊一點的那台電腦,根本就被 GNOME 3 直接切回。少了一些炫麗的桌面,卻增加不少反應速度。
    切回原有熟悉的桌面,就想在面板上加些小工具。原來的「滑鼠右鍵」已經不會出現熟悉的選單
要改成別的按鍵組合了。
GNOME 3 執行位置按 鍵 組 合
 電腦主機中 [Alt] +「滑鼠右鍵」
 VirtualBox 虛擬機中   [Alt] + [視窗鍵] +「滑鼠右鍵」
接著,熟悉的選單就出現了。
註: [視窗鍵] 通常位在 [Alt] 和 [Ctrl] 鍵之間,上頭有個「視窗」圖案。

後記:


已測試版本:

  • Fedora: 17 + GNOME 3.4.x (後備模式)

2012年9月12日 星期三

開啟個人化的 VNC 服務,供「遠端桌面」連線

VNC 是 Linux 系統裏最常用的「遠端桌面」協定,雖然系統管理者可以設定成連線時啟動,當使用者以 VNC 客戶端連線時,自動啟動 VNC 伺服器供「遠端使用者」使用。但是,當所在的網路環境中,有許多不同版本的作業系統時,要讓「遠端使用者」有一致的操作程序,是需要一點時間的系統調整。
    個人偏好由「遠端使用者」以 SSH 這類「遠端終端機」連入系統,再自行啟動 VNC 伺服器,多了一個步驟,但是,系統設定變得簡單多了。「遠端使用者」在開啟 VNC 伺服器時,也可以加一些個人化的參數,方便「遠端桌面」的連線使用。

2012年9月10日 星期一

(增修) 改進「關閉 Fedora 17 的 IPv6 服務」的設定程序

依照前文 “關閉 Fedora 裏不常用的 IPv6 服務” 的步驟,的確可以關掉 IPv6 這個現在用不太到的網路服務。但是,偶而 Fedora 17 系統會發出一些警告訊息,應該是前文的設定步驟,不是 Fedora 17 的正常關閉方式。查一下資料,修改一下關閉 IPv6 的設定如下:
    設定分兩種:暫時性但立即生效、永久性有效。

2012年9月9日 星期日

以範例說明 SSH 的連線、通道(Tunnel)使用

Linux 系統可以開啟許多網路服務,而「防火牆」又是電腦的必備防護機制之一,為了讓網路上的使用者能夠直接連線使用這些網路服務,就需在「防火牆」上開啟這些埠。就如在圍牆上打個洞一樣,總有一些人從這些小洞窺視,網路上常有人在掃描這些開放的埠。
    當然,可以再加些防護措施,但是愈多的防護,就是愈多的網路封包檢查,CPU 的運算就點點滴滴地花費在這些地方。除非必要,開放的埠愈少,被窺視、刺探的機會就愈少。把防護的網路封包檢查,集中在少數幾個埠,可以節省 CPU 的運算資源,特別是這些網路服務僅限系統使用者使用者。
    SSH 是網路公認相當安全的「遠端終端機」協定,除了簡單連線外,也有許多強化功能,方便網路連線使用。網路上常見將這些強化功能,用在穿透網路管制之用,但是,在網路世界裏,凡做過必留下痕跡,要查出用 SSH 穿透網路管制也不是難事。建議,還是少做為妙。
    本文接下來的介紹,以正當用途的使用為範圍,對於 非建議的用途 就不多著墨。畢竟,SSH 的連線是被授權的「使用者」才能使用,就像偵探小說一樣,都是從有限的『嫌疑犯』中去找犯人,要找出來太容易了。

2012年9月8日 星期六

在「遠端桌面」啟動「圖形化用戶介面(GUI)」管理程式

VNC 或 RDP 可以將「遠端電腦」的「虛擬桌面」顯示在「本地電腦」,著實可以帶來許多便利。但是,在 Fedora 類的作業系統卻因 SELinux 的保全功能,而不能點選、啟動「遠端電腦」中的「圖形化介面」之系統管理程式。其它一般使用者的程式,倒沒有這些問題。
    對於初學者而言,使用「圖形化介面」的系統管理程式,的確可以減少許多阻力。畢竟,對多數使用者而言,為了系統管理的工作,而背一大堆命令、參數,似乎有點辛苦。前面發表過一篇“透過 SSH 連線,開啟遠端之「圖形化用戶介面(GUI)」的程式”,只提了利用 SSH 的 -X 這個參數,將「遠端電腦」中執行的「圖形化介面」程式的畫面重導至「本地電腦」。
    實際上,「遠端電腦」中「虛擬桌面」所執行的「終端機」,若先切換至 root 身份,一樣可以執行系統層級的管理程式。而且是顯示在「遠端桌面」上。
這兩個方法使用時機,有些不同,在篇末再討論使用時機的問題。

2012年9月7日 星期五

藉 SSH 的 SFTP 次服務,進行安全的「檔案傳輸」

當有檔案傳輸的需求時,在 Linux 裏有許多選擇,初學者常在為安裝哪一種「檔案傳輸伺服器(FTP server)」而傷腦筋,即使得到很好的建議後,也會為如何設定而煩腦。

    如果,你的 Linux 已經安裝 SSH(常見的 Linux 系統多會預設安裝)、設定妥當。那就不需要再安裝什麼,你已經有一個『現成的』、『安全的』的「檔案傳輸服務」了。也不需要再設定帳號了,只要是這個 Linux 系統的使用者,就可以連線使用。

    登入、連線的步驟很簡單,也有很多現成的工具可用,如:Filezilla、gFTP 等。在 Windows 裏也有許多免費軟體,如:Filezilla、WinSCP 等,及一些有試用期的就不多列了。

    這個 SSH 的 SFTP 次服務使用的方法很簡單,基本上和 SSH 的登入差不多,網址及埠號:就和 SSH 相同,只有在 FTP 的客戶端連線時,要記得設定它使用的協定是 SFTP 即可。

注意:只有在這個 Linux 系統有帳號的使用者才可以使用,若是想讓「非帳號」使用者也可登入,還是得再安裝其它 FTP 服務才行。

已測試版本:

  • Fedora: 14, 17

2012年9月6日 星期四

限制 PulseAudio 的「非授權」聲音轉送

前文 "利用 PulseAudio 將聲音轉送到另一台電腦" 說明設定電腦聲耳在電腦間轉送的步驟,但是,不需經認證的程序就可以轉送聲音。若這兩台電腦不是自己專用的,任意轉送音效可是會嚇到別人,也可能會嚇到自己。

PulseAudio 這組套件,提供幾種簡單的認證程序,可避免未經允許的聲音轉送。在 Fedora 中的相關設定說明如下:

一、設定認證的相關模組、設定檔

PulseAudio 中與設定認證有相關的模組,有這四個:
module-esound-protocol-unix
module-native-protocol-unix
module-esound-protocol-tcp
module-native-protocol-tcp
後兩個的設定過程比較簡單,所以待會的設定步驟以這兩個模組為主。

設定認證的檔案有兩個:
/etc/pulse/default.pa :系統層級的設定檔,通常安裝 PulseAudio 時,就已設定妥當。維持預設內容、不需修改。
~/.pulse/default.pa :使用者級的設定檔,要額外設定模組時,再修改。否則維持原狀。(某些系統預設無此檔案)
認證密鑰檔有兩個,
~/.esd_auth :供 module-esound-protocol-{unix, tcp} 連線認證用
~/.pulse-cookie :供 module-native-protocol-{unix, tcp} 連線認證用

2012年9月5日 星期三

查詢 OpenCV 函式庫的 Link(鏈結)參數

在前文 " 在 Linux 中,用 Eclipse 開發 OpenCV 程式 " 和 " 在 Fedora 17 中,用 Eclipse 開發 OpenCV 程式 " 中,對「Link(鏈結)」參數如何得知,除了 Google 以外,應該有其它方法。

    Linux 有個程式 pkg-config 用來查詢已安裝的函式庫之資訊,用 pkg-config 查詢 OpenCV 的函式庫的命令為,
[SiB@Celeron-D ~]$ pkg-config --libs opencv
-lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann
上例是在 Fedora 17 的查詢情形,下例是在 Fedora 14 的查詢結果,
[SiB@Celeron-D ~]$ pkg-config --libs opencv
-lml -lcvaux -lhighgui -lcv -lcxcore
這些參數是使用 gcc 編譯、鏈結時,附加在後面的參數。包含『編譯』及『鏈結』兩個階段所用,參考之前的兩個發文,再加一些測試,應該就可以順利應用這幾個參數了。

註:不同版本的套件所提供的函式庫可能不一樣,所以不可沿用其它版本查詢的資訊。

已測試版本:

  • Fedora 14 + Eclipse 3.6.1 + OpenCV 2.1.0
  • Fedora 17 + Eclipse 4.2.0 + OpenCV 2.3.1

2012年9月4日 星期二

將分開的數個「終端機」合併成一個「終端機」

在 Linux 的操作中,難免要開啟「終端機(Terminal)」下些文字型命令。多開幾個後,桌面就顯得有些擁擠。雖然,「終端機」有分頁的設計,但有時開啟終端機並非由「新分頁」。將兩個分開的「終端機」合併成為一個有「分頁」的「終端機」,所需步驟如下:

一、確認將合併的「終端機」

先確認那幾個「終端機」要合併成一個,

2012年9月3日 星期一

Fedora 17 中,用 Eclipse 開發 OpenCV 程式

前文件 " 在 Linux 中,用 Eclipse 開發 OpenCV 程式 " 中所載,在 Eclipse 設定 include 和 library 的方法,在 Fedora 17 中有些部份不再適用。除以下修改部分外,其餘不變,請參考前文。

設定 Link(鏈結)的參數

  • 從「選單」→「專案 (P)」點選「內容 (P)」,設定專案的內容。
  • 當跳出專案設定視窗後,
    • 從左欄的「C/C++ Build」點選「Settings」,接著再設定右欄 Settings 。
    • 在右欄中的「Configuration:」選 "[All Configurations]",使「除錯版」與「釋出版」有相同設定。
  • 設定 Link(鏈結)的參數,從「Tool Settings」→「GCC C Linker」點選「Libraries」,再按「Libraries (-l)」右方的 『+』圖示,
    • 加入 " opencv_core "、" opencv_imgproc "、" opencv_highgui " 三個(要分三次加入)。
按確定後,完成專案設定。

已測試版本:

  • Fedora: 17
  • Eclipse: 4.2.0
  • OpenCV: 2.3.1

2012年9月2日 星期日

關閉 Fedora 裏不常用的 IPv6 服務

雖然,IPv4 的網路位址已經分配完,新的網路設備也多支援 IPv6,但是大部分的時候,一般使用者仍不太需要 IPv6(至少,目前多數的網路仍在 IPv4 可通行的範圍)。對於 CPU 資源有限,或是想將 CPU 資源用在更需要運算的使用者,是有點浪費且不符合經濟原則的。

    一個支援 IPv6 的網路服務,平常又不用,應該把它關掉,才是節省資源的上策。

2012年9月1日 星期六

透過 SSH 連線,開啟遠端的「圖形化用戶介面(GUI)」程式

SSH 可以建立與「遠端電腦」的「終端機」連線介面,不過,只能下達「文字型命令」。想要使用「圖形化用戶介面」的程式,似乎要先建立「遠端桌面」(例:VNC 或 RDP)才行。

    有個 SSH 的參數可以不要那麼麻煩,直接將「遠端電腦」的「圖形化介面」程式的視窗,轉送到「本地電腦」的桌面。

    在兩部電腦都是 Linux 的情形下,步驟如下:>