當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]Android系統(tǒng)超級終端網(wǎng)絡操作命令ifconfig1.作用ifconfig用于查看和更改網(wǎng)絡接口的地址和參數(shù),包括IP地址、網(wǎng)絡掩碼、廣播地址,使用權限是超級用戶。2.格式ifconfig -int

Android系統(tǒng)超級終端網(wǎng)絡操作命令

ifconfig

1.作用

ifconfig用于查看和更改網(wǎng)絡接口的地址和參數(shù),包括IP地址、網(wǎng)絡掩碼、廣播地址,使用權限是超級用戶。

2.格式

ifconfig -interface [opTIons] address

3.主要參數(shù)

-interface:指定的網(wǎng)絡接口名,如eth0和eth1。

up:激活指定的網(wǎng)絡接口卡。

down:關閉指定的網(wǎng)絡接口。

broadcast address:設置接口的廣播地址。

pointopoint:啟用點對點方式。

address:設置指定接口設備的IP地址。

netmask address:設置接口的子網(wǎng)掩碼。

4.應用說明

ifconfig是用來設置和配置網(wǎng)卡的命令行工具。為了手工配置網(wǎng)絡,這是一個必須掌握的命令。使用該命令的好處是無須重新啟動機器。要賦給eth0接口IP地址207.164.186.2,并且馬上激活它,使用下面命令:

#fconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127

該命令的作用是設置網(wǎng)卡eth0的IP地址、網(wǎng)絡掩碼和網(wǎng)絡的本地廣播地址。若運行不帶任何參數(shù)的ifconfig命令,這個命令將顯示機器所有激活接口的

信息。帶有“-a”參數(shù)的命令則顯示所有接口的信息,包括沒有激活的接口。注意,用ifconfig命令配置的網(wǎng)絡設備參數(shù),機器重新啟動以后將會丟失。

如果要暫停某個網(wǎng)絡接口的工作,可以使用down參數(shù):

#ifconfig eth0 down

ip

1. 作用

ip是iproute2軟件包里面的一個強大的網(wǎng)絡配置工具,它能夠替代一些傳統(tǒng)的網(wǎng)絡管理工具,例如ifconfig、route等,使用權限為超級用戶。幾乎所有的Linux發(fā)行版本都支持該命令。

2. 格式

ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]]

3. 主要參數(shù)

OPTIONS是修改ip行為或改變其輸出的選項。所有的選項都是以-字符開頭,分為長、短兩種形式。

OBJECT是要管理者獲取信息的對象。

-V,-Version 打印ip的版本并退出。

-s,-stats,-staTIstics 輸出更為詳盡的信息。如果這個選項出現(xiàn)兩次或多次,則輸出的信息將更為詳盡。

-f,-family 這個選項后面接協(xié)議種類,包括inet、inet6或link,強調使用的協(xié)議種類。如果沒有足夠的信息告訴ip使用的協(xié)議種類,ip就會使用默認值inet或any。link比較特殊,它表示不涉及任何網(wǎng)絡協(xié)議。

-4 是-family inet的簡寫。

-6 是-family inet6的簡寫。

-0 是-family link的簡寫。

-o,-oneline 對每行記錄都使用單行輸出,回行用字符代替。如果需要使用wc、grep等工具處理ip的輸出,則會用到這個選項。

-r,-resolve 查詢域名解析系統(tǒng),用獲得的主機名代替主機IP地址

COMMAND

設置針對指定對象執(zhí)行的操作,它和對象的類型有關。一般情況下,ip支持對象的增加(add)、刪除(delete)和展示(show或list)。有些對象不支持這些操作,或者有其它的一些命令。對于所有的對象,用戶可以使用help命令獲得幫助。這個命令會列出這個對象支持的命令和參數(shù)的語法。如果沒有指定對象的操作命令,ip會使用默認的命令。一般情況下,默認命令是list,如果對象不能列出,就會執(zhí)行help命令。

ARGUMENTS

是命令的一些參數(shù),它們倚賴于對象和命令。ip支持兩種類型的參數(shù):flag和parameter。flag由一個關鍵詞組成;parameter由一個關鍵詞加一個數(shù)值組成。為了方便,每個命令都有一個可以忽略的默認參數(shù)。例如,參數(shù)dev是ip link命令的默認參數(shù),因此ip link ls eth0等于ip link ls dev eth0。我們將在后面的詳細介紹每個命令的使用,命令的默認參數(shù)將使用default標出。

4. 應用實例

添加IP地址192.168.2.2/24到eth0網(wǎng)卡上:

#ip addr add 192.168.1.1/24 dev eth0

丟棄源地址屬于192.168.2.0/24網(wǎng)絡的所有數(shù)據(jù)報:

#ip rule add from 192.168.2.0/24 prio 32777 reject

ping

1. 作用

ping檢測主機網(wǎng)絡接口狀態(tài),使用權限是所有用戶。

2. 格式

ping [-dfnqrRv][-c][-i][-I][-l][-p][-s][-t] IP地址

3.主要參數(shù)

-d:使用Socket的SO_DEBUG功能。

-c:設置完成要求回應的次數(shù)。

-f:極限檢測。

-i:指定收發(fā)信息的間隔秒數(shù)。

-I:網(wǎng)絡界面使用指定的網(wǎng)絡界面送出數(shù)據(jù)包。

-l:前置載入,設置在送出要求信息之前,先行發(fā)出的數(shù)據(jù)包。

-n:只輸出數(shù)值。

-p:設置填滿數(shù)據(jù)包的范本樣式。

-q:不顯示指令執(zhí)行過程,開頭和結尾的相關信息除外。

-r:忽略普通的Routing Table,直接將數(shù)據(jù)包送到遠端主機上。

-R:記錄路由過程。

-s:設置數(shù)據(jù)包的大小。

-t:設置存活數(shù)值TTL的大小。

-v:詳細顯示指令的執(zhí)行過程。

ping命令是使用最多的網(wǎng)絡指令,通常我們使用它檢測網(wǎng)絡是否連通,它使用ICMP協(xié)議。但是有時會有這樣的情況,我們可以瀏覽器查看一個網(wǎng)頁,但是卻無法ping通,這是因為一些網(wǎng)站處于安全考慮安裝了防火墻。另外,也可以在自己計算機上試一試,通過下面的方法使系統(tǒng)對ping沒有反應:

# echo 1 》 /proc/sys/net/ipv4/icmp_echo_ignore_all

netstat

1. 作用

檢查整個Linux網(wǎng)絡狀態(tài)。

2. 格式

netstat [-acCeFghilMnNoprstuvVwx][-A][--ip]

3.主要參數(shù)

-a--all:顯示所有連線中的Socket。

-A:列出該網(wǎng)絡類型連線中的IP相關地址和網(wǎng)絡類型。

-c--continuous:持續(xù)列出網(wǎng)絡狀態(tài)。

-C--cache:顯示路由器配置的快取信息。

-e--extend:顯示網(wǎng)絡其它相關信息。

-F--fib:顯示FIB。

-g--groups:顯示多重廣播功能群組組員名單。

-h--help:在線幫助。

-i--interfaces:顯示網(wǎng)絡界面信息表單。

-l--listening:顯示監(jiān)控中的服務器的Socket。

-M--masquerade:顯示偽裝的網(wǎng)絡連線。

-n--numeric:直接使用IP地址,而不通過域名服務器。[!--empirenews.page--]

-N--netlink--symbolic:顯示網(wǎng)絡硬件外圍設備的符號連接名稱。

-o--timers:顯示計時器。

-p--programs:顯示正在使用Socket的程序識別碼和程序名稱。

-r--route:顯示Routing Table。

-s--statistice:顯示網(wǎng)絡工作信息統(tǒng)計表。

-t--tcp:顯示TCP傳輸協(xié)議的連線狀況。

-u--udp:顯示UDP傳輸協(xié)議的連線狀況。

-v--verbose:顯示指令執(zhí)行過程。

-V--version:顯示版本信息。

-w--raw:顯示RAW傳輸協(xié)議的連線狀況。

-x--unix:和指定“-A unix”參數(shù)相同。

--ip--inet:和指定“-A inet”參數(shù)相同。

4.應用實例

netstat主要用于Linux察看自身的網(wǎng)絡狀況,如開啟的端口、在為哪些用戶服務,以及服務的狀態(tài)等。此外,它還顯示系統(tǒng)路由表、網(wǎng)絡接口狀態(tài)等??梢哉f,它是一個綜合性的網(wǎng)絡狀態(tài)的察看工具。在默認情況下,netstat只顯示已建立連接的端口。如果要顯示處于監(jiān)聽狀態(tài)的所有端口,使用-a參數(shù)即可:

#netstat –a

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 *:32768 *:* LISTEN

tcp 0 0 *:32769 *:* LISTEN

tcp 0 0 *:nfs *:* LISTEN

tcp 0 0 *:32770 *:* LISTEN

tcp 0 0 *:868 *:* LISTEN

tcp 0 0 *:617 *:* LISTEN

tcp 0 0 *:mysql *:* LISTEN

tcp 0 0 *:netbios-ssn *:* LISTEN

tcp 0 0 *:sunrpc *:* LISTEN

tcp 0 0 *:10000 *:* LISTEN

tcp 0 0 *:http *:* LISTEN

。。。。。。

上面顯示出,這臺主機同時提供HTTP、FTP、NFS、MySQL等服務。

telnet

1. 作用

telnet表示開啟終端機階段作業(yè),并登入遠端主機。telnet是一個Linux命令,同時也是一個協(xié)議(遠程登陸協(xié)議)。

2. 格式

telnet [-8acdEfFKLrx][-b][-e][-k][-l][-n][-S][-X][主機名稱IP地址]

3.主要參數(shù)

-8:允許使用8位字符資料,包括輸入與輸出。

-a:嘗試自動登入遠端系統(tǒng)。

-b:使用別名指定遠端主機名稱。

-c:不讀取用戶專屬目錄里的.telnetrc文件。

-d:啟動排錯模式。

-e:設置脫離字符。

-E:濾除脫離字符。

