存档

2011年11月 的存档

iptables防范cc攻击设置(转)

2011年11月13日 没有评论

当apache站点受到严重的cc攻击,我们可以用iptables来防止web服务器被CC攻击,实现自动屏蔽IP的功能。
1.系统要求
(1)LINUX 内核版本:2.6.9-42ELsmp或2.6.9-55ELsmp(其它内核版本需要重新编译内核,比较麻烦,但是也是可以实现的)。
(2)iptables版本:1.3.7

2. 安装
安装iptables1.3.7和系统内核版本对应的内核模块kernel-smp-modules-connlimit

3. 配置相应的iptables规则
示例如下:
(1)控制单个IP的最大并发连接数
iptables -I INPUT -p tcp –dport 80 -m connlimit \ –connlimit-above 50 -j REJECT
#允许单个IP的最大连接数为 30

(2)控制单个IP在一定的时间(比如60秒)内允许新建立的连接数
iptables -A INPUT -p tcp –dport 80 -m recent \ –name BAD_HTTP_ACCESS –update –seconds 60 \ –hitcount 30 -j REJECT iptables -A INPUT -p tcp –dport 80 -m recent \ –name BAD_HTTP_ACCESS –set -j ACCEPT
#单个IP在60秒内只允许最多新建30个连接

4. 验证

(1)工具:flood_connect.c(用来模拟攻击)
(2)查看效果:

使用
watch ‘netstat -an | grep:21 | \ grep<模拟攻击客户机的IP>| wc -l’
实时查看模拟攻击客户机建立起来的连接数,

使用
watch ‘iptables -L -n -v | \grep<模拟攻击客户机的IP>‘
查看模拟攻击客户机被 DROP 的数据包数。

5.注意

为了增强iptables防止CC攻击的能力,最好调整一下ipt_recent的参数如下:
#cat/etc/modprobe.conf options ipt_recent ip_list_tot=1000 ip_pkt_list_tot=60 #记录1000个IP地址,每个地址记录60个数据包 #modprobe ipt_recent
当apache站点受到严重的cc攻击,我们可以用iptables来防止web服务器被CC攻击,实现自动屏蔽IP的功能。
1.系统要求
(1)LINUX 内核版本:2.6.9-42ELsmp或2.6.9-55ELsmp(其它内核版本需要重新编译内核,比较麻烦,但是也是可以实现的)。
(2)iptables版本:1.3.7

2. 安装
安装iptables1.3.7和系统内核版本对应的内核模块kernel-smp-modules-connlimit

3. 配置相应的iptables规则

示例如下:
(1)控制单个IP的最大并发连接数
iptables -I INPUT -p tcp –dport 80 -m connlimit \ –connlimit-above 50 -j REJECT
#允许单个IP的最大连接数为 30

(2)控制单个IP在一定的时间(比如60秒)内允许新建立的连接数
iptables -A INPUT -p tcp –dport 80 -m recent \ –name BAD_HTTP_ACCESS –update –seconds 60 \ –hitcount 30 -j REJECT iptables -A INPUT -p tcp –dport 80 -m recent \ –name BAD_HTTP_ACCESS –set -j ACCEPT
#单个IP在60秒内只允许最多新建30个连接

4. 验证
(1)工具:flood_connect.c(用来模拟攻击)
(2)查看效果:
使用
watch ‘netstat -an | grep:21 | \ grep<模拟攻击客户机的IP>| wc -l’
实时查看模拟攻击客户机建立起来的连接数,

使用
watch ‘iptables -L -n -v | \grep<模拟攻击客户机的IP>‘
查看模拟攻击客户机被 DROP 的数据包数。

5.注意
为了增强iptables防止CC攻击的能力,最好调整一下ipt_recent的参数如下:

#cat/etc/modprobe.conf options ipt_recent ip_list_tot=1000 ip_pkt_list_tot=60
#记录1000个IP地址,每个地址记录60个数据包
#modprobe ipt_recent

Win8 Beta可直接在U盘中运行

2011年11月13日 没有评论

听说win8可以在u盘中运行。这可是个好消息。以前的win系统有一些当然也能在u盘里运行但是功能并不是非常到位。希望新版本的win8给我们带来一些惊喜。

文章消息来源:http://www.ylmf.net/windows/win8/news/2011111129994.html

分类: Windows 标签:

php.ini中文版注释

2011年11月12日 没有评论

php.ini 是php语言环境中最为重要的配置文件。以下我们就来详细介绍一下参数及功能:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
;**************以下这部分是php.ini-recommended中的内容******************
;**********************************************************************************************
;[php 5.0.4 php.ini-recommended]
;;;;;;;;;;;;;;;;;
;;关于这个文件 ;;
;;;;;;;;;;;;;;;;;
; 这个版本是推荐使用的、PHP5风格的php.ini版本。
; 这个版本使用了一些非标准设置,目的是使PHP更加高效、安全,鼓励更加整洁的代码
; 代价是可能与某些程序不兼容,并给开发带来难度。我们鼓励在正式发布网站时使用这个配置。
; 所有与默认不同的设置都有明显的注明,你可以决定是否使用与默认不同的设置。
; 有关php.ini的普通说明请参考php安装文件夹下的php.ini-dist文件。
; 这个文件和php.ini-dist不同,有些参数的设置改变了,这样做是为了提高性能和保障安全。
; 请确认你阅读了不同之处,并且修改过你的脚本,再采用这个版本的配置文件。
;-----------------------------------------------------------------
;register_globals = Off [安全,性能]
; 不再为输入数据注册全局变量(POST, GET, cookies, 环境变量, 服务器变量)
; 不要使用$foo,而要使用$_REQUEST["foo"](包含任何通过请求传送的数据,即:POST, GET, cookies, 环境变量, 服务器变量),
; 或使用指定的$_GET["foo"], $_POST["foo"], $_COOKIE["foo"], $_FILES["foo"](不包含在$_REQUEST数组中), 这取决于请求来自何处。
; 同时,你可以查看import_request_variables()函数(将 GET/POST/Cookie 变量导入到全局作用域中)。
; 注意,register_globals将在下一个版本中被废除(默认关闭),因为它总是带来太多的安全问题。
; 请参考
http://php.net/manual/en/security.registerglobals.php
以获得更多信息。
;
; register_long_arrays = Off [性能]
; 禁用旧式的长式预定义数组($HTTP_*_VARS),取而代之以短式预定义超全局数组。
;
; display_errors = Off [安全]
; 关闭这个特性,脚本执行期间的错误/警告将不会显示输出,这样就不会将敏感信息暴露给远端用户。
; 一些错误/警告信息会暴露可能被攻击者利用的脚本信息、服务器信息、数据库信息。
; 正式发布网站时应当关闭这个特性。
;
;log_errors = On [安全]
; 这个指令是上一个指令的补充。
; 脚本执行期间的错误将被记录到日志文件中(比如系统日志),可以有几种不同的配置方法。
; 配合将"display_errors"关闭,这个设置可以让你明白那里出了问题,而不会暴露任何敏感信息给远端用户。
;
;output_buffering = 4096 [性能]
; 设置一个4K的输出缓冲。请用输出缓存可以减少写入动作,有时还能减少传输数据包的大小,这些都有助于提高性能。
; 这个参数的实际收益取很大程度上取决于你使用的是什么Web服务器,使用的是什么样的脚本。
;
; register_argc_argv = Off [性能]
; 禁止注册有些多余的$argv和$argc全局变量
;
; magic_quotes_gpc = Off [性能]
; 不将输入的数据用反斜杠进行转义,以便发送给数据库时不需要更多的处理。
; 事实上,你应该对每一个发送到数据库的输入数据使用addslashes()函数。
;
;variables_order = "GPCS" [性能]
; 使得$_ENV数组中的环境变量不再杂乱无章。
; 你应当使用getenv()函数存取环境变量。
;
; error_reporting = E_ALL [代码清洁,安全(?)]
; 默认情况下,PHP错误报告等级是E_NOTICE
; E_ALL表示报告所有非致命错误,因为这些错误可能会导致大问题(比如使用了未定义的变量)。
;
; allow_call_time_pass_reference = Off [代码清洁]
; 禁止默认将函数的参数按引用传递。
; PHP4/5风格的处理办法是在函数声明时指定按引用传递。
 
