顯示具有 電腦資訊--Linux 標籤的文章。 顯示所有文章
顯示具有 電腦資訊--Linux 標籤的文章。 顯示所有文章

2012年7月15日 星期日

[電腦] Linux學習--完全不懂Linux怎麼入門(概述)

        Linux這個作業系統,說實在的不是一個很好用的作業系統,動不動就會出現一堆trouble讓學習的心大受打擊,而且你到網路上google不見得可以找到你想要得答案(因為你在學習的路上就已經困難重重了,連自己想問什麼都不懂,要怎麼找到答案?),偏偏Linux社群的高手最喜歡叫新手「自己去做功課」。新手問問題,先訓你一頓為什沒有先做功課就上來問,然後浪費一大堆時間告訴你應該要先去google,也不願意用訓斥新手的時間教你原理。Linux的使用族群用一個詞來形容就是「自以為特別」,自以為比Microsoft使用者高一截。我的工作環境中接觸到Linux的機會很多,也認識很多用得很專的,但是因為陣營的迂腐觀念讓門第之見蒙蔽了學習的初衷,這是垃圾思想,應該要揚棄。




        但Linux絕對不是一個可以讓所有人使用的作業系統,因為他動不動就會出問題,你要花很多時間在解決及查找原因,光是一個顯示卡的Driver就要動到一大堆的設定,還要預防更新kernel之後就不會自動載入驅動程式而要做額外的調整。一般人哪有時間花在這種地方呢?一個東西最重要的就是要能用,不能用或不好用的東西再怎麼強大也沒屁用,時間就是金錢啊,朋友。

       話說回來,Linux確實是功能非常多的作業系統。Linux可以幫助我們學習網路的概念、且建置Server非常便利,而且用習慣了Linux的操作方式或許你會上癮,不過要克服一開始的重重打擊,這條路不是很好走啊。我自己已經用ubuntu當作自己notebook上主要的作業系統,雖然問題很多,但是打定主意要好好的學習就會努力克服這些比較困難的部份。

        說了這麼多,Linux到底怎麼入門最好呢?我這篇會列出幾個可以先學會,而且學會之後就好像真的懂一些Linux的技能,而非不得其門而入的階段了!

概述Linux發行版本的差別,以套件管理來分(只描述有列出來的部份,Linux博大精深,不是小弟能全部理解的)。
    RedHat類: CentOS、Fedora都是跟RedHat非常貼合的發行版本,尤其是CentOS,是從RedHat的原始碼移植成可以自由使用的版本,當他是RedHat的免費版就可以了。Fedora是一個比較前衛的RedHat,當他是個RedHat的先期實驗發行版也可以。

    Debian類: Debian跟ubuntu歸於此類。這兩個版本,都是問題一大堆的(問題代表他可以彈性作調整的部份很多,不是指他就是不能用),Debian最嚴重,一堆理念要堅持,所以他在使用上有很多不方便,可以說是「超級不方便」,不方便到用他來學習linux會讓人自信心盡失,但是他的套件管理程式非常強大,套件之多可以說是我們想得到的他都有。Ubuntu則是以打進不懂電腦的族群也能使用Linux的概念運行,不過我在這跟大家保證,就算用ubuntu你也不會太開心的!因為Linux的學習是要做非常多功課才能入門的系統。(說他不好用是因為你不會是在無痛的情況下學習之,不然我作啥說這麼多呢?)

   Suse: Suse我就不想介紹了,沒啥原因,因為我不懂他。要用Suse你就得要特別去學他的設定檔、套件管理程式,如果真的有需要學,那就一步一步在網路上找文章吧!或許將來有人問我問題我就幫忙去找資料給讀者研讀,順便自己也多少唸一下相關的部份。


        接著,我們要真正的開始認識Linux了!

第一步:尋找安裝Linux的環境
      完完全全沒有接觸過Linux的朋友,建議找個沒在用的電腦先裝裝看,安裝的過程中你就會遇到不同用途的檔案系統有什麼個別的用途,而且你也會學到檔案系統的基本概念。如果沒有多餘的電腦,我們也可以考慮使用虛擬機器來安裝,虛擬機器就是在我們當前使用的作業系統(Host OS)中,透過虛擬機器(Virtual Machine, 簡稱VM)來安裝作業系統中的作業系統(Guest OS)。透過這種方式,我們可以隨意安裝各種不同的作業系統以方便學習,最重要的是不管怎麼蹂躪它,都可以透過事前快照(Snapshot, 把現在系統的狀態儲存起來)來反覆實驗,失敗了就再回復(Restore)之。VM軟體種類非常多,我再開另外的基礎篇來介紹使用的方法。

