UNIX系統操作入門篇

第一講
這篇東西是關於Unix系統操作的教程。也是Unix的入門教程。如果你有興趣學,請看下去,保證你可以學到許多有用的東西。如果你滿足於dos,windows的操作,不想對網絡服務器,有任何瞭解的話,可以不看。因爲你並不想成爲計算機高手。本教程僅僅講授Unix系統的常用命令,不涉及Unix的歷史、安裝和編程。如果你想得到更多的知識, 請查找其他的教材。本教程參考了《精通Unix》、《Unix基礎》、《Unix系統使用指南 》等書,你可以在那裏找到更多的知識。
準備知識:
Unix是一個多任務多用戶的操作系統。多任務是指可以同時運行幾個不同的程序,或命令。在操作系統的術語裏叫“進程”,就象在運行Windows95的時候我們可以一邊聽CD 一邊打字,同時打印機還在工作。多用戶是指一臺運行Unix系統的機器可以同時具有幾個不同的輸入輸出設備,給幾個,幾十個用戶同時使用。不同的輸入輸出設備我們稱爲終端。 Unix給每個終端設置不同的序號以協調工作,這個序號被稱爲終端序號。 Unix是一個根本不同於Dos的系統,無論其命令格式,用途都和Dos有很大區別。比如: 目錄分割符是"/",而不是"\"。具體的不同請參考其他書籍。
開始練習之前:
在開始教授Unix命令之前,請先記下這個地址:[url]http://www.cyberspace.org[/url]。它是 一臺在美國的,連上Internet的Unix主機。之所以告訴大家這個地址是因爲它提供免費的帳號供大家使用。是免費的。就是說你可以先去那裏申請一個帳號,然後在那裏練習 你所學到的Unix命令。因爲我相信不是每個朋友都可以輕鬆地得到Unix帳號的。 在你成功的申請好帳號之後,請在你Windows95的dos窗口裏輸入"telnet cyberspace.org" 等待連上主機。接下來就是輸入你的用戶名和密碼,不要告訴我這些你都不會,如果你 不會的話,你是怎麼連到這個網頁的? 現在假定你連上了主機,系統的提示符應該是"cyberscpae.org%",對這個就是提示符 就象dos裏的"c:\>"。接下去我將開始命令篇。
ls
你記不記得你學會的第一個Dos命令?反正我學會的第一個命令是dir:列目錄和文件的 命令。你學會的第一個Unix的命令也是列目錄和文件的命令ls. 功能列出當前目錄下的文件和目錄。 同Dos一樣,Unix系統命令也是帶參數的。ls的參數有"a","l","F"。請注意,F是大寫。 Unix系統裏對命令的大小是嚴格區分的。(所以我們做網頁常常會發生連接錯誤)同dos 不一樣的地方在於,Unix命令的參數是"-"爲其前導,而不是"/"。所以完整的ls命令是
ls -l -a -F或ls -laF
-l:long的意思,把文件的其他資料,如文件長度,上次修改的日期等等列出來。
-a:all的意思,把本目錄下所有的文件,包括隱含的文件也列出來。
-F:顯示文件類型。"*"表示可執行文件,"/"表示目錄,"@"表示連接。
好,請在你的機器上輸入ls -l -a -F,或許這是你一生裏第一個Unix命令。記住了嗎?
cd
變換目錄,和Dos相同。如果你在cd後面沒有給定目的地,則表示目的地是家目錄。 在unix中有三中表示目錄的符號".","..","~"。 "."表示當前目錄路徑的位置 ".."表示當前路徑的上一層目錄,或稱"父目錄" "~"表示家目錄,所謂家目錄指系統管理員分配給你的目錄,比如你的用戶名是li,那麼 你的家目錄就是在"~li",在cd後面加上"~li"就是去你的家目錄。
date
顯示出當前的時間和日期,記住在Unix裏你是無法修改系統時間的。輸出時間一般是 格林威志時間。
who
該命令告訴你現在你使用的系統裏有哪些用戶。Unix是一個多用戶的操作系統,同時在 機器上的可能有數十甚至數百人。who命令可以把他們的名字和終端號都列出來。who命令有 一個比較有趣的用法,"who am I"如其字面上的意思,讓Unix顯示你的用戶名和終端類型
more
more命令有點象Dos裏的Type命令,就是顯示文本文件的內容。比如你要顯示文件file1的 內容,可以用: more file1 當要看的文件超過屏幕可以容納的行數,就會在屏幕的左下角出現一個"--More--"並告訴 你已經看過了整個文件的百分之幾。如果要繼續看下去,就敲"Space Bar",可以看下一頁, 或用"Enter",就會讀入下一行。 more命令還可以由你指定開始的行數。比如file1文件有1000行,你已經看過100行,那麼可以用"more +100 file1"則直接從第100行開始看起。還有可以在命令裏指定關鍵字。ore +/key_word 這樣寫,more就會從含有"key_word"字樣的那一行的前兩行開始顯示。也許你已經注意到,Unix裏對文本文件的操作要比Dos強大的多,實際上的確如此。
第二講
cp
cp命令同dos裏的copy命令是一樣的,複製文件。 比如:
cp file1 file2
注意,如果你當前目錄裏已經含有file2這個文件,這個操作將會覆蓋原來的file2。也許 在Dos裏不會這樣,它會要你確認。但你現在在用Unix,在你沒有叫它確認之前,它不會那麼做。
cp -i file1 file2
當你使用了-i這個選項,再遇到重名的情況系統將要你確認是否繼續。 cp命令還有兩個比較重要的選項:-r -p
cp -r /dir1 /dir_temp 這條命令是將目錄dir1完全地複製到目錄/dir_temp裏,在Dos裏着條命令叫xcopy
cp -p file1 file2
Unix的系統和dos有一個不同的地方,在dos裏copy一個文件是不會改變它的文件修改時間 的,除非你確實那樣做了。在Unix裏不同,它要改你的時間,或許它認爲cp也是一種修改吧。 當你加上-p以後就不會改時間了。
用慣Dos的人或許會對下面的一行命令大惑不解:
cp file1 file2 file3 dir_dest 這條命令把file1,file2,file3三個文件一起復制到/dir_dest裏去。
好了今天就講到這裏,最後留一個思考題,請說明一下下面一行命令的作用,請不要用Dos 的思考方式。我們下個星期再見。
思考問題,請說出以下命令的作用:
cp file1+file2 file3
cp
上個星期我提出的問題你能解嗎?實際上以下命令的意義是這樣的:
cp file1+file2 file3
表示將一個名字爲file1+file2的文件拷貝成file3。而不是在dos裏的將file1和file2加在一起拷貝成文件file3。在unix的文件系統裏,文件名字可以到255或254個字符,具體要看你到底使用那種類型的
Unix。
cat
這個命令可不是“貓”的意思,而是catenate的縮寫。顧名思義,是把東西串起來。比如:
cat file1 file2
就是把文件file1和file2連在一起,然後輸出到屏幕上。注意,輸出到屏幕上是cat的自定義目的。如果要改變它的輸出方向,就必須使用Unix系統的輸出重定向符“>”
>
輸出重定向符。稍微高級一點的dos用戶都知道這個符號。在Unix裏的用法同Dos的區別不是很大。但比較不同的地方是,Unix系統將任何的一個外設都認同爲一個文件。所以如果你要將輸出重定向到打印機之類的地方,只要寫上代表打印機的設備文件名。前一將裏我們曾講過終端機器名,它也是一個文件。比方我的設備機器是ttya,而小李的設備機器是ttyb,他想讓我把當前目錄的內容給他看。那麼用這條命令就可以了
ls -a-u-F >ttyb
這充分利用了Unix系統多用戶的設計思想。
同樣的使用ls -a-u-F>file1就是將當前目錄列表輸出到file1中。
又比如:
cat file1 file2>file3
就是將文件file1和file2的內容輸出到file3中。在Dos裏這條命令被寫成copy file1+file2 file3
當你用'>'來輸出重定向的時候,系統馬上打開一個空文件來準備存放'>'之前那個文件命令的輸出結果。比如:
cat file1 file2>file3
系統先將file3的內容清空。所以:
cat file1 file2>file1這條命令將產生一個錯誤提示。也許這條命令的本意是增加file1裏的內容,但在系統初始這條命令的時候就把file1裏的內容清空了。所以你得到一個錯誤提示。如果要追加文件內容請使用以下命令:
cat file2>>file1
">>"表示追加,而不是先清空file1中的內容。
上面講的是輸出重定向,還有輸入重定向。這個留在以後講。
man
是英語"manual"的縮寫。這是一條使用頻率很高的命令,用來得到系統對一個特定命令的幫助信息。請各位讀者一定要掌握這條命令。
格式爲:man -k 命令關鍵字
mv
這個命令是move的縮寫,就是把一個目錄或文件搬來搬去。實際上我常把它當成改文件名字的命令來用。比如:
mv file1 ABC就是把文件file1改成ABC。
rm
記住rm是remove,是清除文件的意思。在Unix裏是沒有undelete這會事情的,所以請在使用的時候加上-i這個選項。表示確認。
在這個星期我們的Unix教程就到這裏了。有許多朋友寫信告訴我無法使用cyberspace的unix,也許是那裏的速度比較慢。如果你實在沒地方練習unix命令,我向你推薦一個工具,叫unixdos。它是一個unix環境的dos模擬器,基本上常用的unix命令你都可以使用。有興趣的朋友請寫信給我,我告訴你在那裏下載。
第三講
文件權限
各位讀者,經過上兩個星期的熱身,我們開始漸漸接近Unix操作的核心。在本週我們着重談談Unix的文件系統,下次再講vi編輯器。
現在我們來看一個示例:
Username:unixfree
Password:********
(登陸到Unix)
%:ls -l(顯示文件表)
drwxr-xrw- 1 unixfree project1 128 Apr 4 12:19 dir
-rw-r--r-- 1 unixfree project1 545 Apr 4 12:19 file1
lrwxrwxrwx 1 unixfree project1 124 Jan 13 09:01 file2-->file3
-rw------- 1 unixfree project1 212 Jul 22 14:23 file3
在文件列表最前邊的就是文件的屬性。一般來說,它有十個小項目,也就是十個符號。它們以1+3+3+3的方式表示四個意義:
文件類型(1)、文件擁有者(user)對此文件的權限(3)、同組者(group)對此文件
的權限(3)、其他人(others)對此文件的權限(3)。
文件類型:文件類型有三種符號,分別爲:
"-":普通文件
"d":目錄
"1":表示連接(下面會詳細講)
文件權限:文件的權限也有三種
"r":只讀文件
"w":可寫文件
"-":不可執行文件,不可讀文件,不可寫文件
"x":可執行
在Unix系統裏用戶是分組的,就象NT的分組一樣。一般來說同一組的人往往比較接近,比如公司的同一個部門就是一個組。而不同組的人則不在同一個組。分組情況是由系統管理員制定的。普通用戶不能自行更改。
所以在上面的例子裏的第一行表示該目錄User可讀可寫可執行,本組的用戶可讀不可寫可執行,其他用戶可讀可寫不可執行。其他的你就自己解釋吧。
前面我提到了一個文件類型"1"。這是比較特別的類型,它只是一個門牌,任何對它的訪問都會自動到它指向的文件。比如上例中我們看到file2是連向file3的一個文件,那麼任何對file2的操作都是對file3的操作,並且文件的實際屬性是file3的屬性,而不是file2的屬性。
改變文件屬性的命令:chmod
chmod 是chang mode的縮寫,用來改變文件的權限。用以下的文件爲例:
-rw-r--r-- 1 unixfree project1 545 Apr 4 12:19 file1
第一個"-"表示本文件是一個普通的文件。"rw-"表示文件擁有者對此文件的權限爲可讀可寫不可執行。其他的你自己看了。
要改變次文件的權限,比如我怕將此文件改壞掉,所以希望自己不可寫此文件chmod u-w file1
符號"u"表示文件的擁有者,"g"表示同組者,"o"表示其他用戶,"a"表示全體用戶,就是前面講的所有的人。"-"表示去掉某個屬性,"+"表示加上某個屬性。
又比如我要講file1改成全體用戶都可讀可寫可執行的文件:
chmod a+rwx file1
然後去掉其他用戶執行的權利:
chmod o-x file1
你懂了嗎?如果你有興趣,快去試試吧。我們下週開始講令人厭煩的vi。Bye!這個教程是爲一些沒有機會接觸Unix的網友寫的。目的是爲了讓大家能夠有些感性的認識。如果你沒有Unix帳號可以使用,請去[url]http://www.cyberspace.org[/url]申請一個免費的Unix帳號。或者在網絡上找一個叫UnixDos的軟件來將你的Dos
模擬成Unix環境。或者將你的Win格式掉,裝一個Linux。:-)
第四講
各位細心學習的朋友,非常感謝你能繼續看這個教程。這個星期我們開始學習VI編輯器。從功能上說它是一個同EDIT基本一樣的工具,但是它非常難學!以至於在現在我不得不引用一句在unix初學者口中的話來告戒大家"To vi or not to vi,that is a question"!
Vi的模式:
Vi有兩種基本模式:命令模式和編輯模式,他們以<ESC>鍵切換。
OK,我們啓動一下vi,看看這麼使用這個工具。
%vi
啓動vi,第一件事先按<ESC>,記得你在vi裏要常常用它。然後輸入"i"。
屏幕上絕對不會出現任何字,因爲<esc>後你在命令模式,輸入"i"則表示你進入編輯模式,並且現在的狀態是insert,就是插入文本。
如果你還沒有被搞糊塗,那麼繼續輸入。
I love Unix.
是的,屏幕上出字了,你順利地輸入第一行文字。現在我們要保存這個文件。再按一次<ESC>,到命令模式,輸入":w",表示存盤。你也可以輸入
":w Unix.txt",那麼就是以Unix.txt爲文件名字存盤。
好了基本vi概念就是如此。我把常用的一些命令都寫在下面,你自己試着輸入吧。

