歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux基礎知識

基礎知識 - unix基礎教程

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