-f:此參數(shù)的效果和指定“-F”參數(shù)相同。

-F:使用Kerberos V5認證時,加上此參數(shù)可把本地主機的認證數(shù)據(jù)上傳到遠端主機。

-k:使用Kerberos認證時,加上此參數(shù)讓遠端主機采用指定的領域名,而非該主機的域名。

-K:不自動登入遠端主機。

-l:指定要登入遠端主機的用戶名稱。

-L:允許輸出8位字符資料。

-n:指定文件記錄相關信息。

-r:使用類似rlogin指令的用戶界面。

-S:服務類型,設置telnet連線所需的IP TOS信息。

-x:假設主機有支持數(shù)據(jù)加密的功能,就使用它。

-X:關閉指定的認證形態(tài)。

4.應用說明

用戶使用telnet命令可以進行遠程登錄,并在遠程計算機之間進行通信。用戶通過網(wǎng)絡在遠程計算機上登錄,就像登錄到本地機上執(zhí)行命令一樣。為了通過telnet登錄到遠程計算機上,必須知道遠程機上的合法用戶名和口令。雖然有些系統(tǒng)確實為遠程用戶提供登錄功能,但出于對安全的考慮,要限制來賓的操作權限,因此,這種情況下能使用的功能是很少的。

telnet只為普通終端提供終端仿真,而不支持X-Window等圖形環(huán)境。當允許遠程用戶登錄時,系統(tǒng)通常把這些用戶放在一個受限制的Shell中,以防系統(tǒng)被懷有惡意的或不小心的用戶破壞。用戶還可以使用telnet從遠程站點登錄到自己的計算機上,檢查電子郵件、編輯文件和運行程序,就像在本地登錄一樣。

route

1. 作用

route表示手工產生、修改和查看路由表。

2. 格式

#route [-add][-net|-host] targetaddress [-netmask Nm][dev]If]

#route [-delete][-net|-host] targetaddress [gw Gw] [-netmask Nm] [dev]If]

3.主要參數(shù)

-add:增加路由。

-delete:刪除路由。

-net:路由到達的是一個網(wǎng)絡,而不是一臺主機。

-host:路由到達的是一臺主機。

-netmask Nm:指定路由的子網(wǎng)掩碼。

gw:指定路由的網(wǎng)關。

[dev]If:強迫路由鏈指定接口。

4. 應用實例

route命令是用來查看和設置Linux系統(tǒng)的路由信息,以實現(xiàn)與其它網(wǎng)絡的通信。要實現(xiàn)兩個不同的子網(wǎng)之間的通信,需要一臺連接兩個網(wǎng)絡的路由器,或者同時位于兩個網(wǎng)絡的網(wǎng)關來實現(xiàn)。

在Linux系統(tǒng)中,設置路由通常是為了解決以下問題:該Linux系統(tǒng)在一個局域網(wǎng)中,局域網(wǎng)中有一個網(wǎng)關,能夠讓機器訪問Internet,那么就需要將這臺機器的IP地址設置為Linux機器的默認路由。使用下面命令可以增加一個默認路由:

route add 0.0.0.0 192.168.1.1

 

所有命令都是運用超級終端下的BUSYBOX工具集。以下簡述

busybox

BusyBox 是標準 Linux 工具的一個單個可執(zhí)行實現(xiàn)。BusyBox 包含了一些簡單的工具,例如 cat 和 echo,還包含了一些更大、更復雜的工具,例如 grep、find、mount 以及 telnet。有些人將 BusyBox 稱為 Linux 工具里的瑞士軍刀。簡單的說BusyBox就好像是個大工具箱,它集成壓縮了 Linux 的許多工具和命令。

1、 BusyBox 的誕生

BusyBox 最初是由 Bruce Perens 在 1996 年為 Debian GNU/Linux 安裝盤編寫的。其目標是在一張軟盤上創(chuàng)建一個可引導的 GNU/Linux 系統(tǒng),這可以用作安裝盤和急救盤。

2、busybox的用法

可以這樣用busybox

#busybox ls

他的功能就相當運行l(wèi)s命令最常用的用法是建立指向busybox的鏈接,不同的鏈接名完成不同的功能。

#ln -s busybox ls

#ln -s busybox rm

#ln -s busybox mkdir

然后分別運行這三個鏈接:[!--empirenews.page--]

#./ls

#./rm

#./mkdir

就可以分別完成了ls rm 和mkdir命令的功能。雖然他們都指向同一個可執(zhí)行程序busybox,但是只要鏈接名不同,完成的功能就不同,很多l(xiāng)inux網(wǎng)站都提供busybox的源代碼下載。

3、配置busybox

busybox的配置程序和linux內核菜單配置方式簡直一模一樣。熟悉用make menuconfig方式配置linux內核的朋友很容易上手。

#cp busybox-1.00.tar.gz /babylinux

#cd /babylinux

#tar xvfz busybox-1.00.tar.gz

#cd busybox-1.00

#make menuconfig

下面是需要編譯進busybox的功能選項。

General Configuration應該選的選項

Show verbose applet usage messages

Runtime SUID/SGID configuration via /etc/busybox.conf

Build Options

Build BusyBox as a static binary (no shared libs)

這個選項是一定要選擇的,這樣才能把busybox編譯成靜態(tài)鏈接的可執(zhí)行文件,運行時才獨立于其他函數(shù)庫。否則必需要其他庫文件才能運行,在單一個linux內核不能使它正常工作。

Installation Options

Don‘t use /usr

這個選項也一定要選,否則make install 后busybox將安裝在原系統(tǒng)的/usr下,這將覆蓋掉系統(tǒng)原有的命令。選擇這個選項后,make install后會在busybox目錄下生成一個叫_install的目錄,里面有busybox和指向它的鏈接。其它選項都是一些linux基本命令選項,自己需要哪些命令就編譯進去,一般用默認的就可以了,配置好后退出并保存。

4、編譯并安裝busybox

#make

#make install

編譯好后在busybox目錄下生成子目錄_install,里面的內容:

drwxr-xr-x 2 root root 4096 11月 24 15:28 bin

rwxrwxrwx 1 root root 11 11月 24 15:28 linuxrc -》 bin/busybox

drwxr-xr-x 2 root root 4096 11月 24 15:28 sbin

其中可執(zhí)行文件busybox在bin目錄下,其他的都是指向他的符號鏈接。

一、安裝和登錄命令

reboot

1.作用

reboot命令的作用是重新啟動計算機,它的使用權限是系統(tǒng)管理者。

2.格式

reboot [-n] [-w] [-d] [-f] [-i]

3.主要參數(shù)

-n: 在重開機前不做將記憶體資料寫回硬盤的動作。

-w: 并不會真的重開機,只是把記錄寫到/var/log/wtmp文件里。

-d: 不把記錄寫到/var/log/wtmp文件里(-n這個參數(shù)包含了-d)。

-i: 在重開機之前先把所有與網(wǎng)絡相關的裝置停止。

mount

1.作用

mount命令的作用是加載文件系統(tǒng),它的用權限是超級用戶或/etc/fstab中允許的使用者。

2.格式

mount -a [-fv] [-t vfstype] [-n] [-rw] [-F] device dir

3.主要參數(shù)

-h:顯示輔助信息。

-v:顯示信息,通常和-f用來除錯。

-a:將/etc/fstab中定義的所有文件系統(tǒng)掛上。

-F:這個命令通常和-a一起使用,它會為每一個mount的動作產生一個行程負責執(zhí)行。在系統(tǒng)需要掛上大量NFS文件系統(tǒng)時可以加快加載的速度。

-f:通常用于除錯。它會使mount不執(zhí)行實際掛上的動作,而是模擬整個掛上的過程,通常會和-v一起使用。

-t vfstype:顯示被加載文件系統(tǒng)的類型。

-n:一般而言,mount掛上后會在/etc/mtab中寫入一筆資料,在系統(tǒng)中沒有可寫入文件系統(tǒng)的情況下,可以用這個選項取消這個動作。

4.應用技巧

在Linux和Unix系統(tǒng)上,所有文件都是作為一個大型樹(以/為根)的一部分訪問的。要訪問CD-ROM上的文件,需要將CD-ROM設備掛裝在文件樹中的某個掛裝點。如果發(fā)行版安裝了自動掛裝包,那么這個步驟可自動進行。在Linux中,如果要使用硬盤、光驅等儲存設備,就得先將它加載,當儲存設備掛上了之后,就可以把它當成一個目錄來訪問。掛上一個設備使用mount命令。在使用mount這個指令時,至少要先知道下列三種信息:要加載對象的文件系統(tǒng)類型、要加載對象的設備名稱及要將設備加載到哪個目錄下。

(1)Linux可以識別的文件系統(tǒng)

◆ Windows 95/98常用的FAT 32文件系統(tǒng):vfat ;

◆ Win NT/2000 的文件系統(tǒng):ntfs ;

◆ OS/2用的文件系統(tǒng):hpfs;

◆ Linux用的文件系統(tǒng):ext2、ext3;

◆ CD-ROM光盤用的文件系統(tǒng):iso9660。

雖然vfat是指FAT 32系統(tǒng),但事實上它也兼容FAT 16的文件系統(tǒng)類型。

(2)確定設備的名稱

在Linux中,設備名稱通常都存在/dev里。這些設備名稱的命名都是有規(guī)則的,可以用“推理”的方式把設備名稱找出來。例如,/dev/hda1這個

IDE設備,hd是Hard Disk(硬盤)的,sd是SCSI Device,fd是Floppy Device(或是Floppy

Disk?)。a代表第一個設備,通常IDE接口可以接上4個IDE設備(比如4塊硬盤)。所以要識別IDE硬盤的方法分別就是hda、hdb、hdc、hdd。hda1中的“1”代表hda的第一個硬盤分區(qū)

(partition),hda2代表hda的第二主分區(qū),第一個邏輯分區(qū)從hda5開始,依此類推。此外,可以直接檢查/var/log/messages文件,在該文件中可以找到計算機開機后系統(tǒng)已辨認出來的設備代號。

(3)查找掛接點

