發表文章

目前顯示的是有「Debian」標籤的文章

如何只更換特定鍵盤的 Ctrl 和 Caps Lock 鍵位? on Ubuntu 16.04

四年前,凍仁找到了對調 Ctrl 和 Caps Lock 的方法,並紀錄於「 對調 Ctrl 和 Caps Lock 鍵位 」一文,但使用 setxkbmap 指令操作時,會連外接不需更換鍵位的 HHKB Pro 2 也一併生效,害得凍仁每次都得重新插拔 USB 線來排除此問題;而現在我們只需透過 -device 參數即可對特定鍵盤進行操作。

於 Debian 7 手動降版至 docker-engine 1.10.3

最近凍仁在 Debian 7 上升級 docker-engine 一直失敗,查看 error log 才得知 Docker 1.12.0+ 需使用 Linux Kernel 3.10.0+ 才行,但偏偏 apt 套件管理員還傻傻的把它給升上 1.12.1。若大家有相同的困擾就請先降版,再綁定 docker-engine 的版本吧! ▲ 2016/09/02 踩完雷後的凍仁碎碎唸。

使用 Vim 和 Vi Mode

對於一位熱愛 Vim 的 Vimmer 而言,可以在各個地方使用 Vim 是一件很幸福又可以增進產能的事,以下是凍仁常用的 Vim 小技巧。更多相關資訊請參考 Vim 系列相關文章。 我在高雄市 (台灣) 獲得了 Vim 餅乾的小禮物! I get the gift of ' #Vim biscuit' at #Kaohsiung City, #Taiwan . #VimTaiwan pic.twitter.com/CaPII8ibLf — 凍仁翔 (@chusiang_lai) February 7, 2016

screenfetch - 命令列 (cli) 裡的檢視系統工具

圖片
screenfetch 是個可以讓我們在 *nix 的命令列 (command line interface, 簡稱 cli) 裡檢視系統資訊的小工具。它除了會用 ASCII 繪出該發行版本 (distribution) 的圖示,還會列出各式的系統資訊。 screenfetch 最棒地方是連 Mac OS X 和 Windows 都有它的蹤影,是個非常經典的小工具呢! ▲ screenfetch on Debian 7.9.

sort - 排序指令

sort 是個很強大很的排序工具,而且通常還會搭配 sed, awk, head, tail, uniq 等工具來使用,話說 sort 本身可以做到依欄位排列的功能!相信透過各種參數的組合運用,可以讓攻程師們少寫幾行 code。 [ jonny @yosemite ~ ] $ history | awk '{print $2}' | sort | uniq -c | sort -nr | nl | less 1 1346 ls 2 726 cd 3 688 git 4 224 sdcv 5 219 vi 6 219 ssh 7 158 mv 8 154 cat 9 98 brew 10 92 host ▲ 透過以上指令,可以得知凍仁近來最常用的指令是 ls。

etckeeper - 追蹤記錄 /etc 下設定檔的好工具

在使用 Linux 架設服務 (service) 時常會依各種需求而更改設定檔 (configure),可往往這些修改的過程是難以被記錄的,更別說是在多人共同管理的情況下,除了養成手動備份的習慣外,其實我們還可以藉由 etckeeper 來輔助追蹤和記錄其版次的。 etckeeper 是一個藉由版本控制系統 (Version Control System, VCS) 來儲存和蒐集 /etc 設定檔的工具。有了它我們就可以在修改 configure 時附上簡短的敘述以便於後續追蹤,而它同時也整合了套件管理員,我們在進行套件的新增、修改、刪除時也會進行追蹤。以下將以凍仁較慣用 Git 版本控制系統進行示範。

在 Debian 7.0+ (MATE) 安裝 Compiz 特效

圖片
相信在 2010 年以前接觸過 Ubuntu 的伙伴都會懷念以前那 Gnome 2 和 Compiz 那客制化超高的炫麗年代 (詳情請看 Ubuntu 7.10 加 Windows Vista,超華麗雙重開機 一文),現在凍仁在 Debian 7.0 上把它們找了回來了,能在 Gnome 3, Unity 分歧的現在找回當初的感動,真是太棒了! ▲ CCSM 於 Debian 8.0 的截圖。

在 Cron Job, Jenkins 或其它程式中使用 GPG