第二步:下載Linux OS ISO檔

國網中心Mirror站:
http://free.nchc.org.tw/pmwiki/index.php?n=FSLab.MirrorLists

      正如上面所提, Linux有許多不同的發行版本,稱為Distributions。國內由於鳥哥的關係,使得RedHat成為較多人使用的Distribution,在商業的角度來看,RedHat被較多大廠支援,所以很多軟體都會開發相容於RedHat的安裝格式。但是RedHat要收錢,所以大多人都使用CentOS來替代之,而CentOS(RedHat)主要定位在於企業的Server用,因此他比較無趣,不會特別為桌面的x-window預設環境做設計。若想要有比較漂亮的桌面環境(我指的是系統預設幫你做美化的部份),可以選擇Fedora來替代之。

      Ubuntu是最近幾年特別熱門的Distribution之一,這是由南非首富出資聘請工程師維護,在linux的眾多Distribution對初學者特別友善,不但支援許多的硬體,也針對桌面環境用心地設計,降低了許多初學者的疑慮。如果你想學得開心些,可以從ubuntu下手,試著先安裝起來使用,未來再嘗試其他的Distribution時會比較易於學習。

      下載ISO檔的時候,我們要先確認自己的CPU是屬於何種架構。如果一般的PC,通常搭載Intel與AMD的CPU,所以你選擇的時候,在RedHat陣營有兩種,i386與x86_64,如果不確定自己的CPU是否屬於64-bit,除了上原廠網站去確認之外,也可以乾脆就抓i386的版本,反正我們只是要安裝系統來練習,可以不先講究CPU架構的細節。Debian陣營的話,就是i386與amd_64,就算是intel 64-bit的CPU也一樣選擇amd_64。

       很多人會把自己定位在某個Distribution陣營,而排斥其他Distribution,我得跟你說,這超級無聊!就跟你跟別人說你是屬於哪個政黨,非藍即綠且水火不容的無聊程度一樣,別把自己預設在什麼陣營,多方接觸多方了解你才能成為一個公正的人。 所以不同的Distribution也要安裝來用用看,如此才能找到適合自己風格的發行版本。



       基礎安裝的實作,將在另一篇文章中截圖詳述,並一步一步講解。

   

2011年5月11日 星期三

[Linux] Linux學習-- mount iso as a cdrom howto

    As we download a iso image file, we would sometimes need to mount it as a CDROM for some purpose. All we have to do is issue the commend below:

>sudo mount -o loop [iso file] [Destination Directory]

For instance,

a00ylc00@asus-ubuntu:/$ sudo mount -o loop /download/rhel-server-6.0-x86_64-dvd.iso /mnt


a00ylc00@asus-ubuntu:/$ cd /mnt

a00ylc00@asus-ubuntu:/mnt$ ls
EFI                       RELEASE-NOTES-es-ES.html  RELEASE-NOTES-si-LK.html
EULA                      RELEASE-NOTES-fr-FR.html  RELEASE-NOTES-ta-IN.html
GPL                       RELEASE-NOTES-gu-IN.html  RELEASE-NOTES-te-IN.html
HighAvailability          RELEASE-NOTES-hi-IN.html  RELEASE-NOTES-zh-CN.html
images                    RELEASE-NOTES-it-IT.html  RELEASE-NOTES-zh-TW.html
isolinux                  RELEASE-NOTES-ja-JP.html  repodata
LoadBalancer              RELEASE-NOTES-kn-IN.html  ResilientStorage
media.repo                RELEASE-NOTES-ko-KR.html  RPM-GPG-KEY-redhat-beta
Packages                  RELEASE-NOTES-ml-IN.html  RPM-GPG-KEY-redhat-release
README                    RELEASE-NOTES-mr-IN.html  ScalableFileSystem
RELEASE-NOTES-as-IN.html  RELEASE-NOTES-or-IN.html  Server
RELEASE-NOTES-bn-IN.html  RELEASE-NOTES-pa-IN.html  TRANS.TBL
RELEASE-NOTES-de-DE.html  RELEASE-NOTES-pt-BR.html
RELEASE-NOTES-en-US.html  RELEASE-NOTES-ru-RU.html
a00ylc00@asus-ubuntu:/mnt$

