1) Linux / Unix 命令格式( j, X' v7 C/ P9 b! M. j' c
command [-选项...] [参数...] ) E5 t& f1 w# X0 u 如: ls -a ~ * e/ U5 f) C2 P& {/ m: O mkdir .demo //创建隐藏目录 1 f# T' s1 Y" ~0 I ls $ K. H! J6 l# S4 N ls -a ; V) i) Y0 i4 A0 e! R: z# H: n, s4 B: E+ b2 q9 X
2)标准输出: 就是在控制台(终端, 命令行)的默认输出 2 _8 e+ w: q7 D7 E ls pwd cat 等命令的默认输出都是标准输出 5 A. s0 b, m! b3 C ">" 输出重定向, 可以将标准输出重新定向到一个文件上.' D- _7 \9 k; g: B9 k7 Z+ V5 _6 w
如: ls > abc.txt //将 ls 默认的标准输出结果定向到abc.txt9 K9 K6 G3 i* f7 o
cat abc.txt //查看abc.txt文件内容 $ b, J# z/ [, Y8 z; ]+ `1 q- m3 G# O; g& ?/ |
3) "|" 是管道符号, 可以连接两个命令, 将前一个命令 : Q" [) b# g: u' C0 N6 N* E' [ 的输出作为后一个命令的输入 7 q h7 W7 P6 S ! [2 t; E/ n4 b1 f& R5 x# h 4) grep 是过滤输入信息 留下指定的行$ x" D* r8 c! N) V1 P( o
( u: b. L" [" }0 H5 s2. 目录 与文件操作 $ O8 T, K m7 I/ [ I* a( C+ \2 y 1)cd 改变当前工作目录# O- x0 O9 m/ Z( a
默认的cd 相当于 cd ~ : 返回"主目录"' n- p4 m% k) k/ _
. 表示当前目录 # Q! d& m% O) y( U$ j; i% J5 [ .. 表示上级目录(父目录)" ~9 S* l/ T9 x! {! T' ~* i
~ 代表"主目录" $ f, q: r' z8 O" t) N8 s 以"/" 开始的目录路径表示: 绝对路径, 反之: 相对路径+ [) {- Y0 S4 q' m
相对路径: 是相对于当前目录. ".", ".." 都是相对路径 & }. f0 C8 S% J 以"." 为开头的文件/目录是隐藏的/ i3 q4 D0 o; c4 T2 S2 W
2) ls 列目录命令 / O2 S3 }( i3 h; u5 \ 如: . N' q& B# e1 j0 l ls / + v7 ~" k1 C: \8 w& e$ m: n0 w' ` ls /etc 3 k* L8 k1 N6 s8 | ls /opt 7 }2 w) `0 N/ V ls ~. K# c: i3 T J$ q3 q' Q
ls workspace , i; ]- m9 j" v; R2 v" [+ m ls -a ~ 显示全部的内容(包括隐藏文件和目录) 4 H* F* k" N- k( H6 N" B 2 k! {$ I* a- ~$ v8 s' _$ ]- W: @6 Q7 J, w- n& I7 |
3) 创建目录 $ _- P2 x9 Z( Q# B* I
mkdir .photo 创建隐藏文件夹 ".photo" 4 ] Q8 b9 [7 A 4) mv 移动/改名文件夹/文件& v6 \, M; f# Z6 b4 b% W
mv .photo photo //改名 * {. t8 `# m4 O! t4 e mkdir mm . s- R4 i0 g9 ] a | mv mm photo //移动 0 z' u X8 Y. f$ e ls photo 7 }' S. t: ]8 @ mv passwd passwd.bak' ]; J6 h2 k) D7 S
, r2 p2 K Y S9 k! {' O. }( l 5) rm 删除文件/目录5 P; u0 E, U- A( d, q
删除文件: rm file1 file2 file3 ... Q8 ~, g9 ^7 K% W+ @, H
删除目录: rm -rf dir1 dir2 ... ) N4 T- _2 u+ v. \9 A 选项: -r 递归删除所有子目录和文件, m3 k. H- {/ D1 F
-f 强制删除, 不进行任何的交互确认(linux 默认 -f) , M3 _( f8 R* O" D% `0 A3 G; A( j/ P& P
6) cp 复制文件/目录, 注意第二个参数: ^* L& t6 @" ~: t. G! u
复制文件 cp /etc/passwd ~7 Z7 |2 \$ r6 e; H8 F8 { B
赋值文件夹 cp -r workspace workspace.bak 9 D8 |" D& J( v( E* r' ~' k mkdir demo0 C& j7 Z/ o# ?- m. {6 [+ H3 v* O
cp -r workspace demo- G3 M( m3 S# l. \+ Y) L
- N8 p% b6 w& y0 T! m2 K, Y- n
选项-r 表示递归赋值所有的子目录和文件内容 , {2 |" d X' {$ y6 K. r/ |1 N( @7 v
7) 文件的授权$ \% |4 G8 K/ x( T4 @0 B
ls -al 查看长格式结果 1 [; q0 P) T: N% y& J9 W S d rwx rwx rwx liucs liucs com : ]( H" j2 D Q: d7 S& j" V3 c; l -rwxrwx--- liucs liucs Hi.java ! U* `' U" x; E R3 ~ 8 o3 Y; n" d) R: E. m7 @; s chmod 660 test.txt 3 M2 v) B2 Z% G# f! o& a1 L% T* h rw- rw- --- 1 A8 ~4 U: M) v, c& R( F rwx / M8 o$ Q4 l( M7 l' F 421 421 ! k7 t9 \7 c& R& I$ ? 000 0 --- - S) b8 y( x. d& a 001 1 --x + N# E8 m- F" E( S. Y 010 2 -w- , M9 w. D6 v S1 b 011 3 -wx/ U& J3 a; ~$ ?
100 4 r-- 0 Y1 g- D: h8 D% T/ m 101 5 r-x2 x+ j( Q; E8 C: l- t6 a
110 6 rw- & y* v4 {, X# E; q: e3 }5 { 111 7 rwx5 Q0 E4 [, z' r! a
' ?1 F# T" T# s: c& p4 i5 M Y' L7 _. p/ b' P/ t5 e
8) windows 命令( V; q% q) _ d
dir == ls- r- c, [; G) f2 p$ H2 W a! r; y
mkdir == mkdir2 n) g8 ?" C" S: w f1 K
cd == cd: n* ?; N' ]. r$ V0 T
del == rm ) t) g8 l) O8 n# { cls = clear [ P1 k9 F Y, {. s l( @
more = more 5 A+ w7 D+ \% [4 b- D3 k' H5 G- }$ s/ C type == cat& f( X% d2 [* i& S. s4 z: o
move = mv2 z. s1 n5 l/ N% m5 D
copy, xcopy = cp1 I* O0 v4 U6 H4 r" h
* r+ s" Q+ p, W9 ? help == man: ?3 u8 Q$ S H8 Q. j7 n* V8 _
7 W( @- x3 Z2 k6 {: ^. ?5 H* @
3 文件的创建 与 修改" s( v, c" Y' t" h
1) echo 回显命令 1 U/ _) l2 F3 w" U9 t j4 [ echo abc 将abc回显到控制台 2 `! l2 W' @% m+ }/ | 2) ">" 输出重定向, 将命令的"标准输出" 结果重新定向到5 i _+ m' {1 h. U. s: w- I
新的目标.( O' J6 S" X3 o8 l5 }2 W
">>" 表示追加输出 . T$ n: N% v, r) o( ]
ls />rootlist.txt+ `) t0 E+ E7 u4 @
echo abc>test.txt & r7 A! I( Z0 L7 U+ D5 s6 F& S+ e echo abc>>test.txt. ] w E! o& `
3) cat 查看文件内容 & Q; R# V0 X6 Q1 H" U/ ?% B7 v 4) touch 创建新空白文件, 修改文件访问时间 3 y: u- o+ O! S; `( X8 M4 o+ o4 c5 o. ~7 T
4 创建和修改文本文件 vi 1 y3 {" y* |/ m6 m+ w1 H4 G1 ` 1 打开 vi [filename] -> 命令状态, H, J' T0 b8 e2 }2 @4 T4 J
命令状态: 任何键盘输入都是命令 0 s) {3 @9 y: d7 e6 m( B1 W 命令状态: [esc] 总是回到命令状态4 _8 N$ P l5 _4 {$ D3 O! E
编辑状态: 对文本进行编辑, 任何的输入都是编辑内容' M$ L. s+ r2 _1 J
vi [filename] -> i o a -> - E; k, v) \) t& q& M( y 命令行 命令状态 编辑状态+ y5 ^# J4 o" s/ w. I6 k3 K
<- :q 退出命令 <- [esc] & |5 U& [7 f& ? <- :q!强制退出命令 ( ^2 |6 H- q: f9 v! K1 B
<- :wq保存退出命令 - ?' e( z$ l' I2 S# R
:w保存5 J5 @( J1 t1 @7 h7 @- ^3 p
:w [filename] 0 z0 v K5 e" s! N' X, W/ o :w! [filename] q9 K- n4 E. I; d; h
/ ? n 查找 # f: R( Y) o! | k& d) f8 H. Q& ^9 a/ V9 l6 {- k& k: D
5 打包备份与恢复(相当于winrar) 8 X% c- D1 } n v4 v9 d7 P0 V 1) tar打包: + a; \2 E3 N0 N3 r tar -cf workspace.tar workspace .... * E* u5 w* H, P" h1 j, h! C
gzip workspace.tar7 K* w9 g* X% I3 ^
或: / s$ p" l) ~% l! ^/ j# Z1 N tar -czf workspace.tar.gz workspace .... % C' w- [3 a# x( W, d; l# z& O- T
& P0 E, _% V" D- v+ V {. a
释放当前文件夹: 8 e _8 A; _+ n2 M7 r
tar -xzf workspace.tar.gz (Linux)' g: b& E7 r5 N/ P2 m; z! j
或: # h7 v/ |* t3 N% D! r! _ gzip -d workspace.tar.gz: V/ j+ l# ]0 r9 q, N/ M
tar -xf workspace.tar ) @1 L6 o& V6 O# g1 F6 \! X( l3 m D. _: b8 h$ X
2) zip 打包与释放:' g: W5 g) w3 m7 O
zip -r file.zip file1 file2 file3 ...1 M# G) [6 a9 @ S e, Q
unzip file.zip , }) ` D; [+ ]8 C 7 i5 @% \9 ?3 b: x. }" S & S, Z; U( q9 |4 F1 \6 U1 ~7 Y6 系统环境变量PATH - R# T8 G' I/ R9 B$ {) x- y 1) 环境变量PATH: 操作系统可执行命令的搜索路径.5 ~, {4 D7 t! ~, X. I* p
2) 可以使用$PATH引用变量的值. ( ]5 h( `. @) T: C5 [) v& O$ } 3) 查看环境变量: echo $PATH1 x* N( j1 r, v6 Z
4) 设置环境变量: export PATH=$PATH:/sbin3 I; [- j! W- }) `5 p7 Q9 P
7 Z$ y4 h$ D! j/ F7 |& U" u* _: J
7 Java的安装与环境的配置 7 b) A* t/ M9 g9 q$ y: X: E 1) Oracle下载JDK, http://java.sun.com ( n3 v- h3 ~+ g& y% O linux 版本的JDK是自释放压缩包 , g( F- P" Y+ l1 V0 Q 2) 安装JDK 以Java1.5 为例:% ?, D8 X4 p4 K7 `) j8 v2 M! {. ]' Y
chmod +x jdk-1_5_0_09-linux-i586.bin (增加执行授权)* F) B! Y5 t4 U' T1 G
./jdk-1_5_0_09-linux-i586.bin (执行释放) & R, z6 g% T8 s. }% D& i/ d5 L0 b; {) u) ?. |, s/ n1 g. M! ~
自动释放安装到 ~/jdk1.5.0_09 2 q- Z8 ]5 y3 Z9 G" h' X1 m7 W
/ |; K4 N, M# N/ \2 Y6 h: w
3) 配置JDK, 以JDK安装到 /opt/jdk为例: & q8 V, \4 F. l3 h9 w2 g /opt/jdk$ K' k! d: F; Q% x! x: E0 n- s
|- bin 开发工具(命令: javac, java, jar, rmic, jps...)4 H: I+ f. m( Z# O
|- lib 开发工具实现类tools.jar % I( a' X7 |( K |- jre (Java运行环境) : O }, h' t) W# |
| |- bin (JVM)$ d6 ]7 V/ M0 P5 z; K
| |- lib (Java API 类库) % ]( V* n1 L8 [ | |- rt.jar ( 核心类库, zip压缩,! Q% ~ |( z% w3 t& k1 h( {
| 包含java.util.Random) . ?9 C8 C5 Z/ {/ S+ v$ @
|- src.zip (Java API 类库的源文件) # [7 J- E; v8 Q" @* {
m: @$ x+ w% N% I5 }* f' j
9 Z8 U0 O9 I' p- s" y% Q
A 配置PATH, 使PATH包含JDK安装目录下的bin目录 , ]0 r" V# G8 `. Q5 L( `4 p9 q 目的: 将JDK带来的开发工具(命令)扩展到OS中.. C2 Z( T& q' ^1 N
如: export PATH=/opt/jdk/binPATH 2 t2 e1 ~. _! w$ [ 3 k; r: x* \+ o+ m: A# X1 Y; `3 x6 D5 ~, ]# O; P
B 配置JAVA_HOME, JAVA_HOME指向JDK的安装目录 R$ m5 }; Y: d% M JAVA_HOME 的作用: 是指导"某些Java软件"找到JDK+ k9 W1 T: [6 p2 X2 e' E6 n
如: tomcat 服务器 就使用 JAVA_HOME . @* K; m2 z- ~' S3 U* h/ O 实例: export JAVA_HOME=/opt/jdk d7 p9 A$ E% J4 k" \; U- x+ s 3 X5 r) K2 D: y C 配置CLASSPATH, 指向Java类的部署目录或者Jar文件; n- T4 R' F) @. f
用来为JVM 指明Java类的搜索路径, Java在执行类的时候 7 R! Y+ j- n8 D/ o; [0 F 在CLASSPATH指示的路径下查找类文件. p6 y! z7 i& ?' ^# d
实例: export CLASSPATH=. ^& t- S- A( z5 A6 h3 k4 \& G& T
Windows 参考 Java配置命令:. N( Z6 m% I$ u4 c1 ^4 D; v
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_017 Z5 q6 h& K& I1 R, _
set CLASSPATH=.5 [/ m7 t9 W; J9 j. y Q* m/ G$ L- }
set PATH=C:\Program Files\Java\jdk1.6.0_01\bin;%PATH% O+ _. @# f/ v- J1 d3 ~/ {& l8 Y r% q( j
8 package 与 CLASSPATH: 9 q9 w* q% q& J1 j
1) 是java中对类进行分类的 c0 {4 P, \, \+ _
2) 包映射为系统的文件夹/ W$ S3 X6 ~+ b; i" n' o! e
3) java的类的全名: 全限定名=包名+类名 1 P9 i4 A# c' m3 z* q( [1 A 4) 使用Java执行类时候要指定到 "全限定名" 1 A4 ?. h9 Q2 V- l% z + C4 |; |( g% H# H9 p! j0 v* R 5)Java 的 编辑 与编译实例:% n3 y6 E6 }+ U( f8 O& `
cd demo/ q q N. m0 P) g, i# ^8 l
vi HelloWorld.java (编辑(edit)Java源文件)) R/ P% c! |. D i
mkdir bin (创建输出目录bin) + ~$ h6 D8 d& J& M javac -d bin HelloWorld.java (编译(Compile) 源文 0 O% t5 L0 P4 s* d5 Z3 R' ~ 件到bin文件夹, 在bin中生成包) . E& I5 q/ W4 Z) Q (下面设置 Java的类文件搜索路径, java执行时候利用这个 9 x. e! p! J$ C- a/ g/ @. @6 E0 X 路径搜索Java的包和类文件) / j0 v' R$ v$ w" F/ j* W export CLASSPATH=/home/soft01/demo/bin5 o* C+ Q5 M Y9 J; c, T
java unix.day01.HelloWorld (执行java类, Java命令会 : O* J- D9 c2 P4 u 到CLASSPATH指定的系列路径中寻找包corejava.day017 }, H* Y( D& a1 t' P M) B8 ]) V
寻找包中HelloWorld.class 的字节码文件 ) * s* N+ J8 F* G: z& z5 d. m+ o( x- h3 R* N/ m& p
9 系统初始化脚本 ! Y: g$ c/ T' a/ S' R5 V( W 1) 初始化脚本 是指在开机过程中自动执行的系统脚本文件 3 @- E1 d5 r \1 |& j. [ 一般用来初始化系统环境, Z5 S$ s0 e7 z: Z
2) 系统级初始化脚本文件: /etc/profile 所有当前系统的用户 8 p+ x/ O( S2 c 登录时候都执行/ ~* V( Y/ b" s3 f0 h$ q; {- y$ r