--------------------------------------------------------------------------------
;**************以下这部分是php.ini-dist的内容,但是包含了与php.ini-recommended的不同之处******************
;*********************************************************************************************************
[PHP 5.0.4 php.ini-dist]
;;;;;;;;;;
;; 警告 ;;
;;;;;;;;;;
; 这是PHP新安装时的默认设置。默认设置适合于开发但是不适合正式应用。
; 出于安全方面考虑,请在发布正式应用程序时使用php.ini-recommended
; 并且参考如下页面:
http://php.net/manual/en/security.php
;;;;;;;;;;;;;;;;;;;
;; 关于 php.ini ;;
;;;;;;;;;;;;;;;;;;;
; 这个文件控制了PHP许多方面的性能和行为。 为了让PHP正确读取这个文件,
; 它必须被命名为'php.ini'。PHP将按照如下顺序依次查找该文件:
; 1.当前工作目录;2.环境变量PHPRC指明的路径;3.编译时指定的路径。
; 在windows下,编译时的路径是Windows的安装目录(C:\WINDOWS等)。
; 在命令行模式下,php.ini的查找路径可以用 -c 参数指定。
;
; 该文件的语法非常简单。空白字符(" ","\t",...)和用分号(";")开始的行被简单地忽略。
; 章节标题(例如 : [php])也被简单地忽略,即使将来它们可能有某种意义。
;
; 设置格式如下:
; directive = value
; 指令标识符(directive) 是大小写敏感的! "foo=bar" 不同于 "FOO = bar"。
; 值(value)可以是:
; 1.一个字符串、2.一个数字、3.一个 PHP常量(如:E_ALL, M_PI)、
; 4.一个INI常量(On, Off, True, False, Yes, No, None)、
; 5.一个表达式(如:E_ALL &amp; ~E_NOTICE)、
; 6.用引号括起来的字符串("foo").
;
; INI文件中的表达式仅限于使用位运算符/逻辑非/小括号。
; | 位或
; &amp; 位与
; ~ 位非
; ! 逻辑非
;
; 布尔标志可用 1, On, True, Yes 打开,亦可用 0, Off, False, No 关闭。
;
; 一个空字符串可以用在等号后不写任何东西表示,或者用 none 关键字,举例如下:
; foo =将foo置为空字符串
; foo = none将foo置为空字符串
; foo = "none"将foo置为字符串'none'
;
; 如果你在值设置中使用常量,而这些常量属于动态扩展(PHP扩展或Zend扩展)
; 那么你只能在调入这些动态扩展的行之后使用这些常量。
;
; 所有在 php.ini-dist 文件里设定的值与内建的默认值相同。
; 也就是说,如果 php.ini 不存在,或者你删掉了某些行,默认值与之相同。
--------------------------------------------------------------------------------
;;;;;;;;;;;;;;;
;;; 语言选项 ;;
;;;;;;;;;;;;;;;
engine = On
; 使PHP脚本语言引擎在Apache下有效。
zend.ze1_compatibility_mode = Off
; 允许使用兼容Zend引擎1(PHP 4.x)的模式
short_open_tag = On
; 允许 "" 短标识,否则只有""和"..."才能被识别。
; 注意:除非你的php程序只供自己使用,否则请不要使用短标记。
; 如果要和XML结合使用PHP,你可以选择禁用此选项以方便直接嵌入使用 ,
; 不然你必须用PHP来输出:
; 本指令也会影响到缩写形式 ",这也会影响到缩写形式:
precision = 12
;[recommended]-&gt;precision = 14
; 浮点型数据显示的有效位数
y2k_compliance = On
; 强制打开2000年适应 (可能在非Y2K适应的浏览器中导致问题)
output_buffering = Off
;[recommended]-&gt;output_buffering = 4096
; 输出缓存允许你甚至在输出正文内容之后发送http头(包括cookies)。
; 其代价是输出层减慢一点点速度。
; 你可以在运行期间通过调用输出缓冲函数启用输出缓存。
; 你还可以通过设置"output_buffering=On"来为所有文件启用输出缓存(默认4096)。
; 如果你想指定缓冲区的最大字节数,你可以直接将"On"替换成数字,
; 比如:"output_buffering=4096"指定了缓存上限为4096字节。
;output_handler =
; 你可以将所有脚本输出重定向到一个输出处理函数。
; 比如,重定向到"mb_output_handler"函数时,字符编码将被透明地转换为指定的编码。
; 一旦你在这里指定了输出处理程序,"output_buffering"将被自动打开。
; 注意1: 在编写可移植脚本的时候不能依赖这个指令,而应明确的调用ob_start()函数打开输出缓存。
; 使用这个指令可能会导致某些你不熟悉的脚本出错。
; 注意2: 你不能同时使用"mb_output_handler"和"ob_iconv_handler"
; 你也不能同时使用"ob_gzhandler"和"zlib.output_compression"
; 注意3: 如果启用了zlib输出压缩,"output_handler"必须为空,取而代之,必须启用"zlib.output_handler"。
zlib.output_compression = Off
; 使用zlib库透明地压缩脚本输出结果。
; 该指令的值可以设置为:Off/On/字节数(用来作为压缩缓冲区大小,默认为4KB)
; 如果在php.ini或者apache配置中打开这个功能,当浏览器发送"Accept-Encoding: gzip(deflate)"头时,
; "Content-Encoding: gzip(deflate)"和"Vary: Accept-Encoding"头将加入到应答头当中。
; 你可以在答头输出之前用ini_set()函数在脚本中禁止这个特性,
; 如果你输出一个"Content-Type: image/"这样的应答头,压缩将不会启用(为了防止Netscape的bug)。
; 你可以在输出"Content-Type: image/"之后使用"ini_set('zlib.output_compression', 'On')"重新打开这个特性。
; 注意1: 压缩率会受压缩缓冲区大小的影响,如果你想得到更好的压缩质量,请指定一个较大的压缩缓冲区。
; 注意2: 如果启用了zlib输出压缩,"output_handler"必须为空,取而代之,必须启用"zlib.output_handler"。
;zlib.output_handler =
; 在打开"zlib.output_compression"指令的情况下,除这里以外,你不能另外指定输出处理程序。
; 这个指令和"output_handler"起相同的作用,但是顺序不同。
implicit_flush = Off
; 这个指令告诉PHP输出层在每个输出块之后自动刷新自身数据。默认为 FALSE
; 这等效于在每个print()、echo()、HTML块之后自动调用flush()函数。
; 打开这个选项对程序执行的性能有严重的影响,通常只推荐在调试时使用。
; 在CLI SAPI的执行模式下,该标记默认为 TRUE 。
unserialize_callback_func=
; 如果解序列化程序需要实例化一个未定义类,该这里指定的回调函数将以该未定义类的名字作为参数被调用,
; 以免得到不完整的"__PHP_Incomplete_Class"对象。
; 如果这里没有指定函数,或者指定的函数不包含(或实现)那个未定义的类,将会显示一条警告信息。
; 只有在你真想执行这样一个回调函数的情况下,才需要指定该参数的值。
; 可以通过 php.ini、ini_set() 或 .htaccess 定义"unserialize_callback_func"。
; 若要禁止这个特性,只需置空此设定。
serialize_precision = 100
; 将浮点型和双精度型数据序列化存储时,序列化精度指明了有效位数。
; 默认值能够确保浮点型数据被解序列化程序解码时不会有数据丢失。
allow_call_time_pass_reference = On
;[recommended]-&gt;allow_call_time_pass_reference = Off
; 强迫函数调用时按引用传递参数。
; php反对使用这一方法,并可能在将来版本的PHP/Zend里不再支持。
; 鼓励的方法是在函数声明里指定哪些参数按引用传递。
; 我们鼓励你尝试关闭这一选项并确认你的脚本仍能正常工作,以保证你的脚本在将来版本的语言里仍能正常工作。
; (每次使用此特性都会收到一条警告:参数会被按值传递而不是按照引用传递)
;;;;;;;;;;;;;
; 安全模式
safe_mode = Off
; 安全模式
safe_mode_gid = Off
; 安全模式默认情况下在打开文件时会做UID比较检查。
; 如果你想将其放宽到GID比较,可以打开这个参数。
safe_mode_include_dir =
; 在安全模式下,该文件夹和其子文件夹下的文件被包含时,将跳过UID/GID检查。
; (文件夹必须必须在"include_path"中或者用完整路径来包含)
; 从PHP4.2 开始,本指令可以接受和"include_path"指令类似的风格用分号隔开的路径,而不只是一个目录。
; 指定的限制实际上是一个前缀,而非一个目录名,也就是说"/dir/incl"将允许访问"/dir/include"和"/dir/incls"
; 如果您希望将访问控制在一个指定的目录,那么请在结尾加上一个斜线,例如:"/dir/incl/"
safe_mode_exec_dir =
; 在安全模式下,只有该文件夹下的可执行程序才能被允许通过system()和其它执行系统程序的函数执行。
; 这些函数是:escapeshellarg, escapeshellcmd, exec, passthru, proc_close, proc_get_status,
; proc_nice, proc_open, proc_terminate, shell_exec, system ....
safe_mode_allowed_env_vars = PHP_
; 该指令包含用逗号分隔的前缀列表,表示用户在安全模式下仅可以更改在此列出的前缀开头的环境变量的值。
; 因为设置某些环境变量,可能会导致潜在的安全漏洞。
; 默认地,用户将仅能设定以PHP_开头的环境变量,(如: PHP_FOO=BAR)。
; 注意: 如果这一参数值为空,PHP将允许用户更改任意环境变量!
safe_mode_protected_env_vars = LD_LIBRARY_PATH
; 这个指令包含一个用逗号分隔的环境变量列表,在安全模式下,列表中的变量是远端用户不能用putenv()更改的。
; 这些变量甚至在"safe_mode_allowed_env_vars"设置为允许的情况下也会得到保护。
;open_basedir =
; 将PHP允许打开的所有文件都限制在此目录下。无论安全模式是否打开,该参数都将起作用。
; 如果web服务器使用了per-directory或虚拟主机,这个参数将非常有意义。
; 当一个脚本试图用例如fopen()或者gzopen()打开一个指定目录树之外的文件时,将遭到拒绝。
; 所有的符号连接都会被解析,所以不可能通过符号连接来避开此限制。
; 特殊值'.'指定了存放该脚本的目录将被当做基准目录。
; 在Windows中,用分号分隔目录。在任何其它系统中用冒号分隔目录。
; 作为Apache模块时,父目录中的open_basedir路径将自动被继承。
; 用open_basedir指定的限制实际上是前缀,不是目录名。也就是说"/dir/incl"将允许访问"/dir/include"和"/dir/incls"
; 如果您希望将访问控制在一个指定的目录,那么请在结尾加上一个斜线,例如:"/dir/incl/"
; 默认是允许打开所有文件。
disable_functions =
; 这个指令让你可以出于安全原因禁用特定的函数。它接受一个用逗号分隔的函数名列表。
; 无论安全模式是否打开,该参数都将起作用。
; 本指令只能设置在php.ini中。例如你不能将其设置在httpd.conf中
disable_classes =
; 这个指令让你可以出于安全原因禁用特定的类。它接受一个用逗号分隔的类名列表。
; 无论安全模式是否打开,该指令都将起作用。本指令自 PHP 4.3.2 起可用。
; 本指令只能设置在php.ini中。例如你不能将其设置在httpd.conf中
;highlight.string = #DD0000
;highlight.comment = #FF9900
;highlight.keyword = #007700
;highlight.bg = #FFFFFF
;highlight.default = #0000BB
;highlight.html = #000000
; 语法高亮模式的色彩。
; 只要能被接受的东西就能正常工作。
;;;;;;;;;
; 杂项
expose_php = On
; 决定PHP是否暴露它被安装在服务器上的事实(比如出现在http头中)
; 它不会有安全上的威胁, 但它使得检查你的服务器上是否安装了PHP成为了可能。
--------------------------------------------------------------------------------
;;;;;;;;;;;;;;
;; 资源限制 ;;
;;;;;;;;;;;;;;
max_execution_time = 30
; 每个脚本最大允许执行时间, 按秒计。默认为30秒。
; 这个参数有助于阻止劣质脚本无休止的占用服务器资源。
; 注: "max_execution_time"仅影响脚本本身的运行时间。
; 任何其它花费在脚本运行之外的时间,如用system()/sleep()函数的使用、数据库查询、文件上传等,都不包括在内。
; 在安全模式下,你不能用ini_set()在运行时改变这个设置。
max_input_time = 60
; 每个脚本接收输入数据的最大允许时间(POST, GET, upload), 按秒计
memory_limit = 8M
; 设定一个脚本所能够申请到的最大内存字节数。
; 这有助于防止劣质脚本消耗完服务器上的所有内存。
; 要使用此指令必须在编译的时候激活。
; 因此 configure 一行中应该包括:--enable-memory-limit
; 如果不需要任何内存上的限制,必须将其设为 -1
; 自php4.3.2 起,当设置了memory_limit后,memory_get_usage()函数将变为可用
;;;;;;;;;;;;;;;;;;;;
;; 出错处理和日志 ;;
;;;;;;;;;;;;;;;;;;;;
error_reporting = E_ALL &amp; ~E_NOTICE &amp; ~E_STRICT
;[recommended]-&gt;error_reporting = E_ALL
; 显示所有的错误,除了提醒和编码标准化警告。
; 错误报告是位字段。可以将数字加起来得到想要的错误报告等级。
; E_ALL - 所有的错误和警告(不包括 E_STRICT)
; E_ERROR - 致命性的运行时错误
; E_WARNING - 运行时警告(非致命性错误)
; E_PARSE - 编译时解析错误
; E_NOTICE - 运行时提醒(这些经常是你代码中的bug引起的,也可能是有意的行为造成的。)
; E_STRICT - 编码标准化警告,允许PHP建议如何修改代码以确保最佳的互操作性向前兼容性。
; E_CORE_ERROR - PHP启动时初始化过程中的致命错误
; E_CORE_WARNING - PHP启动时初始化过程中的警告(非致命性错)
; E_COMPILE_ERROR - 编译时致命性错
; E_COMPILE_WARNING - 编译时警告(非致命性错)
; E_USER_ERROR - 用户自定义的错误消息
; E_USER_WARNING - 用户自定义的警告消息
; E_USER_NOTICE - 用户自定义的提醒消息
; 例子:
;error_reporting = E_ALL &amp; ~E_NOTICE ; 显示所有的错误,除了提醒
;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR ; 仅显示错误
display_errors = On
;[recommended]-&gt;display_errors = Off
; 作为输出的一部分显示出错误信息
; 在最终发布的web站点上,强烈建议你关掉这个特性,并使用错误日志代替(参看下面)。
; 在最终发布的web站点打开这个特性可能暴露一些安全信息,
; 例如你的web服务上的文件路径、数据库规划或别的信息。
display_startup_errors = Off
; 即使"display_errors"特性被打开,关闭此参数也将不显示PHP启动时的错误。
; 强烈建议你关掉这个特性,除非你必须要用于调试中。
log_errors = Off
;[recommended]-&gt;log_errors = On
; 在日志文件里记录错误(服务器指定的日志,stderr标准错误输出,或error_log(下面的))
; 正如上面说明的那样,强烈建议你在最终发布的web站点时用日志记录错误而不是直接输出。
log_errors_max_len = 1024
; 设置错误日志文件的最大长度。
; 设为 0 可以允许无限长度。
ignore_repeated_errors = Off
; 忽略重复的错误信息
; 如果关闭这个参数,错误信息必须出现在同一个文件的同一行才被忽略。
; 如果打开这个参数,则没有这个限制。
ignore_repeated_source = Off
; 忽略重复的错误源
; 忽略重复的错误信息时忽略重复的错误源
; 如果打开这个参数,将不会记录不同的出错文件和对应行的错误信息。
report_memleaks = On
; 报告内存泄漏
; 如果关闭该参数,将不记录或者显示内存泄漏
; 这个参数只在调试编译中起作用,并且必须在错误报告中包含 E_WARNING
track_errors = Off
; 保存最近一个错误/警告消息于变量$php_errormsg (boolean)中
;html_errors = Off
; 禁用出错信息中的HTML标记
; 注意: 不要在发布的程序中使用这个特性。
;docref_root = "/phpmanual/"
;docref_ext = .html
; 如果打开了html_errors参数,PHP将会在出错信息上显示超连接,
; 直接链接到一个说明这个错误或者导致这个错误的函数的页面。
; 你可以从
http://www.php.net/docs.php
下载php手册,并设置docref_root参数,将他指向你本地的手册所在目录。
; 你还必须设置"docref_ext"来指定文件的扩展名。
; 注意: 不要在发布的程序中使用这个特性。
;error_prepend_string = ""
; 用于错误信息前输出的字符串
;error_append_string = ""
; 用于错误信息后输出的字符串
;error_log = filename
; 将错误日志记录到哪个文件中。
; 如果设为"syslog", 错误日志将被记录到系统日志中(NT下的事件日志, Unix下的syslog(3))
--------------------------------------------------------------------------------
;;;;;;;;;;;;;;
;; 数据处理 ;;
;;;;;;;;;;;;;;
;arg_separator.output = "&amp;"
; PHP所产生的URL中来分隔参数的分隔符。默认值是"&amp;"
;arg_separator.input = ";&amp;"
; PHP解析URL中的变量时使用的分隔符列表,默认值是"&amp;"
; 注意: 字符串中的任何字符都将被看着分割符
variables_order = "EGPCS"
;[recommended]-&gt;variables_order = "GPCS"
; PHP注册 GET, POST, Cookie, Environment, Built-in 变量的顺序。
; (以 G, P, C, E, S 表示,通常以 EGPCS 或 GPC 或 ES 的方式引用)。
; 按从左到右记录,新值覆盖旧值。
; 举例说,将其设为"GP",会导致 PHP 完全忽略环境变量、cookies 、server,
; 并用 GET 方法的变量覆盖 POST 方法的同名变量
register_globals = Off
; 是否将这些 EGPCS 变量注册为全局变量。自 PHP 4.2.0 开始,本指令默认为 off
; 例如,如果打开这个特性,那么URL:
http://www.example.com/test.php?id=3
将产生 $id
; 或者从 $_SERVER['DOCUMENT_ROOT'] 得到 $DOCUMENT_ROOT 。
; 如果你不想让脚本中的全局变量和用户输入的数据搞混的话,请关闭它。
; 推荐使用PHP的预定义变量来替代,例如超全局变量:$_ENV,$_GET,$_POST,$_COOKIE 和 $_SERVER
; 请注意, register_globals不能在运行时设定(ini_set()),尽管在主机允许时可以用 .htaccess 来设置
; 一个 .htaccess 项目的例子:php_flag register_globals on
; 注: register_globals 受 variables_order 指令的影响。
register_long_arrays = On
;[recommended]-&gt;register_long_arrays = Off
; 是否启用旧式的长式数组(HTTP_*_VARS),推荐关闭该特性以获得更好的性能。
register_argc_argv = On
;[recommended]-&gt;register_argc_argv = Off
; 是否声明 argv和argc 变量(其中包含用GET方法传来的数据)
; 【argv为变量数组,argc为变量数组中元素个数】
; 若你不想使用这两个变量,应当关掉它以提高性能。
post_max_size = 8M
; PHP接受的POST数据最大长度。此设定也影响到文件上传。
; 要上传大文件,该值必须大于"upload_max_filesize"
; 如果配置脚本中激活了内存限制,"memory_limit"也会影响文件上传。
; 一般说来,"memory_limit"应该比"post_max_size"要大。
;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 魔术引号(自动字符串转义)
magic_quotes_gpc = On
;[recommended]-&gt;magic_quotes_gpc = Off
; 在输入的GET/POST/Cookie数据里使用自动字符串转义【比如,值 (It's "PHP!") 会自动转换成 (It\'s \"PHP!\")】
; 这里的设置自动影响$_GEST,$_POST,$_COOKIE数组的值。如果打开,值 (It's "PHP!") 会自动转换成 (It\'s \"PHP!\")。
; (个人意见:关闭此特性, 因为它在处理双字节汉字的时候可能会破坏某些繁体字和特殊字符)
magic_quotes_runtime = Off
; 对运行时从外部资源产生的数据使用自动字符串转义
; 例如:用SQL查询得到的数据,用exec()函数得到的数据,等等
magic_quotes_sybase = Off
; 采用 Sybase形式的自动字符串转义( 用 '' 表示 ' 而不用 \' )
auto_prepend_file =
; 指定在主文件之前自动解析的文件名。
; 该文件就像调用了include()函数一样被包含进来,因此会使用"include_path"
auto_append_file =
; 指定在主文件之后自动解析的文件名。
; 该文件就像调用了include()函数一样被包含进来,因此会使用"include_path"
; 注: 如果脚本通过 exit() 终止,则自动后缀不会发生。
default_mimetype = "text/html"
;default_charset = "iso-8859-1"
; PHP总是默认地在"Content-type:"头中设置输出文档的MIME类型和字符集的编码方式。
; 要让输出字符集失效,只要设置为空或注释掉即可。
; PHP的默认设置会输出"Content-Type: text/html"
; 若去掉"default_charset"前的注释并将其设为"gb2312",
; 那么将会输出"Content-Type: text/html; charset=gb2312"
;always_populate_raw_post_data = On
; 总是填充$HTTP_RAW_POST_DATA变量,"HTTP_RAW_POST_DATA"意为"HTTP原始POST数据"
--------------------------------------------------------------------------------
;;;;;;;;;;;;;;;;
;; 路径和目录 ;;
;;;;;;;;;;;;;;;;
;include_path = ".;c:\php\includes"
; 指定一组目录用于require(),include()和fopen_with_path()函数来寻找文件。
; 格式和系统的 PATH 环境变量类似:
; 一组目录的列表,在 UNIX 下用冒号分隔,在 Windows 下用分号分隔。
; 在包含路径中使用 '.' 可以允许相对路径,它代表当前目录。
; UNIX: "/path1:/path2"
; Windows: "\path1;\path2"
doc_root =
; PHP页面在服务器上的根目录。仅在非空时有效。
; 如果PHP被配置为安全模式,则此目录之外的文件一概不被解析。
; 如果PHP编译时没有指定FORCE_REDIRECT,并且在非IIS服务器上以CGI方式运行,
; 则必须设置此项。(参见手册中的安全部分)
; 替代方案是使用下面的"cgi.force_redirect"指令。
user_dir =
; 告诉php在使用 /~username 打开脚本时到哪个目录下去找,仅在非空时有效。
; 也就是在用户目录之下使用PHP文件的基本目录名,例如:public_html
extension_dir = "./"
; 存放扩展库(模块)的目录,也就是PHP用来寻找动态连接扩展库的目录
enable_dl = On
; 是否使dl()函数有效。
; dl()函数在除apache以外的多线程的服务器(如:IIS或Zeus)上不能正确地工作,并在其上默认为禁止。
;cgi.force_redirect = 1
; 打开cgi强制重定向为以CGI方式运行的php提供了必要的安全保护,php默认打开了该参数。
; 你若自己关闭了它,请自己负责后果
; 注意:在IIS/OmniHTTPD/Xitami上则必须关闭它!
;cgi.nph = 1
; 如果该参数打开,那么它会强制cgi对每个http请求始终发送状态码: 200
;cgi.redirect_status_env =
; 如果打开了cgi.force_redirect,并且你没有将php运行在Apache或Netscape(iPlanet)服务器上,
; 可能需要设定一个cgi重定向环境变量名,PHP将去寻找它来知道可以继续执行下去。
; 设置这个变量会导致安全漏洞,请务必在设置前搞清楚自己在做什么。
;fastcgi.impersonate = 1
; IIS中的FastCGI支持模仿客户端安全令牌的能力。这使得IIS能够定义运行时所基于的请求的安全上下文。
; Apache中的mod_fastcgi不支持此特性(03/17/2002)
; 如果在IIS中运行则设为1,默认为 0
;cgi.rfc2616_headers = 0
; 指定PHP在发送HTTP响应代码时使用何种报头。
; 如果设定为0,PHP发送一个"Status: "报头,Apache和其它web server都支持。
; 若设为0,则PHP使用Apache支持的头。若设为1,则PHP使用RFC2616标准的头。默认值为0
; 除非你知道自己在做什么,否则保留其值为 0
;;;;;;;;;;;;;;
;; 文件上传 ;;
;;;;;;;;;;;;;;
file_uploads = On
; 是否允许HTTP文件上传。参见upload_max_filesize,upload_tmp_dir,post_max_size
;upload_tmp_dir =
; 文件上传时存放文件的临时目录。必须是PHP进程用户可写的目录。如果未指定则PHP使用系统默认值。
upload_max_filesize = 2M
; 允许上传的文件的最大尺寸。
;;;;;;;;;;;;;;
;; 文件打开 ;;
;;;;;;;;;;;;;;
allow_url_fopen = On
; 是否允许打开远程文件( http:// or ftp://)
;from="
john@doe.com
"
; 定义匿名ftp的密码(一个email地址)
;user_agent="PHP"
; 定义"User-Agent"字符串
default_socket_timeout = 60
; socket超时,单位是秒
;auto_detect_line_endings = Off
; 如果的你脚本必须处理Macintosh文件,或者你运行在Macintosh上,同时又要处理unix或win32文件,
; 设置这个标志可以让PHP自动侦察文件结束符,以便fgets()和file()函数正常工作。
; 默认值是 Off,因为在检测第一行的 EOL 习惯时会有很小的性能损失,
; 而且在 Unix 系统下使用回车符作为项目分隔符的人们会遭遇向下不兼容的行为。
;;;;;;;;;;;;;;
;; 动态扩展 ;;
;;;;;;;;;;;;;;
; 若你希望一个扩展库自动加载,可用下面的语法:
; extension=modulename.extension
; 例如,在windows上:
; extension=msql.dll
; 在UNIX上:
; extension=msql.so
; 注意,这只应当是模块的名字,不需要附带目录信息。
; 上面的extension_dir已经指示了扩展库的位置。
;Windows 扩展
;注意,ODBC是内置支持的,不需要使用扩展。(MySQL没有内置)
;extension=php_bz2.dll
;extension=php_cpdf.dll
;extension=php_curl.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_dbx.dll
;extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_filepro.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_ifx.dll
;extension=php_iisfunc.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_java.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_mime_magic.dll
;extension=php_ming.dll
;extension=php_mssql.dll
;extension=php_msql.dll
;extension=php_mysql.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
;extension=php_oracle.dll
;extension=php_pdf.dll
;extension=php_pgsql.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_sockets.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_w32api.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_yaz.dll
;extension=php_zip.dll
--------------------------------------------------------------------------------
;;;;;;;;;;;;;;
;; 模块设置 ;;
;;;;;;;;;;;;;;
[Syslog]
define_syslog_variables = Off
; 是否定义各种的系统日志变量,如:$LOG_PID, $LOG_CRON 等等。
; 关掉它以提高效率的好主意。
; 你可以在运行时调用函数define_syslog_variables()来定义这些变量
[mail function]
SMTP = localhost ;仅用于win32系统
smtp_port = 25 ;仅用于win32系统
;sendmail_from =
me@example.com
;仅用于win32系统
;sendmail_path = ;仅用于unix, 也可支持参数(默认的是'sendmail -t -i')
;mail.force_extra_parameters =
; Force the addition of the specified parameters to be passed as extra parameters to the sendmail binary.
; These parameters will always replace the value of the 5th parameter to mail(), even in safe mode.
[SQL]
sql.safe_mode = Off
[ODBC]
;odbc.default_db = (暂未实现)
;odbc.default_user = (暂未实现)
;odbc.default_pw = (暂未实现)
odbc.allow_persistent = On ; 是否允许持久连接
odbc.check_persistent = On ; 在重用前检查连接是否还可用
odbc.max_persistent = -1 ; 每个进程中允许的最大持久连接数。-1 代表无限制
odbc.max_links = -1 ; 每个进程中允许的最大连接数(持久和非持久)。-1 代表无限制
odbc.defaultlrl = 4096
; 处理LONG类型的字段。返回变量的字节数,0代表通过(?)
; Handling of LONG fields. Returns number of bytes to variables. 0 means passthru.
odbc.defaultbinmode = 1
; 处理二进制数据。0代表通过(?) 1返回原样, 2转换为字符
; 参见odbc_binmode和odbc_longreadlen文档以得到uodbc.defaultlrl和uodbc.defaultbinmode的解释。
[MySQL]
; php内置的MySQL扩展库无法同4.1.0以上版本的MySQL一起工作。你需要使用MySQLi扩展。
; MySQLi扩展模块与recode扩展模块共同使用的时候,可能会造成PHP的崩溃和启动时出现问题。
; 如果您需要除latin(默认)以外其它的字符集,您需要安装有已编译字符集支持的外置libmysql(未集成)
mysql.allow_persistent = On ; 允许或禁止持久连接
mysql.max_persistent = -1 ; 每个进程中允许的最大持久连接数。-1 代表无限制
mysql.max_links = -1 ; 每个进程中允许的最大连接数(持久和非持久)。-1 代表无限制
mysql.default_socket = ; 用于本地MySql连接的默认的套接字名。为空时使用MYSQL内置的默认值
mysql.default_port =
; mysql_connect()使用的默认TCP端口,如果没有指定默认端口号,
; mysql_connect()将按顺序从:(1)$MYSQL_TCP_PORT环境变量、
; (2)/etc/services文件中的mysql-tcp项(unix)、(3)编译时指定的MYSQL_PORT常量 中获得。
; Win32下,只使用 MYSQL_PORT 常量。
mysql.default_host = ; mysql_connect() 默认使用的主机(安全模式下无效)
mysql.default_user = ; mysql_connect() 默认使用的用户名(安全模式下无效)
mysql.default_password =
; mysql_connect() 默认使用的密码(安全模式下无效)
; 注意,在这个文件下保存密码通常是一个坏主意
; 任何可以使用PHP访问的用户都可以运行'echo cfg_get_var("mysql.default_password")'来显示密码!
; 而且当然地,任何有读该文件权力的用户也能看到那个密码。
mysql.connect_timeout = 60
; 连接超时(秒),-1 代表无限制。
; 在Linux中,这个参数设定了等候来自服务器的响应的时长。
mysql.trace_mode = Off
; 跟踪模式。当打开这个特性后,扫描表或索引时SQL的警告将会被显示。
[MySQLI]
mysqli.max_links = -1 ; 每个进程中允许的最大连接数(持久和非持久)。-1 代表无限制
mysqli.default_socket = ; 用于本机MySql连接的默认的套接字名。为空时使用MYSQL内置的默认值
mysqli.default_port = 3306
; mysqli_connect()使用的默认TCP端口,如果没有指定默认端口号,
; mysqli_connect()将按顺序从:(1)$MYSQL_TCP_PORT环境变量、
; (2)/etc/services文件中的mysql-tcp项(unix)、(3)编译时指定的MYSQL_PORT常量 中获得。
; Win32下,只使用 MYSQL_PORT 常量。
mysqli.default_host = ; mysqli_connect() 默认使用的主机(安全模式下无效)
mysqli.default_user = ; mysqli_connect() 默认使用的用户名(安全模式下无效)
mysqli.default_password =
; mysqli_connect() 默认使用的密码(安全模式下无效)
; 注意,在这个文件下保存密码通常是一个坏主意
; 任何可以使用PHP访问的用户都可以运行'echo cfg_get_var("mysql.default_password")'来显示密码!
; 而且当然地,任何有读该文件权力的用户也能看到那个密码。
mysqli.reconnect = Off
; 跟踪模式。当打开这个特性后,扫描表或索引时SQL的警告将会被显示。
[mSQL]
msql.allow_persistent = On ; 允许或禁止持久连接
msql.max_persistent = -1 ; 最大持久连接数。-1 代表无限制
msql.max_links = -1 ; 最大连接数(持久和非持久)。-1 代表无限制
[PostgresSQL]
pgsql.allow_persistent = On ; 允许或禁止持久连接
pgsql.max_persistent = -1 ; 每个进程中允许的最大持久连接数。-1 代表无限制
pgsql.max_links = -1 ; 每个进程中允许的最大连接数(持久和非持久)。-1 代表无限制
pgsql.auto_reset_persistent = Off
; 检测用在pg_pconnect()上中断了的持久连接,需要一些额外开销。
pgsql.ignore_notice = 0
; 是否忽略PostgreSQL后端的通告消息。记录后端的通告消息需要一些额外开销。
pgsql.log_notice = 0
; 是否在日志中记录PostgreSQL后端的通告消息。除非pgsql.ignore_notice=0,否则无法记录。
[Sybase]
sybase.allow_persistent = On ; 允许或禁止持久连接
sybase.max_persistent = -1 ; 每个进程中允许的最大持久连接数。-1 代表无限制
sybase.max_links = -1 ; 每个进程中允许的最大连接数(持久和非持久)。-1 代表无限制
;sybase.interface_file = "/usr/sybase/interfaces"
sybase.min_error_severity = 10 ; 显示错误的最低严重性
sybase.min_message_severity = 10 ; 显示消息的最低重要性
sybase.compatability_mode = Off
; 与PHP3兼容的模式。若打开,这将导致PHP自动根据结果的Sybase类型赋值,而不是把它们全当成字符串。
; 这个兼容模式不会永远保留,将来会被丢弃。
[Sybase-CT]
sybct.allow_persistent = On ; 允许或禁止持久连接
sybct.max_persistent = -1 ; 每个进程中允许的最大持久连接数。-1 代表无限制
sybct.max_links = -1 ; 每个进程中允许的最大连接数(持久和非持久)。-1 代表无限制
sybct.min_server_severity = 10 ; 显示服务端错误的最低严重性
sybct.min_client_severity = 10 ; 显示客户端错误的最低严重性
[dbx]
; returned column names can be converted for compatibility reasons
; possible values for dbx.colnames_case are
; "unchanged" (default, if not set)
; "lowercase"
; "uppercase"
; the recommended default is either upper- or lowercase, but
; unchanged is currently set for backwards compatibility
dbx.colnames_case = "unchanged"
[bcmath]
bcmath.scale = 0
; 用于所有bcmath函数的10十进制数数字的个数
[browscap]
;browscap = extra/browscap.ini
;browscap = c:/windows/system32/inetsrv/browscap.ini ;winxp
;browscap = c:/winnt/system32/inetsrv/browscap.ini ;win2000
; 只有PWS和IIS需要这个设置
; 你可以从
http://www.garykeith.com/browsers/downloads.asp
得到一个 browscap.ini 文件。
[Informix]
ifx.default_host = ; ifx_connect() 默认使用的主机(安全模式下无效)
ifx.default_user = ; ifx_connect() 默认使用的用户名(安全模式下无效)
ifx.default_password = ; ifx_connect() 默认使用的密码(安全模式下无效)
ifx.allow_persistent = On ; 允许或禁止持久连接
ifx.max_persistent = -1 ; 每个进程中允许的最大持久连接数。-1 代表无限制
ifx.max_links = -1 ; 每个进程中允许的最大连接数(持久和非持久)。-1 代表无限制
ifx.textasvarchar = 0
; 若打开,select状态符返回一个"text blob"字段的内容,而不是它的id
ifx.byteasvarchar = 0
; 若打开,select状态符返回一个"byte blob"字段的内容,而不是它的id
ifx.charasvarchar = 0
; 追踪从固定长度的字符列里剥离的空格。可能对 Informix SE 用户有效。
ifx.blobinfile = 0
; 若打开,text和byte blobs的内容被导出到一个文件而不是保存到内存。
ifx.nullformat = 0
; 设为0, NULL被作为空字段返回。设为1, NULL作为字串"NULL"返回。
--------------------------------------------------------------------------------
[Session]
; 注意,除非使用session_register()或$_SESSION注册了一个变量。
; 否则不管是否使用了session_start(),都不会自动添加任何session记录。
session.save_handler = files
; 用于保存/检索数据的处理程序,默认是文件(files)。
;session.save_path = "/tmp"
; 在"session.save_handler=files"的情况下,这个参数指定了会话数据文件的保存路径。
; Windows用户必须修改此参数才能使用会话相关函数。
; 你可以这样定义路径(N是一个整数):session.save_path = "N;[MODE;]/path"
; N表示可以使用N层深度的子目录,而不是将所有数据文件都保存在一个目录下。
; [MODE;]加了括号表示可选,表示它必须用8进制数来表示,其默认值是600 (等于384)。
; The file storage module creates files using mode 600 by default.
; Note that this does not overwrite the process's umask.
; 这是一个提高Windows下海量会话性能的好主意。
; 注意0: "N;/path"两边的双引号不能省略。
; 注意1: php不会自动建立这些文件夹结构。你可以使用ext/session目录下的脚本来做这件事情。
; 注意2: 如果你指定的文件夹可以被不安全的用户读取(比如默认的"/tmp"),那么将会带来安全漏洞。
; 注意3: 参见下面有关垃圾搜集的章节。
session.use_cookies = 1
; 是否使用cookie在客户端保存session id,默认为1(使用)
;session.use_only_cookies = 1
; 只使用Cookie来承载会话,默认为0 (关闭)
; 打开这个选项可以避免用URL传递会话带来的安全问题。但是禁用Cookie的客户端将使session无法工作。
session.name = PHPSESSID
;用在cookie里的会话标识名,只能包含字母和数字。
session.auto_start = 0
; 在客户访问任何页面时自动初始化会话,默认禁止。
; 因为类定义必须在session启动之前被载入,所以若打开这个选项,你就不能在sessions中存放对象。
session.cookie_lifetime = 0
; session_cookie的有效期(秒),若为0,则仅在浏览器打开期间有效。
session.cookie_path = /
; session_cookie的作用路径
session.cookie_domain =
; session_cookie的作用域,默认为空。
session.serialize_handler = php
; 用来序列化/解序列化数据的处理程序,php是PHP的标准序列化/解序列化处理程序。
session.gc_probability = 1
session.gc_divisor = 100
;[recommended]-&gt;session.gc_divisor = 1000
; 定义在每次初始化会话时,启动垃圾回收程序的概率。
; 这个收集概率计算公式如下:gc_probability/gc_divisor
; 比如:1/100 表示每一个新会话初始化时,有1%的概率会启动垃圾回收程序。
session.gc_maxlifetime = 1440
; 经过此参数所指的秒数后,保存的数据将被视为'垃圾'并由垃圾回收程序清理。
; 判断的标准是文件建立的时间,而不是最后刷新数据的时间。
; 注意: 如果你使用了子目录来存储会话的数据文件(参见:session.save_path),垃圾回收程序不会自动启动。
; 你必须使用一个你自己编写的shell脚本、克隆目录或者其他办法来执行垃圾搜集。
; 比如,下面的脚本相当于设置了"session.gc_maxlifetime=1440" (24分钟):
; cd /path/to/sessions; find -cmin +24 | xargs rm
session.bug_compat_42 = 1
;[recommended]-&gt;session.bug_compat_42 = 0
session.bug_compat_warn = 1
; PHP4.2之前的版本有一个未注明的"特性"(也可看作bug):
; 即使在"register_globals = Off"的情况下也允许初始化全局session变量,
; 如果你在PHP4.3之后的版本中使用这个特性,会显示一条警告。你可以分别禁用这个特性和警告。
; 若打开bug_compat_42,将只显示警告。
session.referer_check =
; 检查HTTP头中的"Referer"以判断包含于URL中的会话id是否有效
; HTTP_REFERER必须包含这个参数指定的字符串,否则URL中的会话id将被视为无效。
; 默认为空,即不检查。
;session.entropy_length = 16
; 从文件中读取多少字节(entropy:平均信息量)[设定session从高熵值资源读取的位数。]
; 默认为0,表示禁用。
; How many bytes to read from the file. Defaults to 0 (disabled).
; specifies the number of bytes which will be read from the file specified above.
;session.entropy_file = /dev/urandom
; 指定创建会话id的文件夹[使用外部高熵值资源或文件来建立session代码,例如 UNIX 系统上的 /dev/random?或 /dev/urandom]
; Specified here to create the session id.
; gives a path to an external resource (file) which will be used as an additional entropy source
; in the session id creation process.
; Examples are /dev/random or /dev/urandom which are available on many Unix systems.
session.cache_limiter = nocache
; 设为{none/nocache/private/private_no_expire/public}以指定会话页面的缓存控制模式,
; 或者设为空以阻止在http应答头中发送禁用缓存的命令。
; 默认为"nocache"
session.cache_expire = 180
; 指定会话页面在客户端cache中的有效期限(分钟)
; "session.cache_limiter=nocache"时,此设置将失效。
session.use_trans_sid = 0
; 默认是禁止用明码在URL中显示sid(session_id)的,因为它会给你的用户带来安全危险,因为:
; 1- 用户可能将包含有效sid的URL 通过email/irc/QQ/MSN...途径告诉给其他人。
; 2- 包含有效sid的URL可能会被保存在公用电脑上。
; 3- 用户可能保存带有固定不变sid的URL在他们的收藏夹或者浏览历史纪录里面。
session.hash_function = 0
;[recommended]-&gt;session.hash_function = 1
; 生成session_id的hash函数,SHA-1的安全性更高一些
; 0: MD5 (128 bits)
; 1: SHA-1 (160 bits)
session.hash_bits_per_character = 4
;[recommended]-&gt;session.hash_bits_per_character = 5
; 指定在session_id字符串中的每个字符内保存多少位二进制数,
; 这些二进制数是hash函数的运算结果。
; 4 bits: 0-9, a-f
; 5 bits: 0-9, a-v
; 6 bits: 0-9, a-z, A-Z, "-", ","
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="
;[recommended]-&gt;url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
; 指定重写哪些HTML标签来包含sid(session_id)(仅在"session.use_trans_sid"打开的情况下有效)
; form和fieldset比较特殊:
; 如果你包含他们,URL重写器将添加一个隐藏的"",它包含了本应当额外追加到URL上的信息。
; 如果你想兼容XHTML标准,请使用"fieldset"代替"form"。
; 注意:所有合法的项都需要一个等号??即使后面没有值。
--------------------------------------------------------------------------------
[MSSQL]
mssql.allow_persistent = On ; 允许或禁止持久连接
mssql.max_persistent = -1 ; 每个进程中允许的最大持久连接数。-1 代表无限制
mssql.max_links = -1 ; 每个进程中允许的最大连接数(持久和非持久)。-1 代表无限制
mssql.min_error_severity = 10 ; 显示错误的最低严重性
mssql.min_message_severity = 10 ; 显示消息的最低重要性
mssql.compatability_mode = Off ; 与旧版的PHP3.0兼容的模式。
;mssql.connect_timeout = 5 ; 连接超时(秒)
;mssql.timeout = 60 ; 查询超时(秒)
;mssql.textlimit = 4096 ; 取值范围:0 - 2147483647
;mssql.textsize = 4096 ; 取值范围:0 - 2147483647
;mssql.batchsize = 0
; 每批记录最大条数(0 表示所有记录都在一批当中)
;mssql.datetimeconvert = On
; 指定datetime/datetim4字段的返回方式。
; On =&gt; 按照SQL server的设置返回
; Off =&gt; 按照 YYYY-MM-DD hh:mm:ss 格式返回
mssql.secure_connection = Off
; 连接到数据库时使用NT身份认证
;mssql.max_procs = 25
; 指定最大进程数,默认为 25
[Assertion]
;assert.active = On ; 断言(表达式),默认生效。
;assert.warning = On ; 为每个失败的断言发出警告。
;assert.bail = Off ; 默认不释放。
;assert.callback = 0 ; 如果断言失败,就调用一个用户函数。
;assert.quiet_eval = 0
; Eval the expression with current error_reporting(). Set to true if you want error_reporting(0) around the eval().
[Ingres II]
ingres.allow_persistent = On ; 允许或禁止持久连接
ingres.max_persistent = -1 ; 最大持久连接数。-1 代表无限制
ingres.max_links = -1 ; 最大连接数(持久和非持久)。-1 代表无限制
ingres.default_database = ; 默认 database (format : [node_id::]dbname[/srv_class]
ingres.default_user = ; 默认 user
ingres.default_password = ; 默认 password
[Verisign Payflow Pro]
pfpro.defaulthost = "test-payflow.verisign.com" ; 默认的 Signio 服务器; Default Payflow Pro server.
pfpro.defaultport = 443 ; 连接的默认端口; Default port to connect to.
pfpro.defaulttimeout = 30 ; 按秒计的默认超时时间; Default timeout in seconds.
;pfpro.proxyaddress = ; 默认的代理的 IP 地址(如果需要); Default proxy IP address (if required).
;pfpro.proxyport = ; 默认的代理的端口; Default proxy port.
;pfpro.proxylogon = ; 默认的代理的登录用户名; Default proxy logon.
;pfpro.proxypassword = ; 默认的代理的密码; Default proxy password.
[com]
;com.typelib_file = ; 包含GUID文件的路径, IID或包含类型库的文件
;com.allow_dcom = true ; 允许分布式COM调用
;com.autoregister_typelib = true ; com_load()函数自动注册类型库组件常数
;com.autoregister_casesensitive = false ; 自动注册类型库组件常数时大小写敏感
;com.autoregister_verbose = true ; 对重复注册的常量显示警告
[mbstring]
;mbstring.language = Japanese
; 用于内部字符表示的语言
;mbstring.internal_encoding = EUC-JP
; internal/script编码。
; 注意:有些编码不能用于此(比如:SJIS, BIG5, ISO-2022-*)
;mbstring.http_input = auto
; http输入编码
;mbstring.http_output = SJIS
; http输出编码。必须将output_handler设置为"mb_output_handler"函数才可以。
;mbstring.encoding_translation = Off
; 允许依照mbstring.internal_encoding设置进行自动编码转换
; 打开这个特性会让输入的字符会转化为内部编码
; 注意: 千万不要将自动编码转换使用于可移植的库或者程序
;mbstring.detect_order = auto
; 编码自动检测指令
;mbstring.substitute_character =
; 当一种字符不能被转换为另一种字符的时候,这里的值就是替代字符。
;mbstring.func_overload = 0
; 用多字节字符串函数替换单字节字符串函数。
; mail(), ereg()...将被替换为mb_send_mail(), mb_ereg()...
; 可用0,1,2,4来组合。比如7表示替换所有。
; 0: 无替换
; 1: 替换mail()
; 2: 替换str*()
; 4: 替换ereg*()
[FrontBase]
;fbsql.allow_persistent = On
;fbsql.autocommit = On
;fbsql.default_database =
;fbsql.default_database_password =
;fbsql.default_host =
;fbsql.default_password =
;fbsql.default_user = "_SYSTEM"
;fbsql.generate_warnings = Off
;fbsql.max_connections = 128
;fbsql.max_links = 128
;fbsql.max_persistent = -1
;fbsql.max_results = 128
;fbsql.batchSize = 1000
[exif]
; Exif UNICODE用户注释将被处理为UCS-2BE/UCS-2LE ,JIS保持不变。
; 在多字节字符串的支持下 this 将被自动的转换为设定的编码。
; 若将mbstring.internal_encoding设为空,根据解码设置,
; 就可以区别motorola和intel的字节指令(解码设置不能为空)
;exif.encode_unicode = ISO-8859-15
;exif.decode_unicode_motorola = UCS-2BE
;exif.decode_unicode_intel = UCS-2LE
;exif.encode_jis =
;exif.decode_jis_motorola = JIS
;exif.decode_jis_intel = JIS
[Tidy]
;tidy.default_config = /usr/local/lib/php/default.tcfg
; 默认tidy配置文件路径。
tidy.clean_output = Off
; 是否允许tidy自动清理和修正输出。
; 警告: 如果脚本可能会输出非html文档(比如动态图片),请不要打开此特性。
[soap]
soap.wsdl_cache_enabled=1
; 打开或者关闭WSDL缓冲特性
soap.wsdl_cache_dir="/tmp"
; SOAP扩展存放chche文件的目录。
soap.wsdl_cache_ttl=86400
; cache文件使用期限(秒)。过期后将使用新文件。
; 局部变量:
; tab宽度: 4
; End:

IIS如何绑定域名

2011年11月11日 没有评论

我们要在服务器的iis面分别绑定不同的域名来区分出每个不同的站点不同的分类属性。

步骤如下:

在iis管理器那里选择自己的网站然后右键“属性”>“网站”>“高级”>“添加”在主机头值那输入域名即可 然后点击确认确认就ok了。

英文系统中步骤 Properties > Web Site > Advanced >Add

如果要指定ip地址可以选择不同ip绑定,不同ip地址是可以绑定相同域名的。正常情况下一个ip只能有一个不重复的域名(80端口)。

PHP代码,判断域名跳转到指定的页面或地址

2011年11月10日 没有评论

我们经常在一些空间使用时要用到一个空间多个域名分配给不同的目录,也就是我们说的站中站。这时我们使用php或是asp就可以做到。代码如下:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php 
switch ($_SERVER["HTTP_HOST"]) 
{ 
case "www.vps12.com": 
header("location:vps12/index.php"); 
break; 
case "www.dnsff.com": 
header("location:dnsff/index.php"); 
break; 
case "www.dns173.com": 
header("location:dns173/index.php"); 
break; 
} 
?>

如果用户访问 www.vps12.com 程序跳转至 空间目录下 vps12/index.php
如果用户访问 www.dnsff.com 程序跳转至 空间目录下 dnsff/index.php
如果用户访问 www.dns173.com 程序跳转至 空间目录下 dns173/index.php
如果虚拟主机不支持子目录绑定有效的办法就是这样了!希望对大家有帮助。

分类: 编程实践 标签:

IIS启用Gzip压缩

2011年11月10日 没有评论

HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。
HTTP压缩采用通用的压缩算法如gzip等压缩HTML、JavaScript或CSS文件。
压缩的最大好处就是降低了网络传输的数据量,从而提高客户端浏览器的访问速度。
当然,同时也会增加一点点服务器的负担。Gzip是比较常见的一种HTTP压缩算法。本文介绍的HTTP压缩方式,采用的是Windows系统设置的方式,优点是效率较高。

HTTP压缩工作原理
Web服务器处理HTTP压缩的工作原理如下:

Web服务器接收到浏览器的HTTP请求后,检查浏览器是否支持HTTP压缩;
如果浏览器支持HTTP压缩,Web服务器检查请求文件的后缀名;
如果请求文件是HTML、CSS等静态文件,Web服务器到压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件;
如果请求文件的压缩文件不存在,Web服务器向浏览器返回未压缩的请求文件,并在压缩缓冲目录中存放请求文件的压缩文件;
如果请求文件的最新压缩文件已经存在,则直接返回请求文件的压缩文件;
如果请求文件是ASPX等动态文件,Web服务器动态压缩内容并返回浏览器,压缩内容不存放到压缩缓存目录中。

IIS 6.0中配置HTTP Gzip压缩的步骤:
现代的浏览器IE和Firefox都支持客户端Gzip,也就是说,在服务器上的网页,传输之前,先使用Gzip压缩再传输给客户端,客户端接收之后由浏览器解压显示,这样虽然稍微占用了一些服务器和客户端的CPU,但是换来的是更高的带宽利用率。对于纯文本来讲,压缩率是相当可观的。如果每个用户节约50%的带宽,那么你租用来的那点带宽就可以服务多一倍的客户了。

IIS6已经内建了Gzip压缩的支持,可惜,没有设置更好的管理界面。所以要打开这个选项,还要费些功夫。

首先,如果你需要压缩静态文件(HTML),需要在硬盘上建一个目录,并给它“IUSR_机器名”这个用户的写权限。如果压缩动态文件(PHP,asp,aspx)就不需要了,因为它的页面是每次都动态生成的,压缩完就放弃。然后在IIS管理器中,“网站”上面右键-属性,不是下面的某个站点,而是整个网站。进入“服务”标签,选上启用动态内容压缩,静态内容压缩。

然后选中网站下面那个服务器扩展,新建一个服务器扩展。名字无所谓,下面的添加文件的路径是:

c:\windows\system32\inetsrv\gzip.dll,然后启用这个扩展。

这时候静态内容是可以压缩的,但是对于动态内容,aspx文件却不在压缩范围内。因为默认的可压缩文件并没有这个扩展名。而管理界面中你又找不到可以增加扩展名的地方,这时候只能去修改它的配置文件了。

在 c:\windows\system32\inetsrv\下面有个MetaBase.xml文件,可以用记事本打开,找到 IIsCompressionScheme,有三个相同名字的段,分别是deflate,gzip,Parameters,第三段不用管它,前两段有基本相同的参数,在这两段的参数HcScriptFileExtensions下面都加上一行aspx,如果你有其它的动态程序要压缩,也加在这里。 HcDynamicCompressionLevel改成9,(0-10,9是性价比最高的一个)。

1.首先备份 IIS 的配置文件,

复制 C:\Windows\system32\inetsrv\metabase.xml 到另外的备份文件夹中.

C:\Windows\system32\inetsrv\metabase.xml 是 IIS 的核心配置文件,该文件的完整性一但被破坏,IIS 将无法正常运行,严重到需要重新安装系统.

2. 在开始菜单中启动 Internet 信息服务(IIS)管理器,右键点击“网站”属性,打开“服务”选项卡,勾选“HTTP 压缩”的两个选项。“临时目录”和“临时目录最大容量”可根据需要自行设置。设置完成后点击确定。

3. 右键点击“网站”下方的 “Web服务扩展”,添加一个新的Web服务扩展,扩展名填写为“HTTP Compression”或其他,都可以。“要求的文件”添加:c:\windows\system32\inetsrv\gzip.dll ,并勾选“设置扩展状态为允许”,完成后点击确定。

4.下面的步骤有些复杂,如果没有确定的把握能理解,最好不要尝试,右键点击“Internet 信息服务的”“本地计算机”属性,勾选“允许直接编辑配置数据库”并确定。

5. 在开始菜单中运行 notepad C:\Windows\system32\inetsrv\metabase.xml ,打开metabase.xml 文件,请在任何改动前再次确认该文件已经备份。

6. 搜索并找到 metabase.xml 文件中的 <IIsCompressionScheme  片段中的 HcScriptFileExtensions,依照原有文件的格式添加你希 望进行 HTTP 压缩的文件扩展名,静态文件HcFileExtensions可添加 JS,CSS 等; 动态文件 HcScriptFileExtensions 可添加"ASPX"”ASMX”,如下:

<IIsCompressionScheme Location =”/LM/W3SVC/Filters/Compression/deflate”
HcCompressionDll=”%windir%\system32\inetsrv\gzip.dll”
HcCreateFlags=”0″
HcDoDynamicCompression=”TRUE”
HcDoOnDemandCompression=”TRUE”
HcDoStaticCompression=”FALSE”
HcDynamicCompressionLevel=”9″
HcFileExtensions=”htm
html
js
css
txt”
HcOnDemandCompLevel=”10″
HcPriority=”1″
HcScriptFileExtensions=”asp
aspx
asmx
dll
exe”
>
</IIsCompressionScheme>
<IIsCompressionScheme Location =”/LM/W3SVC/Filters/Compression/gzip”
HcCompressionDll=”%windir%\system32\inetsrv\gzip.dll”
HcCreateFlags=”1″
HcDoDynamicCompression=”TRUE”
HcDoOnDemandCompression=”TRUE”
HcDoStaticCompression=”TRUE”
HcDynamicCompressionLevel=”9″
HcFileExtensions=”htm
html
js
css
txt”
HcOnDemandCompLevel=”10″
HcPriority=”1″
HcScriptFileExtensions=”asp
aspx
asmx
dll
exe”
>
</IIsCompressionScheme>

注意“Compression/deflate”和“Compression/gzip”两个片段都需要修改。动态压缩等级,HcDynamicCompressionLevel 建议设置为“9”

7. 保存并关闭 metabase.xml 文件。

8. 重新启动 IIS 服务,运行“IISReset”或重新启动 WWW 服务。

9. 其他:

如果你的服务器上某一个Web站点不希望启用 IIS 压缩,请运行以下脚本:

cscript. C:\Inetpub\AdminScripts\adsutil.vbs set w3svc/site#/root/DoStaticCompression False
cscript. C:\Inetpub\AdminScripts\adsutil.vbs set w3svc/site#/root/DoDynamicCompression False

如果想增加启用 HTTP 压缩的文件类型,请运行以下脚本:

“” 中为文件扩展名,别忘了把原有的扩展名加上。

静态文件压缩:

CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/GZIP/HcFileExtensions “htm” “html” “txt” “doc” “ppt” “xls”

CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/DEFLATE/HcFileExtensions “htm” “html” “txt” “doc” “ppt” “xls”

动态文件压缩:

CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/GZIP/HcScriptFileExtensions “asp” “aspx” “asmx” “dll” “exe” “php”

CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/DEFLATE/HcScriptFileExtensions “asp” “aspx” “asmx” “dll” “exe” “php”

将site#替换为该 Web 站点的 ID。Web 站点的 ID 是什么到“日志记录属性”中看一下日志记录的“日志文件名”前面的路径就知道了。

运行以上脚本前务必备份,运行后再次执行 IISReset 使生效。

给出两个在线测试网页gzip压缩是否开启的地址:

http://gzip.zzbaike.com/

http://tool.chinaz.com/Gzips/

分类: Windows 标签: ,

使用Sockscap让指定的程序代理访问

2011年11月7日 没有评论

SocksCap32 软件是由美国 NEC USA, Inc. 公司出品的代理服务器第三方支持软件。拥有功能强大的 SOCKS 调度,使用它就可以让 169 用户达到使用 163 代理的要求,通过它几乎可以让所有基于 TCP/IP 协议的软件象 ICQ、MUD、FTP、IE、NEWS……都能通过 Socks 代理服务器连接到 Ineternet。

我们这里介绍使用2.38中文版。

安装就不说明了。很容易我们直接说下如何使用它来代理指定的软件。

安装好如下图:

我们从设置中选择socks5方式,在验证方式,勾选用户密码。因为多数开出来的socks5方式都要经过用户密码方式。

设置好后会跳出要输入的ip地址及用户密码。对应输入。

我们在下面的框内可以把指定的程序图标拖进去。这样就可以代理指定的软件,如ie qq msn之类这样的程序。游戏也可以代理。很方便,只要它定哪个程序就可以代理了!使用非常方便。

我在Linux服务器经常用到的一些命令和实例

2011年11月5日 没有评论

基本操作命令:

ls #以默认方式显示当前目录文件列表

ls –a #显示所有文件包括隐藏文件

ls –l #显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行

ls –color=never *.so > obj #不显示文字颜色,将所有so文件记录到obj文件中

———————————————————————-

cd dir #切换到当前目录下的dir目录

cd / #切换到根目录

cd .. #切换到到上一级目录

cd ../.. #切换到上二级目录

cd ~ #切换到用户目录,比如是root用户,则切换到/root下

———————————————————————-

rm file #删除某一个文件

rm -fr dir #删除当前目录下叫dir的整个目录

———————————————————————-

cp source target #将文件source 复制为 target

cp /root/source . #将/root下的文件source复制到当前目录

cp –av soure_dir target_dir #将整个目录复制,两目录完全一样

cp –fr source_dir target_dir #将整个目录复制,并且是以非链接方式复制,当source目录带有符号链接时,两个目录不相同

———————————————————————-

mv source target #将文件source更名为target

———————————————————————

diff dir1 dir2 #比较目录1与目录2的文件列表是否相同,但不比较文件的实际内容,不同则列出

diff file1 file2 #比较文件1与文件2的内容是否相同,如果是文本格式的文件,则将不相同的内容显示,如果是二进制代码则只表示两个文件是不同的

comm file1 file2 #比较文件,显示两个文件不相同的内容

———————————————————————

echo message #显示一串字符

echo “message message2″ #显示不连续的字符串

cat:

cat file #显示文件的内容,和DOS的type相同

cat file | more #显示文件的内容并传输到more程序实现分页显示,使用命令less file可实现相同的功能

more #分页命令,一般通过管道将内容传给它,如ls | more

———————————————————————-

export LC_ALL=zh_CN.GB2312 #将环境变量LC_ALL的值设为zh_CN.GB2312

export DISPLAY=0:0 #通过该设置,当前字符终端下运行的图形程序可直接运行于Xserver

date #显示当前日期时间

date -s 20:30:30 #设置系统时间为20:30:30

date -s 2002-3-5 #设置系统时期为2003-3-5

clock –r #对系统Bios中读取时间参数

clock –w #将系统时间(如由date设置的时间)写入Bios

———————————————————————-

eject #umout掉CDROM并将光碟弹出,但cdrom不能处于busy的状态,否则无效

———————————————————————

du #计算当前目录的容量

du -sm /root #计算/root目录的容量并以M为单位

find -name /path file #在/path目录下查找看是否有文件file

grep -ir “chars” #在当前目录的所有文件查找字串chars,并忽略大小写,-i为大小写,-r为下一级目录

———————————————————————-

vi file #编辑文件file

vi 原基本使用及命令:

输入命令的方式为先按ctrl+c, 然后输入:x(退出),:x!(退出并保存) :w(写入文件),:w!(不询问方式写入文件), :r file(读文件file) ,:%s/oldchars/newchars/g(将所有字串oldchars换成newchars) 这一类的命令进行操作

———————————————————————-

man ls #读取关于ls命令的帮助

man ls | grep color #读取关于ls命令的帮助并通过grep程序在其中查找color字串

———————————————————————-

startx #运行Linux图形有环境

Xfree86 #只运行X图形server

———————————————————————-

reboot #重新启动计算机

halt #关闭计算机

init 0 #关闭所有应用程序和服务,进入纯净的操作环境

init 1 #重新启动应用及服务

init 6 #重新启动计算机

———————————————————————-

扩展命令

———————————————————————- ———————————————————————-

tar xfzv file.tgz #将文件file.tgz解压

tar xfzv file.tgz -C target_path #将文件file.tgz解压到target_path目录下

tar cfzv file.tgz source_path #将文件source_path压缩为file.tgz

tar c directory > directory.tar #将目录directory打包成不压缩的directory.tar

gzip directory.tar #将覆盖原文件生成压缩的 directory.tar.gz

gunzip directory.tar.gz #覆盖原文件解压生成不压缩的 directory.tar。

tar xf directory.tar #可将不压缩的文件解包

———————————————————————-

dmesg #显示kernle启动及驱动装载信息

uname #显示操作系统的类型

uname -R #显示操作系统内核的version

———————————————————————-

strings file 显示file文件中的ASCII字符内容

———————————————————————-

rpm -ihv program.rpm #安装程序program并显示安装进程

rpm2targz program.rpm program.tgz #将rpm格式的文件转换成tarball格式

———————————————————————-

su root #切换到超级用户

sulogin /dev/tty4 #在tty4即alt+F4终端等待用户登陆或直接登陆开启一个shell

chmod a+x file #将file文件设置为可执行,脚本类文件一定要这样设置一个,否则得用bash file才能执行

chmod 666 file #将文件file设置为可读写

chown user /dir #将/dir目录设置为user所有

———————————————————————-

mknod /dev/hda1 b 3 1 #创建块设备hda1,主设备号为3,从设备号为1,即master硬盘的的第一个分区

mknod /dev/tty1 c 4 1 #创建字符设备tty1,主设备号为4,众设备号为1,即第一个tty终端

———————————————————————-

touch /tmp/running #在/tmp下创建一个临时文件running,重新启动后消失

———————————————————————-

sleep 9 #系统挂起9秒钟的时间

———————————————————————-

lpd stop 或 cups stop #停止打印服务程序

lpd start 或 cups start #启动打印服务程序

lpd restart 或 cups restart #重新启动打印服务程序

lpr file.txt #打印文件file.txt

———————————————————————-

fdisk /dev/hda #就像执行了dos的fdisk一样

cfdisk /dev/hda #比fdisk界面稍为友好些

mount -t ext2 /dev/hda1 /mnt #把/dev/hda1装载到 /mnt目录

df #显示文件系统装载的相关信息

mount -t iso9660 /dev/cdrom /mnt/cdrom #将光驱加载到/mnt/cdrom目录

mount-t smb //192.168.1.5/sharedir /mnt -o username=tomlinux,password=tomlinux #将windows的的共享目录加载到/mnt/smb目录,用户名及密码均为tomlinux

mount -t nfs 192.168.1.1:/sharedir /mnt #将nfs服务的共享目录sharedir加载到/mnt/nfs目录

umount /mnt #将/mnt目录卸载,/mnt目录必须处于空闲状态

umount /dev/hda1 #将/dev/hda1设备卸载,设备必须处于空亲状态

sync #将cache中的内容与磁盘同步,在Linux中复制文件,一般要系统空闲才去写文件

e2fsck /dev/hda1 #检查/dev/hda1是否有文件系统错误,提示修复方式

e2fsck -p /dev/hda1#检查/dev/hda1是否有错误,如果有则自动修复

e2fsck -y /dev/hda1#检查错误,所有提问均于yes方式执行

e2fsck -c /dev/hda1#检查磁盘是否有坏区

mkfs /dev/hda1 #格式化/dev/hda1为ext2格式

mkfs.minix /dev/hda1 #格式化/dev/hda1为minix格式文件系统

mfks /dev/hda9 #格工化/dev/hda9为Linux swap格式

swapon /dev/hda9 #将swap分区装载当作内存来用

swapoff /dev/hda9 #将swap分区卸载

———————————————————————-

lilo #运行lilo程序,程序自动查找/etc/lilo.conf并按该配置生效

lilo -C /root/lilo.conf #lilo程序按/root/lilo.conf配置生效

grub #在Linux shell状态下运行boot loader设置程序

grub-install #安装grub磁盘引导程序,成功后升级内核无须像lilo一样要重新启动系统,只需修改/etc/grub.conf即可实现新引导配置

rdev bzImage #显示kernel的根分区信息

rdev bzImage /dev/hda1 #将kernel的根分区设置为/dev/hda1,这在没有lilo等引导程序的系统中非常重要.

———————————————————————-

dd if=/dev/fd0 of=floppy.fd #将软盘的内容复制成一个镜像,功能与旧石器时代常用的hd-copy相同

dd if=/dev/zero of=root.ram bs=1024,count=1024 #生成一个大小为1M的块设备,可以把它当作硬盘的一个分区来用

mkfs root.ram #将块设备格式化为ext2格式

dd if=root.ram of=/dev/ram0 #将init.rd格式的root.ram的内容导入内存

mount /dev/ram0 /mnt #ramdisk /dev/ram0装载到/mnt 目录

———————————————————————-

gcc hello.c #将hello.c编译成名为a.out二进制执行文件

gcc hello.c -o hello #将hello.c编译成名为hello的二进制执行文件

gcc -static -o hello hello.c #将hello.c编译成名为hello的二进制静态执行文件

ldd program #显示程序所使用了哪些库

objcopy -S program #将程序中的符号表及无用的调试信息去掉,可以小很多

———————————————————————-

strace netscape #跟踪程序netscape的执行,看调用的库,环境变量设置,配置文件,使用的设备,调用的其它应用程序等,在strace下,程序干了什么东东一目了然。

ps #显示当前系统进程信息

ps –ef #显示系统所有进程信息

kill -9 500 #将进程编号为500的程序干掉

killall -9 netscape #将所有名字为netscape的程序杀死,kill不是万能的,对僵死的程序则无效。

top #显示系统进程的活动情况,按占CPU资源百分比来分

free #显示系统内存及swap使用情况

time program #在program程序结束后,将计算出program运行所使用的时间

———————————————————————-

chroot . #将根目录切换至当前目录,调试新系统时使用

chroot /tomlinux #将根目录切换至/tomlinux目录

chroot /tomlinux sbin/init #将根目录切换至/tomlinux并执行sbin/init

adduser id #增加一个叫id的用户

userdel id #增除叫id的用户

userlist #显示已登陆的用户列表

passwd id #修改用户id的密码

passwd -d root #将root用户的密码删除

chown id /work #指定/work目录为id用户所拥有

———————————————————————-

ifconfig eth0 192.168.1.1 netmask 255.255.255.0 #设置网卡1的地址192.168.1.1,掩码为255.255.255.0,不写netmask参数则默认为255.255.255.0

ifconfig eth0:1 192.168.1.2 #捆绑网卡1的第二个地址为192.168.1.2

ifconfig eth0:x 192.168.1.x #捆绑网卡1的第二个地址为192.168.1.x

ifconfig down eth1 #关闭第二块网卡,使其停止工作

hostname -F tomlinux.com #将主机名设置为tomlinux.com

route #显示当前路由设置情况

route add default gw 192.168.1.1 metric 1 #设置192.168.1.1为默认的路由

route del default #将默认的路由删除

dhcp #启动dhcp服务

dhclient #启动dhcp终端并自动获取IP地址

ping 163.com #测试与163.com的连接

ping 202.96.128.68 #测试与IP 202。96.128.68的连接

———————————————————————-

probe rtl8139 #检查驱动程序rtl8139.o是否正常工作

lsmod #显示已装载的驱动程序

insmod rtl8139.o #装载驱动程序rtl8139.o

insmod sb.o io=0×280 irq=7 dma=3 dma16=7 mpu_io=330 #装载驱动程序并设置相关的irq,dma参数

rmmod rtl8139 #删除名为rtl8139的驱动模块

gpm -k #停止字符状态下的mouse服务

gpm -t ps2 #在字符状态下以ps2类型启动mouse的服务

———————————————————————-

telnet 192.168.1.1 #登陆IP为192.168.1.1的telnet服务器

telnet iserver.com #登陆域名为iserver.com的telnet服务器

ftp 192.168.1.1 或 ftp iserver.com #登陆到ftp服务

Linux 指令大全(转)

2011年11月5日 评论已被关闭

Linux 指令大全 (转)
 
cat cd
chmod chown
cp cut

名称:cat
使用权限:所有使用者
使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName
说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)
参数:
-n 或 –number 由 1 开始对所有输出的行数编号
-b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 –show-nonprinting

范例:
cat -n textfile1 > textfile2 把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -b textfile1 textfile2 >> textfile3 把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3

名称 : cd
使用权限 : 所有使用者

使用方式 : cd [dirName]

说明 : 变换工作目录至 dirName。 其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home directory (也就是刚 login 时所在的目录)。

另外,”~” 也表示为 home directory 的意思,”.” 则是表示目前所在的目录,”..” 则表示目前目录位置的上一层目录。

范例 : 跳到 /usr/bin/ :
cd /usr/bin

跳到自己的 home directory :
cd ~

跳到目前目录的上上两层 :
cd ../..

 

指令名称 : chmod
使用权限 : 所有使用者

使用方式 : chmod [-cfvR] [--help] [--version] mode file…

说明 : Linux/Unix 的档案存取权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所存取。

把计 :

mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]…][,...],其中u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
-c : 若该档案权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
–help : 显示辅助说明
–version : 显示版本

范例 :将档案 file1.txt 设为所有人皆可读取 :
chmod ugo+r file1.txt

将档案 file1.txt 设为所有人皆可读取 :
chmod a+r file1.txt

将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w file1.txt file2.txt

将 ex1.py 设定为只有该档案拥有者可以执行 :
chmod u+x ex1.py

将目前目录下的所有档案与子目录皆设为任何人可读取 :
chmod -R a+r *

此外chmod也可以用数字来表示权限如 chmod 777 file
语法为:chmod abc file

其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。

r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=7。

范例:
chmod a=rwx file


chmod 777 file

效果相同
chmod ug=rwx,o=x file


chmod 771 file

效果相同

 

 

若用chmod 4755 filename可使此程式具有root的权限
指令名称 : chown
使用权限 : root

使用方式 : chmod [-cfhvR] [--help] [--version] user[:group] file…

说明 : Linux/Unix 是多人多工作业系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。

把计 :

user : 新的档案拥有者的使用者 IDgroup : 新的档案拥有者的使用者群体(group)-c : 若该档案拥有者确实已经更改,才显示其更改动作-f : 若该档案拥有者无法被更改也不要显示错误讯息-h : 只对于连结(link)进行变更,而非该 link 真正指向的档案-v : 显示拥有者变更的详细资料-R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)–help : 显示辅助说明–version : 显示版本

范例 :
将档案 file1.txt 的拥有者设为 users 群体的使用者 jessie :
chown jessie:users file1.txt

将目前目录下的所有档案与子目录的拥有者皆设为 users 群体的使用者 lamport :
chmod -R lamport:users *
名称:cp
使用权限:所有使用者

使用方式:

cp [options] source dest
cp [options] source… directory

说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。

把计

-a 尽可能将档案状态、权限等资料都照原状予以复制。
-r 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。
-f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。
范例:
将档案 aaa 复制(已存在),并命名为 bbb :
cp aaa bbb

将所有的C语言程式拷贝至 Finished 子目录中 :
cp *.c Finished

 

名称:cut

使用权限:所有使用者

用法:cut -cnum1-num2 filename

说明:显示每行从开头算起 num1 到 num2 的文字。

范例:

shell>> cat example
test2
this is test1
shell>> cut -c0-6 example ## print 开头算起前 6 个字元
test2
this i
名称 : find
用法 : find
使用说明 :

将档案系统内符合 expression 的档案列出来。你可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。

find 根据下列规则判断 path 和 expression,在命令列上第一个 – ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression

expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。

-mount, -xdev : 只检查和指定目录在同一个档案系统下的档案,避免列出其它档案系统中的档案
-amin n : 在过去 n 分钟内被读取过
-anewer file : 比档案 file 更晚被读取过的档案
-atime n : 在过去 n 天过读取过的档案
-cmin n : 在过去 n 分钟内被修改过
-cnewer file :比档案 file 更新的档案
-ctime n : 在过去 n 天过修改过的档案
-empty : 空的档案-gid n or -group name : gid 是 n 或是 group 名称是 name
-ipath p, -path p : 路径名称符合 p 的档案,ipath 会忽略大小写
-name name, -iname name : 档案名称符合 name 的档案。iname 会忽略大小写
-size n : 档案大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。-type c : 档案类型是 c 的档案。
d: 目录
c: 字型装置档案
b: 区块装置档案
p: 具名贮列
f: 一般档案
l: 符号连结
s: socket
-pid n : process id 是 n 的档案

你可以使用 ( ) 将运算式分隔,并使用下列运算。
exp1 -and exp2
! expr
-not expr
exp1 -or exp2
exp1, exp2
范例:

find . -name ‘d*’

将目前目录及其子目录下所有延伸档名是 c 的档案列出来。
# find . -name “*.c”
将目前目录其其下子目录中所有一般档案列出
# find . -ftype f
将目前目录及其子目录下所有最近 20 分钟内更新过的档案列出
# find . -ctime -20

 

名称:less

使用权限:所有使用者

使用方式:

less [Option] filename

说明:
less 的作用与 more 十分相似,都可以用来浏览文字档案的内容,不同的是 less 允许使用者往回卷动
以浏览已经看过的部份,同时因为 less 并未在一开始就读入整个档案,因此在遇上大型档案的开启时,会比一般的文书编辑器(如 vi)来的快速。
范例:
指令名称 : ln
使用权限 : 所有使用者

使用方式 : ln [options] source dist,其中 option 的格式为 :

[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]
[--help] [--version] [--]
说明 : Linux/Unix 档案系统中,有所谓的连结(link),我们可以将其视为档案的别名,而连结又可分为两种 : 硬连结(hard link)与软连结(symbolic link),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬连结是存在同一个档案系统中,而软连结却可以跨越不同的档案系统。
ln source dist 是产生一个连结(dist)到 source,至于使用硬连结或软链结则由参数决定。

不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。
-f : 链结时先将与 dist 同档名的档案删除-d : 允许系统管理者硬链结自己的目录-i : 在删除与 dist 同档名的档案时先进行询问-n : 在进行软连结时,将 dist 视为一般的档案-s : 进行软链结(symbolic link)-v : 在连结之前显示其档名-b : 将在链结时会被覆写或删除的档案进行备份-S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾-V METHOD : 指定备份的方式–help : 显示辅助说明–version : 显示版本
范例 :
将档案 yy 产生一个 symbolic link : zz
ln -s yy zz

将档案 yy 产生一个 hard link : zz
ln yy xx

 

名称:locate
使用权限:所有使用者
使用方式: locate [-q] [-d ] [--database=]
locate [-r ] [--regexp=]
locate [-qv] [-o ] [--output=]
locate [-e ] [-f ] <[-l ] [-c]
<[-U ] [-u]>
locate [-Vh] [--version] [--help]
说明:
locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的资料库,之后当寻找时就只需查询这个资料库,而不必实际深入档案系统之中了。

在一般的 distribution 之中,资料库的建立都被放在 contab 中自动执行。一般使用者在使用时只要用

# locate your_file_name

的型式就可以了。 参数:
-u
-U

建立资料库,-u 会由根目录开始,-U 则可以指定开始的位置。

-e


排除在寻找的范围之外。

-l
如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的权限资料。

-f
将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案放在资料库中。

-q
安静模式,不会显示任何错误讯息。

-n
至多显示 个输出。

-r
使用正规运算式 做寻找的条件。

-o
指定资料库存的名称。

-d

指定资料库的路径

-h
显示辅助讯息

-v
显示更多的讯息

-V
显示程式的版本讯息 范例:

locate chdrv : 寻找所有叫 chdrv 的档案
locate -n 100 a.out : 寻找所有叫 a.out 的档案,但最多只显示 100 个
locate -u : 建立资料库
名称 : ls
使用权限 : 所有使用者

使用方式 : ls [-alrtAFR] [name...]

说明 : 显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)。
-a 显示所有档案及目录 (ls内定将档案名或目录名称开头为”.”的视为隐藏档,不会列出)
-l 除档案名称外,亦将档案型态、权限、拥有者、档案大小等资讯详细列出
-r 将档案以相反次序显示(原定依英文字母次序)
-t 将档案依建立时间之先后次序列出
-A 同 -a ,但不列出 “.” (目前目录) 及 “..” (父目录)
-F 在列出的档案名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
-R 若目录下有档案,则以下之档案亦皆依序列出