That's all.

2011年5月5日 星期四

[Linux] Linux學習-- RHEL6 使用光碟來做yum的sourcelist

這篇文章,是我在寫TSM Client安裝法的文章中,第一部份談到的。很多人應該都有這種經驗,當你沒有網路、RHEL沒有註冊的情況下,想要用yum來安裝軟體卻沒辦法,這時候調整一下yum.repo.d底下的檔案就可以實現這個作法。單單從光碟來安裝rpm套件,雖然已經夠方便了,但是有一些相依套件的問題卻沒有那麼順利,所以可以參考底下的設定提高套件管理的效率。

 若RedHat未註冊,無法使用yum 做套件管理,我們可以直接mount CDROM來做sourcelist.

方法如下:
    # mkdir /mnt/rhel6
    # mount /dev/sr0 /mnt/rhel6 (我是用kvm mount iso,所以是/dev/sr0這個裝置,如果一般的情況應該會是/dev/cdrom。請在安裝的時候自行判斷,可以用dmesg看看自己的光碟是在哪 個裝置上。有問題可以提出來討論)

由於系統現在並沒有yum可用的sourcelist,因此我們要從光碟上複製一個範例到本機上使用

    # cp /mnt/rhel6/media.repo /etc/yum.repos.d/media.repo

編輯 /etc/media.repo,將baseurl指向光碟機

      在檔案最後加上 baseurl=file:///mnt/rhel6/

    # vi /etc/yum.repos.d/media.repo

[InstallMedia]
name=Red Hat Enterprise Linux 6.0
mediaid=1285193176.460470
metadata_expire=-1
gpgcheck=0
cost=500
baseurl=file:///mnt/rhel6/ <===加入這一行

如此即可使用CD-ROM來進行套件的安裝了。

[Linux] Linux學習-- RHEL6 安裝TSM Client

    IBM的TSM(由ADSM而來),是一個跨平台、功能非常強大的備份軟體,由於他的功能非常多,所以相對其他備份軟體而言也比較難學。這套軟體是Client-Server架構的,由一部(或多部)Server提供備份服務,供Client端將資料用各種方式備份上來。這個文件主要是寫TSM Client的安裝法,版本是6.2.2.0,作業系統是RHEL6。會特別寫這個文件是因為TSM與RHEL都大改版了,與之前第五版的安裝略有不同,所以將細節列出來供有需要的讀者參考。




ftp://ftp.software.ibm.com/storage/tivoli-storage-management/maintenance/client/v6r2/Linux/LinuxX86/v622/6.2.2.0-TIV-TSMBAC-LinuxX86.tar

1. 下載TSM Client 6.2.2.0版tar檔

2. 若RedHat未註冊,無法使用yum 做套件管理,可以直接mount CDROM來做sourcelist.

方法如下:
    # mkdir /mnt/rhel6
    # mount /dev/sr0 /mnt/rhel6 (我是用kvm mount iso,所以是/dev/sr0這個裝置,如果一般的情況應該會是/dev/cdrom。請在安裝的時候自行判斷,可以用dmesg看看自己的光碟是在哪個裝置上。有問題可以提出來討論)

由於系統現在並沒有yum可用的sourcelist,因此我們要從光碟上複製一個範例到本機上使用

    # cp /mnt/rhel6/media.repo /etc/yum.repos.d/media.repo

編輯 /etc/media.repo,將baseurl指向光碟機

      在檔案最後加上 baseurl=file:///mnt/rhel6/

    # vi /etc/yum.repos.d/media.repo

[InstallMedia]
name=Red Hat Enterprise Linux 6.0
mediaid=1285193176.460470
metadata_expire=-1
gpgcheck=0
cost=500
baseurl=file:///mnt/rhel6/ <===加入這一行

如此即可使用CD-ROM來進行套件的安裝了。

3. 安裝TSM Client

將適才下載的tar檔解開
> tar xvf 6.2.2.0-TIV-TSMBAC-LinuxX86.tar

