Linux不完全手冊(二)

來源:互聯網
上載者:User

Linux使用篇

  安裝完linux,並配置好linux的啟動,那麼如果在安裝時你選的是啟動到圖形介面下的話,現在你就應該可以看到登陸的視窗了。輸入你的使用者名稱和密碼,(呵呵,安裝時設定的,別忘了!)就開始了你的linux之旅。

  在linux下,你的確可以體驗到永不死機的神話。Linux系統的確強大,在他的下面你的確不用擔心莫名其妙的藍屏。筆者使用linux以有幾年,在這幾年裡從沒發生過真正的死機,就算是偶爾的在xwindows下系統沒有了響應也可以按"ctrl+alt+backspace"退出視窗返回命令列模式下。

  其實要瞭解linux,那就一定要習慣命令列模式,因為xwindows只是運行在命令列模式上的一個應用程式而已,就象dos與windows3.x一樣,所以瞭解一下linux的常用命令還是很有用處的。下面我就介紹一些在linux下使用頻率最高的幾個命令,這些命令的介紹並不象專業書籍那樣介紹的大而全,我只是揀著那些對我們普通使用者最有用的來介紹,每個命令都對照著相同功能的dos命令來說,並列出一些常用的參數。
  在介紹一些具體的命令前先要說明的是,如果碰到不會用的命令,可以打"man [command]"來得到關於這個命令的協助,如果想知道一個命令都有什麼參數的時候可以?quot;command -help"來得到。要注意的是linux裡的參數的輸入形式和dos裡的不一樣,在命令後面應該打一個空格,然後打"-",最後再跟一個或多個參數。還要注意的是linux下大小寫是有區別的!

基本操作命令

ls
相當於dos下的dir命令,是列檔案清單的命令,和dir差不多。參數有:

參數
說明

-a
列出系統中的隱含檔案,linux下的隱含檔案是靠檔案名稱的格式來表示的,不同於dos是靠檔案屬性來表示。具體的說只要這個檔案是以“.”開頭的,那麼他就是一個隱含檔案。

-l
以長式列出。就是把該檔案或目錄的所有資訊都列出來,一個檔案佔一整行。

cd
和dos下的cd一樣,轉換目錄的命令。需要指出的是linux下的轉到上級目錄要打"cd .."而不是dos下的"cd.."。也就是說"cd"後面要有個空格。
pwd
列出目前的目錄命令,相當於dos下沒有參數的cd命令。比如:
[root@ttqq bin]# pwd
/usr/bin
[root@ttqq bin]#
這表示我們現在在"/usr/bin"目錄下。
有關目錄和檔案的命令
mkdir
建立新目錄,相當於dos的md命令。一般就用 mkdir [dirname],參數:

參數
說明

-m mode
表示建立目錄時預設的目錄模式。這個是dos和windows所沒有的功能。主要是關於許可權的問題,讀者如有興趣請參考相關專業書籍。

rmdir
刪除目錄,相當於dos的rd命令。用法:rmdir [dirname]。
cat
在檔案後面追加檔案或在螢幕上列印檔案內容,追加功能相當於dos的copy file1+file2,而在螢幕上列印檔案內容可以和dos的typeml來類比。如果檔案太大,以至於在一螢幕上無法完全顯示,那麼可以試試下面這個命令。

more
分屏顯示檔案內容,和dos下的more命令大致相同,而他的特點是可以和別的命令來搭配使用。如:cat /home/eec/myfile | more。

cp
拷貝檔案,相當於dos下的copy使用方法和dos下的copy一樣。參數:

參數
說明

-r
相當於dos的xcopy/s。用於拷貝一個目錄下的所有檔案和檔案夾。

ln
建立檔案連結。相當於windows下的捷徑。用法:"ln 源檔案 目標檔案"
mv
重新命名檔案,等價於dos的move和ren命令。用法:"mv oldname newname"比如:"mv 111 /home/ekoala/222"就是把"111"這個檔案移動到"/home/ekoala"目錄下,並改名為"222"