范例:
列出目前工作目录下所有名称是 s 开头的档案,愈新的排愈后面 :
ls -ltr s*

将 /bin 目录以下所有目录及档案详细资料列出 :
ls -lR /bin

列出目前工作目录下所有档案及目录;目录于名称后加 “/”, 可执行档于名称后加 “*” :
ls -AF

名称:more
使用权限:所有使用者
使用方式:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
说明:类似 cat ,不过会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。
参数:-num 一次显示的行数
-d 提示使用者,在画面下方显示 [Press space to continue, q to quit.] ,如果使用者按错键,则会显示 [Press h for instructions.] 而不是 哔 声
-l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
-f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
-p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
-c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
-s 当遇到有连续两行以上的空白行,就代换为一行的空白行
-u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
+/ 在每个档案显示前搜寻该字串(pattern),然后从该字串之后开始显示
+num 从第 num 行开始显示
fileNames 欲显示内容的档案,可为复数个数
范例:
more -s testfile 逐页显示 testfile 之档案内容,如有连续两行以上空白行则以一行空白行显示。
more +20 testfile 从第 20 行开始显示 testfile 之档案内容。
名称:mv
使用权限:所有使用者

使用方式:

mv [options] source dest
mv [options] source… directory
说明:将一个档案移至另一档案,或将数个档案移至另一目录。
参数:-i 若目的地已有同名档案,则先询问是否覆盖旧档。