可得以下所有檔案,其中gskcrypt與gskssl套件是一定會用到的,別忘了缺少這兩個套件時可以安裝。
NOTICES.TXT
README_enu.htm
README_api_enu.htm
README_hsm_enu.htm
TIVsm-API.i386.rpm
TIVsm-API64.i386.rpm
TIVsm-BA.i386.rpm
TIVsm-HSM.i386.rpm
TIVsm-BAhdw.i386.rpm
gskcrypt32-8.0.13.4.linux.x86.rpm
gskcrypt64-8.0.13.4.linux.x86_64.rpm
gskssl32-8.0.13.4.linux.x86.rpm
gskssl64-8.0.13.4.linux.x86_64.rpm


試著安裝TIVsm-API.i386.rpm,系統會告訴你缺了一大堆該有的套件

[root@localhost ~]# rpm -ivh TIVsm-API.i386.rpm 
error: Failed dependencies:
    gskcrypt32 >= 8.0-13.4 is needed by TIVsm-API-6.2.2-0.i586
    gskssl32 >= 8.0-13.4 is needed by TIVsm-API-6.2.2-0.i586
    libcrypt.so.1 is needed by TIVsm-API-6.2.2-0.i586
    libcrypt.so.1(GLIBC_2.0) is needed by TIVsm-API-6.2.2-0.i586
    libc.so.6 is needed by TIVsm-API-6.2.2-0.i586
    libc.so.6(GLIBC_2.0) is needed by TIVsm-API-6.2.2-0.i586
    libc.so.6(GLIBC_2.1) is needed by TIVsm-API-6.2.2-0.i586
    libc.so.6(GLIBC_2.1.1) is needed by TIVsm-API-6.2.2-0.i586
    libc.so.6(GLIBC_2.1.2) is needed by TIVsm-API-6.2.2-0.i586
    libc.so.6(GLIBC_2.1.3) is needed by TIVsm-API-6.2.2-0.i586
    libc.so.6(GLIBC_2.2) is needed by TIVsm-API-6.2.2-0.i586
    libc.so.6(GLIBC_2.2.3) is needed by TIVsm-API-6.2.2-0.i586
    libc.so.6(GLIBC_2.3) is needed by TIVsm-API-6.2.2-0.i586
    libc.so.6(GLIBC_2.3.4) is needed by TIVsm-API-6.2.2-0.i586
    libdl.so.2 is needed by TIVsm-API-6.2.2-0.i586
    libdl.so.2(GLIBC_2.0) is needed by TIVsm-API-6.2.2-0.i586
    libdl.so.2(GLIBC_2.1) is needed by TIVsm-API-6.2.2-0.i586
    libgcc_s.so.1 is needed by TIVsm-API-6.2.2-0.i586
    libgcc_s.so.1(GCC_3.0) is needed by TIVsm-API-6.2.2-0.i586
    libgcc_s.so.1(GLIBC_2.0) is needed by TIVsm-API-6.2.2-0.i586
    libgsk8cms.so is needed by TIVsm-API-6.2.2-0.i586
    libgsk8iccs.so is needed by TIVsm-API-6.2.2-0.i586
    libgsk8iccs.so(ICCSTUB) is needed by TIVsm-API-6.2.2-0.i586
    libgsk8ssl.so is needed by TIVsm-API-6.2.2-0.i586
    libgsk8ssl.so(GSKSSL) is needed by TIVsm-API-6.2.2-0.i586
    libgsk8sys.so is needed by TIVsm-API-6.2.2-0.i586
    libm.so.6 is needed by TIVsm-API-6.2.2-0.i586
    libm.so.6(GLIBC_2.0) is needed by TIVsm-API-6.2.2-0.i586
    libpthread.so.0 is needed by TIVsm-API-6.2.2-0.i586
    libpthread.so.0(GLIBC_2.0) is needed by TIVsm-API-6.2.2-0.i586
    libpthread.so.0(GLIBC_2.1) is needed by TIVsm-API-6.2.2-0.i586
    libpthread.so.0(GLIBC_2.2) is needed by TIVsm-API-6.2.2-0.i586
    libpthread.so.0(GLIBC_2.3.2) is needed by TIVsm-API-6.2.2-0.i586
    librt.so.1 is needed by TIVsm-API-6.2.2-0.i586
    libstdc++.so.5 is needed by TIVsm-API-6.2.2-0.i586
    libstdc++.so.5(CXXABI_1.2) is needed by TIVsm-API-6.2.2-0.i586
    libstdc++.so.5(GLIBCPP_3.2) is needed by TIVsm-API-6.2.2-0.i586
    libstdc++.so.6 is needed by TIVsm-API-6.2.2-0.i586
    libstdc++.so.6(CXXABI_1.3) is needed by TIVsm-API-6.2.2-0.i586
    libstdc++.so.6(CXXABI_1.3.1) is needed by TIVsm-API-6.2.2-0.i586
    libstdc++.so.6(GLIBCXX_3.4) is needed by TIVsm-API-6.2.2-0.i586