touch
改變檔案的修改時間或建立時間。相當於dos的copy file+nul。最簡單的用法是:"touch file_name",即把"file_name"這個檔案的時間改為目前時間。注意:如果touch後面的檔案不存在的話就會在磁碟上建立一個新的空檔案。

進程或進程的相關命令
  首先介紹一下linux的多進程,linux的多進程要比windows的多進程更有效率、更加穩定。在命令列狀態下輸入的普通命令都在前台完成,而如果你在命令後面加一個"&",那麼這個命令就在後台運行。好,言歸正傳,現在開始介紹有關進程的常用命令。
at
安排作業在稍後執行。這個命令非常強大,同時也非常複雜,這個命令可以說是unix/linux的一大特色。我們先來看一個具體的執行個體:
[root@ttqq bin]# at 21:05 Jul 31
at>cat /usr/docs/ccttrr.htm >myfile
at>
warning:commands will be executed using /bin/sh
job 5 at 2000-07-31 21:05
  以上的意思為輸入在7月31日21點05分運行一個程式,接著系統提示使用者輸入命令或命令列表,使用"ctrl+d"終止。終止at後,系統給出一個警告,這個響應表示指定的工作將在指定的時間運行,工作號為5,如果想取消此作業可用與之相連的工作號來完成。
如果命令很多,那建議將命令列表放入一個檔案,若檔案名稱是"comtable"那就輸入:
[root@ttqq bin]# at 21:05 Jul 31 由於at的特殊性,所以linux系統對at有一些許可權上的規定:
超級使用者可以隨意使用at命令,但對普通使用者來說,則由/etc/at.allow與/etc/at.deny這兩個檔案來決定。
  如果/etc/at.allow這個檔案存在,那麼只有在該檔案中提及的使用者可以使用該命令,相反的,如果這個檔案不存在,則檢查/etc/at.deny這個檔案,該檔案中未提及的使用者可以使用該命令。如果兩個檔案都不存在。那就只有超級使用者可以使用該命令。如果/etc/at.deny這個檔案為空白,那麼所有使用者都可以用這個命令。
at的參數有:

參數
說明

-l
列出現在由at安排的作業。超級使用者可以列出所有的使用者,普通使用者只能列出自己的at作業。

-m
作業完成後,即使沒有輸出,也將郵件送到使用者。

-r
從作業中取消指定的作業,比如取消上例的作業:at –r 5。超級使用者可以取消所有的使用者,而普通使用者只能取消自己的作業。

ps
顯示當前正在執行的進程,由於進程執行的非常快,所以本命令只能列出查詢瞬間發生的進程。以下為超級使用者用ps -al參數的輸出:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
100 S 0 273 265 0 69 0 - 472 wait4 tty1 00:00:00 bash
100 S 500 286 266 0 62 0 - 466 wait4 tty2 00:00:00 sh
100 S 503 299 267 0 64 0 - 465 read_c tty3 00:00:00 sh
000 S 500 318 286 0 62 0 - 1193 do_sel tty2 00:00:00 vi
100 R 0 328 273 0 70 0 - 638 - tty1 00:00:00 ps
其中"PID"為進程號,對進程的管理就是通過進程號來實現的。ps的參數有:

參數
說明

-a
顯示所有的進程,支線於超級使用者使用。

-l
長格式輸出。

-u
使用者格式輸出,顯示使用者名稱和起始時間。

-r
只顯示當前啟動並執行進程。

-s
加入子cpu時間和頁錯誤報表。

下面我在說一下ps各欄位標題的意思: 列名
說明

PID
進程號。

PRI
進程的優先順序。

NI
Linux的nice值,負數少意味著佔用較少的cpu時間。

SIZE
虛擬映象的大小,計算式為:“文本+資料+棧”。

RSS
駐留空間的大小,顯示當前常駐記憶體的程式的k位元組大小。

WCHAN
進程等待的核心事件名。

TT
進程的控制終端tty的名稱。

STAT
進程狀態,用下列代碼中的一個給出。

