SHELL 基本命令汇总

1.ls 列出目录下的文件,不同类型的文件颜色不同,例如蓝色是文件夹,白色是文件

[root@restoretmp steph]# ls

file.html public_html  test

[root@restoretmp steph]#

参数:

ls -a 列出所有文件,包括隐藏文件

[root@restoretmp steph]# ls -a

.  ..  .bash_logout  .bash_profile  .bashrc  file.html public_html  test

[root@restoretmp steph]#

ls -l 列出所有者 size 文件权限 修改日期

ls -R 递归列出所有子目录的内容

 

2. cd  转移目录

cd /home/steph 将转移到/home/steph

cd .. 上移一个目录

cd 回到根目录

cd  dir 改变目录位置至d i r目录下。

cd  user  改变目录位置至用户的工作目录。

cd  .. 改变目录位置至当前目录的父目录。

cd  ../user 改变目录位置至相对路径 user 的目录下。

cd  /../.. 改变目录位置至绝对路径的目录位置下。

 

3. 建立新文件和文件夹

touch new-filename 建立新文件

mkdir new-directory 建立新目录

 

4.删除文件和目录

rm  -r filename 删除名为 filename的文件

rmdir foldername 删除名为foldername的目录

rm –r file? 删除文件名中有五个字符且前四个字符为file 的所有文件。

rm –r f* 删除文件名中以 f 为字首的所有文件。

 

5.修改文件夹权限

1. 改变文件或目录的读、写、执行权限

语法:chmod [-R] mode name

name :文件名或目录名。

mode: 38位数字或r w x的组合。r- read ()w - wri te ()x - execute (执行)u - user (当前用户)g - group(组) o - other(其他用户)

chmod  755  dir1对于目录dir1,设定成任何使用者皆有读取及执行的权利,但只有所有者可做修改。

chmod  700  file1 对于文件f i l e 1,设定只有所有者可以读、写和执行的权利。

chmod  u+x  file2 对于文件f i l e 2,增加当前用户可以执行的权利。

chmod  g+x  file3 对于文件f i l e 3,增加工作组使用者可执行的权利。

chmod  o-r  file4 对于文件f i l e 4,删除其他使用者可读取的权利。

   2.改变文件或目录的所有权

语法:chown [-R] 用户名 name

name:文件名或目录名。

例如

chown user file1 将文件 file1 改为用户user 所有。

chown -R user dir1 将目录 d i r 1及其子目录下面的所有文件改为用户user 所有。

 

7. 压缩和解压缩文件

gzip gunzip

压缩:

gzip  filename

文件即会被压缩,并被保存为 filename.gz

解压缩:

gunzip filename.gz

filename.gz 会被删除,而继之以 filename

可以通过命令man gip man gunzip获得命令的详细说明.

zip unzip

要使用 zip 来压缩文件,在 shell 提示下键入下面的命令:

zip -r filename.zip filesdir

在这个例子里,filename.zip 代表你创建的文件,filesdir 代表你想放置新 zip 文件的目录。-r 选项指定你想递归地(recursively)包括所有包括在 filesdir 目录中的文件。

要解压缩 zip 文件的内容,键入以下命令:

unzip filename.zip

你可以使用 zip 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:

zip -r filename.zip file1 file2 file3 /usr/work/school

上面的命令把 file1file2 file3、以及 /usr/work/school 目录的内容(假设这个目录存在)压缩起来,然后放入 filename.zip 文件中。

 

8.tar 把多个文件或目录打包成一个文件,或者把已经打包的文件展开

%tar cvf RMS RMStar 把目录打包成一个文件

%tar xvf RMStar 把打包的文件展开。

 

9.compress 把文件压缩成后缀为.Z的压缩文件  

%compress RMStar

uncompress 把后缀为.Z的压缩文件解压缩

%uncompress RMStar.Z

 

10.df -k 查看各文件系统剩余的空间,-k说明单位是千字节(kb)

11.使用 l o g o u t命令退出shell

12、更改帐号密码

语法:passwd

Old password: <输入旧密码>

New password: <输入新密码〉

Retype new password: <再输入一次密码>

13、联机帮助

语法: man 命令 

man ls

 

14、远程登录

语法:rlogin 主机名 [-l 用户名]

rlogin aa           远程登录到工作站 aa 中。

rlogin aa -l user   使用 user 帐号登录到工作站 aa 中。

语法:telnet 主机名 telnet IP地址

telnet aa

telnet 130.129.21.250

 

15、复制文件

语法: cp [-r] 源地址 目的地址

cp file1 file2 将文件 file1 复制成 f i l e 2