范例:

将档案 aaa 更名为 bbb :
mv aaa bbb

将所有的C语言程式移至 Finished 子目录中 :
mv -i *.c

 

名称:rm
使用权限:所有使用者

使用方式:rm [options] name…

说明:删除档案及目录。

把计

-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
范例:
删除所有C语言程式档;删除前逐一询问确认 :
rm -i *.c

将 Finished 子目录及子目录中所有档案删除 :
rm -r Finished

 

名称:rmdir
使用权限:于目前目录有适当权限的所有使用者

使用方式: rmdir [-p] dirName

说明: 删除空的目录。

参数: -p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。

范例:

将工作目录下,名为 AAA 的子目录删除 :
rmdir AAA

在工作目录下的 BBB 目录中,删除名为 Test 的子目录。若 Test 删除后,BBB 目录成为空目录,则 BBB 亦予删除。
rmdir -p BBB/Test

 

名称:split
使用权限:所有使用者

使用方式:split [OPTION] [INPUT [PREFIX]]

说明:

将一个档案分割成数个。而从 INPUT 分割输出成固定大小的档案,其档名依序为 PREFIXaa, PREFIXab…;PREFIX 预设值为 `x。若没有 INPUT 档或为 `-,则从标准输入读进资料。

匡兜

-b, –bytes=SIZE

