前Windows 时代最讨厌DOS系统了,不得已学了几句基本的;后来在CMD上面偶尔用用。谁想到现在还要学linux。5 a: j5 M* A" q$ [, Y6 U) M2 p
相信比我了解少的还大有人在。为了激活、root、写号、安装软件,照猫画虎地、勉为其难地、跌跌撞撞地自学自摸,厚着脸皮到处询问,最后还是放狗搜索。请教清风、xxrake等大侠有否linux的自学ABC,他们告诉我居然也是放狗!3 e# ]! s& T1 C+ M, L m
把自己找到的linux常用命令贴给各位参考。& `% ]5 Z$ I! t4 s6 t/ c
; J. \( T! C! |0 P0 ?/ k. R& Q- t$ N4 F7 N2 J& Q" m
Linux 入门常用命令6 M& J% T1 o2 j. c& l* J6 `
6 M Q# v+ Y) ~* F2003-03-06 15:29. a! N9 ?) P( g# P( I
作者:夏智敏
7 n8 U7 r" j- ]5 C! A1 E4 N出处:天极软件频道9 ?! `' G! C3 E3 J) L, \, O, ^
责任编辑:mage
+ H# p; D' b3 Z; D: e
) \$ t) i# d: H; i! a) a, S& Q
7 S, p6 x+ F6 nLinux进入与退出系统 3 r1 H) P: `3 A" s- q
进入Linux系统:! x5 W9 ], J4 M# Y$ }8 {
必须要输入用户的账号,在系统安装过程中可以创建以下两种帐号:* _% `, E# g( m% A8 O% I
1.root--超级用户帐号(系统管理员),使用这个帐号可以在系统中做任何事情。
( o. i/ q& c& Q 2.普通用户--这个帐号供普通用户使用,可以进行有限的操作。
3 v! o$ @0 Y. q9 h" n* f 一般的Linux使用者均为普通用户,而系统管理员一般使用超级用户帐号完成一些系统管理的工作。如果只需要完成一些由普通帐号就能完成的任务,建议不要使用超级用户帐号,以免无意中破坏系统。影响系统的正常运行。
5 ] H% E5 R, V 用户登录分两步:第一步,输入用户的登录名,系统根据该登录名识别用户;第二步,输入用户的口令,该口令是用户自己设置的一个字符串,对其他用户是保密的,是在登录时系统用来辨别真假用户的关键字。6 |" v( H( k8 n! d, z4 n
当用户正确地输入用户名和口令后,就能合法地进入系统。屏幕显示:
* F! i. {+ C" ^9 Z7 Z[root@loclhost /root] # 9 D, S. y# l- J' X# V$ y' \! I+ q
: b" E6 b: h; K& E) S! h这时就可以对系统做各种操作了。注意超级用户的提示符是“#”,其他用户的提示符是“$”。/ |' n \" F0 _
" K' a1 g+ @2 Z2 z9 m( S: v7 w4 a修改口令# O. I/ x) U2 P2 C* e! x" M
为了更好的保护用户帐号的安全,Linux允许用户随时修改自己的口令,修改口令的命令是passwd,它将提示用户输入旧口令和新口令,之后还要求用户再次确认新口令,以避免用户无意中按错键。如果用户忘记了口令,可以向系统管理员申请为自己重新设置一个。 y* g6 a, O; ^- @/ [
( y0 r( r7 S6 l4 R4 ^
虚拟控制台+ S& o1 C) L8 H" y8 C0 _
Linux是一个真正的多用户操作系统,它可以同时接受多个用户登录。Linux还允许一个用户进行多次登录,这是因为Linux和UNIX一样,提供了虚拟控制台的访问方式,允许用户在同一时间从控制台进行多次登录。虚拟控制台的选择可以通过按下Alt键和一个功能键来实现,通常使用F1-F6例如,用户登录后,按一下Alt-F2键,用户又可以看到"login:"提示符,说明用户看到了第二个虚拟控制台。然后只需按Alt-F1键,就可以回到第一个虚拟控制台。 一个新安装的Linux系统默认允许用户使用Alt-F1到Alt-F6键来访问前六个虚拟控制台。虚拟控制台可使用户同时在多个控制台上工作,真正体现Linux系统多用户的特性。用户可以在某一虚拟控制台上进行的工作尚未结束时,切换到另一虚拟控制台开始另一项工作。0 L$ k7 w( ]% a: x# u, W" ]& ~- d
R: D/ A8 {( P; u, o5 i D
退出系统! g0 V# `) {; Q1 q! i! E i" Q
不论是超级用户,还是普通用户,需要退出系统时,在shell提示符下,键入exit命令即可。
9 v& x: i1 p! m3 k( u9 i. P: o1 \% j* ]1 C* _0 `
Linux文件的复制、删除和移动命令
+ |" m& x) J" n; [% ?cp命令
- z0 u0 m, |. H5 @该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的copy命令一样,功能十分强大。 ! X! l( m4 C A( {9 r
语法: cp [选项] 源文件或目录 目标文件或目录 ) H: p/ w" h' O, A
说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。5 ?1 T& T0 w U* b$ `
该命令的各选项含义如下:4 p% ~1 ]; U- q1 G4 V) g
6 I+ N5 n3 j* ?5 i& R* M4 X- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
+ M/ X3 l8 f8 l- W: ?, @. P1 a6 S; d
- d 拷贝时保留链接。
% u2 p$ [3 q) a& ]: T/ J6 r" M& {9 @3 C9 G0 }! _" Z. H2 Y. S5 [
- f 删除已经存在的目标文件而不提示。7 q- H8 ]2 c* e' l+ I( f
0 O9 ~" S9 i+ k& u, M- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。 - k& |. e0 S) x" ^& d# p
! z0 b9 R- V/ _" }. Z+ M
- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。 : Q) d/ n! H* G" {5 M
% H9 B3 g7 V4 S! f" Z
- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。 Y. m6 N: _# A( ]$ h
. j9 }: x; Q2 S- o& i/ C( ^
- l 不作拷贝,只是链接文件。
& K! I. }8 {' z4 W N8 ~9 a5 \: W, h+ u
需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令拷贝文件后,这个文件就会被新源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。
" A, y6 Y' ^1 c
+ e- o: p9 G$ r3 ]0 B# Gmv命令
. r- C* i. W9 H2 ~0 Q- n% g用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。该命令如同MSDOS下的ren和move的组合。( L3 F1 _* @4 Z; m& @
语法:mv [选项] 源文件或目录 目标文件或目录 - n) [4 L, c" J6 { C
说明:视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。
$ L4 P+ h5 \! `& |# j/ I+ f
/ T: M- n4 H* n+ v; ^命令中各选项的含义为:# {) U3 K3 M; `7 e
$ R; a3 ]1 L8 l3 y* W8 c9 \# c
- I 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。& | @) M) j3 s c/ R- x+ N$ f
2 q6 m6 r$ u5 B$ j- X& @& X: K+ O- f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。
' [. C2 m- S8 J' Y7 @9 J2 A
: c1 u5 P, ?. j. P" N如果所给目标文件(不是目录)已存在,此时该文件的内容将被新文件覆盖。为防止用户用mv命令破坏另一个文件,使用mv命令移动文件时,最好使用i选项。
9 `/ d/ g! }) I6 E- V# X4 X r$ o5 S0 P! ]1 b) x8 l( w
3 f; P1 J: j* M3 f/ `rm命令' P; a. p, ] _1 Q' V M
2 J- t" C8 T4 a& ~$ Z2 q6 b5 B+ l
用户可以用rm命令删除不需要的文件。该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是断开了链接,原文件保持不变。5 p/ Y$ ^ ]9 I6 \7 ~
rm命令的一般形式为:* F6 n3 c1 u: q: J7 o
rm [选项] 文件…
& Y4 H, n5 g; B' X如果没有使用- r选项,则rm不会删除目录。 6 u8 S2 Y# [2 B% R
该命令的各选项含义如下:) F- k. C" P+ Q* F
u8 u! x! ]8 _1 O f' L
- f 忽略不存在的文件,从不给出提示。 ! @; \# m# j" l( A; I) L* T
9 { K! h, n" q$ z+ ]; |! n
- r 指示rm将参数中列出的全部目录和子目录均递归地删除。4 ]0 ?$ L7 |. R: \/ u
' n7 _0 [5 b2 o9 S. g3 K0 s% f2 G# u- i 进行交互式删除。
. F1 K8 ?: f% l. W8 b3 G7 e& X0 @5 X4 w; k
使用rm命令要小心。因为一旦文件被删除,它是不能被恢复的。了防止这种情况的发生,可以使用i选项来逐个确认要删除的文件。如果用户输入y,文件将被删除。如果输入任何其他东西,文件则不会删除。
9 d& m( f* h: D1 p3 Y! b( P! l) o; ]- r' k4 E8 |! p
Linux目录的创建与删除命令 & C: d) L. u2 M# B( c
mkdir命令2 F c; j% s5 {# ^( }+ F/ i$ v
功能:创建一个目录(类似MSDOS下的md命令)。
, q7 k. C' c: {4 ?' Z4 `1 B! ]% l9 J语法:mkdir [选项] dir-name
6 U7 E) G: ]( E4 Z6 [说明:该命令创建由dir-name命名的目录。要求创建目录的用户在当前目录中(dir-name的父目录中)具有写权限,并且dirname不能是当前目录中已有的目录或 文件名称。
+ y: f3 O6 b2 q. B! N5 h$ N% D' p' r
命令中各选项的含义为:8 d4 x1 E9 }$ h6 s
- m 对新建目录设置存取权限。也可以用chmod命令设置。9 S& G. `5 K8 g7 \$ f1 G% K
- p 可以是一个路径名称。此时若路径中的某些目录尚不存在, 加上此选项后, 系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
- c5 F1 C5 I5 w% o+ U; [/ k6 ^, L1 d3 h, R3 K
rmdir 命令" U; c2 k" _( _' M* }. e
功能:删除空目录。" i# ^" b6 w- N0 O" f3 [: Q
语法:rmdir [选项] dir-name $ Q0 O; i4 }1 U, B; U) n6 g O" D
说明:dir-name表示目录名。该命令从一个目录中删除一个或多个子目录项。需要 特别注意的是,一个目录被删除之前必须是空的。rm - r dir命令可代替 rmdir,但是有危险性。删除某目录时也必须具有对父目录的写权限。
9 n: x+ R [- ~3 h: a( N, W
! Z7 N8 v( Q' G: ]: L& s s% M命令中各选项的含义为:8 ?1 ^; X. L7 V
- p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应 的信息。
7 z3 l. h5 ~4 F+ }7 y u
; b3 W. `& \( ~5 tcd 命令 w% ^# K3 D; s$ h0 O
功能:改变工作目录。' j( W! X& g% o7 d# R
语法:cd [directory]
: c1 o1 Z/ G5 C% O* k7 s" J. q说明:该命令将当前目录改变至directory所指定的目录。若没有指定directory, 则回到用户的主目录。为了改变到指定目录,用户必须拥有对指定目录的执行和读 权限。 , p5 Q) D0 k9 h. v6 E
该命令可以使用通配符(通配符含义请参见第十章)。 ; K3 ]8 u( h* q) k0 Z! [
. j: t, E& t+ [' y
pwd 命令# @9 X! ?) ?8 N! c3 p0 O
在Linux层次目录结构中,用户可以在被授权的任意目录下利用mkdir命令创建新目录,也可以利用cd命令从一个目录转换到另一个目录。然而,没有提示符来告知用 户目前处于哪一个目录中。要想知道当前所处的目录,可以使用pwd命令,该命令显示整个路径名。9 H. j+ M, N4 S) j4 g2 Y
语法:pwd
0 ~5 g+ \" m# l2 Z8 ^4 G% S5 u说明:此命令显示出当前工作目录的绝对路径。0 F& I7 t4 s1 X0 K1 H, F: P. J; Z% a
0 h$ d: H2 O y" L
$ o% r& A2 ~7 _3 } l6 h
ls 命令, k9 _" ]( C" C7 V) q) |4 P
ls是英文单词list的简写,其功能为列出目录的内容。这是用户最常用的一个命令之一,因为用户需要不时地查看某个目录的内容。该命令类似于DOS下的dir命令。' n) b, Q. U( A# r: m1 {9 o
语法:ls [选项] [目录或是文件] % c4 N' S' O* ~; N
对于每个目录,该命令将列出其中的所有子目录与文件。对于每个文件,ls将输出 其文件名以及所要求的其他信息。默认情况下,输出条目按字母顺序排序。当未给出目录名或是文件名时,就显示当前目录的信息。
$ B o3 G$ F4 ^. t' a9 \, i7 r3 U命令中各选项的含义如下:5 x- h$ m. f9 F4 a8 ?0 K
- a 显示指定目录下所有子目录与文件,包括隐藏文件。 2 N2 O; h% r c5 Y1 | [: @
- A 显示指定目录下所有子目录与文件,包括隐藏文件。但不列出“.”和 “..”。 S6 c: c; [ ]: M
- b 对文件名中的不可显示字符用八进制逃逸字符显示。
0 @+ N/ {( Y" j, a, s0 {- c 按文件的修改时间排序。
: p* o7 {1 P1 b# N- C 分成多列显示各项。 M: U1 r' i ?" ~. k( T \
- d 如果参数是目录,只显示其名称而不显示其下的各文件。往往与l选项一起使 用,以得到目录的详细信息。. s7 x' P R9 e1 m1 t
- f 不排序。该选项将使lts选项失效,并使aU选项有效。8 I9 F; G' ?( @! j
- F 在目录名后面标记“/”,可执行文件后面标记“*”,符号链接后面标记 “@”,管道(或FIFO)后面标记“|”,socket文件后面标记“=”。
( n9 n0 k+ U8 ?- i 在输出的第一列显示文件的i节点号。
/ N- k4 X7 ?; ?/ I2 I& q- l 以长格式来显示文件的详细信息。这个选项最常用。% c2 c( Z; R9 N8 ^
每行列出的信息依次是: 文件类型与权限 链接数 文件属主 文件属组 文件大小 建立或最近修改的时间 名字 # v% }( X. f3 P2 z
对于符号链接文件,显示的文件名之后有“—〉”和引用文件路径名。
' \4 a$ G3 N$ A! F8 ]* U对于设备文件,其“文件大小”字段显示主、次设备号,而不是文件大小。
* E! A: c' k$ r2 s目录中的总块数显示在长格式列表的开头,其中包含间接块。
4 k3 ]" T7 t+ u9 q3 A- L 若指定的名称为一个符号链接文件,则显示链接所指向的文件。6 {. C% X' l4 R- S! \/ O
- m 输出按字符流格式,文件跨页显示,以逗号分开。
4 j; S$ Q$ G: O1 L L; [6 N3 |8 b/ J- n 输出格式与l选项相同,只不过在输出中文件属主和属组是用相应的UID号和 GID号来表示,而不是实际的名称。; v! R g& H$ U2 T; P: j# [
- o 与l选项相同,只是不显示拥有者信息。9 A/ a3 ~) m4 O1 I4 z8 B' J
- p 在目录后面加一个“/”。
: q; V4 r2 G' m9 g A6 d# R. X- q 将文件名中的不可显示字符用“?”代替。
" J) U6 {) {4 m# ^- r 按字母逆序或最早优先的顺序显示输出结果。 : K! m" h1 j' \4 R9 C
- R 递归式地显示指定目录的各个子目录中的文件。 ; H7 O( w( F; B
- s 给出每个目录项所用的块数,包括间接块。
3 T# e# T/ J. Z Y. R: W' s/ |1 X- t 显示时按修改时间(最近优先)而不是按名字排序。若文件修改时间相同,则 按字典顺序。修改时间取决于是否使用了c或u选顶。缺省的时间标记是最后一次修 改时间。
% R4 q* M) z9 b- u 显示时按文件上次存取的时间(最近优先)而不是按名字排序。即将-t的时间 标记修改为最后一次访问的时间。) E- t4 |. q* _8 v9 |: @
- x 按行显示出各排序项的信息。" A( z# M9 x$ V
用ls - l命令显示的信息中,开头是由10个字符构成的字符串,其中第一个字符表示文件类型,它可以是下述类型之一:9 g( _7 d, C* }# n, _
- 普通文件+ X# C/ n4 B; W
d 目录
6 F5 _: I z+ Q p q# T% Y0 Jl 符号链接
6 h+ ?! Y2 H+ u, P& U* Xb 块设备文件
/ Y4 l: o1 G+ a5 ^1 K5 `c 字符设备文件0 g0 R3 B; ?/ d
后面的9个字符表示文件的访问权限,分为3组,每组3位。
0 o& n$ T7 D2 l9 Q1 z第一组表示文件属主的权限,第二组表示同组用户的权限,第三组表示其他用户的权限。每一组的三个字 符分别表示对文件的读、写和执行权限。 . l5 L" m {( A4 \$ B- n; v4 M
各权限如下所示:
, J! E; e. t( ur 读 3 K% F5 v( N3 T4 ^7 I4 J
w 写
2 p5 f1 Q9 C+ k6 T ~x 执行。对于目录,表示进入权限。
" h7 S" F8 [+ b: I% h1 ^4 d2 u3 Gs 当文件被执行时,把该文件的UID或GID赋予执行进程的UID(用户ID)或GID(组 ID)。
( n2 j! @8 P3 Qt 设置标志位(留在内存,不被换出)。如果该文件是目录,在该目录中的文件只能被超级用户、目录拥有者或文件属主删除。如果它是可执行文件,在该文件执行 后,指向其正文段的指针仍留在内存。这样再次执行它时,系统就能更快地装入该文件。
: R6 f/ ~7 M- u, u; }8 H$ j5 u
' k( x( ?& O- D8 w( M) n- T: f2 `1 a+ Z
Linux备份与压缩命令
8 ]$ C* I1 y B4 m5 btar命令- E5 ?4 s; H, D
tar可以为文件和目录创建档案。利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案,如软盘。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。Linux上的tar是GNU版本的。
2 L% E. i. e2 p- I: M: [$ `+ Q语法:tar [主选项+辅选项] 文件或者目录) c" c6 ?# K$ r+ h* t4 c: _+ q, x5 J" d
使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。' J, ?6 l' w5 H- S$ r8 ]
主选项:
1 H0 _9 ?& d$ L, D# A+ ~1 @9 Dc 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。" ?4 R9 _1 L- h8 t$ N; Y& U3 k' R
r 把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
/ ]2 x( `* r/ X( q' [' b Jt 列出档案文件的内容,查看已经备份了哪些文件。6 q0 D' b9 c' g8 a$ ~
u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。: J U$ I3 y: K( W/ E
x 从档案文件中释放文件。/ [, ^* F% }/ C/ P3 b
辅助选项:0 N! @* C( h* B/ k
b 该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20(20*512 bytes)。
/ T, g% l }9 u5 ^f 使用档案文件或设备,这个选项通常是必选的。
2 D, O% z, @; Z& ?2 g7 sk 保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。- t7 K( f. ?% K7 T5 u7 s7 |+ V
m 在还原文件时,把所有文件的修改时间设定为现在。% ]. B, L7 K+ ?" D8 [& U' M R1 Y
M 创建多卷的档案文件,以便在几个磁盘中存放。
5 P' `/ ?& f' A. l5 Hv 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
2 @' v8 J; b. Q8 q: v! k0 x; jw 每一步都要求确认。- B0 x3 U2 n* q9 V2 h" z# G3 n
z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。 & H' r. j% |* ?% M
! a) k+ C! m; y/ @* A
4 c r# R: S* ^' Q3 [& l! Dgzip命令) V* a$ n$ c8 ^: p
减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。" B7 ?+ B- Z. J7 U$ @ ?* |
语法:gzip [选项] 压缩(解压缩)的文件名( F1 ]% F1 a: |" C* `
各选项的含义:
9 p+ j1 S+ U- Q6 n7 i' Z& D4 q- ?-c 将输出写到标准输出上,并保留原有文件。
5 u8 B3 n9 ^: Q5 o ^8 h7 `$ b9 i-d 将压缩文件解压。8 {& c1 M1 C' ~5 T/ h! m. x: a
-l 对每个压缩文件,显示下列字段:, G3 H% a4 s7 Q5 m+ D, ?6 \
压缩文件的大小
, e! ]7 X( H1 m. ~未压缩文件的大小4 m9 K% @! L. K8 |
压缩比! B) v/ Q8 w! n4 `1 e) c
未压缩文件的名字
; Y' x) W" ^! p6 h. y% t-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
4 U; x% d O. U a/ U" r-t 测试,检查压缩文件是否完整。5 Q/ g% u y1 W I/ ^- W ? U# S3 W6 R7 d
-v 对每一个压缩和解压的文件,显示文件名和压缩比。
$ x: e1 @3 N# F9 S- r, O3 Z: l-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。
( }( ?. V7 r6 p- N3 @$ e# Y
5 f3 E# _" r: w: l4 H1 Y' W# Z* n) F5 o7 E
Linux文本处理命令
6 H1 i) [* u. o' |. j" Esort命令
# p& Z) ]% f+ [- T& gsort命令的功能是对文件中的各行进行排序。sort命令有许多非常实用的选项,这些选项最初是用来对数据库格式的文件内容进行各种排序操作的。实际上,sort命令可以被认为是一个非常强大的数据管理工具,用来管理内容类似数据库记录的文件。
; j, v" R. z S2 @$ }4 k3 w X) q& [& ]0 |
Sort命令将逐行对文件中的内容进行排序,如果两行的首字符相同,该命令将继续比较这两行的下一字符,如果还相同,将继续进行比较。
& Q3 X8 J' ~* S( v3 T/ \3 k语法:
! j) L3 I. S3 T0 }6 F0 Asort [选项] 文件4 ]+ w# n- R+ ^
说明:sort命令对指定文件中所有的行进行排序,并将结果显示在标准输出上。如不指定输入文件或使用“- ”,则表示排序内容来自标准输入。
! P9 a: Z$ A+ ?; u2 K" _sort排序是根据从输入行抽取的一个或多个关键字进行比较来完成的。排序关键字定义了用来排序的最小的字符序列。缺省情况下以整行为关键字按ASCII字符顺序进行排序。8 g$ U( D" u% U
改变缺省设置的选项主要有:
8 m/ ?% V B* K5 [6 F, T; p; D- m 若给定文件已排好序,合并文件。* L; k- w) U* @1 W' s: E2 V
- c 检查给定文件是否已排好序,如果它们没有都排好序,则打印一个出错信息,并以状态值1退出。
5 ~ {4 U/ C2 _- u 对排序后认为相同的行只留其中一行。 % ~4 T. k) J0 R8 i1 e" U g
- o 输出文件 将排序输出写到输出文件中而不是标准输出,如果输出文件是输入文件之一,sort先将该文件的内容写入一个临时文件,然后再排序和写输出结果。/ Y! A$ E4 ]) B, e- s% j
改变缺省排序规则的选项主要有:
k3 U8 @0 ~, Z5 w- d 按字典顺序排序,比较时仅字母、数字、空格和制表符有意义。+ ]8 n1 j h3 X0 o6 c
- f 将小写字母与大写字母同等对待。3 X% b% B& [( n+ M8 \( R$ M: L3 K
- I 忽略非打印字符。 & j8 N }. r8 R& t* k6 Z) u
- M 作为月份比较:“JAN”<“FEB”
5 j! t' {9 m8 |/ P- r 按逆序输出排序结果。
" `" L8 ~/ ]# m2 Z" e9 [( Q+posl - pos2 指定一个或几个字段作为排序关键字,字段位置从posl开始,到pos2为止(包括posl,不包括pos2)。如不指定pos2,则关键字为从posl到行尾。字段和字符的位置从0开始。
7 A7 ?* V: w; E4 M- b 在每行中寻找排序关键字时忽略前导的空白(空格和制表符)。( s) N. T t4 q! d) Y
- t separator 指定字符separator作为字段分隔符。* o+ j: Z7 L9 o5 C/ X
4 n! `$ E" J" S1 U/ L" i( i5 c$ K7 L0 n+ ]
uniq命令
5 @: x1 q. m/ G8 E* F7 m文件经过处理后在它的输出文件中可能会出现重复的行。例如,使用cat命令将两个文件合并后,再使用sort命令进行排序,就可能出现重复行。这时可以使用uniq命令将这些重复行从输出文件中删除,只留下每条记录的唯一样本。
$ V% J1 b4 B( |( B语法:
m5 J0 v- t4 y* [uniq [选项] 文件
! D# f; x# S6 u0 P4 z% B& T说明:这个命令读取输入文件,并比较相邻的行。在正常情况下,第二个及以后更多个重复行将被删去,行比较是根据所用字符集的排序序列进行的。该命令加工后的结果写到输出文件中。输入文件和输出文件必须不同。如果输入文件用“- ”表示,则从标准输入读取。
9 |. _" X% l: S+ H( \该命令各选项含义如下:% c: ?! h2 r; U- g U5 [
- c 显示输出中,在每行行首加上本行在文件中出现的次数。它可取代- u和- d选项。) G" E$ _+ |; x$ h: {5 g5 w
- d 只显示重复行。
5 B1 c5 S. C6 v- u 只显示文件中不重复的各行。! p4 z1 P' E; p" Y
- n 前n个字段与每个字段前的空白一起被忽略。一个字段是一个非空格、非制表符的字符串,彼此由制表符和空格隔开(字段从0开始编号)。
0 j. F1 j# L$ {! o9 D w+n 前n个字符被忽略,之前的字符被跳过(字符从0开始编号)。5 C! l' `! V7 R: o0 G
- f n 与- n相同,这里n是字段数。
% Z6 m6 X, z O7 }9 b- s n 与+n相同,这里n是字符数。
: ?! W) x* ?" W/ \, |$ K& y+ I( S- Q5 `( S
7 s- q! p. s# k
unzip命令
( M) @8 ?* u# w- H用MS Windows下的压缩软件winzip压缩的文件如何在Linux系统下展开呢?可以用unzip命令,该命令用于解扩展名为.zip的压缩文件。4 R9 n8 U, b& f; k# J
语法:unzip [选项] 压缩文件名.zip
; d7 v* l! d& u( X4 k3 W$ e各选项的含义分别为:$ C2 C1 z; I. Y
-x 文件列表 解压缩文件,但不包括指定的file文件。
- m4 S5 z h3 Z8 _-v 查看压缩文件目录,但不解压。- M( \* g; T! C& o
-t 测试文件有无损坏,但不解压。
& f' b# a( k! r# {2 j1 [8 W-d 目录 把压缩文件解到指定目录下。
$ V. B; G) S( b-z 只显示压缩文件的注解。
6 V( w! W. U7 j-n 不覆盖已经存在的文件。3 y$ ]+ ]; `. ?: f" f
-o 覆盖已存在的文件且不要求用户确认。
7 ~& V: B" A& G" y+ ]( ~-j 不重建文档的目录结构,把所有文件解压到同一目录下。# K" |6 |0 v2 Y. V0 {- g8 q
1 N) S) c! J) U; Z% `
/ f% ~% f9 Z k4 c
! _/ a- F2 L: k7 u6 J& `/ Z$ ?在Linux环境下运行DOS命令
* Y. }, [, W: } f3 Y4 l8 L a' O# C
Linux系统提供了一组称为mtools的可移植工具,可以让用户轻松地从标准的DOS软盘上读、写文件和目录。它们对DOS和Linux环境之间交换文件非常有用。它们是不具备共同的文件系统格式的系统之间交换文件的有力手段。对于一个MSDOS的软盘,只要把软盘放在软驱中,就可以利用mtools提供的命令来访问软盘上的文件。
7 o4 p2 @$ t$ [2 Y" h# Pmtools的主要命令如下:
9 E0 h. g2 A* {6 D Lmcd 目录名 改变MSDOS目录;
0 Y+ z0 J8 F1 l. n( A, F+ N$ I, e0 U/ Lmcopy 源文件 目标文件 在MSDOS和Unix之间复制文件; E0 j: c% `6 x
mdel 文件名 删除MSDOS文件;% R% r; v& o$ Z
mdir 目录名 显示MSDOS目录;# l( }5 m& G# ?6 U
mformat 驱动器号 在低级格式化的软盘上创建MSDOS文件系统;
3 G& E- c& U4 I; y' C7 ]7 Wrnlabel 驱动器号 产生MSDOS卷标;, B8 e" P, Z: f
mmd 目录名 建立MSDOS目录;' m: N; F* ? F# e, d, S. a+ j
mrd 目录名 删除MSDOS目录;4 Z' d1 y0 Y" ~" q' p
mren 源文件 目标文件 重新命名已存在的MSDOS文件;; ~# K# r. j7 m6 B6 O# p& A
mtype 文件名 显示MSDOS文件的内容。# ?( r1 C& C' F$ M z2 |8 g) `
提示:这些命令和对应的MSDOS命令非常相似。7 [! {# J6 q3 V: b0 ?
Y# y0 D# Z! _% T
5 Q$ b( c9 c) p8 dLinux改变文件或目录的访问权限命令 . _. {: ]* S8 Q1 }
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。 ( _" g B; I1 C. e, @& h% A+ y
8 @" I% w3 L `; { r* ?8 O+ K& R! L: N 文件或目录的访问权限分为只读,只写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作。可执行权限表示允许将该文件作为一个程序执行。文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改。用户也可根据需要把访问权限设置为需要的任何组合。/ B0 g( O9 D. N5 s: {' }: ?
" k5 }+ `/ ~; I) Q
有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户、其他用户。所有者一般是文件的创建者。所有者可以允许同组用户有权访问文件,还可以将文件的访问权限赋予系统中的其他用户。在这种情况下,系统中每一位用户都能访问该用户拥有的文件或目录。
4 `' X) D: ]' a; x& D- `4 L0 E+ b% z( T5 q& g! Z
每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。当用ls -l命令显示文件或目录的详细信息时,最左边的一列为文件的访问权限。例如:1 B1 x7 h0 {' ] d, p/ r( r
! y6 B. Z, v4 ^& e7 v& o8 A+ `0 N) d
$ ls -l sobsrc. tgz8 D6 {5 X3 s( U0 s, L- n2 L5 i# g- u
-rw-r--r-- 1 root root 483997 Ju1 l5 17:3l sobsrc. tgz
0 L6 x4 Y, p% f$ S! `+ X3 ]6 n 横线代表空许可。r代表只读,w代表写,x代表可执行。注意这里共有10个位置。第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。如果是d,表示是一个目录。7 Z$ O: Q- g' E
% @$ I2 ~7 }3 ?" h# L% S
例如:; P5 X+ m- A5 _% v
- rw- r-- r--
. W/ c) t0 o6 m1 x/ { 普通文件 文件主 组用户 其他用户
% D; b2 K, \8 u! s: m8 `( _ 是文件sobsrc.tgz 的访问权限,表示sobsrc.tgz是一个普通文件;sobsrc.tgz的属主有读写权限;与sobsrc.tgz属主同组的用户只有读权限;其他用户也只有读权限。5 u& ^* R4 _3 K+ F
确定了一个文件的访问权限后,用户可以利用Linux系统提供的chmod命令来重新设定不同的访问权限。也可以利用chown命令来更改某个文件或目录的所有者。利用chgrp命令来更改某个文件或目录的用户组。 |