所以我們要一一將缺少的部份安裝起來,我從最後一個套件往上一一解決。
1. libstdc++.so.6
"yum provides" 可用來查看缺少的檔案是由哪個套件所提供的,因此底下我們下這樣的指令:

[root@localhost ~]# yum provides libstdc++.so.6
Loaded plugins: rhnplugin
This system is not registered with RHN.
RHN support will be disabled.
libstdc++-4.4.4-13.el6.i686 : GNU Standard C++ Library
略,我們可以看到libstdc++.so.6這個檔案是libstdc++-4.4.4-13.el6.i686這個套件的。
安裝這個套件
[root@localhost ~]# yum install libstdc++-4.4.4-13.el6.i686

尋找包含libstdc++.so.5的套件
[root@localhost ~]# yum provides libstdc++.so.5
Loaded plugins: rhnplugin
This system is not registered with RHN.
RHN support will be disabled.
compat-libstdc++-33-3.2.3-69.el6.i686 : Compatibility standard C++ libraries

安裝這個套件
[root@localhost ~]# yum install compat-libstdc++-33-3.2.3-69.el6.i686

安裝過程中,由於yum會自動帶進該安裝的相關套件,因此上面所列的缺件都會被一一補齊。
完畢之後,我們再試裝一次TIVsm-API.i386.rpm

[root@localhost ~]# rpm -ivh TIVsm-API.i386.rpm 
error: Failed dependencies:
    gskcrypt32 >= 8.0-13.4 is needed by TIVsm-API-6.2.2-0.i586
    gskssl32 >= 8.0-13.4 is needed by TIVsm-API-6.2.2-0.i586
    libgsk8cms.so is needed by TIVsm-API-6.2.2-0.i586
    libgsk8iccs.so is needed by TIVsm-API-6.2.2-0.i586
    libgsk8iccs.so(ICCSTUB) is needed by TIVsm-API-6.2.2-0.i586
    libgsk8ssl.so is needed by TIVsm-API-6.2.2-0.i586
    libgsk8ssl.so(GSKSSL) is needed by TIVsm-API-6.2.2-0.i586
    libgsk8sys.so is needed by TIVsm-API-6.2.2-0.i586

還缺gskcrypt32,gskssl32,libgsk8sys.so, libgsk8iccs.so, libgsk8cms.so這幾個檔案,
這幾個就要靠TSM的tar檔解開裡的rpm套件了。
 依序安裝底下幾個rpm 套件,順序不對的話系統會告訴你。

[root@localhost ~]# rpm -ivh gskssl32-8.0.13.4.linux.x86.rpm
[root@localhost ~]# rpm -ivh  gskcrypt32-8.0.13.4.linux.x86.rpm 
[root@localhost ~]# rpm -ivh gskssl32-8.0.13.4.linux.x86.rpm  [root@localhost ~]# rpm -ivh TIVsm-API.i386.rpm 
[root@localhost ~]# rpm -ivh TIVsm-BA.i386.rpm 

TSM Linux client installation complete.

Be sure to set up the system configuration file
before starting the client!

好了,到現在為止,TSM Client已經安裝完畢。接著就是設定設定檔的部份。

兩個檔案,dsm.sys與dsm.opt

# cd /opt/tivoli/tsm/client/ba/bin/
# cp dsm.sys.smp dsm.sys <====最主要的系統設定檔,把sample檔cp成可用的dsm.sys
# cp dsm.opt.smp dsm.opt <====其他設定的設定檔,把sample檔cp成可用的dsm.opt

# vi dsm.sys

************************************************************************
* IBM Tivoli Storage Manager                                           *
*                                                                      *
* Sample Client System Options file for UNIX (dsm.sys.smp)             *
************************************************************************

*  This file contains the minimum options required to get started
*  using TSM.  Copy dsm.sys.smp to dsm.sys.  In the dsm.sys file,
*  enter the appropriate values for each option listed below and
*  remove the leading asterisk (*) for each one.

