Unix常用命令附件vi命令使用 转.docx
《Unix常用命令附件vi命令使用 转.docx》由会员分享,可在线阅读,更多相关《Unix常用命令附件vi命令使用 转.docx(11页珍藏版)》请在冰豆网上搜索。
![Unix常用命令附件vi命令使用 转.docx](https://file1.bdocx.com/fileroot1/2023-1/24/8a912b02-54ba-4617-be04-6f81dd51dddf/8a912b02-54ba-4617-be04-6f81dd51dddf1.gif)
Unix常用命令附件vi命令使用转
Unix常用命令(附件vi命令使用)--转
2009年03月06日星期五下午03:
30
UNIX常用命令
以下只说明各常用指令的基本用法,若需详细说明,请用man去读详细的manual.
1.关於档案/目录处理的命令
ls——列目录
这是最基本的档案指令。
ls的意义为"list",也就是将某一个目录或是某一个档案的内容显示出来。
格式:
ls-1ACFLRabcdfgilmnopqrstux-W[sv][files]
例:
#ls(不跟任何参数以简单格式列出当前目录中所有档案)
#lsbin(简单格式列出名为bin的文件或目录下的所有档案)
#ls/u/ilasII_GB/lib(全路径,列出lib目录下的所有档案)
ls的常用参数如下:
-a:
在UNIX中若一个目录或档案名字的第一个字元为".",则使用ls
将不会显示出这个档案的名字,我们称此类档案为隐藏档。
如.profile、.tcshrc等
如果我们要察看这类档案,则必须在其后加上参数-a。
-l:
这个参数代表使用ls的长(long)格式,可以显示更多的资讯,如档案存取权,档案拥有者(owner),档案归属组,档案大小,档案最後更新时间,甚而symboliclink的档案是link那一个档等等。
显示结果如下所示:
drwxrwxrwx30rootbin1024May2310:
38u
drwxrwxrwx2rootsys512Jul281999uacn
drwxrwxrwx5rootsys512Jul271999udk
lrwxrwxrwx1rootsys11Jul271999unix->/stand/unix
drwxrwxrwx35rootauth1024Apr313:
45usr
在开始的10个字符上系统给出文件的用户权限。
该序列分成四个域。
第一个字符为类型域,第2、3、4个字符为用户主域,第5、6、7个字符为同组用户域,第8、9、10个字符为其它用户域,域中字符的含义如下:
在类型域中:
d表示此文件是一个目录
-表示此文件是一个普通文件
b表示此文件是一个特殊的块设备I/O文件
c表示此文件是一个特殊的字符设备I/O文件
l表示此文件是一个连接文件。
在其文件名称后紧跟与它连接的文件路径及名称。
如:
unix->/stand/unix
在“用户主”、“同组用户”、“其它用户”域中:
r表示有读权限。
含义是可以拷贝或显示该文件或目录中的内容。
w表示有写权限。
含义是可以改变或修改该文件。
x表示有执行权限。
含义是可以执行该文件或用cd命令进入该目录,在该目录中建
立文件或子目录等。
-表示无权限。
chmod——变更档案模式(changemode)
这个指令是用来更改档案的存取模式(accessmode)。
在UNIX一个档案上有可读(r)可写(w)可执行(x)三种模式,分别针对该档案的所有者(owner)、同组者(groupmember)(你可以ls-lg来观看某一档案的所属的group),以及其他人(other)。
一个档案如果改成可执行模式则系统就将其视为一个可执行档,而一个目录的可执行模式代表使用者有进入该目录之权利。
chmod就是用来变更一些档案的模式。
格式:
chmod[-fR]modefilename...
主要参数的意义如下:
-f(Force):
chmod不会理会失败的动作。
-R(Recurive):
会将所有子树下的所有子目录及档案改为你所要改成的模式。
Mode:
指改变模式。
包括三个方面:
A.为哪些用户改变
u——用户本身
g——同组用户
o——其他用户
B.如何改变
+——增加权限
-——去掉权限
C.什么权限
r——读权限
w——写权限
x——执行权限
例:
#chmodg0+wfile1
修改前file1的权限为:
-rwxr--r--
修改后file1的权限为:
-rwxrw-rw-
也可以用一个三位八进位数字来表示对某些对象的存取权。
例:
#chmod666*(所有用户都可读、写)
#chmod777*(所有用户都可读、写、执行)
cat——串联显示命令
例:
#catfile1(将文件file1的内容在屏幕上不停地显示出来)
Cat命令还可以用来建立文件,如:
#cat>newfile
thisisatext
Ctrl+D
即建立newfile文件,内容为:
thisisatext
#catfile1file2>file3(将file1,file2两个文件接起来生成文件file3)
#catf1f2>>f3(将f1,f2两文件接在f3文件的尾)
more——分屏显示文件内容
more可以将所观察的档案根据分屏显示出来,并根据使用者的要求换页或卷行。
如果使用者要在某一个档案中搜寻一个特定的字串,则按/然後跟著打所要搜寻的单字即可进行搜寻。
如果你在使用中觉得已经看到了所要看的部份,可以按'q'离开more的使用。
在使用中按'v'亦可以使用编辑器来编辑所观看的档案。
格式:
morefilename
cd——改变当前目录
格式:
cddirname
例:
#cd(到用户的“家”目录)
#cd/usr(将目前目录转移到/usr目录,也即进入/usr)
#cd..(返回上一级目录)
#cd../..(返回上一级目录的上一级目录)
cp——拷贝
这个指令的意义是复制("COPY"),也就是将一个或多个档案复制成另
一个档案或者是将其复制到另一个目录去。
格式:
cp[-fip]source_filetarget_file(拷贝文件)
cp[-r|-R][-fip]source_file...target_file(拷贝目录)
常用参数如下:
-i:
此参数是当已有档名为f2的档案时,若迳自使用cp将会将原来f2的内容掩盖过去,因此在要盖过之前必须先询问使用者一下。
如使用者的回答是y(yes)才执行复制的动作。
-r:
此参数是用来做递回复制用,可将一整颗子树都复制到另一个目录中。
cp的用法例举如下:
#cpf1f2(将名为f1的档案复制一份名为f2的档案)
#cpf1f2f3...dir(将档案f1f2f3...复制一份放到目录dir里面)
#cp-rdir1dir2(将dir1的全部内容全部复制到dir2里面)
mv——移动或改名
mv的意义为move,主要是将一档案改名或移至另一个目录。
格式:
mv[-fi]source_file...target_file
主要参数:
-i:
-i的含义与cp的相同,均是interactive询问之意。
-f:
强迫(force)执行。
所有其他的参数遇到-f均失效。
例:
#mvf1f2(将名为f1的档案变更成名为f2的档案)
#mvdir1dir2(将名为dir1的目录变更成名为dir2的目录)
#mvf1f2f3...dir(将档案f1f2f3...都移至目录dir里面)
rm——删除
rm的意义是remove,也就是用来删除一个档案。
在UNIX中一个被删除的档案除非是系统恰好有做备份,否则是无法像DOS里面一样还能够恢复。
所以在做rm动作的时候使用者应该要特别小心。
格式:
rm[-fiRr]file...
主要参数:
-f:
将会使得系统在删除时,不提出任何警告讯息。
-i:
在除去档案之前均会询问是否真要除去。
-r:
递归式的删除。
注意:
不要随便使用rm-rf,否则有一天你会"欲哭无泪"......
例:
rmf1(删除名为f1的档案)
rm-rdir1(删除名为dir1的目录及其下的所有档案)
rm-isendmarc1(删除名为sendmarc1的文件前先提示,待回答(Y/N)?
)如下:
removesendmarc1?
y
mkdir——创建目录
mkdir是一个让使用者建立一个目录的指令。
你可以在一个目录底下使用
midir建立一个子目录。
格式:
mkdirdirname1[dirname2...]
例:
#cd/u/ilasII_GB(将当前路径置换为/u/ilasII_GB)
#mkdirilasbak(在/u/ilasII_GB目录下创建一个名为ilasbak的子目录)
rmdir——删除目录
rmdir是用来将一个"空的"目录删除。
如果一个目录下面没有任何档案,你就可以用rmdir指令将其除去。
格式:
rmdirdirname1[dirname2....]
如果一个目录底下有其他的档案,rmdir将无法将这个目录删除,除非使用rm指令的-r选项。
例:
rmdirilasbak(删除名为ilasbak的空目录)
pwd——显示当前路径
例如:
#pwd
/u/ilasII_GB/database(显示当前路径为:
/u/ilasII/database)
2.关于进程处理的命令:
ps——显示目前你的process或系统processes的状况
格式:
ps[-aAdefl][-Ggroups][-oformat][-ppids][-ttermlist][-uusers][-Uusers][-gpgrplist]
常用参数:
-a列出所有用户的process状况。
-u显示user-oriented的process状况。
-x显示包括没有terminal控制的process状况。
-w使用较宽的显示模式来显示process状况。
例:
#ps-ae(显示所有进程的进程号及状态)
#ps-uilasnt1(显示用户ilasnt1的进程状态)
PIDTTYTIMECMD
1194ttyp000:
00:
00sh
#ps-ttty1a(显示设备tty1a上的进程)
如上所示:
我们可以经由ps取得目前processes的状况,如PID(进程号),TTY(设备名)、TIME(时间)、CMD(程序名)等。
kill——杀进程
kill指令的用途是送一个信号给某一个进程。
因为大部份送的都是用来杀掉进程,因此称为kill。
格式:
kill[-SIGNAL]pid...
kill-l
SIGNAL:
为一个讯号的数字,从0到31,其中9是SIGKILL,也就是一般用来杀掉一些无法正常终止进程的讯号。
你也可以用kill-l来察看可代替signal号码的数目字。
3.用户操作指令
Who——查询目前有那些人在线
例:
#who
ilasnt1ttyp0May2410:
23
rootttyp3May2411:
27
rootttyp4May2409:
39
w——查询目前有那些人在线上,同时显示出那些人目前的工作
例:
#w
12:
17pmup3:
59,3users,loadaverage:
2.03,2.02,2.00
UserTtyLogin@IdleJCPUPCPUWhat
ilasnt1ttyp010:
23am1:
541--sh
rootttyp311:
27am21-w
rootttyp49:
39am381--sh
chgrp——改变组的属性
格式:
chgrp[-R]groupfile...
例:
#chgrplibraryfile1file2…(将file1、file2…等的用户组改为library)
chown——改变文件或目录的所有者
格式:
chown[-R]owner[:
group]file...
例:
#chownilasnt1ilasII_GB(将ilasII_GB的用户主改为ilasnt1)
passwd——更改用户口令
格式:
passwd用户名(后面不跟用户名,为修改root的口令)
4.网路指令
UNIX提供网路的连接,使得你可以在各个不同的机器上做一些特殊的事情。
有些工作可以利用UNIX的网路指令,在你的位子上连到各个不同的机器上工作。
如此一来,即使你在寝室,也能轻易的连至系上或计中来工作,不用像以前的人必须泡在冷冰冰的机房面。
这些网路的指令如下所述:
telnet——仿真终端程序
telnet是一个提供user经由网路连到remotehost。
格式:
telnet[hostname|ip-address][port]
其中:
hostname:
为一个像ccsun1或是的nameaddress;
ip-address:
则为一个由四个小於255的数字组成的IP地址,如140.113.17.173、210.26.147.1等。
Port:
为一些特殊的程式所提供给外界的沟通点。
如对方没要求,则不需要此项。
例:
#telnetccsun1
#telnet140.113.17.173
ftp——文件传输协议
ftp的意义是FileTransferProgram,是一个很常应用在网路档案传输的
程序。
格式:
ftp[hostname|ip-address]
其中hostname|ip-address的意义同telnet。
在进入ftp之後,如果与remotehost连接上了,它将会询问你用户名
与密码,如果输入对了就可以开始进行档案传输。
ftp中常用命令:
ascii:
将传输模式设为ascii模式。
通常用於传送文字档。
binary:
将传输模式设为binary模式,通常用於传送执行档,压缩档与影像档等。
cdremote-directory:
将remotehost(远方)上的工作目录改变。
lcd[directory]:
更改localhost(本地)的工作目录。
ls[remote-directory][local-file]:
列出remotehost上的档案。
getremote-file[local-file]:
取得远方的档案。
mgetremote-files:
可使用通用字元一次取得多个档案。
putlocal-file[remote-file]:
将localhost的档案送到remotehost。
mputlocal-files:
可使用通用字元一次将多个档案放到remotehost上。
help[command]:
线上辅助指令。
mkdirdirectory-name:
在remotehost造一个目录。
prompt更改交谈模式,若为on则在mput与mget时每作一个档案之传
输时均会询问。
quit/bye离开ftp.
5.其他指令
vi——编辑命令
任何用户最常做的事要数创建和编辑文件,包括文档、报告和文字,vi(VisualEditor)是一个有效而相对简单的全荧幕编辑,使用vi,只要记著少量基本指令,就可以开始起步,再学习其他更复杂的指令,而系统管理员则使用vi管理和维护系统。
vi是包含在SCOSystemV作业系统中的全荧幕编辑,其实,vi不独存在於SCOUNIX内,而是UNIX内相当普及的文件编辑。
开启文件无论是开启新档或修改旧文件,都可以使用vi。
格式:
#vifilename
如果文件是新的,就会在荧幕底部看到一个信息,告诉用户正在创建新文件。
如果文件早已存在,vi则会显示文件的首二十四行,用户可再用游标(cursor)移动文件。
这是执行Vi后的屏幕样式:
~
~
上面是一个经vi开启的模拟文件,一行开始处的波折号(~)表示文件的结尾。
vi使用了两种状态,一是指令态(CommandMode),另一是插入态(InsertMode)。
当vi处於指令态时,打入的内容会视作指令来解释;另一方面,当vi处於插入态时,就可以打入正文(text)给文件。
大多数vi指令是单字符,将插入状态改变为指令态,按〈Esc〉键;而由命令态转为插入态,则可以使用下面的插入令,直接打入,无需再按〈Return〉键。
插入
i在游标处插入正文
I在一行开始处插入正文(在当前第一个非空字符前插入)
a在游标後追加正文
A在行尾追加正文
o(小写欧)在游标下面新开一行
O(大写欧)在游标上面新开一行
要记著一点,在插入态处,不能打入指令,必需先按〈Esc〉键,返回指令态。
假若户用不知身处何态,也可以按〈Esc〉键,不管处於何态,都会返回指令态。
存盘及退出
在修改文件时,如何存档及退出指定文件都非常重要。
在vi内,行使存档或退出的指令时,要先按冒号(:
),改变为指令态,用户就可以看见在荧幕左下方,出现冒号(:
),显示vi已经改为指令态,可以进行存档或退出等工作。
下面就是一些这方面常用的指令。
:
q!
放弃任何改动而退出vi,也就是强行退出
:
w存档
:
wq存档并退出vi
:
x与wq的工作一样
:
zz与wq的工作一样删除正文
删除
删除或修改正文都是利用插入态,故此,下面所提及的指令只需在插入态内,直接选入指令即行。
x删除游标处字符(Character)
nx删除游标处後n个字符
nX删除游标处前n个字符
ndw删除游标处下n个单词(word)
dd删除整行
d$或D删除由游标至该行最末
u恢复前一次所做的删除
修改正文
当使用vi修改正文,加减字符时,就会采用另一组在插入态操作的指令。
—rchar由char代替游标处的字符
—Rtext〈Esc〉由text代替游标处的字符
—cwtext〈Esc〉由text取代游标处的单词
—Ctext〈Esc〉由text取代游标处至该行结尾处
—cc使整行空白,但保留游标位置,让你开始打入
—如删除指令一样,在指令前打入的数,表示执行该指令多少次。
正文模式检索
要检索文件,必需在指令态下进行。
所谓「模式」,就是一个特定字符串,其中可含空格符。
/str〈Return〉向前搜寻str直至文件结尾处
?
str〈Return〉往後搜寻str直至文件开首处
n同一方向上重复检索
N相反方向上重复检索
vi缠绕整个文件,不断检索,直至找到与模式相匹配的下一个出现。
其他如果要在vi执行期间,转到shell执行,使用惊叹号(!
)执行系指令,例如在vi期间,列出当前目录内容,可以打入:
!
If
另一方面,用户可以在主目录中创建.exrc环境文件,用set打入选项,每次调用vi时,就会读入.exrc中的指令与设置。
下面是.exrc环境文件的实例:
setwrapmarging=8
setshowmode
setautoindent
setnumber
备份命令:
tar(c)
tar是对非特权用户最易用和最可靠的实用程序(utility),从归档介质上保留和恢复文件,亦能从多文件归档中抽取单个文件。
tar归档使用文件和目录的相对或绝对路径名。
打入tar,即会显示所有变量选项;
如:
tar-{txruc}[0-9vfbkelmnopwAFLTP][tapefile][blocksize][tapesize]files...
KeyDeviceBlockSize(K)Tape
0/dev/rfd048ds918360No
1/dev/rfd148ds918360No
2/dev/rfd096ds15101200No
3/dev/rfd196ds15101200No
4/dev/rfd0135ds918720No
5/dev/rfd1135ds918720No
6/dev/rfd0135ds18181440No
7/dev/rfd1135ds18181440No
8/dev/rStp0200Yes
9/dev/rctmini200Yes
10/dev/rdsk/fp03d18720No
11/dev/rdsk/fp03h181440No
12/dev/rdsk/fp03v211020330No
其中:
“cv”是创建归档;
“cv#”用於来自/etc/default/tar的设备号#;
“rv”追加已有归档;
“uv”更新在已有归档上的文件;
“tv”显示归档内容表;
“xv”从归档中抽取文件;
“f”从指定文件中读入或写出;
“L”使tar跟随符号连接继续追查下去,默认情况下则会忽略符号连接。
例:
(1)要归档指定文件,而复盖盘上的已有数据,指令如下:
$cdpub
$tarcv8asciigreek(8为磁带机)
volumeendat1199k,blockfactor=5k
seek=0kaascii3k
seek=3kagreek1k
(2)要列出tar归纳的内容:
$tartv8
rwxrwxrwx201/501731Apr1100:
581997web50/WEB/srchbib.htm
rwxrwxrwx201/501002Apr1100:
581997web50/WEB/readinfo.htm
rwxrwxrwx201/501070Apr1100:
581997web50/WEB/stflag.gif
rwxrwxrwx201/5045Mar2201:
271997web50/WEB/cgi-bin/ILASPROF
rwxr-xr-x201/50136799Apr1004:
101998web50/WEB/cgi-bin/openhold
注意:
创建tar归档,使用相对路径名,否则,恢复另一系统就会盖写其他系统的文件。
如:
#tarcv8/etc/motd
#cd/tmp
#tarxv8
x/etc/motd,943bytes,2k
Df——显示硬盘空间使用情况
磁盘空间以块为单位进行分配,典型的块是512字节。
例:
#df-v
MountDirFilesystemblocksusedfree%used
//dev/root2123740990450