R
可執行檔。

S
睡眠狀態。

D
不間斷睡眠。

T
停止或追蹤。

Z
是一個zombia進程。

W
當前進程在記憶體中沒有駐留頁。

PAGEIN
造成從磁碟讀寫頁的分頁錯誤。

TRS
文本寄存大小。

SWAP
分頁檔的KB數。

SHARE
共用記憶體數。

kill
容許送一個訊號到當前進程,通常本命令用於終止進程的運行,所以也叫"殺死"進程。用法為:kill 進程號。超級使用者可以殺死所有進程,普通使用者只能殺死自己的進程。
顯示輸出命令
banner
banner通過一個傳給它的放大變數產生一個大字標題。可以指定十個字元,這些字元將放大成一系列的"*"號。文法如下:
banner [-w[n]] 字串
-wn改變字元寬度,從132列到n列,如果只指定了-w,那麼設定寬度為80列。如:
benner "my benner"
這樣就會在螢幕上列印一個大的"my benner"。
cal
這個命令在螢幕上顯示日曆,這個命令非常有用。用法:cal [month] [year],參數為:

參數
說明

Month
用1-12表示顯示的月份。預設的是顯示本月。

Year
可以是1-9999年,預設是本年。必須寫足4位元,也就是說,92代表公元92年,而不是公元1992年。

cal 10 1994,表示顯示1994年10月的月曆。
clear
清除螢幕,跟dos的cls一樣。

date
顯示系統的日期和時間,或由超級使用者來設定系統的時間。使用者可以控制時間如何顯示。文法如下:
date MMDDhhmm[CC][YY][.ss],參數說明:

參數
說明

MMDDhhmm[CC][YY][.ss]
這些都是設定時間的格式。下表解釋每一個變數。每部分必須都有兩位元字。

MM
月份(1-12)

DD
日期(1-31)

Hh
小時(00-24)

mm
分鐘(00-59)

CC
年的前兩位(可選)

YY
年份(00-99)(可選)

Ss
秒(可選)

file
決定檔案類型。File能確定該檔案是否是可執行檔、文字檔、資料檔案等。許多unix命令只是shell檔案,file能確定這些命令是不是shell檔案。他也可以確定該檔案是否是基於文本的檔案,以及該檔案是否能編輯和瀏覽。參數:
參數 說明
-z 深入觀察一個壓縮檔,並試圖尋找出他的類型。
-l 本參數容許符號串連。
-f ffile 告訴file要鑒別的檔案清單在fflie。這對於要鑒別很多檔案很有用。
-m 檔案 指定用於說明檔案類型的magic的一個替代檔案。
find
find是一個非常強大的尋找工具。他研究指定目錄,併產生與指定標準相匹配的檔案清單。檔案可以按檔案名稱、檔案大小、建立時間、修改時間和其他許多標準,也可以在發現一個匹配檔案的時候執行一個指令。文法如下:
find 目錄(也可以是目錄列表) 匹配標準。他的主要參數有:

參數

說明

-z

深入觀察一個壓縮檔,並試圖尋找出他的類型。

-l

本參數容許符號串連。

-f ffile

告訴file要鑒別的檔案清單在fflie。這對於要鑒別很多檔案很有用。

-m 檔案

指定用於說明檔案類型的magic的一個替代檔案。

參數
說明

目錄(或目錄列表)
希望查詢檔案或檔案集的目錄列表,目錄中用空格分開。

匹配標準
希望查詢檔案的匹配標準或說明。

-name 檔案
告訴find要找什麼檔案,要找的檔案包括在引號中,可以用統配符,如:“*”、“?”。

-perm模式
匹配所有模式為指定數字型模式值的檔案。不僅僅是讀、寫和執行,表示除了這個模式外的所有模式。

-type x
匹配所有類型為x的檔案。X可以是c(特殊字元),b(特殊塊),d(目錄),p(有名管道),l(符號串連),s(套接檔案)或者f(一般檔案)。

-links n
匹配所有串連數為n的檔案。