*  If your client node communicates with multiple TSM servers, be
*  sure to add a stanza, beginning with the SERVERNAME option, for
*  each additional server.

************************************************************************

SErvername  tsm.allen.chen  <====取一個代表TSM Server的名字
   COMMMethod         TCPip
   TCPPort            1500
   TCPServeraddress   tsm.allen.chen <=====可寫IP Address或Hostname(可由DNS轉址的)
   nodename   RHEL6   <===== 安裝TSM Client的主機名稱,這個名稱是註冊在TSM Server上的名稱。
   SCHEDLOGNAME "/var/log/tsmsched.log"  <===== 排程紀錄檔
   ERRORLOGNAME "/var/log/tsmerror.log"  <===== 錯誤紀錄檔,一定要設,否則與TSM Server連線會有問題
   passwordaccess generate  <===== 照著key,這是密碼key in 的方式,當然也可以用明碼,只不過這樣有root 權限的user就可以任意去restore備份的資料下來看了,非常不安全。


存檔離開。

dsm.opt檔可以先不要去動,那是比較進階的設定部份。記得把dsm.opt.smp複製一份成為dsm.opt即可。


設定完畢之後,先與TSM Server連線第一次確認連線是否正常

[root@localhost bin]# dsmc
IBM Tivoli Storage Manager
Command Line Backup-Archive Client Interface
  Client Version 6, Release 2, Level 2.0
  Client date/time: 05/05/2011 20:20:48
(c) Copyright by IBM Corporation and other(s) 1990, 2010. All Rights Reserved.

Node Name: RHEL6
Please enter your user id <RHEL6>: <===== user id就是nodename,可以不必key,直接下enter.

Please enter password for user id "RHEL6":  <===== 輸入TSM Server系統管理員為您所設得密碼

過了之後就會到tsm的命令提示狀態下
tsm>_

這樣就表示可以正常與TSM Server連線了。

接著我們要設定自動排程,由於RHEL6的/etc/inittab已經不給下指令在其中,取而代之的是/etc/init/底下的檔案,要分別為每個服務另外寫,這邊我還沒研究透徹,所以把開機啟動的指令寫在/etc/rc.local裡。

先把dsmc在背景執行:
[root@localhost bin]# nohup /usr/bin/dsmc sched 2> /dev/null &

確認dsmc daemon有在執行
[root@localhost bin]# ps ax | grep dsmc
 2093 tty1   Sl    0:00 /usr/bin/dsmc sched  <=== Daemon在此
 2096 tty1   S+    0:00 grep dsmc
[root@localhost bin]#

將這個指令寫在/etc/rc.local使其在開機時自動執行

[root@localhost bin]# vi /etc/rc.local
在最後加入一行
nohup /usr/bin/dsmc sched 2> /dev/null &

存檔離開,並且reboot測試看看。

如果下ps ax | grep dsmc跟上面一樣有出現
2093 tty1   Sl    0:00 /usr/bin/dsmc sched
就表示開機會自動執行了。
關於/etc/init底下的寫法,我研究完畢會將正規的寫法補充上來。

2011年4月15日 星期五

[Linux] linux samba透過AD進行認證(CentOS版)

        很多企業內部的PC是透過一個AD Server認證,這AD也可以和LDAP整合,因此若公司內部的儲存部門想讓所有同仁可以透過網芳來存取自己專屬的空間(包含Linux系統使用者),我們可以用samba整合AD認證的作法來讓實現。


2011年3月23日 星期三

[電腦] Linux學習--Ubuntu更改hostname

更改hostname

1. /etc/hosts  改完這個系統才不會在對應上發生問題
2. /etc/hostname   主要的hostname設定檔

更改完畢後,sudo hostname -F /etc/hostname就ok了。

2011年2月10日 星期四

[電腦] 基礎Linux學習--快速學會vi基本編輯用法

        vi是unix系統預設的文字編輯器,關於他的身世我就不說了。接觸這個東西是在大學一年級上計概的時候,我將自己學習的重點列出來,如果完全不會的人跟著學也可以學會用的。



1. 第一件事情,先學會上下左右的移動方式。

