歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> 1周學會unix基本命令

1周學會unix基本命令

日期:2017/2/28 11:14:28   编辑:關於Unix


這篇東西是關於Unix系統操作的教程。也是Unix 的入門教程。如果你有興趣學,請看下去,保證你可以學到許多有用的東西。如果你滿足於dos,windows的操作,不想對網絡服務器,有任何了解的話,可以不看。因為你並不想成為計算機高手。本教程僅僅講授Unix 系統的常用命令,不涉及 Unix 的歷史、安裝和編程。如果你想得到更多的知識, 請查找其他的教材。本教程參考了《精通Unix》、《Unix基礎》、《Unix系統使用指南 》等書,你可以在那裡找到更多的知識。
准備知識:
Unix是一個多任務多用戶的操作系統。多任務是指可以同時運行幾個不同的程序,或命令。在操作系統的術語裡叫“進程”,就象在運行Windows95的時候我們可以一邊聽CD 一邊打字,同時打印機還在工作。多用戶是指一台運行Unix系統的機器可以同時具有幾個不同的輸入輸出設備,給幾個,幾十個用戶同時使用。不同的輸入輸出設備我們稱為終端。 Unix 給每個終端設置不同的序號以協調工作,這個序號被稱為終端序號。 Unix是一個根本不同於Dos的系統,無論其命令格式,用途都和Dos有很大區別。比如: 目錄分割符是"/",而不是"\"。具體的不同請參考其他書籍。
開始練習之前:
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裡去。

***********思考問題,請說出以下命令的作用:********************
cp file1+file2 file3
第二講
實際上以下命令的意義是這樣的:
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這個選項。表示確認。
***********有許多朋友寫信告訴我無法使用cyberspace的unix,也許是那裡的速度比較慢。如果你實在沒地方練習unix命令,我向你推薦一個工具,叫unixdos。它是一個unix環境的dos模擬器,基本上常用的unix命令你都可以使用。*****************
第四講
各位細心學習的朋友,非常感謝你能繼續看這個教程。這個星期我們開始學習VI編輯器。從功能上說它是一個同EDIT基本一樣的工具,但是它非常難學!以至於在現在我不得不引用一句在unix初學者口中的話來告戒大家"To vi or not to vi,that is a question"!
Vi的模式:
Vi有兩種基本模式:命令模式和編輯模式,他們以鍵切換。
OK,我們啟動一下vi,看看這麼使用這個工具。
%vi
啟動vi,第一件事先按,記得你在vi裡要常常用它。然後輸入"i"。
屏幕上絕對不會出現任何字,因為後你在命令模式,輸入"i"則表示你進入編輯模式,並且現在的狀態是insert,就是插入文本。
如果你還沒有被搞糊塗,那麼繼續輸入。
I love Unix.
是的,屏幕上出字了,你順利地輸入第一行文字。現在我們要保存這個文件。再按一次,到命令模式,輸入":w",表示存盤。你也可以輸入 ":w Unix.txt",那麼就是以Unix.txt為文件名字存盤。
好了基本vi概念就是如此。我把常用的一些命令都寫在下面,你自己試著輸入吧。
i "insert"的縮寫 在光標之前插入文字
a "append"的縮寫 在光標之後插入文字
o "open"的縮寫 在光標所在行的下面開始新一行的輸入
O "Open"的縮寫 在光標所在行的上面開始新一行的輸入
第五講
本周的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文件同我們這些寫網頁的人關系並不大,但知道一些還是好的。
Copyright © Linux教程網 All Rights Reserved