Provided by: manpages-zh_1.5.2-1.1_all bug

NAME

       lilybbs-faq - linux入門以及百合 Linux 版精華區導讀

QUESTIONS 問題與解答

   不需要任何命令的簡單介紹
       歷史   (APUE  提到了1990年之前的unix歷史,還有各種標準  ANSI  ISO  IEEE posix xpg3....  但
              是linux 和 BSD 尤其是freebsd 在其後才大行其道) unix 的歷史與 c 是緊密相關的,無論是
              產生發展還是後來的標準制定。 標準的制定反映出的,是當時的競爭之激烈。競爭在標準制定
              之後得到了抑制,  但是這段紛爭的時間卻使unix的發展減緩了   另一個阻礙發展的因素是版
              權,BSD的發展被延遲了,linux在版權上的障礙才剛剛開始   歷史問題可以參閱精華區的「歷
              史」目錄

       版權模式
              自由軟體版權和開源軟體版權的區別,在於對衍生工作的限制。  GPL  的限制指出,你可以修
              改GPL軟體,但是如果要再發行修改過的版本,  就必須允許其他任何人對這個版本進行再次修
              改。根據這一條,很多討論都是 沒有必要的。如果你的修改不會再發行,那麼就不必考慮是否
              公布修改的細節。  也就是說,政府/軍隊的保密限制和GPL是不會沖突的。 FDL 的限制似乎僅
              僅需要保留聲明   這種保証使用者權力的做法是否有道理,還是不清楚    開源軟體版權,例
              如BSD和類似的X版權,要求在任何衍生工作中保留原作者的信息 對再次發行修改後的版本沒有
              限制 不明白為什麼要這樣做--其中有一種自信,「舍我其誰」的勇氣吧  參閱精華區「歷史
              文化」目錄

       合作開發模式
              有很多工具用於實現合作開發 參閱精華區「軟體開發」目錄

       linux最吸引人的地方是什麼?
              很多人想知道linux為什麼那麼好,為什麼讓人著迷  我想我喜歡它,因為它的歷史悠久,結構
              很清楚很漂亮,很多思想很巧妙 也許僅僅是「歷史」就足夠了。懷古的人不在少數吧  合作開
              發,集中大家的智慧,從中可以產生無限的可能  自由?共產主義的狂熱精神?天下大同? 當
              然,最直接的就是可以牢牢地將電腦控制在自己手裏,想把它修飾成   什麼樣子就做成什麼樣
              子,可以想出和別人完全不同的生活方式,比如 iloveqhq的scheme生活環境,是一般人享受不
              到的  各種新鮮的想法,隨時可以試驗一下--讓想法時時刺激頭腦   像一個遊戲,耗時,費
              力,需要經常上論壇找攻略,從來沒有一定的玩法

       FUD 是什麼意思?
              2003年末,伴隨SCO對各個有關linux的公司的指控,還有對使用者的威脅恐嚇, 各種媒體也紛
              紛興風作浪,發表聳人聽聞的新聞,例如新浪的一些報道。 FUD 不僅指這些不負責任的話,還
              包括對linux等自由軟體/開源軟體的懷疑,     對自身的懷疑我自己認為過分的狂熱也可以叫
              做FUD。 總之,沒有平和的態度就沒辦法實實在在地作事情,所以技術問題之外, 爭論還是少
              一點好,懷疑更要少一點     其實所有初學者都會情不自禁地自稱「菜鳥」,會「問弱弱的問
              題」。問題在於, 有沒有抓緊時間提高水平

       目錄 檔案 路徑概念
              APUE 中開始就講目錄  檔案  路徑的概念,因為這幾個概念太基礎了。自從  「檔案」出現之
              後,又出現了層次目錄結構,對電腦中資源的管理才逐步 發展起來。檔案很適合於描述電腦上
              的資源 unix的目錄結構是非常嚴謹的樹形結構,根目錄是「/」,其他目錄和檔案都必須 在這
              個目錄下面。每個目錄下面都可以有子目錄和檔案,目錄和檔案名稱的長度 是與檔案系統有關
              的  路徑是引用一個目錄或檔案時用到的,指示它的位置的字符串。絕對路徑是說   從根目錄
              「/」開始,沿著目錄樹找到需要引用的目錄或檔案,然後將中間經歷的    節點都寫出來。例
              如,「/root/abc」 是說要找到「abc」 檔案,就必須從 「/」開始,中間經歷 「root」  目
              錄才能找到。 當前目錄是說使用者正處於樹形目錄的哪個節點上,相對路徑就是要引用的目錄
              或檔案相對於當前目錄的位置。例如,我現在在「/root」                目錄當中,要引用
              「/root/def/xyz」 的話,只要用 「def/xyz」 就可以了

       檔案類型
              檔案有不同的類型,在windows裏就可以看到,有純文字檔,圖像,聲音,視頻 但是在linux中
              的檔案類型要更多。例如,符號鏈接就是非常有用的類型  另外,linux中的二進制可執行檔案
              是ELF格式的,不需要擴展名;而windows中 是PE格式,有固定的擴展名。所以,兩個系統的應
              用程式不能換用,有朝一日也許可以  linux中很重要的一種檔案就是設備檔案。幾乎所有的設
              備都有一個對應的檔案,  在「/dev」當中 例如,硬碟harddisk簡稱hd,那麼系統中的第一個
              硬碟就是hda,第二個就是hdb.....,  然後對應的設備檔案就是「/dev/hda」。硬碟上的各個
              分區用數字來編號,例如      第一個硬碟的第一個分區就是「/dev/hda1」,第二個分區就是
              「/dev/hda2」                再舉一個例子,顯卡的設備檔案「/dev/fb0」,滑鼠設備檔案
              「/dev/input/mice」   和「/dev/psaux」  要注意的是,linux中的可執行檔案可以是二進制
              的,也可以是純文字檔。  「可執行」僅僅是檔案的一個屬性而已,不像windows中由於檔案系
              統中能保存的    屬性信息少,只能通過擴展名來識別檔案類型。linux中的檔案可以不用擴展
              名, 也可以用任意的擴展名各種各樣的檔案類型,是為了將不同的對象進行統一的處理。  我
              們可以用open lseek read write close 來讀寫一個純文字檔,也可以用這幾個 函數來處理滑
              鼠,讓聲卡播放一段聲音,讀寫一塊硬碟(如果你敢的話)。  在windows中,不同的設備處理
              的方法是不同的,而unix環境中的處理方法是 整齊劃一的。控制方法一般是fcntl和ioctl。(
              誰能告訴我ioctl犯了什麼錯誤了?)

       硬碟分區方式
              硬碟有很多種,分區也有各種各樣的方法。linux支持它們,但是常用的分區方法  就只有一種
              了。這種分區方法的要求是這樣,一塊硬碟上只能有最多四個主分區, 最多一個擴展分區;在
              擴展分區中可以劃分無限多的邏輯分區。記住這三個概念。 每個分區的第一個扇區一般都是保
              留分區信息的,數據一般從第二個扇區開始。 分區信息中很重要的內容是「下一個分區的位置
              在什麼地方」還有「本分區的  大小是多少」。因此,linux對分區進行編號的順序並不是硬碟
              上分區的物理排列順序, 而是從第一個分區開始,不斷查找下一個分區。這樣的結果是編號很
              容易弄錯。 要處理分區時,一定要把當前分區情況備份一下  pqmagic分區軟體不如linux中的
              分區軟體好用,因為它對混亂的分區編號處理  更容易出錯 啟動引導程式一般都裝到某個分區
              的第一個扇區裏面,和分區信息放到一起。     但是,如果安裝啟動引導程式時指定的設備錯
              了,那麼可能會把數據破壞掉,         或者將其他分區的引導程式破壞掉。典型的情況是這
              樣:windows將自己的引導程式   放在第一個分區--主分區1的開頭,我們的linux   fans想
              把linux的引導程式,        lilo或者grub放到整個硬碟的開頭--MBR裏面。MBR的設備名是
              「/dev/hda」, 但是主分區1的設備名是  「/dev/hda1」。一個不小心,系統就啟動不了,壞
              掉了

       國際化,locale的概念,utf8 等字符編碼的含義和用法
              後兩個已經不用再多說了。是很過時的話題。但是前日還有人問turbolinux是不是核心漢   化
              的。使用者並不是直接和核心打交道,為什麼要漢化核心呢?目前的核心包含各種編碼, 用於
              檔名的轉換,但是並沒有包含字型,因為使用者不是直接和核心打交道! 國際化是整個系統范
              圍內的,對編碼進行規範,對輸入輸出方式的函數接口和通信協議進 行整體的設計,提供處理
              各種語言環境的統一方法。本地化中,對編碼的規定和對日期時 間、貨幣格式的規定是國家標
              準,而輸入法、字型還有應用程式界面的翻譯,還需要大家 共同努力。  國際化和本地化都應
              當在應用程式中實現,例如zhcon和cce。視窗系統中的國際化和本地   化也是由應用程式實現
              的,視窗系統本身只提供通信協議 zhcon還不是很完善,支持的編碼太少了

       中文化是本地化的一種,終端的本地化不是很完整
              對世界上所有的字符進行編碼,就是unicode。但是,具體的實現方法有很多種,有的採用  定
              長編碼,有的採用變長編碼。utf8編碼是變長的,能實現unicode的大部分要求
              zh_CN.UTF-8,zh_CN.GB18030 這些locale 的定義,前一部分是國家代碼,語言代碼,後 一部
              分是編碼。不同的國家代碼和語言代碼對應著不同的輸入法,日期時間貨幣格式等等 ,對使用
              者比較重要,編碼則不是很重要,不同的語言可以使用相同的編碼,推薦使用utf8

       模塊化的設計思想 界面無關 設備無關
              這一段還沒有想好 很多程式是和界面沒有關系的。例如,字型的使用一般使用Xft2字型庫,但
              是它和視窗環  境沒有必然聯系。大部分bt工具是和界面沒有關系的。圖形應用程式 我們使用
              電腦時,我們的一舉一動都是在和系統通信。系統中程式執行時也在互相通信 。想要打開輸入
              法,我們按下ctrl-space,這時候輸入法和應用程式之間就通過XIM協議開  始通信了--過些
              日子,也許就不是這種協議了,但是通信是一定存在的     一方面,每個程式都關心自己的功
              能,另一方面,每個程式都要和其他程式進行通信。

       進程的概念 線程
              APUE  中提到,進程是一個程式的運行中的實例。進程有很多屬性,比如編號,所有者,當 前
              運行狀態,啟動時的命令行,環境變量,運行時間,打開了什麼檔案....       線程和進程類
              似,也有很多屬性。同一個進程的不同線程可以很容易地互相訪問數據。so  laris的線程實現
              很不錯,非常靈活

       什麼發行版好?什麼unix好?
              精華區目錄中有各種unix的對比,linux的使用感受,可以看一看      還有對書和網站的推薦
              debian   發展太慢了,除非用unstable   版本,但是那又太快了。用  knoppix  上上手不錯
              redhat 一直很好用,但是升級時最好重裝系統。現在fedora的網路升級不知道能不能完全  升
              級? redhat對中文的支持也很好,但是需要手動安裝的軟體比較多 turbolinux magic 還有國
              內廠商的版本 對中文支持不錯 個人不喜歡mandrake,很難定制。slackware  需要自己處理的
              東西太多了 freebsd 的使用和debian 很相似,自動化程度很高

   需要綜合使用命令才可以完成的操作
       檔案權限
              檔案權限並不是檔案類型。所謂「可執行」,僅僅是檔案的權限而不是類型。 傳統的檔案權限
              是九個字符rwxrwxrwx三個一組一共三組,再加上檔案所有者和組。高級的  檔案權限就不是這
              麼簡單了,類似ntfs,可以指定任何使用者/組對某個檔案的各種各樣的權 限用 「ls -l」 命
              令可以看到當前目錄中所有目錄和檔案的權限 用 「chmod」 「chown」 和 「chgrp」 命令可
              以修改權限

       運行程式 來自bash手冊頁
              假如看到檔案的權限中帶有x,那麼它是一個可執行的程式。要執行它,可以使用相對路徑
              ,也可以使用絕對路徑。例如,我的目錄中有一個「run-me」 檔案是可執行的,那麼我可  以
              運行  「/root/bin/run-me」 ,或者先運行 「cd /root」 再運行 「bin/run-me」。 假如說
              這個可執行檔案的位置在 「/usr/bin」 當中,那麼我不必使用路徑也可以直接執 行它,因為
              環境變量 「PATH」 中包含了 「/usr/bin」。運行 「export」 可以看到 「 PATH」 的定義

       具體目錄的作用 來自FHS 標準
              這個標準不是很正式,但是很多unix系統都在用。意思就是,「/」 根目錄下面的子目錄 和檔
              案都有它們各自的用處,不能隨意增加刪除。比如說,「/dev」 就是設備,「/etc」
               就是所有配置檔案,「/var」     是應用程式自動管理的數據,比如用rpm安裝了一個軟體,
              rpm會將那個軟體的信息存在「/var」 當中。「/usr」 當然就是應用程式的目錄。「/bo ot」
              是核心還有啟動時要用到的檔案。試一試,「ls lR /」 :)

       安裝和刪除軟體--最簡單的辦法
              最簡單的,把這個套件含的檔案--一般是一個可執行檔案,複製到 「/usr」  當中就  可以
              了。複製到什麼地方呢?FHS 對 「/usr」 目錄中的子目錄也有規定。「/usr/bin」
               是可執行檔案,「/usr/lib」  是庫檔案,就是xxxxxx.so.1 之類的,「/usr/share」 是 不
              需要修改的數據,比如幫助手冊,桌面圖標等等。 要卸載軟體,只要從「/usr」  當中把複製
              過去的檔案刪掉就可以了  複製用  cp 命令,刪除用 rm 命令。小心不要誤刪除了有用的東西
              和windows裏面不太一樣,不會在一個系統中安裝四個或者五個QQ卻仍然找不到QQ裝在什麼  地
              方。一般安裝軟體要用make,rpm 或者dpkg 等等方法,不用自己操心複製刪除檔案

       進程間的關系,應當使用APUE 中的敘述
              用ps      命令可以查看進程。用top命令可以動態地查看進程。當然,要搞清楚輸出是什麼意
              思,需要仔細看看幫助 fg 和 bg 可以在一些進程中切換 kill 和killall  可以控制進程停止
              和退出 一邊執行命令,一邊可以到「/proc」 目錄看一看。這個目錄是整個系統的情況,包括
              硬 件和軟體的信息。多練一練 「cd」,「ls」 還有 「cat」。看了足夠多之後,對於ps  和
              top 命令的輸出就大概明白了。我認為「/proc」 是新手訓練的最佳場合

       fork exec 環境變量 守護進程(daemon)

       shell 編程初步-shell,awk,perl

       命令   cd  ls  ;cat  less  ;rm  cp  mv ln ;mkdir chmod chgrp ; reboot poweroff ;mount
              umount df du ;tar make ; fdisk parted ;vi ;man info ;  rpm  apt-get  apt-cache
              dpkg  ;lilo  grub modprobe ; gcc g++ ;ps fg bg top ; 最常用的命令是不是poweroff
              和 reboot ?

       命令的通用選項
              cd - 切換到上次所在的目錄 cd ..  切換到上層目錄 ls -lh 很多命令的參數中,「-h」  表
              示的是將檔案大小轉換為以  「MB」 和 「kB」 為單位 「-l」 是長格式,可以看到檔案更多
              的信息 df -h du -h 查看磁碟空間,已用多少,剩餘多少 free 查看記憶體和交換空間使用情
              況。不過一般用top來看更好一些   less   -isr  可以用這個命令來看看很多類型的檔案的內
              容,包括純文字檔,壓縮包等等。加上參數就 能處理中文了 rm -rf 強制刪除,包括目錄和檔
              案  cp -a 完全複製,保留原來檔案的所有屬性 cp -R 複製,包括目錄和檔案。預設不包括目
              錄 ln -s 建立符號鏈接。符號鏈接的目標可以是目錄或檔案,也可以不存在。產生的新檔案和
              鏈接 目標屬性和作用完全一致。 tar zxf tar zcf tar jxf tar jcf 創建壓縮檔案(c)和解
              壓縮(x) j 對應的是 .tar.bz2,而 z 對應的是 .tar.gz fdisk -l  列出一個硬碟的分區情
              況。fdisk  命令交互執行更有意思 rpm -ivh rpm -Uvh 安裝一個套件 或者升級一個套件 rpm
              -qip rpm -qpl 查詢一個套件的信息和內容  rpm  -qf  查詢一個檔案屬於哪個套件  apt-get
              update  升級整個系統,但是不會強制升級一些不合規範的內容 apt-get install 安裝一個軟
              體。debian最吸引人的地方就在於容易地安裝和刪除軟體 dpkg -i dpkg -l apt-cache search
              如果軟體名稱更容易記就好了

   實習
       安裝X輸入法
              X   輸入法一般需要兩個環境變量,一個是  XMODIFIERS,  另外一個是  LC_CTYPE  比如要使
              用fcitx 輸入法,XMODIFIERS 最好是 「@im=fcitx」 (也可以是其他值),LC _CTYPE  是一
              個locale   類型的變量,其中的國家代碼必須是zh,語言代碼和編碼倒是無所  謂再比如要使
              用scim 輸入法,XMODIFIERS 應當是 「@im=scim」 , LC_CTYPE 在輸入  中文時同上,輸入其
              他文字時可以是其他國家代碼。 當然,如果你的系統中連中文字型都沒有,就不要指望有中文
              輸入法了。 因為不同的進程有自己獨特的環境變量設置,所以完全可以在同一個視窗系統的不
              同應用  程式中使用各種輸入法,只要在啟動應用程式之前先設置 XMODIFIERS 就可以了。 安
              裝X輸入法最困難的是如何使輸入法可以隨著X視窗系統而啟動和退出。不同的發行版有 不同的
              運行輸入法的方法,比如redhat/fedora  可以修改 「/etc/X11/xinit/xinit.d/xi nput」 檔
              案

       安裝終端的中文環境

       遍歷 /proc 目錄

       安裝軟體 查詢套件

       配置檔案,fstab lilo.conf grub.conf XF86Config

       配置lilo 或者 grub, 問題修復
              建議找一個好一點的lilo.conf 或者 grub.conf 看一看,至少是能用的配置檔案看一看,  然
              後再著手進行修復工作。有可能需要手動從頭開始寫一個配置檔案 確定真的弄清楚了硬碟分區
              情況了嗎?在BBS上求助時,一定要把分區情況和配置檔案,還

              有導致出錯的步驟都貼上來 精華區lilo 和grub 目錄都各有上百篇帖子,講述安裝和修復的過
              程

       mount  mount 命令用於將一個設備掛載到一個目錄上,然後就可以訪問其中的檔案了。 mount 命令可
              選的參數非常多,但是要想正確掛載一個設備,必須搞清楚一些事情   例如:         mount
              /dev/sda1  /mnt/u-disk/sda1 -t vfat -o defaults,users 其中,USB移動硬碟設備對應的設
              備檔名是  「/dev/sda1」。如果設備檔名  搞錯了,那麼掛載肯定會出錯。很多出錯都是因為
              「/dev/sda1」 對應的設備 根本不存在 -o 可以指定的選項非常多,不同的檔案系統都有自己
              特定的選項。常用的就是 users iocharset fmask dmask rw/ro 這一些。iocharset 是自己的
              編碼,在掛載  windows 網上鄰居的目錄時,iocodepage 是對方的編碼。 看幫助,man mount
              非常長。常見的/etc/fstab中的一行是這樣:
                    /dev/hda1    /mnt/harddisk/C vfat defaults,users,umask=0 0 0 如果是kernel-2.6
              那麼還可以加上fmask=111,dmask=0 來控制權限

       安裝X字型
              非常簡單。字型有兩個系統,一個是舊一點的X系統,一個是新一點的Xft2系統。要想在兩  個
              系統中同時使用某個字型,需要將這個字型複製到某個「/usr/local/share/fonts」 的  子目
              錄中去,然後在  「/etc/X11/fs/config」 中加入這個目錄,最後執行 「fc-cache -fv」 刷
              新字型列表,「service xfs restart」 就可以了 不同的系統中,完成這幾個步驟的具體執行
              的命令可能不一樣。複製字型應該都一樣,然                 後可能需要將這個目錄加入到
              「/etc/X11/XF86Config」 當中去,最後也有可能需要重啟 動圖形系統。要靈活一點

       配置latex 和 ps 系統

       分區,重新安裝系統
              這裏是實踐部分。硬碟分區,常見的分區方法是一個主分區,一個擴展分區,然後在擴展 分區
              中可以劃分很多很多邏輯分區。也有分區方法是劃分兩個主分區,例如IBM的系統還原      分
              區,還有dell也是這樣。 為linux系統分區可以只分一個swap分區和一個 「/」 分區。swap分
              區大小三五百M就可以  了。而  「‘/’  分區」 的說法只是為了方便,意思是將某個分區作為
              「/」 目錄來使用 。類似的,如果安裝程式要劃分 「‘/boot’  分區」,那麼也是將某個分區
              作為   「/boo   t」   目錄來使用。   任何一個目錄都可以單獨劃為一個分區,例如可以將
              「/usr/local」 目錄單獨劃為一個  分區,這樣把數據放在裏面,重裝系統時不會被刪除掉。
              高級的lvm和lvm2 只在大硬碟上才有用