-size n
匹配所有大小為n塊的檔案。512位元組塊,若k在n後,則為1k位元組塊。

-user 使用者號
匹配所有使用者序號是指定的使用者序號的檔案。使用者號可以是數字型,也可以是使用者登陸名。

-attinme n
匹配在n天前訪問過的檔案。

-ntime n
匹配在n天前修改過的檔案。

-exec 命令
對每個匹配檔案執行命令。

-newer
匹配所有修改時間比file檔案更新的檔案。

這些參數是可以一起並列使用的,也可以通過邏輯運算式來限制查詢標準,如下表所示:
參數
說明

-and
預設的邏輯表達,表示要同時滿足運算式左右兩個的規則。可以不用,因為是預設的。

-o
這時or操作符,表示只要滿足一個規則就可以。

-!
這是not操作符,表示否定後面的運算式。

總之,find命令非常複雜,不是三言兩語就能說清楚的,建議大家多參考線上手冊,並多加練習就可以輕鬆掌握。

使用者和使用者管理及其他系統設定的相關命令
chgrp
改變檔案的組所有權。一些chgrp命令有長短兩種參數參數的指定方式,現只介紹短版本。文法:chgrp [參數] 組 檔案清單,參數有:

參數
說明

-c
只有在檔案所有權確實改變時才進行詳細說明。

-f
不列印檔案所有權不能改變的錯誤資訊。

-v
詳細說明檔案所有權變化資訊。


要改變到的組,可以是組號的數字值,也可以是/etc/growp檔案中的組名。

檔案清單
要改變組所有權的檔案清單,檔案間以空格分隔。