cp file1 dir1 将文件 file1 复制到目录 dir1 下,文件名仍为 f i l e 1

cp /tmp/file1 . 将目录 /tmp 下的文件 file1 复制到当前目录下,文件名仍为 f i l e 1

cp /tmp/file1 file2 将目录 /tmp 下的文件 file1 复制到当前目录下,文件名为f i l e 2

cp -r dir1 dir2 复制整个目录。

 

16、移动或更改文件、目录名称

语法:mv 源地址 目的地址

mv file1 dir1 将文件 f i l e 1移到目录 dir1 下,文件名仍为 f i l e 1

mv dir1 dir2 将目录 dir1 更改为目录 d i r 2

 

17、列出当前所在的目录位置

语法: pwd

18、查看文件内容

语法: cat文件名

cat file1以连续显示方式,查看文件名 file1 的内容。

 

19、分页查看文件内容

语法: more 文件名 cat 文件名 | more

more file1 以分页方式查看文件名 file1 的内容。

cat file1 | more 以分页方式查看文件名 file1 的内容。

 

20、查看目录所占磁盘容量

语法: du [-s] 目录

du dir1 显示目录 dir1 的总容量及其子目录的容量(KB 为单位)

du -s dir1 显示目录 dir1 的总容量。

 

21、检查自己所属的工作组名称

语法:groups

22  改变文件或目录工作组所有权

语法:chgrp [-R] 工作组名 name

n a m e:文件名或目录名

chgrp vlsi file1 将文件 file1 的工作组所有权改为 vlsi 工作组所有。

chgrp -R image dir1 将目录d i r 1及其子目录下面的所有文件,改为 image 工作组所有。

23 改变文件或目录的最后修改时间

语法:touch name

name:文件名或目录名。

24、文件的链接

同一文件,可拥有一个以上的名称,也就是把一个文件进行链接。

语法:ln 老文件名 新文件名

例如

ln file1 file2   将文件 f i l e 2链接至文件 f i l e 1

语法:ln -s  老文件名 新文件名

例如

ln -s file3 file4 将文件 file4 链接至文件f i l e 3

25、文件中字符串的查寻

语法:grep string file

grep abc file1      寻找文件f i l e 1中包含字符串 abc 所在行的文本内容。

 

26.查寻文件或命令的路径

语法:whereis command 显示命令的路径。

语法:which command 显示命令的路径,及使用者所定义的别名。

语法:whatis command 显示命令功能的摘要。

语法:find search-path -name filename -print      搜寻指定路径下某文件的路径

例如

find / -name file1 -print 自根目录下寻找文件 file1 的路径。

 

27、比较文件或目录的内容

语法:diff [-r] name1 name2

name1 name2:可同时为文件名或目录名。

diff file1 file2 比较文件file1 file2 内各行的不同之处。

diff -r dir1 dir2 比较目录 dir1 dir2 内各文件的不同之处。

28、文件打印输出

用户可用 .login 文件中的 setenv PRINTER来设定打印机名。

setenv PRINTER sp 设定自sp打印机打印资料。

一般文件的打印

语法:lpr [-P打印机名] 文件名

例如:

lpr file1 lpr -Psp file1      s p打印机打印文件 f i l e 1

语法:enscript [-P打印机名] 文件名

例如:

enscript file3 enscript -Psp file3      s p打印机打印文件 f i l e 3

29troff 文件的打印

语法:p t r o ff [-P打印机名] [-man][-ms] 文件名

例如:

ptroff -Psp -man /usr/man/man1/lpr1      troff 格式,自 sp 打印机打印lpr1 命令的使用说明。

打印机控制命令

1.检查打印机状态、打印作业顺序号和用户名

语法:lpq [-P打印机名]

lpq lpq -Psp      检查 sp 打印机的状态。

2. 删除打印机内的打印作业( 用户仅可删除自己的打印作业 )

语法:lprm [-P打印机名] 用户名 作业编号

lprm userlprm -Psp user      删除s p打印机中用户user 的打印作业,此时用户名必须为u s e r

lprm -Psp 456      删除 sp 打印机上编号为 456 的打印作业。

30、进程控制

1.查看系统中的进程

语法:ps [-aux]

例如:

p sps -x 查看系统中,属于自己的进程。

ps -au 查看系统中,所有用户的进程。

ps -aux 查看系统中,包含系统内部的及所有用户的进程。

2. 结束或终止进程

语法:kill [-9] PID

PID:利用 ps 命令所查出的进程号。

例如:

kill 456kill -9 456      终止进程号为456的进程。

3. 在后台执行进程的方式

语法:命令 &

cc file1.c &   将编译 file1.c 文件的工作置于后台执行。