凍仁於 Jenkins CI 的 build script 中使用到的 GPG 指令時,出現了 gpg: cannot open `/dev/tty\': No such device or address 的錯誤訊息。 查了一下才得知 GPG 在正常情狀下預設是會將結果輸出至具有互動的終端機 (Terminal, tty) 底下,但如果今天我們是藉由 Cron Job, 自行撰寫的程式或是 Jenkins 來操作時則會有以上的錯誤訊息, 這時我們只需加上「 --no-tty 」的選項即可避開之。

Vim: Move line(s) up or down

先前在同事 Amin 火力展示 Emacs 時得知他的「Move line(s) up or down 」快捷鍵 Alt + Up / Down 是從 Eclipse 抄來的,索性移植到 Vim 上,這對臨時要更動某一行的位置時超好用的呢! 註:這是個用 Alt + Down/Up 來上下移動當前行的 mapping。

[完全用 GNU/Linux 工作] 30. 銷毀資料 - Shred

過去在 GNU/Linux 裡,凍仁會使用 dd (1) ,此指令會將資料填零而達到抹除磁碟的功用,但就算這樣還是有被專業人士還原的風險;現在凍仁都改用 shred (2) 指令來完成這項任務,此指令是專門用來 撕碎 資料的。

[完全用 GNU/Linux 工作] 28. 使用 Live CD 修復 Debian/Ubuntu 系統

圖片
承上文 ( 27. Ubuntu 系統版本升級 ),如今日不幸於系統升級時當機,最嚴重將導致系統無法開啟,這時可以透過 Live CD 進行修復。

[完全用 GNU/Linux 工作] 27. Ubuntu 系統版本升級

Ubuntu 是個每六個月會釋出新版的 GNU/Linux 發行版本。它會不時提醒使用者可以進行升級版本的動作,還擁有圖形化的升級介面,是個很貼心的 Linux 系統!但凍仁曾因此中過招,於是都直接於 tty1 ( Ctrl + Alt + F1 ) 使用 Ubuntu Server 的方式升級,就再也不曾出事了。 試想,今日在圖形介面下升級時,若恰巧遇到 X Window 被重啟 (或換掉) 所導致的升級失敗,到頭來還是得回 tty1 下進行救援,那我們一開始不如就直接於 tty1 下使用指令升級不就得了。

[完全用 GNU/Linux 工作] 26. 使用 Clonezilla 打造不死的作業系統

圖片
早期凍仁使用 Ubuntu 做為主要工作環境時,常因為系統升級失敗而不得不走上重灌一途;現在除了會額外安裝備用的系統以外 (先前於 01. 前言 一文提過),平時還會使用 再生龍 (Clonezilla) 進行系統層面的備份,以備不時之須。

[完全用 GNU/Linux 工作] 25. 視窗管理及工作區 (下)

圖片
2.2. 桌面 (Desktop) ▲ 圖 5: Desktop 分類的設定。

[完全用 GNU/Linux 工作] 24. 視窗管理及工作區 (上)

圖片
自從 2007 年開始接觸 Ubuntu 7.04 以後,凍仁於 x86 電腦上的使用習慣有了大大的改變。與 Windows 相比,除了有更多可以操控視窗的快捷鍵外,更多了工作區的概念。這讓生活在視窗之海的凍仁解了套,也想說一句「我回不去了」,再也不想回到綁手綁腳的 Windows 上了。 ▲ 圖 1: 2 x 2 的工作區。

[完全用 GNU/Linux 工作] 22. 密碼管理員 - FPM2

圖片
Figaro's Password Manager 2 (fpm2) 是個基於 Figaro's Password Manager 並使用 GTK+ 2.0 改寫的密碼管理員。它除了會將各個數值使用 AES-256 演算法 (algorithm) 加密以外,還可與特定檔案進行二次加密,兼具安全性與便利性,是凍仁工作上的好幫手。

[完全用 GNU/Linux 工作] 21. 遠端桌面軟體 - Remmina

圖片
Remmina 是 GNU/Linux 裡凍仁覺得最好用的遠端桌面軟體!它是從 rdesktop 分支出來的一個專案,並於 Debian 6.0, Ubuntu 10.04 開始收錄至官方套件庫中。支援的協定有 RDP , VNC , NX, XDMCP 和 SSH。 推薦 Remmina 給大家的原因是:它除了支援多種協定之外,還可於狀態通知區快速啟動,這對平時得在各個機器切換遠端中的凍仁而言,是個很貼心的設計。 ▲ 於狀態通知區的 Remmina。

[完全用 GNU/Linux 工作] 20. 增進 SSH 使用效率 - ssh_config

SSH 可說是每台 GNU/Linux 必裝的服務之一,我們可以藉由它,在遠端進行一切的操作。為避免被怪客 (cracker) 入侵,會於提供該服務的機器加上限制,以提高安全性,例如:更改埠口 (Port)、限制 IP 登入或只使用金鑰登入 ... 等。 隨著機器數量及限制增加的同時,使用上的繁瑣及不便也會隨之增加。這時,我們可事先設定各個主機,以便日後的使用。Windows 上的 PieTTY , Xshell 皆有此功能,而在 Linux 裡凍仁則習慣直接編修 openssh-client 的設定檔 $HOME/.ssh/config 。

[完全用 GNU/Linux 工作] 19. 虛擬機器 - VMware Player 5

圖片
若跨平台虛擬化 (Wine, CrossOver) 的解決方案還是無法解決我們的需求,這時不妨跑個虛擬機器來執行 (對追求效能、繪圖及 3D 動畫製作者不適用)。想跑虛擬機器除了硬體 (CPU, RAM) 得夠力以外,有些 CPU 本身更支援 硬體輔助虛擬化 ,若能啟用它必定能得到最大的效益,否則只是半虛擬化。 ▲ Ubuntu 12.04 LTS 上的 VMware Player 5 載圖。

[完全用 GNU/Linux 工作] 18. 藉由 CrossOver 安裝 Microsoft Office 2007

圖片
純文字的世界不是萬能的,雖說有 Markdown , reStructuredText 及 LaTeX 這些很棒的語法可以編寫文件,可它們還是會有不適用的情形 (例如:老師交待的報告、老闆要的報表 …)。 我們或許可改用 LibreOffice 來過關,但凍仁還是比較喜歡在 GNU/Linux 裡使用 Microsoft Office 的方案,這樣就可以直接避開文件的相容性問題。 ▲ Microsoft Office 2007 於 Ubuntu 12.04 LTS 上的截圖。