SIZE 值为每一输出档案的大小,单位为 byte。
-C, –line-bytes=SIZE

每一输出档中,单行的最大 byte 数。
-l, –lines=NUMBER

NUMBER 值为每一输出档的列数大小。
-NUMBER

与 -l NUMBER 相同。
–verbose

于每个输出档被开启前,列印出侦错资讯到标准错误输出。
–help

显示辅助资讯然后离开。
–version

列出版本资讯然后离开。
SIZE 可加入单位: b 代表 512, k 代表 1K, m 代表 1 Meg。

范例:

PostgresSQL 大型资料库备份与回存:

因 Postgres 允许表格大过你系统档案的最大容量,所以要将表格 dump 到单一的档案可能会有问题,使用 split进行档案分割。
% pg_dump dbname | split -b 1m – filename.dump.

 

重新载入
% createdb dbname
% cat filename.dump.* | pgsql dbname

 

名称:touch
使用权限:所有使用者

使用方式:
touch [-acfm]
[-r reference-file] [--file=reference-file]
[-t MMDDhhmm[[CC]YY][.ss]]
[-d time] [--date=time] [--time={atime,access,use,mtime,modify}]
[--no-create] [--help] [--version]
file1 [file2 ...]
说明:
touch 指令改变档案的时间记录。 ls -l 可以显示档案的时间记录。
参数:
a 改变档案的读取时间记录。
m 改变档案的修改时间记录。
c 假如目的档案不存在,不会建立新的档案。与 –no-create 的效果一样。
f 不使用,是为了与其他 unix 系统的相容性而保留。
r 使用参考档的时间记录,与 –file 的效果一样。
d 设定时间与日期,可以使用各种不同的格式。
t 设定档案的时间记录,格式与 date 指令相同。
–no-create 不会建立新档案。
–help 列出指令格式。
–version 列出版本讯息。
范例:
最简单的使用方式,将档案的时候记录改为现在的时间。若档案不存在,系统会建立一个新的档案。