语法:按下 C o n t r o l + Z键,暂停正在执行的进程。键入b g命令,将暂停的进程置于后台继续执行。

cc file2.c

^ Z

S t o p p e d

b g

4. 查看正在后台中执行的进程

语法:j o b s

5. 结束或终止后台中的进程

语法:kill  %n

n:利用j o b s命令查看出的后台作业号

kill  % 终止在后台中的第一个进程。

kill  %2 终止在后台中的第二个进程。

 

30shell变量

1. 查看shell变量的设定值

语法:set  查看所有shell变量的设定值。

语法:echo $变量名    显示指定的shell变量的设定值。

2. 设定shell变量

语法:set var = value

set term="vt100"      设定shell变量 termVT100型终端。

3. 删除shell变量

语法:unset var

unset PRINTER      删除shell变量 PRINTER 的设定值。

 

31、别名

1. 查看所定义的命令的别名

语法: alias 查看自己目前定义的所有命令,及所对应的别名。

语法: alias name 查看指定的name 命令的别名。

alias dir 查看别名dir所定义的命令。

ls -atl

2. 定义命令的别名

语法: alias name‘command line’

例如:

alias dir ‘ls -l’ 将命令 ls - l 定义别名为 d i r

3. 删除所定义的别名

语法: unalias name

例如:

unalias dir 删除别名 dir 的定义。

unalias *  删除所有别名的设定。

 

32、历史命令

1. 设定命令记录表的长度

语法: set history = n

set history = 40      设定命令记录表的长度为 40 (可记录执行过的前面 40 个命令)

2. 查看命令记录表的内容

语法: h i s t o r y

3. 使用命令记录表

语法: !!      重复执行前一个命令。

语法: ! n

n:命令记录表的命令编号。

语法: ! s t r i n g 重复前面执行过的以 string 为起始字符串的命令。

例如: ! c a t 重复前面执行过的以 cat 为起始字符串的命令。

4. 显示前一个命令的内容

语法: ! !p

5. 更改前一个命令的内容并执行

语法: ^oldstring ^newstring      将前一个命令中 oldstring 的部份改成 n e w s t r i n g并执

行。

例如:

find . -name file1.c -print

^ f i l e 1 . c ^ c o r e

find . -name core -print

 

33、管道命令的使用

语法:命令1 | 命令2      将命令1的执行结果送到命令2,做为命令2的输入。

例如:

ls -Rl | more      以分页方式列出当前目录及其子目录下所有文件的名称。

cat file1 | more      以分页方式列出文件 file1 的内容。

 

34、输入/输出控制

1. 标准输入的控制

语法:命令 < 文件 将文件做为命令的输入。

例如:

mail -s “mail test” 电子邮件地址 < file1     将文件file 当做信件的内容,主

题名称为 mail test,送给收信人。

2. 标准输出的控制

语法:命令 > 文件 将命令的执行结果送至指定的文件中。

例如:

ls -l > list      将执行 “ls -l” 命令的结果写入文件list 中。

语法:命令>! 文件 将命令的执行结果送至指定的文件中,若文件已经存在,则覆盖。

例如:

ls -lg >! list      将执行 “ls - lg” 命令的结果覆盖写入文件 list 中。

语法:命令 >& 文件 将命令执行时屏幕上所产生的任何信息写入指定的文件中。

例如:

cc file1.c >& error      将编译 file1.c 文件时所产生的任何信息写入文件 error 中。

语法:命令>> 文件 将命令执行的结果附加到指定的文件中。

ls - lag >> list      将执行 “ls - lag” 命令的结果附加到文件 list 中。

语法:命令 >>& 文件 将命令执行时屏幕上所产生的任何信息附加到指定的文件中。

cc file2.c >>& error      将编译 file2.c 文件时屏幕所产生的任何信息附加到文件error 中。

 

35、查看系统中的用户

语法: who  f i n g e r

语法: w

语法: finger 用户名 finger 用户名@域名

 改变用户名

语法: su 用户名

例如:

su user 进入用户user 的帐号。

p a s s w r o d : <输入用户user 的密码>

 

36、查看用户名

语法: who am i 查看登录时的用户名。

语法: w h o a m i 查看当前的用户名。若已执行过s u命令,则显示出此用户的用

户名。

37、查看当前系统上所有工作站的用户

语法: rusers

Ctrl+C>  结束

38、与某工作站上的用户交谈

语法: talk 用户名@主机名或talk 用户名@ I P地址

例如:

1) 可先利用 rusers 指令查看网络上的用户;