在決定將設備掛接之前,先要查看一下計算機是不是有個/mnt的空目錄,該目錄就是專門用來當作掛載點(MountPoint)的目錄。建議在/mnt里建幾個/mnt/cdrom、/mnt/floppy、/mnt/mo等目錄,當作目錄的專用掛載點。舉例而言,如要掛載下列5個設備,其執(zhí)行指令可能如下 (假設都是Linux的ext2系統(tǒng),如果是Windows XX請將ext2改成vfat):

軟盤 ===》mount -t ext2 /dev/fd0 /mnt/floppy

cdrom ===》mount -t iso9660 /dev/hdc /mnt/cdrom

SCSI cdrom ===》mount -t iso9660 /dev/sdb /mnt/scdrom

SCSI cdr ===》mount -t iso9660 /dev/sdc /mnt/scdr

不過目前大多數(shù)較新的Linux發(fā)行版本(包括紅旗 Linux、中軟Linux、Mandrake Linux等)都可以自動掛裝文件系統(tǒng),但Red Hat Linux除外。[!--empirenews.page--]

umount

1.作用

umount命令的作用是卸載一個文件系統(tǒng),它的使用權限是超級用戶或/etc/fstab中允許的使用者。

2.格式

unmount -a [-fFnrsvw] [-t vfstype] [-n] [-rw] [-F] device dir

3.使用說明

umount

命令是mount命令的逆操作,它的參數(shù)和使用方法和mount命令是一樣的。Linux掛裝CD-ROM后,會鎖定CD—ROM,這樣就不能用CD-ROM面板上的Eject按鈕彈出它。但是,當不再需要光盤時,如果已將/cdrom作為符號鏈接,請使用umount/cdrom來卸裝它。僅當無用戶正在使用光盤時,該命令才會成功。該命令包括了將帶有當前工作目錄當作該光盤中的目錄的終端窗口。

exit

1.作用

exit命令的作用是退出系統(tǒng),它的使用權限是所有用戶。

2.格式

exit

3.參數(shù)

exit命令沒有參數(shù),運行后退出系統(tǒng)進入登錄界面。

二、文件處理命令

mkdir

1.作用

mkdir命令的作用是建立名稱為dirname的子目錄,與MS DOS下的md命令類似,它的使用權限是所有用戶。

2.格式

mkdir [options] 目錄名

3.[options]主要參數(shù)

-m, --mode=模式:設定權限,與chmod類似。

-p, --parents:需要時創(chuàng)建上層目錄;如果目錄早已存在,則不當作錯誤。

-v, --verbose:每次創(chuàng)建新目錄都顯示信息。

--version:顯示版本信息后離開。

4.應用實例

在進行目錄創(chuàng)建時可以設置目錄的權限,此時使用的參數(shù)是“-m”。假設要創(chuàng)建的目錄名是“tsk”,讓所有用戶都有rwx(即讀、寫、執(zhí)行的權限),那么可以使用以下命令:

$ mkdir -m 777 tsk

grep

1.作用

grep命令可以指定文件中搜索特定的內容,并將含有這些內容的行標準輸出。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用權限是所有用戶。

2.格式

grep [options]

3.主要參數(shù)

[options]主要參數(shù):

-c:只輸出匹配行的計數(shù)。

-I:不區(qū)分大小寫(只適用于單字符)。

-h:查詢多文件時不顯示文件名。

-l:查詢多文件時只輸出包含匹配字符的文件名。

-n:顯示匹配行及行號。

-s:不顯示不存在或無匹配文本的錯誤信息。

-v:顯示不包含匹配文本的所有行。

pattern正則表達式主要參數(shù):

\:忽略正則表達式中特殊字符的原有含義。

^:匹配正則表達式的開始行。

$: 匹配正則表達式的結束行。

\:到匹配正則表達式的行結束。

[ ]:單個字符,如[A]即A符合要求 。

[ - ]:范圍,如[A-Z],即A、B、C一直到Z都符合要求 。

。:所有的單個字符。

* :有字符,長度可以為0。

正則表達式是Linux/Unix系統(tǒng)中非常重要的概念。正則表達式(也稱為“regex”或“regexp”)是一個可以描述一類字符串的模式(Pattern)。如果一個字符串可以用某個正則表達式來描述,我們就說這個字符和該正則表達式匹配(Match)。這和DOS中用戶可以使用通配符“*”代表任意字符類似。在Linux系統(tǒng)上,正則表達式通常被用來查找文本的模式,以及對文本執(zhí)行“搜索-替換”操作和其它功能。

4.應用實例