touch file
touch file1 file2

将 file 的时间记录改为 5 月 6 日 18 点 3 分,公元两千年。时间的格式可以参考 date 指令,至少需输入 MMDDHHmm ,就是月日时与分。

touch -c -t 05061803 file
touch -c -t 050618032000 file

将 file 的时间记录改变成与 referencefile 一样。

touch -r referencefile file

将 file 的时间记录改成 5 月 6 日 18 点 3 分,公元两千年。时间可以使用 am, pm 或是 24 小时的格式,日期可以使用其他格式如 6 May 2000 。

touch -d “6:03pm” file
touch -d “05/06/2000″ file
touch -d “6:03pm 05/06/2000″ file 
 
Linux 指令大全(2)      
2001-02-22    otto       点击: 122102
 
 
 
名称 : at
使用权限 : 所有使用者

使用方式 : at -V [-q queue] [-f file] [-mldbv] TIME

说明 : at 可以让使用者指定在 TIME 这个特定时刻执行某个程式或指令,TIME 的格式是 HH:MM其中的 HH 为小时,MM 为分钟,甚至你也可以指定 am, pm, midnight, noon, teatime(就是下午 4 点锺)等口语词。

如果想要指定超过一天内的时间,则可以用 MMDDYY 或者 MM/DD/YY 的格式,其中 MM 是分钟,DD 是第几日,YY 是指年份。另外,使用者甚至也可以使用像是 now + 时间间隔来弹性指定时间,其中的时间间隔可以是 minutes, hours, days, weeks

另外,使用者也可指定 today 或 tomorrow 来表示今天或明天。当指定了时间并按下 enter 之后,at 会进入交谈模式并要求输入指令或程式,当你输入完后按下 ctrl+D 即可完成所有动作,至于执行的结果将会寄回你的帐号中。

把计 :

-V : 印出版本编号
-q : 使用指定的伫列(Queue)来储存,at 的资料是存放在所谓的 queue 中,使用者可以同时使用多个 queue,而 queue 的编号为 a, b, c… z 以及 A, B, … Z 共 52 个
-m : 即使程式/指令执行完成后没有输出结果, 也要寄封信给使用者
-f file : 读入预先写好的命令档。使用者不一定要使用交谈模式来输入,可以先将所有的指定先写入档案后再一次读入
-l : 列出所有的指定 (使用者也可以直接使用 atq 而不用 at -l)
-d : 删除指定 (使用者也可以直接使用 atrm 而不用 at -d)
-v : 列出所有已经完成但尚未删除的指定

例子 :
三天后的下午 5 点锺执行 /bin/ls :
at 5pm + 3 days /bin/ls

三个星期后的下午 5 点锺执行 /bin/ls :
at 5pm + 2 weeks /bin/ls

明天的 17:20 执行 /bin/date :
at 17:20 tomorrow /bin/date

1999 年的最后一天的最后一分钟印出 the end of world !
at 23:59 12/31/1999 echo the end of world !

 
名称:cal

使用权限:所有使用者

使用方式:cal [-mjy] [month [year]]

说明:

显示日历。若只有一个参数,则代表年份(1-9999),显示该年的年历。年份必须全部写出:“cal 89\ 将不会是显示 1989 年的年历。使用两个参数,则表示月份及年份。若没有参数则显示这个月的月历。
1752 年 9 月第 3 日起改用西洋新历,因这时大部份的国家都采用新历,有 10 天被去除,所以该月份的月历有些不同。在此之前为西洋旧历。

匡兜

-m : 以星期一为每周的第一天方式显示。
-j : 以凯撒历显示,即以一月一日起的天数显示。
-y : 显示今年年历。

范例:

cal : 显示本月的月历。

 

