發表文章

目前顯示的是 六月, 2016的文章

Linux 操作不求人系列 - 參章之參 - 系統管理(III) - 新增各式磁碟機

圖片
@ Driving External Hard Disk or Flash Disk
      一般來說,我們時常會在 Linux 工作站,用到外接硬碟、隨身碟的拔插,來交換資料使用,以及為了保持 24 小時的不關機,通常會裝設 UPS 來防止斷電並監控之,故筆者就先來說明這些常用的磁碟掛載與卸載方式。首先,要掛載外接硬碟或是隨身碟,要先考慮要使用著檔案系統格式,一般在CentOS6_x64下,核心預設只支援 ext ,vfat (fat系列,https://en.wikipedia.org/wiki/File_Allocation_Table),btrfs,xfs 等檔案系統,若我們要使用 Microsoft 的 NTFS 格式,與現今隨身碟與記憶卡所普遍使用的 exfat 格式,則需先下載套件(RPM,https://en.wikipedia.org/wiki/RPM_Package_Manager)來擴充,至於 CentOS_x64 可以用來擴充的套件庫,可以從CentOS網站得知 https://wiki.centos.org/AdditionalResources/Repositories。如常用的 EPEL (https://fedoraproject.org/wiki/EPEL),而套件下載的方式,分為直接利用指令 yum 下載 ,或是從筆者常用的網站 RPM search(http://rpm.pbone.net/)或 RPM find(http://www.rpmfind.net)下載,再利用指令 rpm -ivh 來安裝。
     首先我們先來說明,下載可讀寫 Microsoft 的 NTFS 格式的套件,ntfs-3g。我們先轉為 root 帳號,並執行指令 yum repolist 來看預設的 Repository 資料庫有哪些(圖3-25)。


































(圖3-25)

    圖3-25第1個指令為利用指令 yum repolist,來列出現有的套件庫,與其中包含的套件數目,如黃框處。第2個指令為利用指令 yum install epel-release-6  /* install 後方接上要安裝套件的關鍵字或全名,來安裝 CentOS6 版的套件庫 */ ,指令 yum 的詳細參數,讀者可參考 man yum。再來看到它搜尋到相關的套件後,若…

Linux 操作不求人系列 - 參章之貳 - 系統管理(II) - 新增網路卡與顯示卡

圖片
#新增網路卡 @ Driving Ethernet Network Card
    現代人若一刻沒網路使用,可能會有焦慮並開始失去人生方向的感覺,故筆者先來說明如何讓CenOS6_x64可以使用網路。開始之前,我們先假設網路為固定式網路,非家用利用PPPoE(https://en.wikipedia.org/wiki/Point-to-point_protocol_over_Ethernet)的ADSL撥接方式,故只要我們確認網路卡驅動正常、設定網路上網參數(如DHCP(https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol),或是須設定 IP、Netmask、Gateway、DNS ),皆符合網路提供者的規定,通常這樣就可以連上網際網路,且網卡為 Intel系列(GT、MT、PT、iXXX等...)的網卡,在驅動程式更是省事,在CentOS6_x64下,通常皆可直接使用驅動成功,但系統預設是不啟動網路。在配合 GNOME 搭配的 NetworkManager 軟體,直接點選Gnome桌面右上 NetworkManager 圖示內的 Connect ( 因筆者的網路已經連線了,故僅顯示Disconnect )即可上網(圖3-14上),若要使用命令列,啟動第一塊網卡路之網路功能,可以輸入指令 ifup eth0,若要暫停網路功能,請輸入指令 ifdown eth0,其中 eth 為乙太網路硬體代號,0為安裝的網路卡硬體裝置順序,如多張網卡,為 eth0、eth1、eth2... 之排序,若想知道網卡對應的排序,可利用指令 dmesg | grep 'eth',如圖3-14下,因筆者只有一張虛擬出來的網路卡,故僅為 eth0
































(圖3-14)

      因筆者在 VirtualBox 虛擬裝置執行,故其網路卡裝置已經被虛擬成 Intel PRO MT(圖3-15),所以直接利用DHCP方式即上網,但筆者接著還是要介紹無法順利驅動的網路卡,要如何來驅動,如常見在 PC 主機板上的,RealTek RTL8111B 乙太網路卡,便需先至 REALTEK 網站 ( http://www.realtek.com.tw/downloads/downloadsView.aspx?Lan…

Linux 操作不求人系列 - 參章之壹 - 系統管理(I) - 使用者帳號與工作管理

圖片
本章開始,會利用 Linux 環境下,權限最大的帳號 root ,去做對系統內的使用者與其運行的工作做簡單的管理。要轉換到 root 身分,我們要在提示字元輸入 su - (substitute user) 或
su -l su -l root (皆可,端看您懶惰的程度)。如此,才能轉換到 root 預設的環境 (bash / tcsh)下,並完全使用到 /sbin/ 內的指令,且直接是轉換到 /root,若只是使用 su,則僅使用輸入此指令的使用者帳號之環境,並路徑維持原狀,路徑環境變數亦無改變,如圖3-1。若要從 root 轉換至其他一般使用者帳號,則直接用指令 su -l newuser ,newuser 為要轉換的帳號,利用 root 帳號轉換其他使用者帳號,無須欲轉換的使用者輸入密碼,但若一般使用者要轉換其他使用者帳號,一樣要用 su -l 指令後面接欲轉換的帳號,且接著要輸入欲轉換帳號的使用者密碼。若是要登出 su 登入的帳號,則使用 鍵盤 Ctrl + d 鍵,便可登出現在帳號,若因為使用 su -l 轉換至太多帳號,而忘記現在是使用和帳號名稱,則可以使用指令 whoami ( Who am I ),印出結果為現在帳號名稱。






























(圖3-1)

     我們若只是要暫時使用 root 管理者權限,來執行 root 才可以使用的指令呢?那就使用指令 sudo ,就如同在 Ubuntu Linux 環境下,會讓第一個一般使用者,擁有 sudo 來執行 root 才能執行的指令,MS Windows下,則是利用滑鼠右鍵,點選以系統管理員身分執行。而在CentOS_x64 下,亦可以利用 vim 編輯 /etc/sudoers,或利用指令 visudo( visudo指令是在存檔時會檢查是否有設定錯誤,適合較不熟悉的操作者,/etc/sudoers 說明內容也建議此方法 ),就會開啟 /etc/sudoers檔案,但因筆者較喜歡彩色的( visudo 也可以用參數變更編輯器,如指令visudo後在內容加入 Defaults  editor=/usr/bin/vim,儲存後離開,下次再執行 visudo 就可改變,如圖3-2),故 su - 轉換 root 後,直接使用 vim /etc/sudeors 來講解( 圖3-3-1,圖3-3-2),之後的命令…

Linux 操作不求人系列 - 貳章之貳 - Shell Script 程式設計(II) - BASH 與 TCSH / CSH

圖片
在上章,我們介紹很多bash shell指令的應用方式,並讓它們變成 script,在這章此節,我們要承襲上節,繼續討論 bash shell script 的其它程式設計概念,與讓程式可重複使用的方法,就是利用函式(function)。
     首先,我們來創作一個判斷是否為閏年的函數,script的名稱就取為 check_year.sh ,請自行將其設為可執行。程式碼如圖2-6,為了解說方便,筆者利用指令 nl check_year.sh 將程式碼包含行數印出(圖2-7),其他除顏色外,都與圖2-6同。




(圖2-6)



(圖2-7)

       圖2-7第2-6行,與之前的範例相似,皆有防堵參數個數輸入錯誤的判斷。第7-11行為接著判斷輸入的年分,是否為真的正整數,也就是大於零的數字。其中第7行可解釋為,利用正規表示式搜尋 $2 字串值得頭至尾部的字元,皆由 0-9 組成,若有,則為真(True)會進入 if 內的陳述執行,但我們想要的,應該是僅要字串其中一字元為非正整數,便進入if 內的警告並跳出。故,筆者在判斷式前多加一個 ! ,代表著當字元完全是正整數時,就不要執行 if 內陳述,而直接往第12行執行,但若其中有一個字元為非正整數,則會進入if 內印出錯誤訊息並跳出 Script 。在此例使用者輸入非正整數等字串(如:12ab、cde、1a1b),便會出現錯誤訊息"Error Value",並跳出 Script 。而第8行的判斷式,效果跟第7行相同,但只能在BASH 3.0才能支援,故筆者故意保留,讓讀者可以學到另一種表示方式。
        第12-28行,為宣告一個函式 leapyr (),在 BASH Script內若要使用含式,必須在使用之前先建立函式的功能,如函式建立在第12-28行,則若要呼叫使用(Call)函式,則必須在第29行之後才能呼叫,並且可重複呼叫。第13行為定義函式呼叫時,一定會有一個外部參數,此外部參數非該 Script 的外部參數,而是由程式撰寫者給入,故在此無設定防呆判斷。第14-16則是利用echo 印數學運算式,再把結果傳到指令 bc ,讓其運算出來。bc 為 Linux 下一個簡易型計算器語言,可以接受很多數學運算式,如 % (mod,取餘數),a(x)(arctangent),有興趣…