2) 假设自己的帐号是 ddd ,在工作站 aaa上使用,现在想要与 bbb 上的ccc 交谈。

talk ccc@bbb

可按Ct r l + C结束。

39、检查网络是否连通

语法:ping 主机名或ping IP地址

 

 

 

40vi

  vi是在工作站上广泛使用的编辑软件。对初学者而言,

  常因其特殊的使用方法,而不得其门而入;对已经在使用 vi 的使用者来说,也

  常见因对 vi 的不熟悉或不够了解,而无法发挥出 vi 强大的编辑能力,以下将

  简单介绍 vi 的使用方法。不必死记硬背,多实际操作几次就能记住常用的命令。

  进入vi

  直接执行 vi编辑程序即可:

  %vi test

  此刻屏幕上会出现 vi 的编辑屏幕,同时 vi 会将文件复制一份至内存中的缓冲区 (buffer) vi会保留在硬盘中的文件不变,而先对缓冲区的文件作编辑,编辑完成后,使用者可决定是否要取代原来旧有的文件。

  离开vi

  若在输入模式下,则先利用《ESC》进入指令模式,而后即可选用下列指令

  离开vi

  :q! 离开vi,并放弃刚在缓冲区内编辑的内容。

  :wq 将缓冲区内的资料写入硬盘中,并离开vi

  :ZZ wq

  :x wq

  :w 将缓冲区内的资料写入硬盘中,但并不离开vi

  :q 离开vi,若文件被修改过,则会被要求确认是否放弃修改的内容。