[root@mylinux /root]# date
Tue Aug 15 08:00:18 CST 2000
[root@mylinux /root]# cal
August 2000
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

[root@mylinux /root]#
cal 2001 : 显示公元 2001 年年历。

[root@mylinux /root]# cal 2001
2001

January February March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 1 2 3 1 2 3
7 8 9 10 11 12 13 4 5 6 7 8 9 10 4 5 6 7 8 9 10
14 15 16 17 18 19 20 11 12 13 14 15 16 17 11 12 13 14 15 16 17
21 22 23 24 25 26 27 18 19 20 21 22 23 24 18 19 20 21 22 23 24
28 29 30 31 25 26 27 28 25 26 27 28 29 30 31

April May June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 1 2 3 4 5 1 2
8 9 10 11 12 13 14 6 7 8 9 10 11 12 3 4 5 6 7 8 9
15 16 17 18 19 20 21 13 14 15 16 17 18 19 10 11 12 13 14 15 16
22 23 24 25 26 27 28 20 21 22 23 24 25 26 17 18 19 20 21 22 23
29 30 27 28 29 30 31 24 25 26 27 28 29 30

July August September
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 1 2 3 4 1
8 9 10 11 12 13 14 5 6 7 8 9 10 11 2 3 4 5 6 7 8
15 16 17 18 19 20 21 12 13 14 15 16 17 18 9 10 11 12 13 14 15
22 23 24 25 26 27 28 19 20 21 22 23 24 25 16 17 18 19 20 21 22
29 30 31 26 27 28 29 30 31 23 24 25 26 27 28 29
30
October November December
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 1 2 3 1
7 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8
14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15
21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22
28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29
30 31

[root@mylinux /root]#

 

 

cal 5 2001 : 显示公元 2001 年 5 月月历。

 

[root@mylinux /root]# cal 5 2001
May 2001
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

[root@mylinux /root]#

 

 

cal -m : 以星期一为每周的第一天方式,显示本月的月历。

 

[root@mylinux /root]# cal -m
August 2000
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

[root@mylinux /root]#

 

 

cal -jy : 以一月一日起的天数显示今年的年历。

 

[root@mylinux /root]# cal -jy
2000

January February
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
1 32 33 34 35 36
2 3 4 5 6 7 8 37 38 39 40 41 42 43
9 10 11 12 13 14 15 44 45 46 47 48 49 50
16 17 18 19 20 21 22 51 52 53 54 55 56 57
23 24 25 26 27 28 29 58 59 60
30 31
March April
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
61 62 63 64 92
65 66 67 68 69 70 71 93 94 95 96 97 98 99
72 73 74 75 76 77 78 100 101 102 103 104 105 106
79 80 81 82 83 84 85 107 108 109 110 111 112 113
86 87 88 89 90 91 114 115 116 117 118 119 120
121
May June
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
122 123 124 125 126 127 153 154 155
128 129 130 131 132 133 134 156 157 158 159 160 161 162
135 136 137 138 139 140 141 163 164 165 166 167 168 169
142 143 144 145 146 147 148 170 171 172 173 174 175 176
149 150 151 152 177 178 179 180 181 182

July August
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
183 214 215 216 217 218
184 185 186 187 188 189 190 219 220 221 222 223 224 225
191 192 193 194 195 196 197 226 227 228 229 230 231 232
198 199 200 201 202 203 204 233 234 235 236 237 238 239
205 206 207 208 209 210 211 240 241 242 243 244
212 213
September October
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
245 246 275 276 277 278 279 280 281
247 248 249 250 251 252 253 282 283 284 285 286 287 288
254 255 256 257 258 259 260 289 290 291 292 293 294 295
261 262 263 264 265 266 267 296 297 298 299 300 301 302
268 269 270 271 272 273 274 303 304 305

November December
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
306 307 308 309 336 337
310 311 312 313 314 315 316 338 339 340 341 342 343 344
317 318 319 320 321 322 323 345 346 347 348 349 350 351
324 325 326 327 328 329 330 352 353 354 355 356 357 358
331 332 333 334 335 359 360 361 362 363 364 365
366

[root@mylinux /root]#

 
名称 : crontab
使用权限 : 所有使用者

使用方式 :

crontab [ -u user ] filecrontab [ -u user ] { -l | -r | -e }
说明 :
crontab 是用来让使用者在固定时间或固定间隔执行程式之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。

餐数 :

-e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
-r : 删除目前的时程表
-l : 列出目前的时程表

时程表的格式如下 :
f1 f2 f3 f4 f5 program

其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程式。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程式,其余类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推
当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其余类推

使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。
例子 :

每月每天每小时的第 0 分钟执行一次 /bin/ls :
0 7 * * * /bin/ls

在 12 月内, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup

周一到周五每天下午 5:00 寄一封信给 alex@domain.name :
0 17 * * 1-5 mail -s “hi” alex@domain.name < /tmp/maildata

每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分….执行 echo “haha”
20 0-23/2 * * * echo “haha”

注意 :

当程式在你所指定的时间执行后,系统会寄一封信给你,显示该程式执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上 > /dev/null 2>&1 即可。

名称 : date
使用权限 : 所有使用者

使用方式 :

date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]

说明 :

date 可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下 :

时间方面 :

% : 印出 %
%n : 下一行
%t : 跳格
%H : 小时(00..23)
%I : 小时(01..12)
%k : 小时(0..23)
%l : 小时(1..12)
%M : 分钟(00..59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%S : 秒(00..61)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区

日期方面 :
%a : 星期几 (Sun..Sat)
%A : 星期几 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接显示日期与时间
%d : 日 (01..31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0..6)
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000..9999)

若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数
把计 :

-d datestr : 显示 datestr 中所设定的时间 (非系统时间)
–help : 显示辅助讯息
-s datestr : 将系统时间设为 datestr 中所设定的时间
-u : 显示目前的格林威治时间
–version : 显示版本编号

例子 :
显示时间后跳行,再显示目前日期 :
date +%T%n%D

显示月份与日数 :
date +%B %d

显示日期与设定时间(12:34:56) :
date –date 12:34:56

注意 :

当你不希望出现无意义的 0 时(比如说 1999/03/07),则可以在标记中插入 – 符号,比如说 date +%-H:%-M:%-S 会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04 会变为 8:9:4。另外,只有取得权限者(比如说 root)才能设定系统时间。

当你以 root 身分更改了系统时间之后,请记得以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。
名称 : sleep
使用权限 : 所有使用者

使用方式 : sleep [--help] [--version] number[smhd]

说明 : sleep 可以用来将目前动作延迟一段时间

参数说明 :

–help : 显示辅助讯息
–version : 显示版本编号
number : 时间长度,后面可接 s、m、h 或 d
其中 s 为秒,m 为 分钟,h 为小时,d 为日数

例子 :
显示目前时间后延迟 1 分钟,之后再次显示时间 :
date;sleep 1m;date

 

名称: time
使用权限: 所有使用者

使用方式: time [options] COMMAND [arguments]

说明: time 指令的用途,在于量测特定指令执行时所需消耗的时间及系统资源等资讯。例如 CPU 时间、记忆体、输入输出等等。需要特别注意的是,部分资讯在 Linux 上显示不出来。这是因为在 Linux 上部分资源的分配函式与 time 指令所预设的方式并不相同,以致于 time 指令无法取得这些资料。

把计

-o or –output=FILE
设定结果输出档。这个选项会将 time 的输出写入 所指定的档案中。如果档案已经存在,系统将覆写其内容。
-a or –append
配合 -o 使用,会将结果写到档案的末端,而不会覆盖掉原来的内容。
-f FORMAT or –format=FORMAT
以 FORMAT 字串设定显示方式。当这个选项没有被设定的时候,会用系统预设的格式。不过你可以用环境变数 time 来设定这个格式,如此一来就不必每次登入系统都要设定一次。
一般设定上,你可以用
\t
表示跳栏,或者是用
\n
表示换行。每一项资料要用 % 做为前导。如果要在字串中使用百分比符号,就用 。(学过 C 语言的人大概会觉得很熟悉)
time 指令可以显示的资源有四大项,分别是:

Time resources
Memory resources
IO resources
Command info

详细的内容如下:
Time Resources
E 执行指令所花费的时间,格式是:[hour]:minute:second。请注意这个数字并不代表实际的 CPU 时间。
e 执行指令所花费的时间,单位是秒。请注意这个数字并不代表实际的 CPU 时间。
S 指令执行时在核心模式(kernel mode)所花费的时间,单位是秒。
U 指令执行时在使用者模式(user mode)所花费的时间,单位是秒。
P 执行指令时 CPU 的占用比例。其实这个数字就是核心模式加上使用者模式的 CPU 时间除以总时间。
Memory Resources
M 执行时所占用的实体记忆体的最大值。单位是 KB
t 执行时所占用的实体记忆体的平均值,单位是 KB
K 执行程序所占用的记忆体总量(stack+data+text)的平均大小,单位是 KB
D 执行程序的自有资料区(unshared data area)的平均大小,单位是 KB
p 执行程序的自有堆叠(unshared stack)的平均大小,单位是 KB
X 执行程序间共享内容(shared text)的平均值,单位是 KB
Z 系统记忆体页的大小,单位是 byte。对同一个系统来说这是个常数
IO Resources
F 此程序的主要记忆体页错误发生次数。所谓的主要记忆体页错误是指某一记忆体页已经置换到置换档(swap file)中,而且已经分配给其他程序。此时该页的内容必须从置换档里再读出来。
R 此程序的次要记忆体页错误发生次数。所谓的次要记忆体页错误是指某一记忆体页虽然已经置换到置换档中,但尚未分配给其他程序。此时该页的内容并未被破坏,不必从置换档里读出来
W 此程序被交换到置换档的次数
c 此程序被强迫中断(像是分配到的 CPU 时间耗尽)的次数
w 此程序自愿中断(像是在等待某一个 I/O 执行完毕,像是磁碟读取等等)的次数
I 此程序所输入的档案数
O 此程序所输出的档案数
r 此程序所收到的 Socket Message
s 此程序所送出的 Socket Message
k 此程序所收到的信号 ( Signal )数量
Command Info
C 执行时的参数以及指令名称
x 指令的结束代码 ( Exit Status )

 
-p or –portability
这个选项会自动把显示格式设定成为:
real %e
user %U
sys %S
这么做的目的是为了与 POSIX 规格相容。
-v or –verbose
这个选项会把所有程式中用到的资源通通列出来,不但如一般英文语句,还有说明。对不想花时间去熟习格式设定或是刚刚开始接触这个指令的人相当有用。

范例:
利用下面的指令
time -v ps -aux

我们可以获得执行 ps -aux 的结果和所花费的系统资源。如下面所列的资料:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 1096 472 ? S Apr19 0:04 init
root 2 0.0 0.0 0 0 ? SW Apr19 0:00 [kflushd]
root 3 0.0 0.0 0 0 ? SW Apr19 0:00 [kpiod]
……
root 24269 0.0 1.0 2692 996 pts/3 R 12:16 0:00 ps -aux

Command being timed: “ps -aux”
User time (seconds): 0.05
System time (seconds): 0.06
Percent of CPU this job got: 68%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.16
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 0
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 238
Minor (reclaiming a frame) page faults: 46
Voluntary context switches: 0
Involuntary context switches: 0
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0

 

名称: uptime
使用权限: 所有使用者
使用方式: uptime [-V]
说明: uptime 提供使用者下面的资讯,不需其他参数:

现在的时间
系统开机运转到现在经过的时间
连线的使用者数量
最近一分钟,五分钟和十五分钟的系统负载
参数: -V 显示版本资讯。
范例: uptime
其结果为:
10:41am up 5 days, 10 min, 1 users, load average: 0.00, 0.00, 1.99

名称:chfn

使用权限:所有使用者

用法:shell>> chfn

说明:提供使用者更改个人资讯,用于 finger and mail username

范例:

shell>> chfn
Changing finger information for user
Password: [del]
Name[]:Johnney Huang ### 提供 finger 时的资料
Office[]:NCCU
Office Phone[]: [del]
Home Phone[]: [del]
名称:chsh

使用权限:所有使用者

用法:shell>> chsh

说明:更改使用者 shell 设定

范例:

shell>> chsh
Changing fihanging shell for user1
Password: [del]
New shell [/bin/tcsh]: ### [是目前使用的 shell]
[del]

shell>> chsh -l ### 展示 /etc/shells 档案内容
/bin/bash
/bin/sh
/bin/ash
/bin/bsh
/bin/tcsh
/bin/csh

 

” finger [返回]
名称: finger
使用权限: 所有使用者

使用方式: finger [options] user[@address]

说明:finger 可以让使用者查询一些其他使用者的资料。会列出来的资料有:

Login Name
User Name
Home directory
Shell
Login status
mail status
.plan
.project
.forward

其中 .plan ,.project 和 .forward 就是使用者在他的 Home Directory 里的 .plan , .project 和 .forward 等档案里的资料。如果没有就没有。finger 指令并不限定于在同一伺服器上查询,也可以寻找某一个远端伺服器上的使用者。只要给一个像是 E-mail address 一般的地址即可。
把计

-l
多行显示。

-s
单行显示。这个选项只显示登入名称,真实姓名,终端机名称,闲置时间,登入时间,办公室号码及电话号码。如果所查询的使用者是远端伺服器的使用者,这个选项无效。

范例:下列指令可以查询本机管理员的资料:
finger root

其结果如下:
Login: root Name: root
Directory: /root Shell: /bin/bash
Never logged in.
No mail.
No Plan.

 
名称:last

使用权限:所有使用者

使用方式:shell>> last [options]

说明:显示系统开机以来获是从每月初登入者的讯息

把计

-R 省略 hostname 的栏位
-num 展示前 num 个
username 展示 username 的登入讯息
tty 限制登入讯息包含终端机代号

范例:

shell>> last -R -2
johnney pts/1 Mon Aug 14 20:42 still logged in
johnney pts/0 Mon Aug 14 19:59 still logged in

wtmp begins Tue Aug 1 09:01:10 2000 ### /var/log/wtmp
shell>> last -2 minery
minery pts/0 140.119.217.115 Mon Aug 14 18:37 – 18:40 (00:03)
minery pts/0 140.119.217.115 Mon Aug 14 17:22 – 17:24 (00:02)

wtmp begins Tue Aug 1 09:01:10 2000

 
名称:login

这个命令都不会就不要干算了!呵呵我也不在这里多费笔墨耽误大家美好青春了^_^

 

名称:passwd

使用权限:所有使用者

使用方式:passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]

说明:用来更改使用者的密码

参数:
-k

-l

-u

-f

-d 关闭使用者的密码认证功能, 使用者在登入时将可以不用输入密码, 只有具备 root 权限的使用者方可使用.

-S 显示指定使用者的密码认证种类, 只有具备 root 权限的使用者方可使用.

[username] 指定帐号名称.

 

名称 : who
使用权线 : 所有使用者都可使用

使用方式 : who – [husfV] [user]

说明 : 显示系统中有那些使用者正在上面,显示的资料包含了使用者 ID,使用的终端机,从那边连上来的,上线时间,呆滞时间,CPU 使用量,动作等等。

把计 :

-h : 不要显示标题列
-u : 不要显示使用者的动作/工作
-s : 使用简短的格式来显示
-f : 不要显示使用者的上线位置
-V : 显示程式版本
 
 
Linux 指令大全(3)      
2001-02-22    otto       点击: 109629
 
 
 
名称:/etc/aliases
使用权限:系统管理者
使用方式: 请用 newaliases 更新资料库
说明:
sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫 redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。

/etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
# newaliases

下面命令会做相同的事,
# sendmail -bi

相关命令:
mail, mailq, newaliases, sendmail

” mail [返回]
名称:mail