HISTORY 歷史

       版上討論了很久是不是要提高技術性了。的確,大部分入門級問題在  從前的帖子中都有涉及,精華區
       中大概也有答案,重復地提問「將有價值 的論題淹沒了」。

           要提高技術水平,就要找到更多的論題和提出更好的想法。但是,魯  迅先生說得好,要有「天才
       的土壤」才行。所以,對於新手問題也不能封  殺。一種設想,是請幾位熟練的使用者專人負責某一個
       方面的問題,用信 件聯系,然後把有價值的討論結果發上來。但是,這樣效率不高。

           我想試行一下這樣的做法,就是入門級問題以及解答就跟在這個帖子  後面,過一段時間就清理一
       下,總結到一篇文章中。請大家配合。暫時設 定精華區的第19個目錄和第29個目錄分別用作已解決/未
       解決問題的保存 之處。

           後續的第二篇帖子是一些快速解答,可以在firefox 的搜索欄中使用  「頁面內搜索」功能來查找
       關心的內容。

           歡迎修改

Copyright

       Permission  is  granted to copy, distribute and/or modify this page under the terms of the
       GNU Free Documentation License, Version 1.2 or any later version  published  by  the  Free
       Software  Foundation;  with  no Invariant Sections, no Front-Cover Texts and no Back-Cover
       Texts.

AUTHOR

       最後一次修改者:bbbush<bbbush@lilybbs>@2004年2月11日

       最初的格式是txt 沒有排版,沒有鏈接