此指令可与:w 配合使用。

 

  vi 的操作模式

 

  vi 提供两种操作模式:输入模式(insert mode)和指令模式(command mode)

  。当使用者进入 vi 后,即处在指令模式下,此刻键入的任何字符都被视为

  指令。在此模式下可进行删除、修改等动作。若要输入资料,则需进入输入

  模式。

 

  输入模式

 

  如何进入输入模式

  a (append) 由光标之后加入资料。

  A 由该行之末加入资料。

  i (insert) 由光标之前加入资料。

  I 由该行之首加入资料。

  o (open) 新增一行于该行之下以供输入资料。

  O 新增一行于该行之上以供输入资料。

 

  如何离开输入模式

  《ESC 结束输入模式。

 

  指令模式

 

  光标的移动

  h 向左移一个字符。

  j 向上移一个字符。

  k 向下移一个字符。

  l 向右移一个字符。

  0 移至该行之首

  ?$ 移至该行之末。

  ^ 移至该行的第一个字符处。

  H 移至屏幕的第一列。

  M 移至屏幕的中间那列。

  L 移至屏幕的最后一列。

  G 移至该文件的最后一列。

  + 移至下一列的第一个字符处。

  - 移至上一列的第一个字符处。

  ( 移至该句之首。 (注一)

  ) 移至该句之末。

  { 移至该段落之首。 (注二)

  } 移至该段落之末。

  nG 移至该文件的第 n 列。

  n+ 移至光标所在位置之后的第 n 列。

  n- 移至光标所在位置之前的第 n 列。

  <Ctrl><g> 会显示该行的行号、文件名称、文件中最末行的行号、光标

  所在行号占总行号的百分比。

 

  注一:句子(sentence)vi中是指以『!』、『.』或『?』结束的一串字。

  注二:段落(paragraph)vi中是指以空白行隔开的文字。

 

  屏幕的移动

 

  <Ctrl><f> 屏幕往下卷一页。

  <Ctrl> 屏幕往上卷一页。

  <Ctrl><d> 屏幕往下卷半页。

  <Ctrl> 屏幕往上卷半页。

  <Ctrl><e> 屏幕往下卷一行。

  <Ctrl><y> 屏幕往上卷一行。

 

  删除、复制及修改指令介绍 (此单元较少使用)

 

  d(delete)c(change)y(yank)这一类的指令在 vi 中的指令格式为:

  Operator + Scope = command

  (运算子) (范围)

  运算子:

  d 删除指令。删除资料,但会将删除资料复制到内存缓冲区。

  y 将资料(字组、行列、句子或段落)复制到缓冲区。

  p 放置(put)指令,与 d y 配和使用。可将最后deleteyank的资

  料放置于光标所在位置的行列下。

  c 修改(change)指令,类似deleteinsert的组合。删除一个词组、句

  子等的资料,并插入新输入的资料。

 

  范围:

  e 由光标所在位置至该字符串的最后一个字符。

  w 由光标所在位置至下一个字符串的第一个字符。

  b 由光标所在位置至前一个字符串的第一个字符。

  ?$ 由光标所在位置至该行的最后一个字符。

  0 由光标所在位置至该行的第一个字符。

  ) 由光标所在位置至下一个句子的第一个字符。

  ( 由光标所在位置至该句子的第一个字符。

  { 由光标所在位置至该段落的最后一个字符。

  } 由光标所在位置至该段落的第一个字符。

 

  整行动作

  dd 删除整行。

  D 以行为单位,删除光标后的所有字符。

  cc 修改整行的内容。

  yy yank整行,使光标所在该行复制到内存缓冲区。

 

  删除与修改

 

  x 删除光标所在该字符。

  X 删除光标所在之前一字符。

  dd 删除光标所在该行。

  r 用接于此指令之后的字符取代(replace)光标所在字符。

  如: ra 将光标所在字符以 a 取代之。

  R 进入取代状态,直到《ESC》为止。

  s 删除光标所在的字符,并进入输入模式直到《ESC》。

  S 删除光标所在的该行资料,并进入输入模式直到《ESC》。

 

  移动与复制

 

  利用 delete put 指令可完成资料移动的目的。

  利用 yank put 指令可完成资料复制的目的。

  yank delete 可将指定的资料复制到内存缓冲区,而通过 put 指令

  可将缓冲区内的资料复制到屏幕上。

  例:

  移动一行 .在该行执行 dd

  .光标移至目的地

  .执行 p

  复制一行 .在该行执行 yy

  .光标移至目的地

  .执行 p

 

  指令重复

 

  在指令模式中,可在指令前面加入一数字 n,则此指令动作会重复执行 n

  次。

  例:

  删除10 10dd

  复制10 10yy

  .光标移至目的地

  .p

  指标往下移10 10j

  取消前一动作(Undo)

  即复原执行上一指令前的内容。

  u 恢复最后一个指令之前的结果。

  U 恢复光标该行的所有改变。

  查找

  vi中可查找某一字符串,使光标移至该处。

  /字符串 往光标之后寻找该字符串。

  ?字符串 往光标之前寻找该字符串。

  n 往下继续寻找下一个相同的字符串。

  N 往上继续寻找下一个相同的字符串。

  资料的连接

  J 句子的连接。将光标所在的下一行连接至光标该行的后面。

  若某行资料太长亦可将其分成两行,只要将光标移至分开点,进入输入模式

  (可利用 ai等指令)再按《Enter》即可。

  环境的设定

  :set nu 设定资料的行号。

  :set nonu 取消行号设定。

  :set ai 自动内缩。

  :set noai 取消自动内缩。

  自动内缩(automatic indentation)

  在编辑文件或程序时,有时会遇到需要内缩的状况,『:set ai』即提供自

  动内缩的功能,用下例解释:

  .vi test

  .(进入编辑屏幕后)

  this is the test for auto indent

  《Tabstart indent ← set ai (设自动内缩)

  《Tabdata

  《Tabdata

  《Tabdata ← set noai (取消自动内缩)

  the end of auto indent.

  .注:<Ctrl><d> 可删除《Tab》字符。

  ex指令

  读写资料

  :w 将缓冲区的资料写入硬盘中。

  :10,20w test 将第10行至第20行的资料写入test文件。

  :10,20w>>test 将第10行至第20行的资料加在test文件之后。

r test test文件的资料读入编辑缓冲区的最后。

 

  删除、复制及移动

  :10,20d 删除第10行至第20行的资料。

  :10d 删除第10行的资料。

  :%d 删除整个编辑缓冲区。

  :10,20co30 将第10行至第20行的资料复制至第30行之后。

10,20mo30 将第10行至第20行的资料移动至第30行之后。

 

  字符串搜寻与取代

  s(substitute)指令可查找某行列范围。

  g(global)指令则可查找整个编辑缓冲区的资料。

  s指令以第一个满足该条件的字符串为其取代的对象,若该行有数个满足该条

  件的字符串,也仅能取代第一个,若想取代所有的字符串则需加上g参数。

  :1,?$s/old/new/g 将文件中所有的『old』改成『new』。

  :10,20s/^/ / 将第10行至第20行资料的最前面插入5个空白。

  :%s/old/new/g 将编辑缓冲区中所有的『old』改成『new』。

  恢复编辑时被中断的文件

  在编辑过程中,若系统当掉或连线中断,而缓冲区的资料并还未

  被写回硬盘时,当再次回到系统,执行下列指令即可回复中断前

  的文件内容。

  %vi -r filename

  编辑多个文件

  vi还提供同时编辑多个文件的功能,方法如下:

  %vi file1 file2 ..

  当第一个文件编辑完成后,可利用『:w』将该缓冲区存档,而后

再利用 『:n』载入下一个文件。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值