歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> Linux不完全手冊(二)

Linux不完全手冊(二)

日期:2017/3/6 14:30:16   编辑:關於Unix
Linux使用篇 安裝完linux,並配置好linux的啟動,那麼如果在安裝時你選的是啟動到圖形界面下的話,現在你就應該可以看到登陸的窗口了。輸入你的用戶名和密碼,(呵呵,安裝時設定的,別忘了!)就開始了你的linux之旅。 在linux下,你的確可以體驗到永不死機

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/clearcase/" target="_blank" >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
交換文件的千字節數。

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(Inte.net 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下,誰也不會總也對著那個黑乎乎的屏幕:)

Copyright © Linux教程網 All Rights Reserved