Linux教程網
unix基礎教程
2004-04-23 15:18 pm來自:Linux文檔
現載:Www.8s8s.coM
地址:無名
這篇東西是關於Unix系統操作的教程。也是Unix的入門教程。如果你有興趣學,請看下去,保證你可以學到許多有用的東西。如果你滿足於dos,windows的操作,不想對網絡服務器,有任何了解的話,可以不看。因為你並不想成為計算機高手。本教程僅僅講授Unix系統的常用命令,不涉及Unix的歷史、安裝和編程。如果你想得到更多的知識, 請查找其他的教材。本教程參考了《精通Unix》、《Unix基礎》、《Unix系統使用指南 》等書,你可以在那裡找到更多的知識。 准備知識:
Unix是一個多任務多用戶的操作系統。多任務是指可以同時運行幾個不同的程序,或命令。在操作系統的術語裡叫“進程”,就象在運行Windows95的時候我們可以一邊聽CD 一邊打字,同時打印機還在工作。多用戶是指一台運行Unix系統的機器可以同時具有幾個不同的輸入輸出設備,給幾個,幾十個用戶同時使用。不同的輸入輸出設備我們稱為終端。 Unix給每個終端設置不同的序號以協調工作,這個序號被稱為終端序號。 Unix是一個根本不同於Dos的系統,無論其命令格式,用途都和Dos有很大區別。比如: 目錄分割符是"/",而不是""。具體的不同請參考其他書籍。
回頁首
開始練習之前:
在開始教授Unix命令之前,請先記下這個地址:http://www.cyberspace.org。它是 一台在美國的,連上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!
各位細心學習的朋友,非常感謝你能繼續看這個教程。這個星期我們開始學習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?br>
"Insert"的縮寫
在本行最前面開始輸入文字
A
"Append"的縮寫
在本行最後開始插入文字
dd?br>
刪除光標所在的那行
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
系統,請查找一些書本。
Copyright ©
Linux教程網 All Rights Reserved