1) Linux / Unix 命令格式 8 T3 d" \- N. F# O/ @* `& b command [-选项...] [参数...]. x: ~6 D3 t5 x" M- P
如: ls -a ~6 p5 h8 Z: ]( L& w
mkdir .demo //创建隐藏目录3 n) E5 G, N; N6 i) N9 b1 Q
ls " C* y( x: ~, N9 @0 f+ @' R: h6 E
ls -a1 z' l! q' |- `& w
( C: t- F, ?% A# Z! A3 [+ e 2)标准输出: 就是在控制台(终端, 命令行)的默认输出; ~9 q, \& ]4 s/ | L/ j1 r1 V% {
ls pwd cat 等命令的默认输出都是标准输出% W' ~- x3 k3 f [
">" 输出重定向, 可以将标准输出重新定向到一个文件上.# S: H4 V& A& D3 G7 I
如: ls > abc.txt //将 ls 默认的标准输出结果定向到abc.txt. h9 E! E5 X- w m. m
cat abc.txt //查看abc.txt文件内容 f/ |& C8 y) L0 D7 p m% P* B 3 }- R" W5 Y8 `) d" k) ]/ B0 }' H 3) "|" 是管道符号, 可以连接两个命令, 将前一个命令& Y X2 v1 O, ^3 E) a
的输出作为后一个命令的输入4 T! [% V' p5 b$ U
! A2 D1 z+ |& y4 F/ @2 z ?; e r
4) grep 是过滤输入信息 留下指定的行 3 V/ a# C2 v# } g/ Z5 p% d( k7 H3 Q# {3 v/ m) r& n; r
2. 目录 与文件操作+ M$ f. k6 g% `; Y
1)cd 改变当前工作目录 9 Q" ?( B1 K( i! I 默认的cd 相当于 cd ~ : 返回"主目录" # M( v1 M% k7 P$ F . 表示当前目录 7 c6 N( P9 o6 {8 `) m .. 表示上级目录(父目录)/ a* X5 m: n5 a+ H1 T
~ 代表"主目录" ' ?" m6 y/ r F0 Y! ?0 R, g 以"/" 开始的目录路径表示: 绝对路径, 反之: 相对路径 6 p- G+ v* n* G4 U 相对路径: 是相对于当前目录. ".", ".." 都是相对路径; V8 z/ G' D2 o
以"." 为开头的文件/目录是隐藏的% }8 c( C$ ^+ L8 }4 a" @6 d6 E7 z
2) ls 列目录命令 9 x& Z% K9 m2 {% \9 p* n5 F9 W 如: / j2 b1 z! U. v6 w+ N) J6 n3 x ls /9 S$ H8 B9 j" L/ [- [
ls /etc 8 S+ l: ]1 i4 ~$ D; b+ v4 q% C( _ ls /opt6 U$ q8 ?$ X4 {8 j% m
ls ~4 n! a! F9 b! i
ls workspace 9 R' Q) ]5 [, U+ \9 s0 j: `7 m ls -a ~ 显示全部的内容(包括隐藏文件和目录)/ B9 G4 g& @6 l2 Z6 {
7 Q" e. M1 _. t; t/ M
( B" \) I! L6 K( ~: e 3) 创建目录 & p) w4 v0 h) E4 M- g7 o
mkdir .photo 创建隐藏文件夹 ".photo"6 V" @4 ?: [; u& d! v
4) mv 移动/改名文件夹/文件( O+ L7 \' s3 B: x& f( i
mv .photo photo //改名- O8 ?6 D3 E( @4 I
mkdir mm; |& Z, U& [6 n7 X, B( ]9 d. e a
mv mm photo //移动 r9 K# d. A' u4 v ls photo1 n' q8 b4 R8 D
mv passwd passwd.bak 7 w/ D1 m, W7 u" M4 D, J: `0 O# {: d, t, T. }/ X A9 b/ E
5) rm 删除文件/目录 ( K5 A! O. [* D 删除文件: rm file1 file2 file3 ... ; z& j: D7 S: e/ N 删除目录: rm -rf dir1 dir2 ...4 U/ }, v) X: X9 Z! b* G
选项: -r 递归删除所有子目录和文件 * z% l( L* L0 ^7 g5 O -f 强制删除, 不进行任何的交互确认(linux 默认 -f) : E8 T" O7 U V. V. Y# V # H7 G! Q- t6 `6 {3 P 6) cp 复制文件/目录, 注意第二个参数* K8 L j) L4 ^
复制文件 cp /etc/passwd ~ ; g# J$ Y1 Q) p8 r; ^( S& K 赋值文件夹 cp -r workspace workspace.bak ) b$ D3 B3 q; Z2 ? [2 l2 l0 D4 s mkdir demo 0 [! @" b) C9 Z/ v0 w2 C cp -r workspace demo& m. `0 ^8 R7 S; j
- g8 [/ ` p6 r7 f% n 选项-r 表示递归赋值所有的子目录和文件内容 $ g, s. N' f- S) G* c- q, L1 u! e- t& A0 A3 Z u
7) 文件的授权5 K$ O- E2 I5 g; X( B
ls -al 查看长格式结果; H* ^0 j( Z: T) u6 d8 A; O
d rwx rwx rwx liucs liucs com/ y+ d6 \. G0 K! @, o
-rwxrwx--- liucs liucs Hi.java9 {: E# S9 e8 g, C* R- N
- ~% N& o5 ]* n; U. v3 |+ g* y
chmod 660 test.txt' H; a8 Q, ?. \" b1 l4 ^$ U
rw- rw- ---' b- e: L& u9 ^
rwx. Y( m2 c" N4 ^; t% _0 e) C6 T
421 421 5 \9 x0 s& }+ ^* m; R L1 c7 P3 J1 \* [! e 000 0 --- 6 L) O4 n! C) j' u4 I 001 1 --x: |. S" q: x. f9 ]5 [
010 2 -w- ( `; e. J! A" ?1 i2 t" e 011 3 -wx ) Z+ |7 o& E9 X" h 100 4 r-- " ]4 l3 o4 b, f" X( X" ] 101 5 r-x g6 v8 U1 ]5 C1 p
110 6 rw-/ W7 d- Z0 {; W! g+ x9 T
111 7 rwx 2 m+ U* i/ E8 A# r1 U. H2 y! M. a
. J' E' p! S& k6 h. a% Q5 n 8) windows 命令 1 E6 w! S9 N( [" @2 @ dir == ls- S2 C) ?2 x) D" J) L' U) P
mkdir == mkdir, c# B4 [; m; b. W* z8 a
cd == cd . p- n) Q9 b9 q: x4 O/ h Q" U del == rm : w* m' L: i) O cls = clear! q- m; c' [. P5 g$ S! A
more = more ; n4 x+ B) p6 m7 A9 A( `- ]. T/ X type == cat; d' R: l" R7 a
move = mv. q ^. Q9 J8 G& }' T% w
copy, xcopy = cp # x' Y; b* z. u! t3 I7 {* F 6 O7 y4 @+ ^4 _% ?: N7 L help == man ' u. n k7 M3 ]7 E+ L9 K! t+ w; G+ T4 z% r- c E0 H8 q
, Y# @- D) `$ L! o' L% I* _8 }3 文件的创建 与 修改' s4 z$ e) @3 V( l) J" o" c& @
1) echo 回显命令 " q* F1 G" i, h! \$ n8 H- e echo abc 将abc回显到控制台 $ i1 }0 s0 y H- m5 R; ^! y, t
2) ">" 输出重定向, 将命令的"标准输出" 结果重新定向到% u/ A! n) z& D5 J1 f" b
新的目标. * F& v1 I0 _; b+ H! X ">>" 表示追加输出 3 T/ v. a4 G8 F5 I8 q ls />rootlist.txt ) e4 p. t" ^& R echo abc>test.txt 6 \9 |! X. ~+ ~2 J
echo abc>>test.txt" V; {" e4 Q' p' b R; {( Z1 R- g& D
3) cat 查看文件内容7 S8 m* f/ [) \
4) touch 创建新空白文件, 修改文件访问时间 , V) y+ f' w! A' X% `0 c& B 9 {' \: o6 M& w7 }4 创建和修改文本文件 vi $ z6 I6 [+ _: ^5 R6 f
1 打开 vi [filename] -> 命令状态 * L7 q3 U% g4 Q- r4 |9 t! Y& t 命令状态: 任何键盘输入都是命令; ?) }8 Y- c, x$ F
命令状态: [esc] 总是回到命令状态 $ U& G2 r/ A" }0 D 编辑状态: 对文本进行编辑, 任何的输入都是编辑内容 % t9 F H9 M9 D5 O3 c vi [filename] -> i o a -> 1 X' A& N* N0 O 命令行 命令状态 编辑状态) n# q/ @; y2 U' z" O
<- :q 退出命令 <- [esc]% Z! G$ W1 T8 k
<- :q!强制退出命令 # e: u8 o) [) [4 W* ? <- :wq保存退出命令 . t" U% Y$ y2 s$ G0 J :w保存 X. X/ }! ?9 b3 e& H3 z :w [filename] 2 m5 H6 ]3 E q) S: y8 r( X! T :w! [filename] 4 [, w c y( i5 f g / ? n 查找 ! O1 @4 U5 ]- }4 Y) ^) K4 Q( B3 [/ E+ |' O* O, g4 N: N; d
5 打包备份与恢复(相当于winrar)% P) P$ s2 g! x) _0 E' k
1) tar打包: : W7 H& M8 e3 q' D- ? tar -cf workspace.tar workspace .... 6 F! m' B9 ~, _$ ^ X E
gzip workspace.tar; Y" A# [$ B! u" i. N: f: L- q
或:1 |' d/ ^4 E5 }; i' U7 g" s
tar -czf workspace.tar.gz workspace .... . s# I1 b# G- J5 a M5 c( u0 P4 X+ G: w7 e3 M! u0 t: G
释放当前文件夹: 6 m$ Q: b9 a' i/ y tar -xzf workspace.tar.gz (Linux)1 q3 U# @' k; x7 N9 `5 B$ y
或: ) P1 |& ?) n, j6 O: c4 D* e- S gzip -d workspace.tar.gz $ g# B2 k, D+ Z1 A1 R tar -xf workspace.tar / _% @1 O; m" M* @9 \
5 G: M$ |: G8 r' Q4 X4 ` 2) zip 打包与释放: ! A8 Y! R/ i0 J zip -r file.zip file1 file2 file3 ... % I3 g1 i& K2 p% p" m% E unzip file.zip# ^" @: x' e7 d$ }0 y$ c
* e+ F1 \4 u [# ?
2 _) p6 a W) x6 系统环境变量PATH % h% {6 U/ S" i6 J% \ 1) 环境变量PATH: 操作系统可执行命令的搜索路径.& s" i+ V' L, {( ^$ s
2) 可以使用$PATH引用变量的值. 8 T3 x- z& F' I8 _+ B! F 3) 查看环境变量: echo $PATH: B! j+ e" p {' ~
4) 设置环境变量: export PATH=$PATH:/sbin , u* w9 o# `; b4 t 5 {" f$ C7 e9 r6 j* u. P @7 Java的安装与环境的配置 ( ~0 s; c5 |. ~3 r+ c5 t% S 1) Oracle下载JDK, http://java.sun.com $ ^+ C0 `) s, C linux 版本的JDK是自释放压缩包 8 S# f; z) F8 e3 h4 P5 K D" D 2) 安装JDK 以Java1.5 为例:. M) {' F1 N7 I4 y6 J. g6 `$ J: Y
chmod +x jdk-1_5_0_09-linux-i586.bin (增加执行授权)' j$ ?4 I A! O9 c& L
./jdk-1_5_0_09-linux-i586.bin (执行释放) 6 |+ q! L8 o( [7 _* }1 G # C$ ^4 k' y8 c! e 自动释放安装到 ~/jdk1.5.0_09 / q. `: |, \# q: ]3 P7 R% Z/ i& ?6 _& B/ N
3) 配置JDK, 以JDK安装到 /opt/jdk为例:+ z% j% X4 B0 d k- ]% Q
/opt/jdk ; Z7 X/ A2 K! n' i |- bin 开发工具(命令: javac, java, jar, rmic, jps...) ' G# ~* r% a F |- lib 开发工具实现类tools.jar; Q0 o3 ^8 x: B N
|- jre (Java运行环境) " ]$ M) L1 s4 H6 E8 c4 ^" h
| |- bin (JVM); B+ r6 f% _ w
| |- lib (Java API 类库) 3 c1 Z4 z7 ~, U1 G | |- rt.jar ( 核心类库, zip压缩,6 u6 o' A) A3 t/ }5 S1 `" d
| 包含java.util.Random) , j1 Z, J& s) u |- src.zip (Java API 类库的源文件) % T* F: u4 F/ W% w7 r' U) U
6 u3 S1 ~% l, c3 A" w
- f7 B/ J( X; h0 `( t. R9 ~0 I; \ A 配置PATH, 使PATH包含JDK安装目录下的bin目录 ) U5 }* N Z7 O: p% ?! R 目的: 将JDK带来的开发工具(命令)扩展到OS中. ) {' J. q/ ^# w+ H/ m# y: { 如: export PATH=/opt/jdk/binPATH$ x8 x. t3 _ [; \& T
% I4 s& K- A& I% n5 @; ?- J& E G* }* ~4 P0 m+ y B 配置JAVA_HOME, JAVA_HOME指向JDK的安装目录 5 _5 y4 w8 a$ W/ u/ ` d3 r6 i4 b: J JAVA_HOME 的作用: 是指导"某些Java软件"找到JDK 1 n0 A5 v1 @% }6 u, \1 a 如: tomcat 服务器 就使用 JAVA_HOME 5 o5 G3 y" O% Q% T7 [+ r 实例: export JAVA_HOME=/opt/jdk 5 r9 h: V& C+ g: f( U/ U! H/ k5 E) V8 h# A+ w+ ?# g- n2 _
C 配置CLASSPATH, 指向Java类的部署目录或者Jar文件 * O- o) V$ g8 \! N5 p2 G1 P 用来为JVM 指明Java类的搜索路径, Java在执行类的时候 + u5 U* ]& j2 W; c0 j* I% ^+ U: s 在CLASSPATH指示的路径下查找类文件.. D; M$ J6 b1 L1 t4 c! C
实例: export CLASSPATH=. 4 R" q/ C( e, W$ w" f / ?- Y2 k- l' y' D7 c Windows 参考 Java配置命令: 6 U0 j$ R3 f$ u7 X5 r' ?- S/ L7 W set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_01 3 ]2 ~9 J) b8 o M) D6 D set CLASSPATH=.. I" Y3 m* ]9 t9 z8 @5 b, I; c
set PATH=C:\Program Files\Java\jdk1.6.0_01\bin;%PATH%- ~6 ~8 l$ Z6 }, x4 I: L
3 p* ^3 K! W2 s" k& F( t
8 package 与 CLASSPATH: / `1 _6 J1 ~9 a9 X! W 1) 是java中对类进行分类的 z% E- i( B& t6 d1 t7 r+ P: u6 { 2) 包映射为系统的文件夹0 H0 x# f! @, ]# m# w1 `
3) java的类的全名: 全限定名=包名+类名 n" x y3 h& X$ j; J% @5 C
4) 使用Java执行类时候要指定到 "全限定名" 7 Y8 q+ G* ], y- p - s; q- Z- p+ z 5)Java 的 编辑 与编译实例:/ c: ?1 J: Q; H6 U0 S6 X
cd demo 4 C, ]* w! l& I* a$ V8 g M vi HelloWorld.java (编辑(edit)Java源文件)# I3 O( p$ X0 j w" U9 F
mkdir bin (创建输出目录bin)/ ]- H: L. E8 z2 N
javac -d bin HelloWorld.java (编译(Compile) 源文" p1 @8 ]5 U6 K/ B Z% Z
件到bin文件夹, 在bin中生成包)9 {. g5 }) h# w$ g' X6 b. }
(下面设置 Java的类文件搜索路径, java执行时候利用这个6 i+ C/ h0 Y, `4 s/ a" a% X- l
路径搜索Java的包和类文件) 9 ?' z+ d- X) s export CLASSPATH=/home/soft01/demo/bin# w0 T5 b( _' G( \- z
java unix.day01.HelloWorld (执行java类, Java命令会 x/ o" C/ L' `' _ 到CLASSPATH指定的系列路径中寻找包corejava.day01 / z" c$ r* k1 f3 J% x* c* A 寻找包中HelloWorld.class 的字节码文件 )9 Y1 q3 p5 Y5 ]) |
. G* I P' J) o* d4 p' W' r9 系统初始化脚本 6 p# }! X; x# T8 y: \4 t 1) 初始化脚本 是指在开机过程中自动执行的系统脚本文件 ' C( ?9 t$ d H* s! F. {8 } 一般用来初始化系统环境. \& \5 t* I7 P' [
2) 系统级初始化脚本文件: /etc/profile 所有当前系统的用户: e" I; e! P' K0 W
登录时候都执行8 [& A' x/ {9 Y( ^5 f; R8 s