將你的食指放在"J"鍵上,感覺一下 J往下、K往上,這樣的設計是為了讓你的手保持打字的預備姿勢,不必離開鍵盤使操作更快速。H及L則代表左與右,嘗試著習慣這樣的操作方式才開始使用vi。

H J K L
←↓↑→


2. 第二件事情,ESC 鍵是在你做了自己不知道的事情之後,最重要的鍵。所以每次當你困惑的時候,不知道怎麼辦就按按ESC鍵,這個狀態可以讓我們做補救的動作。


         學習vi最忌被所謂的「高手」打擊,因為這些高手都自以為可以比新手操作得更熟練,所以嘲笑正在練習的初學者。在這邊,我要特意提醒的是,就算你用很笨拙的手法來操作,也已經比傳統那種文字編輯器快多了,所以慢慢學、慢慢習慣就好!不要在意自己是不是已經可以操作得很快很準。


3. 第三件事情,三個模式的運作。這邊就開始是正式操作會用到的部份了,但也不必覺得難,反正操作個兩三次就知道怎麼回事。

編輯模式 ← 一般模式 → 指令模式
i, a, o     ←     ESC    → :, /, ?

        看起來有點複雜了對吧? 這是假象!請記得「只要不知道自己在做啥,就按ESC回到一般模式」。一般模式讓我們可以隨意移動游標,選定要編輯的目標或範圍。只要記住這個要點就好了!

        那,我想要打字了要怎麼做? 這就是編輯模式了。可以透過按下 i, a或o來進行編輯。一開始只要記得小寫 "i" 就是insert(插入)的意思,其他的都可以先不要記,先學insert就可以了,這跟我們用一般的文字編輯器一樣,把要打得字打在滑鼠所點的空隙裡。

一進vi之後的畫面,得要按i, a或o才能開始編輯
按"i" 之後就可以隨意打字了



做完任何動作,都要回到一般模式,也就是上面說好幾次的「按ESC」,這樣才能做其他的動作,如存檔等等的。

4. 其他的我們先不說,就談「存檔」。怎麼存檔呢?只要在按過ESC之後,再下三個鍵就可以存檔並離開。

存檔並離開的用法→  :wq

: 代表進入指令模式,這時候就會在介面的最下方出現我們要下的指令
w代表寫入,也就是存檔起來的意思。
q代表離開。

鍵入:wq就可以存檔離開了


好了,vi的用法已經學會了,其他的功能我再另外寫一篇。這篇對我們而言,有什麼好處呢?
a. 在unix like的系統上,遇到vi你已經有編輯、存檔的能力,不會完全不知道怎麼辦。
b. 就算不是unix主機好了,現在linux系統那麼多,至少遇到也不必擔心不會用吧!
c. 學會游標的移動方式就是最成功的入門,這是vi最大的門檻,通常學不會vi的人就只是因為移動的方式不習慣而已!


學習最大的阻礙,就是所謂的「高手」的擾亂跟嘲諷,只要跳脫這個環境就可以穩定的學習。

2010年11月16日 星期二

[電腦] Linux下查看HBA卡WWN

1. 在RedHat環境已測試正常可用。
>systool -av -c fc_host
可以看到每個Port的詳細資訊。

2. Debian或Ubuntu的環境,我在主機建置好後再測試。

2010年11月12日 星期五

[電腦] Debian網卡順序

        網路卡順序如何調整?在Debian(Ubuntu亦同)環境之下,當你更換了網路卡或是增添了新卡,或者是有On board的網卡跟另外再接的網卡,有順序調換的需求(如eth0與eth1要對調),可以使用以下方法來完成。
   
>vi /etc/udev/rules.d/70-persistent-net.rules
# This file maintains persistent names for network interfaces.
# See udev(7) for syntax.
#
# Entries are automatically added by the 75-persistent-net-generator.rules
# file; however you are also free to add your own entries.

# PCI device 0x14e4:0x16fd (tg3)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:16:d4:3d:ff:cc", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x8086:0x4222 (iwl3945)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:13:02:be:92:0e", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"
/etc/udev/rules.d/70-persistent-net.rules (END)

1. 當只有一張網卡,在抽換網卡後,網路介面跳至eth1以上,欲使用回eth0的方法:
我們可以將eth0的MAC Address的部份拿掉,使得新網卡在系統檢查MAC Address時,不會因為MAC Address不相符而新建eth1。

# PCI device 0x14e4:0x16fd (tg3)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*, ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"