i牋 "insert"的縮寫 在光標之前插入文字
a牋 "append"的縮寫 在光標之後插入文字
o "open"的縮寫 在光標所在行的下面開始新一行的輸入
O "Open"的縮寫 在光標所在行的上面開始新一行的輸入
I?/TD> "Insert"的縮寫 在本行最前面開始輸入文字
A "Append"的縮寫 在本行最後開始插入文字
dd?/TD> 刪除光標所在的那行
dw 刪除光標所在的那個字
dnw? 刪除光標所在字和其後的n個字(n爲正整數)
x? 刪除光標所在的那個字母
:w? 存文件
:r? 讀文件
:q? 退出vi
上面都是一些基本的用法,如果還不夠,請使用man命令查詢。
好了就這樣吧。我們下個星期見。進行unix的Shell概述。
第五講
本週的Unix教程是最後一講了。在本講裏我們將講一下unix Shell的基本內容。我不準備深入地講解Shell編程。因爲要是那樣的話,足夠寫上五十個page. Shell是外層,是用戶與Unix之間的層,它們節省命令行的長度,對命令參數執行完整的變換,並且定位和解釋用戶命令。另一方面,shell也是一個功能強大
的程序語言,提供製作工具的工廠。用Shell能創建用戶自己的命令,甚至創建一個完整的新環境。
在程序員裏有一個流行稱謂“如果你不喜歡Unix界面,就自己寫一個”。實際上無需深入到內核,便可以方便地控制自己的界面。可選的Shell有sh,csh,ksh有強大的功能。
正如其名字,Shell Script是一個文本文件。該文件指揮並控制Shell執行一系列特定的操作。一個批處理文件能含有任何命令(Unix的內部和外部命令),還可以包括過去編寫的批處理文件。
第一個Shell處理文件:
這裏使用的Shell是BS,如果你是使用CS可以更改一部分內容。
:
#@(#)dw--show data and users--
#
date
who -u
第一個:不是必須的,而是長期的習慣。它告訴系統下面是BShell的內容。
正如你看到的,Unix的Shell文件和Dos的批文件在很多地方是相同的。在寫Unix的Shell文件時候,我們一般使用六個步驟:
1.計劃好命令系列,並在鍵盤上試用
2.爲批處理文件挑一個好的,不會發生重複的文件名
3.用你喜歡的編輯工具生成文件(希望不是VI:-))
4.從冒號開始文件,以增加文件的解釋
5.用Chmod命令,將文件的屬性設置爲可讀文件
6.把批處理文件放入適合的目錄中。
以上是Unix系統的Shell文件一些基本的內容。這裏就不多說了,實際上Shell文件同我們這些寫網頁的人關係並不大,但知道一些還是好的。
持續五週的Unix系統操作教程已經寫完了。如果你覺得有必要深刻了解一下Unix系統,請查找一些書本。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章