如果你不是檔案的所有者或超級使用者則不能改變檔案的組所有權。
例子:chgrp ekoala /usr/eee/*
即把/usr/eee下的所有檔案的組所有權改變為ekoala的。
chomd
改變檔案模式,檔案模式控制與該檔案有關的訪問權。Linux有3個安全層級:所有者級、組訪問級和其他使用者級。在這3個級中有3種讀寫權限:讀、寫和執行。對標準檔案,讀許可權意味著使用者可以看到該檔案的內容;寫入權限能修改檔案;執行許可權則可以運行檔案。對於目錄則稍有不同:讀許可權可以看到目錄下的內容,即可以用ls命令;寫入權限則可以在目錄下建立新檔案或從目錄中刪除檔案;執行許可權則意味著能從一個目錄轉變到另一個目錄中,則可以使用cd命令。
用法:
chomd a + w letter
則是給所有使用者加入寫檔案letter的許可權。
許可權代碼為:讀(r)、寫(w)、執行(x)。

chown
這個命令和chgrp很相似,這個命令是改變檔案的使用者所有權,就是說將檔案的擁有者設為其他使用者。用法:
chown [參數] 使用者 檔案清單,參數有:

參數
說明

-c
只有在檔案許可權確實改變時才進行詳細說明。

-f
不列印許可權不能改變的檔案錯誤資訊。

-v
詳細說明許可權的變化。

檔案清單
列出由要chown改變許可權的檔案。

使用者
可以是使用者號或是在/etc/passwd檔案中的使用者名稱。

要注意的是:檔案的所有權只能由超級使用者或檔案的所有者更改。但是,如果檔案的所有者將檔案指定給其他的使用者,則沒有權利將檔案再指定給自己,因為此時該使用者已經不是檔案的所有者了。
例子:
chown ekoala /usr/eee/ttqq ,這個意思是將/usr/eee/ttqq這個檔案的所有者改為ekoala。
id
顯示使用者的系統標識,報告使用者的名稱、使用者號、組名和組號。參數:

參數
說明

-g
只列印組號。

-G
只列印補充組。

-u
只列印使用者號。

如:
[ekoala@ttqq usr]$ id
uid=10002(ekoala) gid=500(student) groups=500(student)
[ekoala@ttqq usr]$
顯示自己的使用者資訊。
passwd
維護使用者口令,系統管理員可以用這個命令系統管理使用者帳號。用法:
passwd [使用者名稱]
只有系統管理員才可以更改別人的密碼。普通使用者只能改自己的密碼。如:
[ekoala@ttqq ekoala]$ passwd
Changing password for ekoala
(current) UNIX password: 〔輸入當前密碼〕
New UNIX password: 〔新密碼〕
Retype new UNIX password: 〔確認新密碼〕
Password:all authentication tokens updated successfully 〔成功改變密碼〕

Useradd
添加一個新使用者或改變使用者現有資訊。

Userdel
刪除一個使用者和他所有的檔案。
硬碟管理和檔案壓縮的命令
df
報告硬碟的剩餘空間數。參數有:

參數
說明

-a
可選的檔案系統列表,他報告剩餘的硬碟的空間數,若此項為空白,則報告現在裝有的所有的檔案系統。

-I
列出節點使用資訊代替塊使用資訊。

-k
列印大小為1k為單位代替512k的塊。

-t fstype
限制只列出fstype類型的檔案系統列表。

-x fstype
限制只列出非fstype的檔案系統列表。

gzip
gzip是一個非常流行的壓縮公用程式,他通常和tar命令一起使用。文法:
gzip [參數] 檔案清單,參數有:
-a
ASCII文字模式:按照約定轉化檔案結尾標誌,這個選項只支援非UNIX作業系統,在msdos下,斷行符號和分行符號在壓縮的時候被轉換成分行符號,解壓的時候再轉換回來。

-c
輸出到標準輸出,保留原檔案不變,如果有幾個輸入檔案,則輸出保持一定的順序。

-d
解壓縮。

-f
強制壓縮。

-l
詳細顯示檔案的壓縮情況:
1, 壓縮檔的大小。
2, 未壓縮前的大小。
3, 壓縮比和被壓縮的檔案名稱。
4, 如果和-v參數一起使用,還顯示下列資訊:
a, 壓縮方法。
b, 未壓縮資料的32位CRC碼。
c, 檔案的更改時間。

-q
不顯示所有警告資訊。

-r
遞迴壓縮目錄結構。

tar
tar是一個很流行的檔案備份和壓縮公用程式,用於建立系統備份或建立單一檔案。Tar的文法很麻煩,現簡單介紹如下:
tar crtux[fmtVwF] 檔案清單。參數有:
參數
說明

參量
指定獲得檔案,可以是以下幾個參數。

C
建立一個新檔案或覆蓋一個已存在的檔案。

R
在檔案清單中命名。

A
添加檔案到備份包中。

T
列出壓縮檔的列表。

U
從壓縮檔裡面解壓縮檔案。

檔案清單
要處理的檔案清單,可以包括統配符。如果處理的是目錄,那麼則處理目錄及其下的所有檔案和檔案夾。

-b
指定分塊數量n,n×512k,n的預設值是20。

-m
告訴tar解壓縮時不需修改時間,修改時間就是解壓縮的時間。

-c 目錄名
更改目錄。

-k
保留已存在的檔案,不從壓縮檔中覆蓋。

-v
產生有卷標的壓縮檔。

-z
使用gzip解壓縮檔案。

比如解開一個名叫9s.tgz的壓縮檔:
tar zxvf 9s.tgz
又例如要把/home/bbs下的所有檔案打包成bbs.bak.tgz,可以這樣:
tar zvcf bbs.bak.tgz /home/bbs/*
網路相關命令
本節的內容很少,只是簡單的介紹一下對個人使用者有用的命令,雖然linux的最大特點在於他的網路功能,可是其中大部分的功能實在是太強大了,如果想仔細研究,請參考相關書籍。
login
login用於登入一個主機,也可以用來從一個使用者轉向另一個使用者,這一點有點象su命令,但他的用法比su要多一些。文法:
login [參數] [主機名稱] [使用者名稱],參數如下:
參數
說明

使用者名稱
如果沒有給出任何參數,則login需要一個使用者名稱。

-p
保留環境變數。

-f
忽略第二次登入證明。

-h
遠程登入其他主機。

ping
和dos下的一樣,用於檢查兩台連網的電腦之間的物理網路是否暢通,這個命令一般用於檢查網路是否存在故障。
Ping命令向網路主機中發送ICMP(Internet Control Messeges Protocol)包,並要求目標主機回應。參數有:
參數
說明

-c
收到主機回應即停止。

-f
洪水式發包,一旦收到主機回應就發包,或者每秒一百個包。注意,只有超級使用者才可以用這個命令,此命令會對網路產生不良影響。

-I
每發一個包等待一秒鐘。

-l
強制連續以最快的速度發包。這個命令也只能有超級使用者使用。

-s packetsize
自訂包的大小。

其他命令
time
確定程式執行的時間。文法:
time [command]
uname
報告系統名或其他各種資訊。文法:
uname [參數]

參數
說明

-s
報告系統名,這是個預設值。

-n
報告系統的節點名。

-r
報告系統的發行號。

-v
報告系統的版本號碼。

-m
報告系統的硬體名。

-a
報告所有資訊。

History
顯示使用者命令列的記錄。
Vi的使用
  要想配置系統,就要先學會文本編輯命令,因為主要的配置工作無非是對文字檔的編輯。在unix或linux裡最古老的同時也是最流行的文字編輯器就是vi了。所以要瞭解一些vi的用法還是有必要的,雖然對於新手可能是很難,但慢慢習慣以後,你就會發現vi其實是一個非常好用和功能強大的一個編輯器。
Vi簡介
  Vi是unix世界中的極為普遍的一個全螢幕的文字編輯器,幾乎可以說是任何一台unix機器都會提供這套軟體,linux當然也有。熟悉dos下的文字編輯器如edit後,會覺得vi並不好用,unix上的確也發展出許多新的、更強大的編輯器,但並不能保證每台機器上都有。所以,熟悉一下vi的操作還是有必要的。這可以讓你在不同的機器上得心應手。
Vi的基本觀念
  只要執行vi就可以進入vi的編輯環境了。在實際操作之前有個粗略的瞭解會比較好。Vi有兩種模式:輸入模式和命令模式。輸入模式用於輸入文字資料,而命令模式則是下達一些編排檔案、存檔以及離開vi的操作命令,當執行vi後,先進入命令模式,此時輸入的任何字元都被視為命令,在輸入模式裡要進入命令模式可以按"esc",如果不知道現在處於什麼模式,則多按幾次"esc"系統就會發出"嘟嘟"聲以示進入命令模式。
進入與離開
  要進入vi只要輸入vi<檔案名稱>,vi就可以幫你自動載入所要編輯的檔案或建立立一個檔案。進入vi後,螢幕左方會有一些波浪號,凡是列首有該符號就表示目前此列是空的。要離開vi可以在命令模式裡打入":q",而":wq"則是存檔後離開,打入":q!"則是強制離開。
Vi的輸入模式
  要如何輸入呢?有好幾種命令可以進入輸入模式(注意大小寫有分別):
新增,按a,從游標所在位置後面新增資料。按A,從游標所在列後面新增資料。
插入,按i,從游標所在位置前面開始插入資料。按I,從游標所在列的第一個非空白字前面開始插入資料。
開始,按o,從游標所在列下新增一列並進入輸入模式。按O,從游標所在列上方新增一列並進入輸入模式。
Vi的基本編輯命令:

命令
說明

x
刪除游標所在字元。

dd
刪除游標所在行。

r
修改游標所在的字元,r後接著要改成的字元。

R
進入取代狀態,新增文本會覆蓋原文本,直到按esc回到命令模式為止。

s
刪除游標所在的字元並進入輸入模式。

S
刪除游標所在的列的字元並進入輸入模式。

  好了,到這裡vi的簡單用法就介紹完了,相信這些對於簡單的配置系統應該夠用了。因為大部分時間相信我們是在xwindows下,誰也不會總也對著那個黑乎乎的螢幕:)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.