2. 當有兩張以上的網卡,我們就可以指定哪一張網卡要使用哪個介面的代號。只要指定更動NAME="ethx"的選項即可。

2010年10月26日 星期二

[電腦] KVM, 超級好用的Virtual Machine套件

        3年前,我跟公司申請了Notebook, 是HP的nc6400,這Notebook雖然毫不起眼,但他配備了T5600  @ 1.83GHz,Intel Core™2 的CPU。這代表什麼意思呢?「雙核心」的CPU,也就是可以視為2顆CPU的意思。
        雖然現在2010年看來這部Notebook並不怎樣,跑Win7超慢、玩魔獸世界燙得要命,螢幕也不是鏡面,外殼也不是鋼琴烤漆,它有什麼了不起的呢?光看外表或是玩遊戲,甚至安裝Windows作業系統的「感覺」就斷定一部電腦好或不好,這就太沒深度啦!
       當時申請的Notebook下來的時候,兩位資深的同事不斷地騷擾我,要我裝Virtual Machine來玩,說什麼可以跑Full Virtualization....  我哪知道那是啥啊?!所以當下並沒有理會,這部電腦的CPU就被我這個不識貨的笨蛋用了3年沒有發揮他的本事。同事對我的行為,三不五時就拿出來挖苦一下,但是當時對於虛擬化,我只知道要用VirtualBOX,VirtualBOX對我而言是一個很不好用的工具,老實說我對他至今還是沒啥興趣。
  
        最近我對系統突然開竅了,對系統管理的興趣非常濃厚,什麼都想要拿來玩玩,以彌補這3年工作沒有好好研究系統的空虛。

        回到CPU的話題,究竟他有什麼了不起呢?T5600 CPU加入了
Intel® Virtualization Technology (VT-x)技術,特別為了虛擬化而增強的硬體加速功能,如此可以讓原本可虛擬的主機數目增加,並讓效能改善。也就是說,原本我們虛擬的主機或許1或2部就開始變得很慢,但是有了這個技術之後可以達到4個或8個Virtual Machine(類似這樣子的比喻)。當然要模擬多虛擬主機,硬體效能是最關鍵的,比如主記憶體要大,才能餵食多個Virtual Machine的需求。

        那,我到底喜歡哪一種Virtual Machine軟體啊?現在比較有名的我列出4個,當然還有許多我沒用過的或我不了解的被我略過,但不代表其他的工具就不好用喔!

        VMWare是在大學時期就用的Virtual Machine軟體,他很好用,也很直覺,現在被EMC買下來之後功能簡直是異常的強大。商業軟體就是面面俱到,所以這套是非常不錯的,當然有一些比較進階的功能再免費版是沒有的,想用就要付點錢來買(一般人是買不起的錢)。

        再來跟VMWare很像的就是SUN Micro(我就是偏偏不想說"Oracle")的VirtualBOX,這套軟體跟VMWare真的很像,所以在使用上覺得沒什麼比較令人驚豔之處,而且他的網路設定讓人很困擾(得花點時間去k網路概念),我不是很喜歡。用了幾次就捨棄不用了。

        最近喜歡用的是KVM這套,最近他被Red Hat給收購了,我想這也是好事,讓龍頭來領導這樣的技術發展是令人看好的事情。這個套件再許多Distribution都可以透過套件管理程式直接安裝,因此想學Virtual Machine的技術,可以用KVM來學習。我最近就是使用KVM來做許多系統的練習與測試,不管是透過下指令、或是Virt-Manager都很好用喔!他的image file type相容性也很高,可以用原始的raw格式、也可以用效率比較好的qcow(2)格式,還可以直接將實體的主機dd來用,或是將現有的image透過dd的方式(當然還有其他的P2V2等等技術增加使用上的便利性)轉到實體機器上用。

        Xen,我還沒學會!不過這幾天開始就要學習了。Xen厲害的para-virtualization技術可以較不講究配備,也就是說舊機器也是可以拿來用得很開心的。只是前置學習的作業要拉得比較長些,他的難度甚至可以打擊一個老手。這套再我真的開始使用之後,再寫相關的使用文件給大家參考參考。

        最後,KVM的文章我將會寫一系列,從簡單入門的開始寫,因為我自己也是邊摸邊學,希望可以寫出不錯的文件讓有興趣的朋友參考並得到迴響。敬請期待嘍!