使用权限:所有使用者
使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
说明:
mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
参数:
i 忽略 tty 的中断讯号。 (interrupt)
I 强迫设成互动模式。 (Interactive)
v 列印出讯息,例如送信的地点、状态等等。 (verbose)
n 不读入 mail.rc 设定档。
s 邮件标题。
c cc 邮件地址。
b bcc 邮件地址。
范例:
将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。

 

mail user1@email.address
mail user1@email.address user2

 

将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。

mail -s 标题 -c user1 user2 < mail.txt

 

指令:mesg
使用权限 : 所有使用者

使用方式 : mesg [y|n]

说明 : 决定是否允许其他人传讯息到自己的终端机介面
把计 

y : 允许讯息传到终端机介面上。
n : 不允许讯息传到终端机介面上 。
如果没有设定,则讯息传递与否则由终端机界面目前状态而定。

例子 :
改变目前讯息设定,改成不允许讯息传到终端机介面上 :
mesg n
与 mesg 相关的指令有: talk,write,wall。
名称:/etc/aliases
使用权限:系统管理者
使用方式: newaliases
说明:
sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫 redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。

/etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。

参数:没有任何参数。 范例:
# newaliases

下面命令会做相同的事,
# sendmail -bi

相关命令:
mail, mailq, newaliases, sendmail

 

名称 : talk
使用权限 : 所有使用者

使用方式 :

talk person [ttyname]
说明 : 与其他使用者对谈

把计 :

person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入 person@machine.name
ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息

例子.1 :

与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
talk Rollaend
接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c

例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
talk Rollaend@linuxfab.cx pts/2
接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c

注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
名称 : wall
使用权限 : 所有使用者

使用方式 :

wall [ message ]
使用说明:
wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)

例子 :

传讯息”hi” 给每一个使用者 :
wall hi

 
名称 : write
使用权限 : 所有使用者

使用方式 :

write user [ttyname]
说明 : 传讯息给其他使用者

把计 :

user : 预备传讯息的使用者帐号
ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息

例子.1 :

传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
write Rollaend
接下来就是将讯息打上去,结束请按 ctrl+c

例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
write Rollaend pts/2
接下来就是将讯息打上去,结束请按 ctrl+c

注意 : 若对方设定 mesg n,则此时讯席将无法传给对方

名称:kill
使用权限:所有使用者

使用方式:

kill [ -s signal | -p ] [ -a ] pid …
kill -l [ signal ]
说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
把计

-s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
-p : 印出 pid , 并不送出信号
-l (signal) : 列出所有可用的信号名称
范例:

将 pid 为 323 的行程砍掉 (kill) :
kill -9 323

将 pid 为 456 的行程重跑 (restart) :
kill -HUP 456

 
名称:nice
使用权限:所有使用者

使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command [arg...]]

说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
把计

-n adjustment, -adjustment, –adjustment=adjustment 皆为将该原有优先序的增加 adjustment
–help 显示求助讯息
–version 显示版本资讯
范例:
将 ls 的优先序加 1 并执行 :
nice -n 1 ls

将 ls 的优先序加 10 并执行 :
nice ls将 ls 的优先序加 10 并执行

注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。

 

名称:ps
使用权限:所有使用者
使用方式:ps [options] [--help]
说明:显示瞬间行程 (process) 的动态
参数:
ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-A 列出所有的行程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程

au(x) 输出格式 :

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令

范例:

ps
PID TTY TIME CMD
2791 ttyp0 00:00:00 tcsh
3092 ttyp0 00:00:00 ps
% ps -A
PID TTY TIME CMD
1 ? 00:00:03 init
2 ? 00:00:00 kflushd
3 ? 00:00:00 kpiod
4 ? 00:00:00 kswapd
5 ? 00:00:00 mdrecoveryd
…….
% ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
……..

 

名称:pstree
使用权限:所有使用者
使用方式:
pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
pstree -V
说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
参数:
-a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
-c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
范例:

pstree

init-+-amd
|-apmd
|-atd
|-httpd—10*[httpd]
%pstree -p
init(1)-+-amd(447)
|-apmd(105)
|-atd(339)
%pstree -c
init-+-amd
|-apmd
|-atd
|-httpd-+-httpd
| |-httpd
| |-httpd
| |-httpd
….

 

名称:renice
使用权限:所有使用者

使用方式:renice priority [[-p] pid …] [[-g] pgrp …] [[-u] user …]

说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)

把计

-p pid 重新指定行程的 id 为 pid 的行程的优先序
-g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
-u user 重新指定行程拥有者为 user 的行程的优先序
范例:
将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
renice +1 987 -u daemon root -p 32

注意 : 每一个行程(Process)都有一个唯一的 (unique) id

 

名称:top
使用权限:所有使用者

使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]

说明:即时显示 process 的动态

把计

d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来
s : 安全模式,将交谈式指令取消, 避免潜在的危机
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
n : 更新的次数,完成后将会退出 top
b : 批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内

范例:
显示更新十次后退出 ;
top -n 10

使用者将不能利用交谈式指令来对行程下命令 :
top -s

将更新显示二次的结果输入到名称为 top.log 的档案里 :
top -n 2 -b < top.log

名称:skill

使用权限:所有使用者

使用方式: skill [signal to send] [options] 选择程序的规则

说明:

送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0

讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。

一般参数:

-f 快速模式/尚未完成

-i 互动模式/ 每个动作将要被确认

-v 详细输出/ 列出所选择程序的资讯

-w 智能警告讯息/ 尚未完成

-n 没有动作/ 显示程序代号

参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。

-t 终端机代号 ( tty 或 pty )

-u 使用者名称

-p 程序代号 ( pid )

-c 命令名称 可使用的讯号:

以下列出已知的讯号名称,讯号代号,功能。

名称 (代号) 功能/ 描述

ALRM 14 离开

HUP 1 离开

INT 2 离开

KILL 9 离开/ 强迫关闭

PIPE 13 离开

POLL 离开

PROF 离开

TERM 15 离开

USR1 离开

USR2 离开

VTALRM 离开

STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体

UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体

TSTP 停止 /产生与内容相关的行为

TTIN 停止 /产生与内容相关的行为

TTOU 停止 /产生与内容相关的行为

STOP 停止 /强迫关闭

CONT 从新启动 /如果在停止状态则从新启动,否则忽略

PWR 忽略 /在某些系统中会离开

WINCH 忽略

CHLD 忽略

ABRT 6 核心

FPE 8 核心

ILL 4 核心

QUIT 3 核心

SEGV 11 核心

TRAP 5 核心

SYS 核心 /或许尚未实作

EMT 核心 /或许尚未实作

BUS 核心 /核心失败

XCPU 核心 /核心失败

XFSZ 核心 /核心失败

范例:

停止所有在 PTY 装置上的程序
skill -KILL -v pts/*

停止三个使用者 user1 , user2 , user3
skill -STOP user1 user2 user3

 

其他相关的命令: kill

 

名称:expr

使用权限:所有使用者
### 字串长度

shell>> expr length “this is a test”
14

### 数字商数

shell>> expr 14 % 9
5

### 从位置处抓取字串

shell>> expr substr “this is a test” 3 5
is is

### 数字串 only the first character

shell>> expr index “testforthegame” e
2

### 字串真实重现

shell>> expr quote thisisatestformela
thisisatestformela

 
名称: tr

### 1.比方说要把目录下所有的大写档名换为小写档名?

似乎有很多方式,”tr”是其中一种:

#!/bin/sh

dir=”/tmp/testdir”;
files=`find $dir -type f`;
for i in $files
do
dir_name=`dirname $i`;
ori_filename=`basename $i`
new_filename=`echo $ori_filename | tr [:upper:] [:lower:]` > /dev/null;
#echo $new_filename;
mv $dir_name/$ori_filename $dir_name/$new_filename
done
### 2.自己试验中…lowercase to uppercase

tr abcdef…[del] ABCDE…[del]
tr a-z A-Z
tr [:lower:] [:upper:]

shell>> echo “this is a test” | tr a-z A-Z > www
shell>> cat www
THIS IS A TEST

### 3.去掉不想要的字串

shell>> tr -d this ### 去掉有关 t.e.s.t
this

man
man
test
e

### 4.取代字串

shell>> tr -s “this” “TEST”
this
TEST
th
TE

 
指令:clear
用途:清除萤幕用。

使用方法:在 console 上输入 clear。
名称: reset, tset
使用方法: tset [-IQqrs] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal]

使用说明:

reset 其实和 tset 是一同个命令,它的用途是设定终端机的状态。一般而言,这个命令会自动的从环境变数、命令列或是其它的组态档决定目前终端机的型态。如果指定型态是 ? 的话,这个程式会要求使用者输入终端机的型别。

由于这个程式会将终端机设回原始的状态,除了在 login 时使用外,当系统终端机因为程式不正常执行而进入一些奇怪的状态时,你也可以用它来重设终端机o 例如不小心把二进位档用 cat 指令进到终端机,常会有终端机不再回应键盘输入,或是回应一些奇怪字元的问题。此时就可以用 reset 将终端机回复至原始状态。选项说明:
-p
将终端机类别显示在萤幕上,但不做设定的动作。这个命令可以用来取得目前终端机的类别。
-e ch
将 erase 字元设成 ch
-i ch
将中断字元设成 ch
-k ch
将删除一行的字元设成 ch
-I
不要做设定的动作,如果没有使用选项 -Q 的话,erase、中断及删除字元的目前值依然会送到萤幕上。
-Q
不要显示 erase、中断及删除字元的值到萤幕上。
-r
将终端机类别印在萤幕上。
-s
将设定 TERM 用的命令用字串的型式送到终端机中,通常在 .login 或 .profile 中用
范例:
让使用者输入一个终端机型别并将终端机设到该型别的预设状态。
# reset ?

 

将 erase 字元设定 control-h
# reset -e ^B

 

将设定用的字串显示在萤幕上
# reset -s
Erase is control-B (^B).
Kill is control-U (^U).
Interrupt is control-C (^C).
TERM=xterm;

名称:compress

使用权限:所有使用者
使用方式:compress [-dfvcV] [-b maxbits] [file ...]
说明:
compress 是一个相当古老的 unix 档案压缩指令,压缩后的档案会加上一个 .Z 延伸档名以区别未压缩的档案,压缩后的档案可以以 uncompress 解压。若要将数个档案压成一个压缩档,必须先将档案 tar 起来再压缩。由于 gzip 可以产生更理想的压缩比例,一般人多已改用 gzip 为档案压缩工具。
参数:
c 输出结果至标准输出设备(一般指荧幕)
f 强迫写入档案,若目的档已经存在,则会被覆盖 (force)
v 将程式执行的讯息印在荧幕上 (verbose)
b 设定共同字串数的上限,以位元计算,可以设定的值为 9 至 16 bits 。由于值越大,能使用的共同字串就 越多,压缩比例就越大,所以一般使用预设值 16 bits (bits)
d 将压缩档解压缩
V 列出版本讯息
范例:
将 source.dat 压缩成 source.dat.Z ,若 source.dat.Z 已经存在,内容则会被压缩档覆盖。

 

compress -f source.dat

 

将 source.dat 压缩成 source.dat.Z ,并列印出压缩比例。
-v 与 -f 可以一起使用

 

compress -vf source.dat

 

将压缩后的资料输出后再导入 target.dat.Z 可以改变压缩档名。

 

compress -c source.dat > target.dat.Z

 

-b 的值越大,压缩比例就越大,范围是 9-16 ,预设值是 16 。

 

compress -b 12 source.dat

 

将 source.dat.Z 解压成 source.dat ,若档案已经存在,使用者按 y 以确定覆盖档案,若使用 -df 程式则会自动覆盖档案。由于系统会自动加入 .Z 为延伸档名,所以 source.dat 会自动当作 source.dat.Z 处理。

 

compress -d source.dat
compress -d source.dat.Z

 
名称: lpd

使用权限: 所有使用者

使用方式:lpd [-l] [#port]
lpd 是一个常驻的印表机管理程式,它会根据 /etc/printcap 的内容来管理本地或远端的印表机。/etc/printcap 中定义的每一个印表机必须在 /var/lpd 中有一个相对应的目录,目录中以 cf 开头的档案表示一个等待送到适当装置的印表工作。这个档案通常是由 lpr 所产生。

lpr 和 lpd 组成了一个可以离线工作的系统,当你使用 lpr 时,印表机不需要能立即可用,甚至不用存在。lpd 会自动监视印表机的状况,当印表机上线后,便立即将档案送交处理。这个得所有的应用程式不必等待印表机完成前一工作。

参数:
-l: 将一些除错讯息显示在标准输出上。
#port: 一般而言,lpd 会使用 getservbyname 取得适当的 TCP/IP port,你可以使用这个参数强迫 lpd 使用指定的 port。

范例:
这个程式通常是由 /etc/rc.d 中的程式在系统启始阶段执行。

 

名称 lpq
– 显示列表机贮列中未完成的工作 用法

lpq [l] [P] [user]

说明
lpq 会显示由 lpd 所管理的列表机贮列中未完成的项目。

范例
范例 1. 显示所有在 lp 列表机贮列中的工作
# lpq -PlpRank Owner Job Files Total Size1st root 238 (standard input) 1428646 bytes

 
相关函数
lpr,lpc,lpd

 

名称: lpr

使用权限: 所有使用者

使用方式:lpr [ -P printer ]
将档案或是由标准输入送进来的资料送到印表机贮列之中,印表机管理程式 lpd 会在稍后将这个档案送给适当的程式或装置处理。lpr 可以用来将料资送给本地或是远端的主机来处理。

参数:
-p Printer: 将资料送至指定的印表机 Printer,预设值为 lp。

范例:
www.c 和 kkk.c 送到印表机 lp。
lpr -Plp www.c kkk.c

 
名称: lprm
– 将一个工作由印表机贮列中移除 用法

/usr/bin/lprm [P] [file...]

说明
尚未完成的印表机工作会被放在印表机贮列之中,这个命令可用来将常未送到印表机的工作取消。由于每一个印表机都有一个独立的贮列,你可以用 -P 这个命令设定想要作用的印列机。如果没有设定的话,会使用系统预设的印表机。

这个命令会检查使用者是否有足够的权限删除指定的档案,一般而言,只有档案的拥有者或是系统管理员才有这个权

分类: Linux 标签: , , ,

建立Socks5服务器

2011年11月4日 没有评论

我们先来了解一下什么是socks5代理

SOCKS5 是一个代理协议,它在使用 TCP/IP协议通讯的前端机器和服务器机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Internet网中的服务器,或者使通讯更加安全。SOCKS5 服务器通过将前端发来的请求转发给真正的目标服务器, 模拟了一个前端的行为。在这里,前端和SOCKS5之间也是通过TCP/IP协议进行通讯,前端将原本要发送给真正服务器的请求发送给SOCKS5服务器,然后SOCKS5服务器将请求转发给真正的服务器。

socks与http的区别
  SOCKS是一组由Internal工程工作小组(IETF)所开发出来的开放软件开放标准,用来处理网络安全的事宜。SOCKS象一堵墙被夹在 Internal服务器和客户端之间,对于出入企业网络的资讯提供流量和安全的管理。SOCKS这个名词并不是一组英文字头的缩写,而是一个和 TCP/IP的Socket端口有关的安全标准,一般防火墙系统通常是象网关(Gateway)一样是作用在OSI模型的第七层也就是应用层上,对 TCP/IP的高级协议,如Telnet、FTP、HTTP和SMTP加以管制,而SOCKS作用在OSI模型的第四层也就是会话层上,象一个代理一样对客户端到服务器端或服务器和服务器之间的数据联系,提供安全上的服务。由于SOCKS作用在会话层上,因此它是一个提供会话层到会话层间安全服务的方案,不受高层应用程序变更的影响。 Socks代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求),所以Socks代理服务器比应用层代理服务器要快的

我们一般建立socks5服务器流行的使用ccproxy吧。很方便。因为这个软件还能管理不同的用户限制权限开设出来的帐号可以进行控制。