1) Linux / Unix 命令格式 , B$ _2 o: b' [( `: } command [-选项...] [参数...] L9 ~* ]1 w g) z, ` 如: ls -a ~" |6 m/ f$ J% Y/ `# J6 X4 z5 l
mkdir .demo //创建隐藏目录 9 h0 K( z5 {% { R$ n3 m ls ' g0 b. \- i* _& d9 Y0 l3 [$ U
ls -a" ~0 d3 U1 P$ p5 O3 b
* U6 d7 q6 I* U; ? 2)标准输出: 就是在控制台(终端, 命令行)的默认输出0 \0 Y% a! a4 \ r* F
ls pwd cat 等命令的默认输出都是标准输出 8 [7 T5 a* a0 f! a# D" x ">" 输出重定向, 可以将标准输出重新定向到一个文件上. 8 {9 Z3 g2 I3 A4 T& \' M, I$ Z 如: ls > abc.txt //将 ls 默认的标准输出结果定向到abc.txt4 `5 g) m8 l" q F8 w- ?: t
cat abc.txt //查看abc.txt文件内容 ( Z5 x( }' A( B. @3 ]6 {! ~, D6 b) |* k' m+ u* b3 q H0 `
3) "|" 是管道符号, 可以连接两个命令, 将前一个命令 3 u8 k& ^7 u* _ P1 H1 I: K4 c! `1 T1 ^ 的输出作为后一个命令的输入; }' V! R5 Z; s) ? n
/ L' C% M* i- k. p. l& |( N$ r
4) grep 是过滤输入信息 留下指定的行 - o0 M* y; a4 E# H1 r; C2 | : F/ I9 u$ M/ U1 T/ R& @# w2. 目录 与文件操作 % O5 Z- {, s& G7 M- O 1)cd 改变当前工作目录7 @- s) r$ p* k* ~) s1 |/ C
默认的cd 相当于 cd ~ : 返回"主目录" 3 H# y8 @& }# ~ . 表示当前目录) L: p) ~1 q/ z2 L) S
.. 表示上级目录(父目录) 1 d; a( j& V: d ~ 代表"主目录"* D* e6 X6 d" ^. k7 J" @7 |
以"/" 开始的目录路径表示: 绝对路径, 反之: 相对路径+ U) `$ `- \# e* ]7 L' S3 X
相对路径: 是相对于当前目录. ".", ".." 都是相对路径 + R+ Z0 Y- W9 `4 t9 |) d/ S0 j8 r. Z 以"." 为开头的文件/目录是隐藏的 0 R: a7 J7 `) h; u 2) ls 列目录命令 9 K0 V D: {5 H4 T+ g$ Y: a E 如:3 I$ B( ]" n8 ?1 g
ls /* J# J" m0 J! U P3 x
ls /etc . E/ }$ Y9 F* [4 l K+ z+ {! g* P: } ls /opt * C$ d* f- o; {+ |7 O. `# L9 h3 s ls ~) {8 m1 J. \/ f* G* m% k4 j0 L: C
ls workspace & @. `! j4 t4 o6 [5 x ls -a ~ 显示全部的内容(包括隐藏文件和目录) 8 d. ]$ o& ?0 x* _$ V% |% F) g2 f! ?8 d [) S
5 H. S$ _3 K1 n3 i( z 3) 创建目录 9 X, \2 G6 H. s' Q$ ` mkdir .photo 创建隐藏文件夹 ".photo" 7 @/ A6 o% z. Z 4) mv 移动/改名文件夹/文件 7 B; |" h6 {' ^7 @1 x+ ^ mv .photo photo //改名 5 Y8 U% G) \ I1 b mkdir mm$ e3 W4 ~! @; n& p
mv mm photo //移动 U) t# z$ S* z0 j$ I ls photo 5 M k; L5 k9 y+ U. ] mv passwd passwd.bak # J2 z6 {0 [+ O6 M+ x4 `4 p" a, Z8 W- m" m
5) rm 删除文件/目录+ e9 k/ H8 O; Q0 N
删除文件: rm file1 file2 file3 ...2 }7 V3 a/ I- S
删除目录: rm -rf dir1 dir2 ...+ g+ H" L9 _9 |6 n* }1 [
选项: -r 递归删除所有子目录和文件 ( L3 P+ `7 R$ m3 P+ I5 j, Q& c -f 强制删除, 不进行任何的交互确认(linux 默认 -f) " b" z0 O7 e- j3 Z& X6 P8 T O0 K$ |) r; M+ w
6) cp 复制文件/目录, 注意第二个参数: [6 M, ` C4 u% X: {0 K5 i
复制文件 cp /etc/passwd ~ # j- X2 R. a5 i1 [ 赋值文件夹 cp -r workspace workspace.bak 3 n# v& S% Z: V7 l mkdir demo 7 W0 V8 J+ u8 H9 F% _' N cp -r workspace demo. X4 X; l/ \& g1 C f2 ^! _/ x
7 X# U: I9 j& j/ O8 w 选项-r 表示递归赋值所有的子目录和文件内容 1 s) b! \5 J. g* t 0 D6 z6 o5 k) v# {6 d 7) 文件的授权 }; L; P, S9 V E7 _$ ]
ls -al 查看长格式结果0 G! E: f t# n" U
d rwx rwx rwx liucs liucs com ' f. U& m, \# C$ e9 G" B' x7 P -rwxrwx--- liucs liucs Hi.java9 M; F" G6 Q$ p! B
; ~, `8 B" X% u; l! r+ k chmod 660 test.txt8 [1 N. d9 Q( ]: q
rw- rw- ---& S6 d/ b+ d8 q. \3 T: b# w/ N0 _
rwx& u; X$ R. K; c, i- C9 H' e
421 421 6 B% B, E9 ], b: |2 ]8 B g( S# e" V 000 0 --- 8 u/ F, t# K2 y( `3 V" l7 A
001 1 --x 5 W y6 Q6 ^" T 010 2 -w-/ L0 i) b2 A7 D
011 3 -wx : P9 w3 w* c" K4 W 100 4 r-- " n2 u. U- _+ p. f% l! B" G; n4 q 101 5 r-x - q/ G% [& E3 d 110 6 rw-/ I- e, F" _* W! J& U# M. h
111 7 rwx ; z, ]' X' t D4 A 3 v" l1 g) {: ~, |2 {- P- ^2 V) n; o) F; j
8) windows 命令 ; Q5 u$ J0 V% ?$ k' i. a) { dir == ls $ M( }) U2 O+ e! g: `4 s9 Z. o& O/ H9 X mkdir == mkdir 3 j2 r- i- h5 |; u) N [8 e, N cd == cd & T5 @1 M# s7 p P( }1 B del == rm 8 p: d, Y( S9 J4 V* v9 U cls = clear5 X5 q0 B- q4 V- `* @
more = more - Z# n% }3 k+ @6 o) J type == cat 0 D, p" y6 c5 a6 {5 e- ^ move = mv# F9 J$ [5 P! q( c& c# ^/ D5 f. N1 m
copy, xcopy = cp ! q; B# z' k: p$ ~1 `& O, x! Y, D# F' Y" D2 F U8 w) k% `9 b0 z
help == man' H ~% v; ?7 a% j' \
" \! m2 w# T$ M) K/ d3 ~3 U* w+ g
3 文件的创建 与 修改 8 l3 }0 X8 ^8 h0 V% f/ ?! t 1) echo 回显命令 + `& `5 W% M/ `, Y8 P echo abc 将abc回显到控制台 * ?4 A! L$ \+ A) B4 r2 K: e 2) ">" 输出重定向, 将命令的"标准输出" 结果重新定向到 ^& ]- j/ ~% w5 T+ n' }- E4 |# M 新的目标. , ?. @3 E: u& N1 F7 N& y2 U, _+ s ">>" 表示追加输出 2 C" M% ~5 S! |/ e+ \7 t3 G# K4 ` ls />rootlist.txt 8 f0 n, A" u" w* ?5 \ echo abc>test.txt ]+ e- G3 M% I$ l5 E' F
echo abc>>test.txt8 e6 @: l4 C; s& L% R _2 Q
3) cat 查看文件内容" F, I0 [6 ]7 F( Y- y9 N, W/ e& ~% p
4) touch 创建新空白文件, 修改文件访问时间/ y1 A# c2 y5 O3 L* T
, g/ {0 } Z' [$ S* Y3 g5 B, [ U4 创建和修改文本文件 vi " ?' B! ]5 u+ q% a0 L: r" Y
1 打开 vi [filename] -> 命令状态 1 ]; d& |/ ^) Z( Z S- B 命令状态: 任何键盘输入都是命令! ~3 W( C9 @! _' F4 ^6 H
命令状态: [esc] 总是回到命令状态 8 B9 j6 t" T$ X 编辑状态: 对文本进行编辑, 任何的输入都是编辑内容 {: f; s2 X$ T6 ^5 n vi [filename] -> i o a ->* l4 V, F8 G% h5 |0 b. x: H7 a
命令行 命令状态 编辑状态0 ^) H; g1 [0 R) c; j( R0 A. {
<- :q 退出命令 <- [esc]/ Z9 \& j M) j# u3 V9 d
<- :q!强制退出命令 ( c' X- G0 X+ P2 m
<- :wq保存退出命令 9 [6 H# T8 t1 ?# p
:w保存 . ?0 T1 A/ W; r2 B; L :w [filename]2 K" a" X5 j2 B
:w! [filename] 4 ]5 S- n5 A- E) \) b3 q. r / ? n 查找3 u" q& c, G/ E5 L8 \
% w1 ^/ J# c( x- g- X5 打包备份与恢复(相当于winrar)* b; O* |% i4 J9 m
1) tar打包: ' f y$ O& z7 R% J2 E tar -cf workspace.tar workspace .... ! g& Q% Q5 W. i+ A! p8 ]1 Q t gzip workspace.tar $ }- C/ H7 L9 w- y* H7 o 或: ' s0 R' H' B$ N7 P tar -czf workspace.tar.gz workspace .... 9 B9 e" t3 v0 ? $ n0 T/ {5 d- F0 X8 s 释放当前文件夹: 7 v9 n% X, D5 n, g9 a9 M. N tar -xzf workspace.tar.gz (Linux)9 ~" Z3 Z4 I( g" p0 `3 T
或:! r# N) h+ ~6 K% b% |
gzip -d workspace.tar.gz. s( Q% W% r2 s0 a
tar -xf workspace.tar 1 D: e* _3 z- }+ o Z " p: H& r( j3 ^: h7 y 2) zip 打包与释放:5 d) ^/ Y/ u! h# c2 U8 z3 E5 F
zip -r file.zip file1 file2 file3 ...; s% O7 q3 Z A# ^
unzip file.zip6 d* Q$ r) M `# g, p1 M" y7 {8 M
# q' M( o E. T1 M, y ) l6 Z5 ], O9 h2 y, `6 系统环境变量PATH4 f2 i, y. y2 V2 g& B
1) 环境变量PATH: 操作系统可执行命令的搜索路径.9 v( L. O3 s" `4 H* v8 w; l/ W
2) 可以使用$PATH引用变量的值.7 u& D6 Z9 o' u" T x
3) 查看环境变量: echo $PATH+ A d) r# x/ p$ V3 Q/ r
4) 设置环境变量: export PATH=$PATH:/sbin n' p' I- Z4 T * U0 k0 N: c [4 p" k( X7 Java的安装与环境的配置 : Y/ P/ e! y; e w6 D: g; j 1) Oracle下载JDK, http://java.sun.com 6 d5 e$ m1 m1 D9 J linux 版本的JDK是自释放压缩包 3 D F9 `4 t6 z3 t& M 2) 安装JDK 以Java1.5 为例:0 N) b9 ?' U1 u* X% U$ O1 c' c& ^
chmod +x jdk-1_5_0_09-linux-i586.bin (增加执行授权)6 F7 n1 D$ ]0 {7 C3 Y$ j1 K
./jdk-1_5_0_09-linux-i586.bin (执行释放) ( J: D6 L# V$ \2 Q, [' y ' @7 l, E$ s4 W+ ? 自动释放安装到 ~/jdk1.5.0_09 + v" v+ r# k- c; C# ?1 m0 K . d r- O! o! ?$ a( t4 b. o- S8 v6 ~/ g 3) 配置JDK, 以JDK安装到 /opt/jdk为例:4 V# H3 k1 O* h8 Y0 I
/opt/jdk2 G6 C) N; `" j1 ]& |* i5 b l
|- bin 开发工具(命令: javac, java, jar, rmic, jps...)7 c. ]6 ]3 r) j: [: V
|- lib 开发工具实现类tools.jar ( u) N# W& f. Y& P |- jre (Java运行环境) . K9 i6 R/ q* ]$ D
| |- bin (JVM), w: h1 x$ W8 L
| |- lib (Java API 类库) # U5 |* w! c' r0 T6 M7 K0 p | |- rt.jar ( 核心类库, zip压缩, * z( g- E/ k, b) {( D4 M- b | 包含java.util.Random) % {9 h q8 R+ x0 m |- src.zip (Java API 类库的源文件) + ~* ?9 \( z' M9 f3 y% t/ M$ Y+ g6 i# q- j
9 e- O4 ^1 @* {, q/ \
A 配置PATH, 使PATH包含JDK安装目录下的bin目录 3 z9 ]& H. q( G# { 目的: 将JDK带来的开发工具(命令)扩展到OS中.1 C0 F" B+ ?! I; p o! R$ J- D* L: n
如: export PATH=/opt/jdk/binPATH % X5 Q2 l$ C2 \) S 2 R# M" z# B% a# E# G6 M, V* K! A: n* @, H
B 配置JAVA_HOME, JAVA_HOME指向JDK的安装目录 7 `* Y. ?" E# Q: Y, T3 W, S! U2 X# b JAVA_HOME 的作用: 是指导"某些Java软件"找到JDK ( r# s9 `# G4 S& o 如: tomcat 服务器 就使用 JAVA_HOME( j% p! [" b! A
实例: export JAVA_HOME=/opt/jdk : u" t( U2 S* {3 s! t T " C1 ~& z5 o( W C 配置CLASSPATH, 指向Java类的部署目录或者Jar文件7 H/ y9 v4 z" @0 G4 ?* u
用来为JVM 指明Java类的搜索路径, Java在执行类的时候0 {2 Z: a) Z' U# v; Z2 U' `
在CLASSPATH指示的路径下查找类文件.5 z2 l2 Q: u! n/ j( J8 s8 k4 @
实例: export CLASSPATH=./ G/ h3 }0 e5 N' z* o K4 ]
! D1 Y9 Z' u; t& z- l7 l$ p
Windows 参考 Java配置命令: R6 n) `# X6 }
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_01 5 x' a3 M$ x8 } set CLASSPATH=.5 M4 K, n; \" Z" \$ w
set PATH=C:\Program Files\Java\jdk1.6.0_01\bin;%PATH%0 o+ w( Z4 ~, I, I$ F
7 v, D/ ?1 E5 @/ m1 T8 package 与 CLASSPATH: 6 j; C1 o6 R( t% @/ {
1) 是java中对类进行分类的6 r4 I' }- `8 D' L9 q' \
2) 包映射为系统的文件夹1 h, M% @6 g/ Q
3) java的类的全名: 全限定名=包名+类名 ! O0 M6 ]* @4 ]/ n7 N6 L. U5 ] 4) 使用Java执行类时候要指定到 "全限定名"7 d. x3 ~5 r' n3 t# q: W b
0 j9 N$ V* M, B4 _9 `$ M
5)Java 的 编辑 与编译实例: + ^$ f+ q0 x* M8 f: x2 Q cd demo: _6 O' V Q' Y- W& \" C- o
vi HelloWorld.java (编辑(edit)Java源文件) . y m8 e2 {& M4 R: D. c9 ^ mkdir bin (创建输出目录bin). d8 F7 L% M: U/ [) R
javac -d bin HelloWorld.java (编译(Compile) 源文' i4 U( L" H6 o$ `
件到bin文件夹, 在bin中生成包)7 } d! S8 s; M) {- k6 ~
(下面设置 Java的类文件搜索路径, java执行时候利用这个 ) f* |( G7 l& P+ J 路径搜索Java的包和类文件)# p/ d k1 U$ I/ L( G0 O
export CLASSPATH=/home/soft01/demo/bin $ A) z4 N' h' G# k( h$ D- a% Z0 G" d) @ java unix.day01.HelloWorld (执行java类, Java命令会+ h' ` v! k0 K
到CLASSPATH指定的系列路径中寻找包corejava.day01( U8 V2 A/ ?9 V8 D4 h2 f
寻找包中HelloWorld.class 的字节码文件 )' h" x% {6 |+ `' N: Z3 f+ j
5 Y; ?2 u4 {1 c G2 I
9 系统初始化脚本 3 W9 ^6 Q* @& t7 V& x
1) 初始化脚本 是指在开机过程中自动执行的系统脚本文件, ^) i, I8 _: v, W& H$ C5 q4 |
一般用来初始化系统环境 3 T+ a$ n5 y1 |- z3 W8 c 2) 系统级初始化脚本文件: /etc/profile 所有当前系统的用户2 C; Y, G" Q4 ?0 y' C5 g; G
登录时候都执行$ A9 u8 Z( {1 S" W6 ^6 g! \
7 e5 \- N# ^& U1 S* F