查詢DNS服務是日常工作之一,這意味著要維護覆蓋不同網(wǎng)絡的大量IP地址。有時IP地址會超過2000個。如果要查看nnn.nnn網(wǎng)絡地址,但是卻忘了第二部分中的其余部分,只知到有兩個句點,例如nnn nn.。。要抽取其中所有nnn.nnn IP地址,使用[0-9 ]\{3\}\。[0-0\{3\}\。含義是任意數(shù)字出現(xiàn)3次,后跟句點,接著是任意數(shù)字出現(xiàn)3次,后跟句點。

$grep ’[0-9 ]\{3 \}\。[0-0\{3\}\’ ipfile

補充說明,grep家族還包括fgrep和egrep。fgrep是fix grep,允許查找字符串而不是一個模式;egrep是擴展grep,支持基本及擴展的正則表達式,但不支持\q模式范圍的應用及與之相對應的一些更加規(guī)范的模式。

dd

1.作用

dd命令用來復制文件,并根據(jù)參數(shù)將數(shù)據(jù)轉換和格式化。

2.格式

dd [options]

3.[opitions]主要參數(shù)

bs=字節(jié):強迫 ibs=及obs=。

cbs=字節(jié):每次轉換指定的。

conv=關鍵字:根據(jù)以逗號分隔的關鍵字表示的方式來轉換文件。

count=塊數(shù)目:只復制指定的輸入數(shù)據(jù)。

ibs=字節(jié):每次讀取指定的。

if=文件:讀取內容,而非標準輸入的數(shù)據(jù)。

obs=字節(jié):每次寫入指定的。

of=文件:將數(shù)據(jù)寫入,而不在標準輸出顯示。

seek=塊數(shù)目:先略過以obs為單位的指定的輸出數(shù)據(jù)。

skip=塊數(shù)目:先略過以ibs為單位的指定的輸入數(shù)據(jù)。

4.應用實例

dd命令常常用來制作Linux啟動盤。先找一個可引導內核,令它的根設備指向正確的根分區(qū),然后使用dd命令將其寫入軟盤:

$ rdev vmlinuz /dev/hda

$dd if=vmlinuz of=/dev/fd0

上面代碼說明,使用rdev命令將可引導內核vmlinuz中的根設備指向/dev/hda,請把“hda”換成自己的根分區(qū),接下來用dd命令將該內核寫入軟盤。

find

1.作用

find命令的作用是在目錄中搜索文件,它的使用權限是所有用戶。

2.格式

find [path][options][expression]

path指定目錄路徑,系統(tǒng)從這里開始沿著目錄樹向下查找文件。它是一個路徑列表,相互用空格分離,如果不寫path,那么默認為當前目錄。

3.主要參數(shù)

[options]參數(shù):

-depth:使用深度級別的查找過程方式,在某層指定目錄中優(yōu)先查找文件內容。

-maxdepth levels:表示至多查找到開始目錄的第level層子目錄。level是一個非負數(shù),如果level是0的話表示僅在當前目錄中查找。

-mindepth levels:表示至少查找到開始目錄的第level層子目錄。

-mount:不在其它文件系統(tǒng)(如Msdos、Vfat等)的目錄和文件中查找。[!--empirenews.page--]

-version:打印版本。

[expression]是匹配表達式,是find命令接受的表達式,find命令的所有操作都是針對表達式的。它的參數(shù)非常多,這里只介紹一些常用的參數(shù)。

—name:支持統(tǒng)配符*和?。

-atime n:搜索在過去n天讀取過的文件。

-ctime n:搜索在過去n天修改過的文件。

-group grpoupname:搜索所有組為grpoupname的文件。

-user 用戶名:搜索所有文件屬主為用戶名(ID或名稱)的文件。

-size n:搜索文件大小是n個block的文件。

-print:輸出搜索結果,并且打印。

4.應用技巧

find命令查找文件的幾種方法:

(1)根據(jù)文件名查找

例如,我們想要查找一個文件名是lilo.conf的文件,可以使用如下命令:

find / -name lilo.conf

find命令后的“/”表示搜索整個硬盤。

(2)快速查找文件

根據(jù)文件名查找文件會遇到一個實際問題,就是要花費相當長的一段時間,特別是大型Linux文件系統(tǒng)和大容量硬盤文件放在很深的子目錄中時。如果我們知道了這個文件存放在某個目錄中,那么只要在這個目錄中往下尋找就能節(jié)省很多時間。比如smb.conf文件,從它的文件后綴“.conf”可以判斷這是一個配置文件,那么它應該在/etc目錄內,此時可以使用下面命令:

find /etc -name smb.conf

這樣,使用“快速查找文件”方式可以縮短時間。

(3)根據(jù)部分文件名查找方法

有時我們知道只某個文件包含有abvd這4個字,那么要查找系統(tǒng)中所有包含有這4個字符的文件可以輸入下面命令:

find / -name ’*abvd*’

輸入這個命令以后,Linux系統(tǒng)會將在/目錄中查找所有的包含有abvd這4個字符的文件(其中*是通配符),比如abvdrmyz等符合條件的文件都能顯示出來。

(4) 使用混合

查找方式查找文件

find命令可以使用混合查找的方法,例如,我們想在/etc目錄中查找大于500000字節(jié),并且在24小時內修改的某個文件,則可以使用-and (與)把兩個查找參數(shù)鏈接起來組合成一個混合的查找方式。

find /etc -size +500000c -and -mtime +1

mv

1.作用

mv命令用來為文件或目錄改名,或者將文件由一個目錄移入另一個目錄中,它的使用權限是所有用戶。該命令如同DOS命令中的ren和move的組合。

2.格式

mv[options] 源文件或目錄 目標文件或目錄

3.[options]主要參數(shù)

-i:交互方式操作。如果mv操作將導致對已存在的目標文件的覆蓋,此時系統(tǒng)詢問是否重寫,要求用戶回答“y”或“n”,這樣可以避免誤覆蓋文件。

-f:禁止交互操作。mv操作要覆蓋某個已有的目標文件時不給任何指示,指定此參數(shù)后i參數(shù)將不再起作用。

4.應用實例

(1)將/usr/cbu中的所有文件移到當前目錄(用“。”表示)中:

$ mv /usr/cbu/ * 。

(2)將文件cjh.txt重命名為wjz.txt:

$ mv cjh.txt wjz.txt

ls

1.作用

ls命令用于顯示目錄內容,類似DOS下的dir命令,它的使用權限是所有用戶。

2.格式

ls [options][filename]

3.options主要參數(shù)

-a, --all:不隱藏任何以“。” 字符開始的項目。

-A, --almost-all:列出除了“ 。 ”及 “。。 ”以外的任何項目。

--author:印出每個文件著作者。

-b, --escape:以八進制溢出序列表示不可打印的字符。

--block-size=大小:塊以指定的字節(jié)為單位。

-B, --ignore-backups:不列出任何以 ~ 字符結束的項目。

-f:不進行排序,-aU參數(shù)生效,-lst參數(shù)失效。

-F, --classify:加上文件類型的指示符號 (*/=@| 其中一個)。

-g:like -l, but do not list owner。

-G, --no-group:inhibit display of group information。

-i, --inode:列出每個文件的inode號。

-I, --ignore=樣式:不印出任何符合Shell萬用字符的項目。

-k:即--block-size=1K。

-l:使用較長格式列出信息。

-L, --dereference:當顯示符號鏈接的文件信息時,顯示符號鏈接所指示的對象,而并非符號鏈接本身的信息。

-m:所有項目以逗號分隔,并填滿整行行寬。

-n, --numeric-uid-gid:類似-l,但列出UID及GID號。

-N, --literal:列出未經處理的項目名稱,例如不特別處理控制字符。

-p, --file-type:加上文件類型的指示符號 (/=@| 其中一個)。

-Q, --quote-name:將項目名稱括上雙引號。

-r, --reverse:依相反次序排列。

-R, --recursive:同時列出所有子目錄層。

-s, --size:以塊大小為序。

4.應用舉例

ls

命令是Linux系統(tǒng)使用頻率最多的命令,它的參數(shù)也是Linux命令中最多的。使

用ls命令時會有幾種不同的顏色,其中藍色表示是目錄,綠色表示是可執(zhí)

行文件,紅色表示是壓縮文件,淺藍色表示是鏈接文件,加粗的黑色表示符號鏈接,灰色表示是其它格式文件。ls最常使用的是ls- l。

文件類型開頭是由10個字符構成的字符串。其中第一個字符表示文件類型,它可以是下述類型之一:-(普通文件)、d(目錄)、l(符號鏈接)、b(塊設備文件)、c(字符設備文件)。后面的9個字符表示文件的訪問權限,分為3組,每組3位。第一組表示文件屬主的權限,第二組表示同組用戶的權限,第三組表示其他用戶的權限。每一組的三個字符分別表示對文件的讀(r)、寫(w)和執(zhí)行權限(x)。對于目錄,表示進入權限。s表示當文件被執(zhí)行時,把該文件的UID或GID賦予執(zhí)行進程的UID(用戶ID)或GID(組ID)。t表示設置標志位(留在內存,不被換出)。如果該文件是目錄,那么在該目錄中的文件只能被超級用戶、目錄擁有者或文件屬主刪除。如果它是可執(zhí)行文件,那么在該文件執(zhí)行后,指向其正文段的指針仍留在內存。這樣再次執(zhí)行它時,系統(tǒng)就能更快地裝入該文件。接著顯示的是文件大小、生成時間、文件或命令名稱。[!--empirenews.page--]

diff

1.作用

diff命令用于兩個文件之間的比較,并指出兩者的不同,它的使用權限是所有用戶。

2.格式

diff [options] 源文件 目標文件

3.[options]主要參數(shù)

-a:將所有文件當作文本文件來處理。

-b:忽略空格造成的不同。

-B:忽略空行造成的不同。

-c:使用綱要輸出格式。

-H:利用試探法加速對大文件的搜索。

-I:忽略大小寫的變化。

-n --rcs:輸出RCS格式。

cmp

1.作用

cmp(“compare”的縮寫)命令用來簡要指出兩個文件是否存在差異,它的使用權限是所有用戶。

2.格式

cmp[options] 文件名

3.[options]主要參數(shù)

-l: 將字節(jié)以十進制的方式輸出,并方便將兩個文件中不同的以八進制的方式輸出。

cat

1.作用

cat(“concatenate”的縮寫)命令用于連接并顯示指定的一個和多個文件的有關信息,它的使用權限是所有用戶。

2.格式

cat [options] 文件1 文件2……

3.[options]主要參數(shù)

-n:由第一行開始對所有輸出的行數(shù)編號。

-b:和-n相似,只不過對于空白行不編號。

-s:當遇到有連續(xù)兩行以上的空白行時,就代換為一行的空白行。

4.應用舉例

(1)cat命令一個最簡單的用處是顯示文本文件的內容。例如,我們想在命令行看一下README文件的內容,可以使用命令:

$ cat README

(2)有時需要將幾個文件處理成一個文件,并將這種處理的結果保存到一個單獨的輸出文件。cat命令在其輸入上接受一個或多個文件,并將它

們作為一個單獨的文件打印到它的輸出。例如,把README和INSTALL的文件內容加上行號(空白行不加)之后,將內容附加到一個新文本文件File1 中:

$ cat README INSTALL File1

(3)cat還有一個重要的功能就是可以對行進行編號。這種功能對于程序文檔的編制,以及法律和科學文檔的編制很方便,打印在左邊的行號使得參考文檔的某一部分變得容易,這些在編程、科學研究、業(yè)務報告甚至是立法工作中都是非常重要的。對行進行編號功能有-b(只能對非空白行進行編號)和-n(可以對所有行進行編號)兩個參數(shù):

$ cat -b /etc/named.conf

ln

1.作用

ln命令用來在文件之間創(chuàng)建鏈接,它的使用權限是所有用戶。

2.格式

ln [options] 源文件 [鏈接名]

3.參數(shù)

-f:鏈結時先將源文件刪除。

-d:允許系統(tǒng)管理者硬鏈結自己的目錄。

-s:進行軟鏈結(Symbolic Link)。

-b:將在鏈結時會被覆蓋或刪除的文件進行備份。

鏈接有兩種,一種被稱為硬鏈接(Hard Link),另一種被稱為符號鏈接(Symbolic Link)。默認情況下,ln命令產生硬鏈接。硬連接指通過索引節(jié)點來進行的連接。在Linux的文件系統(tǒng)中,保存在磁盤分區(qū)中的文件不管是什么類型都給它分配一個編號,稱為索引節(jié)點號(InodeIndex)。在Linux中,多個文件名指向同一索引節(jié)點是存在的。一般這種連接就是硬連接。硬連接的作用是允許一個文件擁有多個有效路徑名,這樣用戶就可以建立硬連接到重要文件,以防止“誤刪”的功能。其原因如上所述,因為對應該目錄的索引節(jié)點有一個以上的連接。只刪除一個連接并不影響索引節(jié)點本身和其它的連接,只有當最后一個連接被刪除后,文件的數(shù)據(jù)塊及目錄的連接才會被釋放。也就是說,文件才會被真正刪除。與硬連接相對應,Lnux系統(tǒng)中還存在另一種連接,稱為符號連接(Symbilc Link),也叫軟連接。軟鏈接文件有點類似于Windows的快捷方式。它實際上是特殊文件的一種。在符號連接中,文件實際上是一個文本文件,其中包含的有另一文件的位置信息+

三、系統(tǒng)管理命令

df

1.作用

df命令用來檢查文件系統(tǒng)的磁盤空間占用情況,使用權限是所有用戶。

2.格式

df [options]

3.主要參數(shù)

-s:對每個Names參數(shù)只給出占用的數(shù)據(jù)塊總數(shù)。

-a:遞歸地顯示指定目錄中各文件及子目錄中各文件占用的數(shù)據(jù)塊數(shù)。若既不指定-s,也不指定-a,則只顯示Names中的每一個目錄及其中的各子目錄所占的磁盤塊數(shù)。

-k:以1024字節(jié)為單位列出磁盤空間使用情況。

-x:跳過在不同文件系統(tǒng)上的目錄不予統(tǒng)計。

-l:計算所有的文件大小,對硬鏈接文件則計算多次。

-i:顯示inode信息而非塊使用量。

-h:以容易理解的格式印出文件系統(tǒng)大小,例如136KB、254MB、21GB。

-P:使用POSIX輸出格式。

-T:顯示文件系統(tǒng)類型。

4.說明

df命令被廣泛地用來生成文件系統(tǒng)的使用統(tǒng)計數(shù)據(jù),它能顯示系統(tǒng)中所有的文件系統(tǒng)的信息,包括總容量、可用的空閑空間、目前的安裝點等。超級權限用戶使用df命令時會發(fā)現(xiàn)這樣的情況:某個分區(qū)的容量超過了100%。這是因為Linux系統(tǒng)為超級用戶保留了10%的空間,由其單獨支配。也就是說,對于超級用戶而言,他所見到的硬盤容量將是110%。這樣的安排對于系統(tǒng)管理而言是有好處的,當硬盤被使用的容量接近100%時系統(tǒng)管理員還可以正常工作。

5.應用實例

Linux支持的文件系統(tǒng)非常多,包括JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、vfat、MSDOS等。使用df -T命令查看磁盤空間時還可以得到文件系統(tǒng)的信息:

#df -T

文件系統(tǒng) 類型 容量 已用 可用 已用% 掛載點

/dev/hda7 reiserfs 5.2G 1.6G 3.7G 30% /

/dev/hda1 vfat 2.4G 1.6G 827M 66% /windows/C

/dev/hda5 vfat 3.0G 1.7G 1.3G 57% /windows/D

/dev/hda9 vfat 3.0G 2.4G 566M 82% /windows/E

/dev/hda10 NTFS 3.2G 573M 2.6G 18% /windows/F

/dev/hda11 vfat 1.6G 1.5G 23M 99% /windows/G

從上面除了可以看到磁盤空間的容量、使用情況外,分區(qū)的文件系統(tǒng)類型、掛載點等信息也一覽無遺。

top

1.作用

top命令用來顯示執(zhí)行中的程序進程,使用權限是所有用戶。[!--empirenews.page--]

2.格式

top [-] [d delay] [q] [c] [S] [s] [n]

3.主要參數(shù)

d:指定更新的間隔,以秒計算。

q:沒有任何延遲的更新。如果使用者有超級用戶,則top命令將會以最高的優(yōu)先序執(zhí)行。

c:顯示進程完整的路徑與名稱。

S:累積模式,會將己完成或消失的子行程的CPU時間累積起來。

s:安全模式。

i:不顯示任何閑置(Idle)或無用(Zombie)的行程。

n:顯示更新的次數(shù),完成后將會退出top。

4.說明

top命令是Linux系統(tǒng)管理的一個主要命令,通過它可以獲得許多信息。

下面列出了詳細解釋。

PID(Process ID):進程標示號。

USER:進程所有者的用戶名。

PR:進程的優(yōu)先級別。

NI:進程的優(yōu)先級別數(shù)值。

VIRT:進程占用的虛擬內存值。

RES:進程占用的物理內存值。

SHR:進程使用的共享內存值。

S:進程的狀態(tài),其中S表示休眠,R表示正在運行,Z表示僵死狀態(tài),N表示該進程優(yōu)先值是負數(shù)。

%CPU:該進程占用的CPU使用率。

%MEM:該進程占用的物理內存和總內存的百分比。

TIME+:該進程啟動后占用的總的CPU時間。

Command:進程啟動的啟動命令名稱,如果這一行顯示不下,進程會有一個完整的命令行。

top命令使用過程中,還可以使用一些交互的命令來完成其它參數(shù)的功能。這些命令是通過快捷鍵啟動的。

:立刻刷新。

P:根據(jù)CPU使用大小進行排序。

T:根據(jù)時間、累計時間排序。

q:退出top命令。

m:切換顯示內存信息。

t:切換顯示進程和CPU狀態(tài)信息。

c:切換顯示命令名稱和完整命令行。

M:根據(jù)使用內存大小進行排序。

W:將當前設置寫入~/.toprc文件中。這是寫top配置文件的推薦方法。

可以看到,top命令是一個功能十分強大的監(jiān)控系統(tǒng)的工具,對于系統(tǒng)管理員而言尤其重要。但是,它的缺點是會消耗很多系統(tǒng)資源。

free

1.作用

free命令用來顯示內存的使用情況,使用權限是所有用戶。

2.格式

free [-b|-k|-m] [-o] [-s delay] [-t] [-V]

3.主要參數(shù)

-b -k -m:分別以字節(jié)(KB、MB)為單位顯示內存使用情況。

-s delay:顯示每隔多少秒數(shù)來顯示一次內存使用情況。

-t:顯示內存總和列。

-o:不顯示緩沖區(qū)調節(jié)列。

4.應用實例

free命令是用來查看內存使用情況的主要命令。和top命令相比,它的優(yōu)點是使用簡單,并且只占用很少的系統(tǒng)資源。通過-S參數(shù)可以使用free命令不間斷地監(jiān)視有多少內存在使用,這樣可以把它當作一個方便實時監(jiān)控器。

#free -b -s5

使用這個命令后終端會連續(xù)不斷地報告內存使用情況(以字節(jié)為單位),每5秒更新一次。

kill

1.作用

kill命令用來中止一個進程。

2.格式

kill [ -s signal | -p ] [ -a ] pid 。。。

kill -l [ signal ]

3.參數(shù)

-s:指定發(fā)送的信號。

-p:模擬發(fā)送信號。

-l:指定信號的名稱列表。

pid:要中止進程的ID號。

Signal:表示信號。

4.說明

進程是Linux系統(tǒng)中一個非常重要的概念。Linux是一個多任務的操作系統(tǒng),系統(tǒng)上經常同時運行著多個進程。我們不關心這些進程究竟是如何分配的,或者是內核如何管理分配時間片的,所關心的是如何去控制這些進程,讓它們能夠很好地為用戶服務。

Linux操作系統(tǒng)包括三種不同類型的進程,每種進程都有自己的特點和屬性。交互進程是由一個Shell啟動的進程。交互進程既可以在前臺運行,也可以在后臺運行。批處理進程和終端沒有聯(lián)系,是一個進程序列。監(jiān)控進程(也稱系統(tǒng)守護進程)時Linux系統(tǒng)啟動時啟動的進程,并在后臺運行。例如,httpd是著名的Apache服務器的監(jiān)控進程。

kill命令的工作原理是,向Linux系統(tǒng)的內核發(fā)送一個系統(tǒng)操作信號和某個程序的進程標識號,然后系統(tǒng)內核就可以對進程標識號指定的進程進行操作。比如在top命令中,我們看到系統(tǒng)運行許多進程,有時就需要使用kill中止某些進程來提高系統(tǒng)資源。在講解安裝和登陸命令時,曾提到系統(tǒng)多個虛擬控制臺的作用是當一個程序出錯造成系統(tǒng)死鎖時,可以切換到其它虛擬控制臺工作關閉這個程序。此時使用的命令就是kill,因為kill是大多數(shù)Shell內部命令可以直接調用的。

5.應用實例

(1)強行中止(經常使用殺掉)一個進程標識號為324的進程:

#kill -9 324

(2)解除Linux系統(tǒng)的死鎖

在Linux中有時會發(fā)生這樣一種情況:一個程序崩潰,并且處于死鎖的狀態(tài)。此時一般不用重新啟動計算機,只需要中止(或者說是關閉)這個有問題的程序即可。當kill處于X-Window界面時,主要的程序(除了崩潰的程序之外)一般都已經正常啟動了。此時打開一個終端,在那里中止有問題的程序。比如,如果Mozilla瀏覽器程序出現(xiàn)了鎖死的情況,可以使用kill命令來中止所有包含有Mozolla瀏覽器的程序。首先用top命令查處該程序的PID,然使用kill命令停止這個程序:

#kill -SIGKILL XXX

其中,XXX是包含有Mozolla瀏覽器的程序的進程標識號。

(3)使用命令回收內存

我們知道內存對于系統(tǒng)是非常重要的,回收內存可以提高系統(tǒng)資源。kill命令可以及時地中止一些“越軌”的程序或很長時間沒有相應的程序。例如,使用top命令發(fā)現(xiàn)一個無用 (Zombie) 的進程,此時可以使用下面命令:

#kill -9 XXX

其中,XXX是無用的進程標識號。然后使用下面命令:

#free

此時會發(fā)現(xiàn)可用內存容量增加了。

(4)killall命令

Linux下還提供了一個killall命令,可以直接使用進程的名字而不是進程標識號,例如:

# killall -HUP inetd

四、系統(tǒng)安全相關命令

su

1.作用

su的作用是變更為其它使用者的身份,超級用戶除外,需要鍵入該使用者的密碼。

2.格式

su [選項]。。。 [-] [USER [ARG]。。。][!--empirenews.page--]

3.主要參數(shù)

-f , --fast:不必讀啟動文件(如 csh.cshrc 等),僅用于csh或tcsh兩種Shell。

-l , --login:加了這個參數(shù)之后,就好像是重新登陸為該使用者一樣,大部分環(huán)境變量(例如HOME、SHELL和USER等)都是以該使用者(USER)為主,并且工作目錄也會改變。如果沒有指定USER,缺省情況是root。

-m, -p ,--preserve-environment:執(zhí)行su時不改變環(huán)境變數(shù)。

-c command:變更賬號為USER的使用者,并執(zhí)行指令(command)后再變回原來使用者。

USER:欲變更的使用者賬號,ARG傳入新的Shell參數(shù)。

4.應用實例

變更賬號為超級用戶,并在執(zhí)行df命令后還原使用者。 su -c df root

umask

1.作用

umask設置用戶文件和目錄的文件創(chuàng)建缺省屏蔽值,若將此命令放入profile文件,就可控制該用戶后續(xù)所建文件的存取許可。它告訴系統(tǒng)在創(chuàng)建文件時不給誰存取許可。使用權限是所有用戶。

2.格式

umask [-p] [-S] [mode]

3.參數(shù)

-S:確定當前的umask設置。

-p:修改umask 設置。

[mode]:修改數(shù)值。

4.說明

傳統(tǒng)Unix的umask值是022,這樣就可以防止同屬于該組的其它用戶及別的組的用戶修改該用戶的文件。既然每個用戶都擁有并屬于一個自己的私有組,那么這種“組保護模式”就不在需要了。嚴密的權限設定構成了Linux安全的基礎,在權限上犯錯誤是致命的。需要注意的是,umask命令用來設置進程所創(chuàng)建的文件的讀寫權限,最保險的值是0077,即關閉創(chuàng)建文件的進程以外的所有進程的讀寫權限,表示為-rw-------。在~/.bash_profile中,加上一行命令umask 0077可以保證每次啟動Shell后, 進程的umask權限都可以被正確設定。

5.應用實例

umask -S

u=rwx,g=rx,o=rx

umask -p 177

umask -S

u=rw,g=,o=

上述5行命令,首先顯示當前狀態(tài),然后把umask值改為177,結果只有文件所有者具有讀寫文件的權限,其它用戶不能訪問該文件。這顯然是一種非常安全的設置。

chgrp

1.作用

chgrp表示修改一個或多個文件或目錄所屬的組。使用權限是超級用戶。

2.格式

chgrp [選項]。。。 組 文件。。?;騝hgrp [選項]。。。 --reference=參考文件 文件。。。將每個的所屬組設定為。

3.參數(shù)

-c, --changes :像 --verbose,但只在有更改時才顯示結果。

--dereference:會影響符號鏈接所指示的對象,而非符號鏈接本身。

-h, --no-dereference:會影響符號鏈接本身,而非符號鏈接所指示的目的地(當系統(tǒng)支持更改符號鏈接的所有者,此選項才有效)。

-f, --silent, --quiet:去除大部分的錯誤信息。

--reference=參考文件:使用的所屬組,而非指定的。

-R, --recursive:遞歸處理所有的文件及子目錄。

-v, --verbose:處理任何文件都會顯示信息。

4.應用說明

該命令改變指定指定文件所屬的用戶組。其中group可以是用戶組ID,也可以是/etc/group文件中用戶組的組名。文件名是以空格分開的要改變屬組的文件列表,支持通配符。如果用戶不是該文件的屬主或超級用戶,則不能改變該文件的組。

5.應用實例

改變/opt/local /book/及其子目錄下的所有文件的屬組為book,命令如下:

$ chgrp - R book /opt/local /book

chmod

1.作用

chmod命令是非常重要的,用于改變文件或目錄的訪問權限,用戶可以用它控制文件或目錄的訪問權限,使用權限是超級用戶。

2.格式

chmod命令有兩種用法。一種是包含字母和操作符表達式的字符設定法(相對權限設定);另一種是包含數(shù)字的數(shù)字設定法(絕對權限設定)。

(1)字符設定法

chmod [who] [+ | - | =] [mode] 文件名

◆操作對象who可以是下述字母中的任一個或它們的組合

u:表示用戶,即文件或目錄的所有者。

g:表示同組用戶,即與文件屬主有相同組ID的所有用戶。

o:表示其它用戶。

a:表示所有用戶,它是系統(tǒng)默認值。

◆操作符號

+:添加某個權限。

-:取消某個權限。

=:賦予給定權限,并取消其它所有權限(如果有的話)。

◆設置mode的權限可用下述字母的任意組合

r:可讀。

w:可寫。

x:可執(zhí)行。

X:只有目標文件對某些用戶是可執(zhí)行的或該目標文件是目錄時才追加x屬性。

s:文件執(zhí)行時把進程的屬主或組ID置為該文件的文件屬主。方式“u+s”設置文件的用戶ID位,“g+s”設置組ID位。

t:保存程序的文本到交換設備上。

u:與文件屬主擁有一樣的權限。

g:與和文件屬主同組的用戶擁有一樣的權限。

o:與其它用戶擁有一樣的權限。

文件名:以空格分開的要改變權限的文件列表,支持通配符。一個命令行中可以給出多個權限方式,其間用逗號隔開。

(2) 數(shù)字設定法

數(shù)字設定法的一般形式為: chmod [mode] 文件名數(shù)字屬性的格式應為3個0到7的八進制數(shù),其順序是(u)(g)(o)文件名,以空格分開的要改變權限的文件列表,支持通配符。

數(shù)字表示的權限的含義如下:0001為所有者的執(zhí)行權限;0002為所有者的寫權限;0004為所有者的讀權限;0010為組的執(zhí)行權限;0020為組的寫權限;0040為組的讀權限;0100為其他人的執(zhí)行權限;0200為其他人的寫權限;0400為其他人的讀權限;1000為粘貼位置位;2000表示假如這個文件是可執(zhí)行文件,則為組ID為位置位,否則其中文件鎖定位置位;4000表示假如這個文件是可執(zhí)行文件,則為用戶ID為位置位。

3.實例

如果一個系統(tǒng)管理員寫了一個表格(tem)讓所有用戶填寫,那么必須授權用戶對這個文件有讀寫權限,可以使用命令:#chmod 666 tem

上面代碼中,這個666數(shù)字是如何計算出來的呢?0002為所有者的寫權限,0004為所有者的讀權限,0020為組的寫權限,0040為組的讀權限,0200為其他人的寫權限,0400為其他人的讀權限,這6個數(shù)字相加就是666(注以上數(shù)字都是八進制數(shù))。[!--empirenews.page--]

用chmod數(shù)字方法設定文件權限

可以看出,tem文件的權限是-rw-rw-rw-,即用戶對這個文件有讀寫權限。

如果用字符權限設定使用下面命令:

#chmod a =wx tem

chown

1.作用

更改一個或多個文件或目錄的屬主和屬組。使用權限是超級用戶。

2.格式

chown [選項] 用戶或組 文件

3.主要參數(shù)

--dereference:受影響的是符號鏈接所指示的對象,而非符號鏈接本身。

-h, --no-dereference:會影響符號鏈接本身,而非符號鏈接所指示的目的地(當系統(tǒng)支持更改符號鏈接的所有者,此選項才有效)。

--from=目前所有者:目前組只當每個文件的所有者和組符合選項所指定的,才會更改所有者和組。其中一個可以省略,這已省略的屬性就不需要符合原有的屬性。

-f, --silent, --quiet:去除大部分的錯誤信息。

-R, --recursive:遞歸處理所有的文件及子目錄。

-v, --verbose:處理任何文件都會顯示信息。

4.說明

chown 將指定文件的擁有者改為指定的用戶或組,用戶可以是用戶名或用戶ID;組可以是組名或組ID;文件是以空格分開的要改變權限的文件列表,支持通配符。系統(tǒng)管理員經常使用chown命令,在將文件拷貝到另一個用戶的目錄下以后,讓用戶擁有使用該文件的權限。

5.應用實例

1.把文件shiyan.c的所有者改為wan

$ chown wan shiyan.c

2.把目錄/hi及其下的所有文件和子目錄的屬主改成wan,屬組改成users。

$ chown - R wan.users /hi

chattr

1.作用

修改ext2和ext3文件系統(tǒng)屬性(attribute),使用權限超級用戶。

2.格式

chattr [-RV] [-+=AacDdijsSu] [-v version] 文件或目錄

3.主要參數(shù)

-R:遞歸處理所有的文件及子目錄。

-V:詳細顯示修改內容,并打印輸出。

-:失效屬性。

+:激活屬性。

= :指定屬性。

A:Atime,告訴系統(tǒng)不要修改對這個文件的最后訪問時間。

S:Sync,一旦應用程序對這個文件執(zhí)行了寫操作,使系統(tǒng)立刻把修改的結果寫到磁盤。

a:Append Only,系統(tǒng)只允許在這個文件之后追加數(shù)據(jù),不允許任何進程覆蓋或截斷這個文件。如果目錄具有這個屬性,系統(tǒng)將只允許在這個目錄下建立和修改文件,而不允許刪除任何文件。

i:Immutable,系統(tǒng)不允許對這個文件進行任何的修改。如果目錄具有這個屬性,那么任何的進程只能修改目錄之下的文件,不允許建立和刪除文件。

D:檢查壓縮文件中的錯誤。

d:No dump,在進行文件系統(tǒng)備份時,dump程序將忽略這個文件。

C:Compress,系統(tǒng)以透明的方式壓縮這個文件。從這個文件讀取時,返回的是解壓之后的數(shù)據(jù);而向這個文件中寫入數(shù)據(jù)時,數(shù)據(jù)首先被壓縮之后才寫入磁盤。

s:Secure Delete,讓系統(tǒng)在刪除這個文件時,使用0填充文件所在的區(qū)域。

u:Undelete,當一個應用程序請求刪除這個文件,系統(tǒng)會保留其數(shù)據(jù)塊以便以后能夠恢復刪除這個文件。

4.說明

chattr命令的作用很大,其中一些功能是由Linux內核版本來支持的,如果Linux內核版本低于2.2,那么許多功能不能實現(xiàn)。同樣-D檢查壓縮文件中的錯誤的功能,需要2.5.19以上內核才能支持。另外,通過chattr命令修改屬性能夠提高系統(tǒng)的安全性,但是它并不適合所有的目錄。chattr命令不能

保護/、/dev、/tmp、/var目錄。

5.應用實例

1.恢復/root目錄,即子目錄的所有文件

# chattr -R +u/root

2.用chattr命令防止系統(tǒng)中某個關鍵文件被修改

在Linux下,有些配置文件(passwd ,fatab)是不允許任何人修改的,為了防止被誤刪除或修改,可以設定該文件的“不可修改位(immutable)”,命令如下:

# chattr +i /etc/fstab

ps

1.作用

ps顯示瞬間進程 (process) 的動態(tài),使用權限是所有使用者。

2.格式

ps [options] [--help]

3.主要參數(shù)

ps的參數(shù)非常多, 此出僅列出幾個常用的參數(shù)。

-A:列出所有的進程。

-l:顯示長列表。

-m:顯示內存信息。

-w:顯示加寬可以顯示較多的信息。

-e:顯示所有進程。

a:顯示終端上的所有進程,包括其它用戶的進程。

-au:顯示較詳細的信息。

-aux:顯示所有包含其它使用者的進程。

4.說明

要對進程進行監(jiān)測和控制,首先要了解當前進程的情況,也就是需要查看當前進程。ps命令就是最基本、也是非常強大的進程查看命令。使用該命令可以確定有哪些進程正在運行、運行的狀態(tài)、進程是否結束、進程有沒有僵尸、哪些進程占用了過多的資源等。圖2給出了ps-aux命令詳解。大部分信息都可以通過執(zhí)行該命令得到。最常用的三個參數(shù)是u、a、x。下面就結合這三個參數(shù)詳細說明ps命令的作用:ps aux

USER表示進程擁有者;PID表示進程標示符;%CPU表示占用的CPU使用率;%MEM占用的物理內存使用率;VSZ表示占用的虛擬內存大小;RSS為進程占用的物理內存值;TTY為終端的次要裝置號碼。

STAT表示進程的狀態(tài),其中D為不可中斷的靜止(I/O動作);R正在執(zhí)行中;S靜止狀態(tài);T暫停執(zhí)行;Z不存在,但暫時無法消除;W沒有足夠的內存分頁可分配;高優(yōu)先序的進程;N低優(yōu)先序的進程;L有內存分頁分配并鎖在內存體內 (實時系統(tǒng)或I/O)。START為進程開始時間。TIME為執(zhí)行的時間。COMMAND是所執(zhí)行的指令。

4.應用實例

在進行系統(tǒng)維護時,經常會出現(xiàn)內存使用量驚人,而又不知道是哪一個進程占用了大量進程的情況。除了可以使用top命令查看內存使用情況之外,還可以使用下面的命令:

ps aux | sort +5n

五、其他命令

tar

1.作用

tar命令是Unix/Linux系統(tǒng)中備份文件的可靠方法,幾乎可以工作于任何環(huán)境中,它的使用權限是所有用戶。

2.格式

tar [主選項+輔選項] 文件或目錄

3.主要參數(shù)

使用該命令時,主選項是必須要有的,它告訴tar要做什么事情,輔選項是輔助使用的,可以選用。[!--empirenews.page--]

主選項:

-c 創(chuàng)建新的檔案文件。如果用戶想備份一個目錄或是一些文件,就要選擇這個選項。

-r 把要存檔的文件追加到檔案文件的未尾。例如用戶已經做好備份文件,又發(fā)現(xiàn)還有一個目錄或是一些文件忘記備份了,這時可以使用該選項,將忘記的目錄或文件追加到備份文件中。

-t 列出檔案文件的內容,查看已經備份了哪些文件。

-u 更新文件。就是說,用新增的文件取代原備份文件,如果在備份文件中找不到要更新的文件,則把它追加到備份文件的最后。

-x 從檔案文件中釋放文件。

輔助選項:

-b 該選項是為磁帶機設定的,其后跟一數(shù)字,用來說明區(qū)塊的大小,系統(tǒng)預設值為20(20×512 bytes)。

-f 使用檔案文件或設備,這個選項通常是必選的。

-k 保存已經存在的文件。例如把某個文件還原,在還原的過程中遇到相同的文件,不會進行覆蓋。

-m 在還原文件時,把所有文件的修改時間設定為現(xiàn)在。

-M 創(chuàng)建多卷的檔案文件,以便在幾個磁盤中存放。

-v 詳細報告tar處理的文件信息。如無此選項,tar不報告文件信息。

-w 每一步都要求確認。

-z 用gzip來壓縮/解壓縮文件,加上該選項后可以將檔案文件進行壓縮,但還原時也一定要使用該選項進行解壓縮。

4.應用說明

tar 是Tape Archive(磁帶歸檔)的縮寫,最初設計用于將文件打包到磁帶上。如果下載過Linux的源代碼,或許已經碰到過tar文件

請注意,不要忘了Linux是區(qū)分大小寫的。例如,tar命令應該總是以小寫的形式執(zhí)行。命令行開關可以是大寫、小寫或大小寫的混合。例如,-t和-T執(zhí)行不同的功能。文件或目錄名稱可以混合使用大小寫,而且就像命令和命令行開關一樣是區(qū)分大小寫的。

5.應用實例

tar是一個命令行的工具,沒有圖形界面。使用Konsole打開一個終端窗口,接下來是一個簡單的備份命令(在/temp目錄中創(chuàng)建一個back.tar的文件,/usr目錄中所有內容都包含在其中。):

$tar cvf - /usr 》 /temp/back.tar

另外,tar命令支持前面第三講中講過的crontab命令,可以用crontab工具設置成基于時間的有規(guī)律地運行。例如,每晚6點把/usr目錄備份到hda—第一個IDE接口的主驅動器 (總是位于第一個硬盤)中,只要將下面語句添加到root的crontab中即可:

$00 06 * * * tar cvf /dev/hda1/usrfiles.tar - /usr

一般情況下,以下這些目錄是需要備份的:

◆/etc 包含所有核心配置文件,其中包括網(wǎng)絡配置、系統(tǒng)名稱、防火墻規(guī)則、用戶、組,以及其它全局系統(tǒng)項。

◆ /var 包含系統(tǒng)守護進程(服務)所使用的信息,包括DNS配置、DHCP租期、郵件緩沖文件、HTTP服務器文件、dB2實例配置等。

◆/home 包含所有默認用戶的主目錄,包括個人設置、已下載的文件和用戶不希望失去的其它信息。

◆/root 根(root)用戶的主目錄。

◆/opt 是安裝許多非系統(tǒng)文件的地方。IBM軟件就安裝在這里。OpenOffice、JDK和其它軟件在默認情況下也安裝在這里。

有些目錄是可以不備份的:

◆ /proc 應該永遠不要備份這個目錄。它不是一個真實的文件系統(tǒng),而是運行內核和環(huán)境的虛擬化視圖,包括諸如/proc/kcore這樣的文件,這個文件是整個運行內存的虛擬視圖。備份這些文件只是在浪費資源。

◆/dev 包含硬件設備的文件表示。如果計劃還原到一個空白的系統(tǒng),就可以備份/dev。然而,如果計劃還原到一個已安裝的Linux 系統(tǒng),那么備份/dev是沒有必要的。

unzip

1.作用

unzip

命令位于/usr/bin目錄中,它們和MS DOS下的pkzip、pkunzip及MS

Windows中的Winzip軟件功能一樣,將文件壓縮成.zip文件,以節(jié)省硬盤空間,當需要的時候再將壓縮文件用unzip命令解開。該命令使用權

限是所有用戶。

2.格式

unzip [-cflptuvz][-agCjLMnoqsVX][-P ][.zip文件][文件][-d ][-x ]

3.主要參數(shù)

-c:將解壓縮的結果顯示到屏幕上,并對字符做適當?shù)霓D換。

-f:更新現(xiàn)有的文件。

-l:顯示壓縮文件內所包含的文件。

-p:與-c參數(shù)類似,會將解壓縮的結果顯示到屏幕上,但不會執(zhí)行任何的轉換。

-t:檢查壓縮文件是否正確。

-u:與-f參數(shù)類似,但是除了更新現(xiàn)有的文件外,也會將壓縮文件中的其它文件解壓縮到目錄中。

-v:執(zhí)行是時顯示詳細的信息。

-z:僅顯示

壓縮文件的備注文字。

-a:對文本文件進行必要的字符轉換。

-b:不要對文本文件進行字符轉換。

-C:壓縮文件中的文件名稱區(qū)分大小寫。

-j:不處理壓縮文件中原有的目錄路徑。

-L:將壓縮文件中的全部文件名改為小寫。

-M:將輸出結果送到more程序處理。

-n:解壓縮時不要覆蓋原有的文件。

-o:不必先詢問用戶,unzip執(zhí)行后覆蓋原有文件。

-P:使用zip的密碼選項。

-q:執(zhí)行時不顯示任何信息。

-s:將文件名中的空白字符轉換為底線字符。

-V:保留VMS的文件版本信息。

-X:解壓縮時同時回存文件原來的UID/GID。

[.zip文件]:指定.zip壓縮文件。

[文件]:指定要處理.zip壓縮文件中的哪些文件。

-d:指定文件解壓縮后所要存儲的目錄。

-x:指定不要處理.zip壓縮文件中的哪些文件。

-Z unzip:-Z等于執(zhí)行zipinfo指令。在Linux中,還提供了一個叫zipinfo的工具,能夠察看zip壓縮文件的詳細信息。

gunzip

1.作用

gunzip命令作用是解壓文件,使用權限是所有用戶。

2.格式

gunzip [-acfhlLnNqrtvV][-s ][文件。。。]

或者

gunzip [-acfhlLnNqrtvV][-s ][目錄]

3.主要參數(shù)

-a或--ascii:使用ASCII文字模式。

-c或--stdout或--to-stdout:把解壓后的文件輸出到標準輸出設備。

-f或-force:強行解開壓縮文件,不理會文件名稱或硬連接是否存在,以及該文件是否為符號連接。

-h或--help:在線幫助。[!--empirenews.page--]

-l或--list:列出壓縮文件的相關信息。

-L或--license:顯示版本與版權信息。

-n或--no-name:解壓縮時,若壓縮文件內含有原來的文件名稱及時間戳記,則將其忽略不予處理。

-N或--name:解壓縮時,若壓縮文件內含有原來的文件名稱及時間戳記,則將其回存到解開的文件上。

-q或--quiet:不顯示警告信息。

-r或--recursive:遞歸處理,將指定目錄下的所有文件及子目錄一并處理。

-S或--suffix:更改壓縮字尾字符串。

-t或--test:測試壓縮文件是否正確無誤。

-v或--verbose:顯示指令執(zhí)行過程。

-V或--version:顯示版本信息。

4.說明

gunzip是個使用廣泛的解壓縮程序,它用于解開被gzip壓縮過的文件,這些壓縮文件預設最后的擴展名為“.gz”。事實上,gunzip就是gzip的硬連接,因此不論是壓縮或解壓縮,都可通過gzip指令單獨完成。gunzip最新版本是1.3.3 。

功能最強在的編輯器——vi

vi是所有UNIX系統(tǒng)都會提供的屏幕編輯器,它提供了一個視窗設備,通過它可以編輯文件。當然,對UNIX系統(tǒng)略有所知的人,或多或少都覺得vi超級難用,但vi是最基本的編輯器,所以希望讀者能好好把它學起來,以后在UNIX世界里必將暢行無阻、游刃有余,因為其他幾種文本處理器并非UNIX標準配備。說不定別人的Linux機器沒

安裝joe或pico,如果您不會vi,那您可能就沒輒了。

vi的基本概念

基本上vi可分為三種操作狀態(tài),分別是命令模式(Command mode)、插入模式(Insert mode)和底線命令模式(Last line mode),各模式的功能區(qū)分如下:

1. Comand mode:控制屏幕光標的移動,字符或光標的刪除,移動復制某區(qū)段及進入Insert mode下,或者到Last line mode。

2. Insert mode:唯有在Insert mode下,才可做文字數(shù)據(jù)輸入,按Esc等可回到Comand mode。

3. Last line mode:將儲存文件或離開編輯器,也可設置編輯環(huán)境,如尋找字符串、列出行號等。

不過可以把vi簡化成兩個模式,即是將Last line mode也算入Command mode,把vi分成Command 和Insert mode。

vi的基本操作

進入vi在系統(tǒng)提示符號輸入vi及文件名稱后,即可進入vi全屏幕編輯畫面:

$ vi testfile

有一點要特別注意,就是您進入vi之后是處于“Command mode”下,您要切換到Insert mode才能輸入文字。初次用vi的用戶都會想先用上下左右鍵移動光標,結果電腦一直叫,把自己氣個半死,所以進入vi后,先不要亂動,轉換入Insert后再說。

切換至Insert mode編輯文件在Command mode下按‘i’、‘a’或‘o’三鍵就可進入Insert mode。這時候您就可以開始輸入文字了。

i: 插入,從目前光標所在之處插入所輸入的文字。

a: 增加,目前光標所在的下一個字開始輸入文字。

o: 插入新的一行,從行首開始輸入文字。

Insert的切換→Command mode,按Esc鍵

您目前處于Insert mode,您就只能一直打字。假如您發(fā)現(xiàn)打錯字了,想用光標鍵往回移動,將該字刪除,就要按ESC鍵轉換回Command mode,再刪除文字。

離開vi及存文件

在Command mode下,可按冒號“:”鍵入入Last line mode,例如:

:w filename (輸入“w filename”,將文章存入指定的文件名filename)

:wq (輸入“wq”,因為進入之時已經指定文件名testfile,所以會寫入testfile并離開vi)

:q! (輸入“q!”,強制離開并放棄編輯的文件)

Command mode功能鍵列表

在介紹command mode指令的時后,指令后面加上“常用”字眼的功能鍵,表示比較常用的vi指令,請讀者您一定要學會、記住。

(1)I、a、o切換進入Insert mode。[超級常用]

(2)移動光標

vi可以直接用鍵盤上的光標鍵來上下左右移動,但正規(guī)的vi是用小寫英文字母

h、j、k、l,分別控制光標左、下、上、右移一格。

按Ctrl+B:屏幕往后移動一頁。[常用]

按Ctrl+F:屏幕往前移動一頁。[常用]

按Ctrl+U:屏幕往后移動半頁。

按Ctrl+D:屏幕往前移動半頁。

按 0 (數(shù)字零):移動文章的開頭。[常用]

按 G:移動到文章的最后。[常用]

按 w:光標跳到下個word的開頭。[常用]

按 e:光標跳到下個word的字尾。

按 b:光標回到上個word的開頭。

按 $:移到光標所在行的行尾。[常用]

按 ^:移到該行第一個非空白的字符。

按 0:移到該行的開頭位置。[常用]

按 #:移到該行的第#個位置,例:51、121。[常用]

(3)刪除文字

x:每按一次刪除光標所在位置的后面一個字符。[超常用]

#x:例如,6x 表刪除光標所在位置的后面6個字符。[常用]

X:大字的X,每按一次刪除光標所在位置的前面一個字符。

#X:例如,20X 表刪除光標所在位置的前面20個字符。

dd:刪除光標所在行。[超常用]

#dd:例如,6dd表刪除從光標所在的該行往下數(shù)6行之文字。[常用]

(4)復制

yw:將光標所在處到字尾的字符復制到緩沖區(qū)中。

(想在和#x、#X的功能相反)

p:將緩沖區(qū)內的字符粘貼到光標所在位置(指令‘yw’與‘p必須搭配使用)。

yy:復制光標所在行。[超常用]

p:復制單行到您想粘貼之處。(指令‘yy’與‘p’必須搭配使用)

#yy:如:6yy表示拷貝從光標所在的該行往下數(shù)6行之文字。[常用]

p:復制多行到您想粘貼之處。(指令‘#yy’與‘p’必須搭配使用)

“ayy:將復制行放入buffer a, vi提供buffer功能,可將常用的數(shù)據(jù)存在buffer

“ap:將放在buffer a的數(shù)據(jù)粘貼。

“b3yy:將三行數(shù)據(jù)存入buffer b。

“b3p:將存在buffer b的資料粘貼

(5)取代

r: 取代光標所在處的字符:[常用][!--empirenews.page--]

R:取代字符直到按Esc為止。

(6)復原(undo)上一個指令

u:假如您誤操作一個指令,可以馬上按u,回復到上一個操作。[超常用]

。: ??梢灾貜蛨?zhí)行上一次的指令。

(7)更改

cw:更改光標所在處的字到字尾$處。

c#w:例如,c3w代表更改3個字。

(8)跳至指定行

Ctrl+G:列出光標所在行的行號。

#G:例如,15G,表示移動光標至文章的第15行行首。[常用]

Last line mode下指令簡介

讀者您要使用Last line mode之前,請記得先按Esc鍵確定您已經處于Command mode下后,再按冒號“:”或“/”或“?”三鍵的其中一鍵進入Last line mode。

1.列出行號

set nu: 輸入“set nu”后,會在文章的每一行前面列出行號。

2.跳到文章的某一行

#:井號代表一個數(shù)字,在Last line mode提示符號“:”前輸入數(shù)字,再按Enter就會跳到該行了,如:15[Enter]就會跳到文章的第15行。[常用]

3.尋找字符串

/關鍵字:先按/,再輸入您想尋找的字,如果第一次找的關鍵字不是您相盡可能的,可以一直按n會往下尋找到您要的關鍵字為止。

?關鍵字:先按?,再輸入您想尋找的字,如果第一次找的關鍵字不是您想要的,可以按n會往前尋找到您要的關鍵字為止。

4.取代字符串

1,$s/string/replae/g:在last line mode輸入“1,$s/string/replace/g”會將

全文的string字符串取代為replace字符串,其中1,$s就是指搜尋區(qū)間為文章從頭至尾的意思,g則是表示全部取代不必確認。

%s/string/replace/c:同樣會將全文的string字符串取代為replace字符串,和上面指令不同的地方是,%s和1,$s是相同的功能,c則是表示要替代之前必須再次確認是否取代。

1,20s/string/replace/g:將1至20行間的string替代為relpace字符串。

5.存文件

w:在last line mode提示符號“:”前按w即可將文件存起來。[超常用]

#,# w filename:如果您想摘取文章的某一段,存成另一個文件,可用這個指令#代表行號,例如30,50 w nice,將您正在編輯文章的第30~50行存成nice這個文件。

6.離開

q:按q就離開,有時如果無法離開vi,可搭配“!:強置離開vi,如“q!”

qw:一般建議離開時,搭配w一起使用,如此離開時還可存文件。[常用]

VI命令集錦:

進入vi的命令

vi filename :打開或新建文件,并將光標置于第一行首

vi +n filename :打開文件,并將光標置于第n行首

vi + filename :打開文件,并將光標置于最后一行首

vi +/pattern filename:打開文件,并將光標置于第一個與pattern匹配的串處

vi -r filename :在上次正用vi編輯時發(fā)生系統(tǒng)崩潰,恢復filename

vi filename.。。.filename :打開多個文件,依次編輯

移動光標類命令

h :光標左移一個字符

l :光標右移一個字符

space:光標右移一個字符

Backspace:光標左移一個字符

k或Ctrl+p:光標上移一行

j或Ctrl+n :光標下移一行

Enter :光標下移一行

w或W :光標右移一個字至字首

b或B :光標左移一個字至字首

e或E :光標右移一個字j至字尾

) :光標移至句尾

( :光標移至句首

}:光標移至段落開頭

{:光標移至段落結尾

nG:光標移至第n行首

n+:光標下移n行

n-:光標上移n行

n$:光標移至第n行尾

H :光標移至屏幕頂行

M :光標移至屏幕中間行

L :光標移至屏幕最后行

0:(注意是數(shù)字零)光標移至當前行首

$:光標移至當前行尾

屏幕翻滾類命令

Ctrl+u:向文件首翻半屏

Ctrl+d:向文件尾翻半屏

Ctrl+f:向文件尾翻一屏

Ctrl+b;向文件首翻一屏

nz:將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部。

插入文本類命令

i :在光標前

I :在當前行首

a:光標后

A:在當前行尾

o:在當前行之下新開一行

O:在當前行之上新開一行

r:替換當前字符

R:替換當前字符及其后的字符,直至按ESC鍵

s:從當前光標位置處開始,以輸入的文本替代指定數(shù)目的字符

S:刪除指定數(shù)目的行,并以所輸入文本代替之

ncw或nCW:修改指定數(shù)目的字

nCC:修改指定數(shù)目的行

刪除命令

ndw或ndW:刪除光標處開始及其后的n-1個字

do:刪至行首

d$:刪至行尾

ndd:刪除當前行及其后n-1行

x或X:刪除一個字符,x刪除光標后的,而X刪除光標前的

Ctrl+u:刪除輸入方式下所輸入的文本

搜索及替換命令 :

/pattern:從光標開始處向文件尾搜索pattern

?pattern:從光標開始處向文件首搜索pattern

n:在同一方向重復上一次搜索命令

N:在反方向上重復上一次搜索命令

:s/p1/p2/g:將當前行中所有p1均用p2替代

:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代

:g/p1/s//p2/g:將文件中所有p1均用p2替換

選項設置

all:列出所有選項設置情況

term:設置終端類型

ignorance:在搜索中忽略大小寫

list:顯示制表位(Ctrl+I)和行尾標志($)

number:顯示行號

report:顯示由面向行的命令修改過的數(shù)目

terse:顯示簡短的警告信息

warn:在轉到別的文件時若沒保存當前文件則顯示NO write信息

nomagic:允許在搜索模式中,使用前面不帶“\”的特殊字符

nowrapscan:禁止vi在搜索到達文件兩端時,又從另一端開始

mesg:允許vi顯示其他用戶用write寫到自己終端上的信息

最后行方式命令

:n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下[!--empirenews.page--]

:n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下

:n1,n2 d :將n1行到n2行之間的內容刪除

:w :保存當前文件

:e filename:打開文件filename進行編輯

:x:保存當前文件并退出

:q:退出vi

:q!:不保存文件并退出vi

:!command:執(zhí)行shell命令command

:n1,n2 w!command:將文件中n1行至n2行的內容作為command的輸入并執(zhí)行之,若不指定n1,n2,則表示將整個文件內容作為command的輸入

:r!command:將命令command的輸出結果放到當前行 。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