-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLinuxCommand.xml
More file actions
1610 lines (1416 loc) · 77.8 KB
/
LinuxCommand.xml
File metadata and controls
1610 lines (1416 loc) · 77.8 KB
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
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="utf-8"?>
<!-- Linux常用命令 -->
http://man.linuxde.net
<文件操作命令>
<ls notes="查看文件">
<-l notes="显示文件或目录(文件夹)详细属性">
如:/etc/passwd 文件
-rw-r--r-- 1 root root 1888 2013-01-10 /etc/passwd
类型和权限 文件数 用户 用户组 文件大小 修改时间 文件名
类型:
-:表示一个普通的文件
d:表示一个目录
l:表示一个符号链接文件,实际上它指向另一个文件
b:表示区块设备文件,特殊类型的文件
c:表示其他的外围设备文件,也是特殊类型的文件
s/p:这些文件关系到系统的数据结构和管道,通常很少见到.
权限:
r:表示读取权限
w:表示写入权限
x:表示执行权限
目录权限:
(在目录中的权限,x(执行)的权限是最重要的!)
x:权限表示当前的目录(文件夹)是否可以使用cd命令进去,
rx:可以执行cd和ls命令
wx:可以执行cd、touch(创建文件)、rm、vi(自己的文件或别人的文件)
wxt:可以执行cd、touch、rm、vi(可以执行自己的文件,但是别人的文件不行)
<链接 src="http://www.cnblogs.com/avril/archive/2010/03/23/1692809.html"></链接>
</-l>
<-a notes="显示所有文件(包括隐藏文件)">
使用"."号开头的文件为隐藏文件(需要使用"ls -a"查看)
</-a>
<-F>显示文件类型</-F>
</ls>
<umask notes="由umask值来确定创建文件或目录的默认权限">
{
作用是在当前用户创建文件或目录时,当做掩码的作用换算出创建文件或目录的初始权限
每个用户建立文件时,此文件都会有默认权限
默认权限的值由环境中的umask值来确定
用户可以自主改动umask值,并在改动后建立的文件上得到体现
一般用户的默认umask值为002,系统用户的默认umask值为022
}
比如-默认情况下:
root用户的umask为0022
那么root用户创建的文件默认权限是:666-022=644:-rw-r--r--
并且root用户创建的目录默认权限是:777-022=755:drwxr-xr-x
普通用户的umask为0002
那么普通用户创建的文件默认权限是:666-002=664:-rw-rw-r--
并且普通用户创建的目录默认权限是:777-002=775:drwxrwxr-x
</umask>
<file notes="显示制定文件的类型">
例如:
[...]# find /etc/passwd
/etc/passwd: ASCII text
// (表示这个文件是ascii码类型的文本文档)
</file>
<mv notes="移动或重命名文件">
// 将/etc目录下的passwd文件移动到/tmp目录下,并且改名为aaa
[...]# mv /etc/passwd /tmp/aaa
</mv>
<cp notes="拷贝文件">
-r // 用于操作文件夹,此参数也可用于别的命令
</cp>
<rm notes="执行删除操作">
-i // 使用交互式操作(询问用户是否删除,在默认使用的rm命令情况下,默认使用)
-r // 用于操作文件夹
-f // 忽略不存在的文件,没有提示
</rm>
<touch notes="创建空文件或更新文件时间(注意不是文件夹)"></touch>
<pwd notes="查看当前所在的路径"></pwd>
<du notes="用来查看文件的实际占用大小,大小为kB为单位"></du>
<chmod notes="用于更改设置文件或目录的权限"></chmod>
<wc notes="用于打印文件的文本行数、单词数、字节数等"></wc>
<cat notes="查看文件内容"></cat>
<more notes="逐屏查看文件内容"></more>
<less notes="★(zrq推荐使用less)逐屏查看文件内容"></less>
<head notes="查看文本的前十行"></head>
<tail notes="查看文本的后十行">
-f 用于"监听":可以用于"盯着"一个文件的后十行,一旦这个文件的内容产生变化,tail命令的输入结果也随之发生变化,一般可以用来看日志文件
</tail>
<diff notes="检查制定的不同文件的区别">
例如:
// 检查a.txt和b.txt文件的区别
diff a.txt b.txt
</diff>
<patch notes="用于为开放源代码软件安装补丁程序"></patch>
<pwd notes="查看当前路径"></pwd>
<cd notes="改变当前路径"></cd>
<mkdir notes="创建新目录(创建文件夹)">
-p // 递归创建路径path上的所有文件夹 mkdir -p path
</mkdir>
<rmdir notes="删除空目录(删除一个空文件夹)"></rmdir>
<rm notes="删除文件或目录">
-r // 递归删除目录和文件及其内容
-f // 不进行提示
-i // 进行任何删除操作前必须先确认
</rm>
搜索命令的集合:(不同的文件中,不同的场景使用的搜索命令都不尽相同)
<which notes="主要用于查找可执行文件(可执行的命令)">
[...]# which ls
alias ls='ls --color=tty'
/bin/ls
// 从中可以看出,使用which命令可以查看这个可执行命令的路径,
可以查看到底执行了那个可执行文件
注意:which命令查找的路径是一些基本上固定下来的路径,
只能在这些路径中进行查找,具体的路径:
[...]# echo $PATH // 查看固定路径
所以这个which命令主要用于查找这些可执行的文件(可执行的命令)
</which>
<whereis notes="作用和which命令差不多,路径多了一些而已"></whereis>
<slocate notes="根据数据库查找'所有'文件">
locate命令是这个命令的软链接
这个命令是用来查找所有的文件的命令,不过是根据[数据库]进行查找
这个数据库是这个命令单独的数据库
当这个数据库的文件数据目录没有更新的时候,是查不到新添加的文件的路径的
更新数据库的命令:
[...]# updatedb
所以updatedb和slocate命令是相互配对的一组命令
每天凌晨4:02分系统自动执行updatedb
在Linux的日常计划中每天都要执行:/etc/cron.daily/目录下的所有文件
其中slocate.cron文件其中这句话:
/us/bin/updatedb
这样,那么在每天都会执行这行代码,也就是更新数据库
</slocate>
<updatedb notes="更新数据库的命令(与slocate配套出现)"></updatedb>
<find notes="用于查找指定目录下的所有文件">
基本语法:
find [路径] [参数] [表达式]
从指定路径下递归向下搜索文件
支持按照各种条件方式搜索
支持对搜索得到的文件进一步用指令操作
例如:从根目录开始查找一个名称为[newfile.txt]的文件
[...]# find / -name newfile.txt
(查找名称里有[newfile]的文件)
[...]# find / -name "*newfile*"
(这里的参数放前面)
用于查找ls -l命令能列举出的属性作为根据的文件
<-name notes="根据文件名寻找文件"></-name>
<-user notes="根据文件拥有者寻找文件">
例如:
find /home -user shrek
</-user>
<-group notes="根据文件所属组寻找文件">
例如:
find /home -group shrek
</-group>
<-type notes="根据文件类型寻找文件">
类型根据ls命令中的文件类型中第一个字符确定
例如:
find /home -type d
不过注意:普通文件的类别是f而不是显示的-
</-type>
<-perm notes="根据文件权限寻找文件">
例如:
// 表示在/home目录下,查找文件权限九个字符中有一个是指定的字符就可以
find /home -perm +755
// 表示在/home目录下,查找文件权限九个字符中必须大于或等于指定的权限类型
find /home -perm -444
实例:
当需要检查当前系统安全之类的时候
</-perm>
<-size notes="根据文件大小寻找文件">
// 可以按照文件长度来查找文件,这里所指的文件长度既可以用块(block)来计量,也可以用字节来计量。
// 以字节计量文件长度的表达形式为N c;以块计量文件长度只用数字表示即可。
// 在按照文件长度查找文件时,一般使用这种以字节表示的文件长度,在查看文件系统的大小,因为这时使用块来计量更容易转换。
例如:
// 在当前目录下查找文件长度大于1 M字节的文件
find . -size +1000000c -print
// 在/home/apache目录下查找文件长度恰好为100字节的文件:
find /home/apache -size 100c -print
// 在当前目录下查找长度超过10块的文件(一块等于512字节)
find . -size +10 -print
</-size>
<-mtime notes="查找指定的时间">
// 如果希望按照更改时间来查找文件,可以使用mtime,atime或ctime选项。
// 如果系统突然没有可用空间了,很有可能某一个文件的长度在此期间增长迅速,这时就可以用mtime选项来查找这样的文件。
// 用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件.
例如:
// 希望在系统根目录下查找更改时间在5日以内的文件,可以用:
find / -mtime -5 -print
//为了在/var/adm目录下查找更改时间在3日以前的文件,可以用:
find /var/adm -mtime +3 -print
</-mtime>
(这里的参数可以放置在中间)
<-a notes="表示[and]和的意思,可以用于连接不同的查找条件">
例如:
// 查询/home目录下所属用户是shrek并且所属组是shrek的文件,并且显示详细信息
find /home -user shrek -a -group shrek -ls
</-a>
<-o notes="表示[or]或的意思,可以用于连接不同的查找条件">
例如:
// 查找/home目录下所属用户是shre或者文件类型是d目录的文件
find /home -user shrek -o -type d
</-o>
(这里的参数放后面)
<-ls notes="可以将查询出来的东西直接使用ls -l命令显示">
例如:
[...]# find /etc -name "*network*" -ls
</-ls>
<-exec notes="可以在之后写入需要执行的程序">
例如:
// 在/etc目录下查找名字有"network"的文件作为目标,执行file命令(shell中详细讲解file {} \;这种格式)
find /etc -name "*network*" -exec file {} \;
// 在/home目录下查找名字有"network"的文件作为目标,执行删除操作
find /home -name "*network*" -exec rm {} \;
</-exec>
<-ok notes="功能与-exec相同,增加询问操作,防止误操作"></-ok>
<-print notes="输出标准流"></-print>
</find>
<grep notes="在文件中搜索指定字符内容,返回行的内容或者文件名">
grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
来自: http://man.linuxde.net/grep
-a 不要忽略二进制数据。 -A<显示列数/> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。
-b 在显示符合范本样式的那一行之外,并显示该行之前的内容。
-c 计算符合范本样式的列数。
-C <显示列数/>或-<显示列数/> 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d <进行动作/> 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。
-e <范本样式/> 指定字符串作为查找文件内容的范本样式。
-E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
-f <范本文件/> 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。
-F 将范本样式视为固定字符串的列表。
-G 将范本样式视为普通的表示法来使用。
-h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
-H 在显示符合范本样式的那一列之前,标示该列的文件名称。
-i 忽略字符大小写的差别。
-l 列出文件内容符合指定的范本样式的文件名称。
-L 列出文件内容不符合指定的范本样式的文件名称。
-n 在显示符合范本样式的那一列之前,标示出该列的编号。
-q 不显示任何信息。
-R/-r 此参数的效果和指定“-d recurse”参数相同。
-s 不显示错误信息。
-v 反转查找。
-w 只显示全字符合的列。
-x 只显示全列符合的列。
-y 此参数效果跟“-i”相同。
-o 只输出文件中匹配到的部分。
例如:
// 在文件中搜索一个单词,命令会返回一个包含“match_pattern”的文本行:
grep match_pattern file_name
grep "match_pattern" file_name
</grep>
压缩工具
<gzip notes="用于压缩文件,扩展名为:[.gz]">
gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名。
gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。
gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。
据统计,gzip命令对文本文件有60%~70%的压缩率。减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。
基本语法:
gzip [选项] [参数]
-a或——ascii:使用ASCII文字模式;
-d或--decompress或----uncompress:解开压缩文件;
-f或——force:强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接;
-h或——help:在线帮助;
-l或——list:列出压缩文件的相关信息;
-L或——license:显示版本与版权信息;
-n或--no-name:压缩文件时,不保存原来的文件名称及时间戳记;
-N或——name:压缩文件时,保存原来的文件名称及时间戳记;
-q或——quiet:不显示警告信息;
-r或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
-S或(压缩字尾字符串)或----suffix(压缩字尾字符串):更改压缩字尾字符串;
-t或——test:测试压缩文件是否正确无误;
-v或——verbose:显示指令执行过程;
-V或——version:显示版本信息;
-(压缩效率):压缩效率是一个介于1~9的数值,预设值为“6”,指定愈大的数值,压缩效率就会愈高;
--best:此参数的效果和指定“-9”参数相同;
--fast:此参数的效果和指定“-1”参数相同。
</gzip>
<gunzip notes="解压缩gzip命令产生的文件"></gunzip>
<bzip2 notes="比gzip更高压缩比例的压缩命令,扩展名为:[.bz2]">
基本语法:
bzip2 [选项] [参数]
-c或——stdout:将压缩与解压缩的结果送到标准输出;
-d或——decompress:执行解压缩;
-f或-force:bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖。请使用此参数;
-h或——help:在线帮助;
-k或——keep:bzip2在压缩或解压缩后,会删除原始文件。若要保留原始文件,请使用此参数;
-s或——small:降低程序执行时内存的使用量;
-t或——test:测试.bz2压缩文件的完整性;
-v或——verbose:压缩或解压缩文件时,显示详细的信息;
-z或——compress:强制执行压缩;
-V或——version:显示版本信息;
--repetitive-best:若文件中有重复出现的资料时,可利用此参数提高压缩效果;
--repetitive-fast:若文件中有重复出现的资料时,可利用此参数加快执行效果。
</bzip2>
<bunzip2 notes="解压缩bzip2命令产生的文件"></bunzip2>
<zip notes="在windows系统下的压缩的zip文件可以用这个搞"></zip>
<unzip notes="解压缩zip命令产生的文件"></unzip>
打包
<tar notes="打包文件(备份)">
<概念>
tar命令可以为linux的文件和目录创建档案。
利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。
tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。
利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。
首先要弄清两个概念:打包和压缩。
打包是指将一大堆文件或目录变成一个总的文件;
压缩则是将一个大的文件通过一些压缩算法变成一个小文件。
为什么要区分这两个概念呢?
这源于Linux中很多压缩程序只能针对一个文件进行压缩,
这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),
然后再用压缩程序进行压缩(gzip bzip2命令)。
</概念>
基本语法:
tar [选项] [参数]
-A或--catenate:新增文件到以存在的备份文件;
-B:设置区块大小;
-c或--create:建立新的备份文件;
-C (目录):这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
-d:记录文件的差别;
-x或--extract或--get:从备份文件中还原文件;
-t或--list:列出备份文件的内容;
-z或--gzip或--ungzip:通过gzip指令处理备份文件;
-Z或--compress或--uncompress:通过compress指令处理备份文件;
-f(备份文件)或--file=(备份文件):指定备份文件;
-v或--verbose:显示指令执行过程;
-r:添加文件到已经压缩的文件;
-u:添加改变了和现有的文件到已经存在的压缩文件;
-j:支持bzip2解压文件;
-v:显示操作过程;
-l:文件系统边界设置;
-k:保留原有文件不覆盖;
-m:保留文件不被覆盖;
-w:确认压缩文件的正确性;
-p或--same-permissions:用原来的文件权限还原文件;
-P或--absolute-names:文件名使用绝对名称,不移除文件名称前的“/”号;
-N (日期格式) 或 --newer=(日期时间):只将较指定日期更新的文件保存到备份文件里;
--exclude=(范本样式):排除符合范本样式的文件。
例如:
// 将文件全部打包为tar包
tar -cvf log.tar log2012.log 仅打包,不压缩!
tar -zcvf log.tar.gz log2012.log 打包后,以 gzip 压缩
tar -jcvf log.tar.bz2 log2012.log 打包后,以 bzip2 压缩
// 将tar包解压缩
tar -zxvf /opt/soft/test/log.tar.gz
其实最简单的使用 tar 就只要记忆底下的方式即可:
压 缩:tar -jcv -f filename.tar.bz2 [要被压缩的文件或目录名称 ]
查 询:tar -jtv -f filename.tar.bz2
解压缩:tar -jxv -f filename.tar.bz2 -C [欲解压缩的目录]
// 将/home/shrek目录下的文件备份到/dev/st0第一个的中(这种备份操作经常用到)
tar -cvf /dev/st0 /home/shrek
</tar>
</文件操作命令>
<系统命令>
<vi notes="编辑查看文件">
分屏启动<Vim>
// 使用大写的O参数来垂直分屏。
[...]# vim -On file1 file2 ...
// 使用小写的o参数来水平分屏。
[...]# vim -on file1 file2 ...
# 注释: n是数字,表示分成几个屏。
</Vim>
<历史or特点>
在linux历史中,ed是最早时的编辑器,是非可视化模式,并且不会显示要编辑的内容
之后是sed,可以显示要编辑的内容文本,但需要单独的命令才能进行操作编辑
现如今版本:
vi /bin/vi
vim /usr/bin/vim
默认是执行的vim,vim(Vi IMproved) vim是vi的升级版,具有更多的实用功能
更加强大的编辑器工具: emacs 制作者: richard stallman
当我们需要在每次启动vim时都需要启动某些命令时:
使用命令vim ~/.vimrc 在这个文件中添加需要每次启动时自动执行的命令
</历史or特点>
<命令模式>
i/I/a/A/o/O/s/S // 进入<insert编辑模式>
i // 在当前光标所在地进入insert模式
I // 在当前光标所在行移动到头部进入insert模式
a // 在当前光标所在的下一个字符进入insert模式
A // 在当前光标所在行移动到末尾进入insert模式
o // 在当前光标所在行之下新开一行进入insert模式
O // 在当前光标所在行之上新开一行进入insert模式
s // 删除当前光标选中的字符进入insert模式,相当于 i + Delete键
S // 删除当期行进入insert模式
Esc // 退出insert编辑模式
</insert编辑模式>
r [char] // 用于替换掉当前的字符 将结果替换为[char]
0 // 移动光标到当前行的头部
$ // 移动光标到当前行的末尾
w // 每次移动一个单词
G // 移动光标到文件的最后一行
[n] G // 移动光标到行号为[n]的哪一行上
Ctrl键 G // 显示当前光标所在行的信息
[ or ] // 跳段操作
x // 删除一个字符
[n] // 删除[n]个字符
dw // 删除一个以当前光标为开头的单词
[n]dw // 删除[n]个单词
dd // 删除当前行,也是就是剪切操作,可以用p粘贴
[n]dd // 删除[n]行
r // 替换当前光标所在字符
R // 一直执行替换操作,知道使用Esc退出Replace替换模式
yy // 复制当前行
[n]yy // 复制[n]行,以当前行为第一行
p // 粘贴复制的内容
"[name][n]yy // 可以执行将这[n]行内容复制到剪贴板[name]
"[name]p // 在需要粘贴的时候,从剪贴板中取出[name]的内容
u // 撤销上一步的操作
Ctrl键 r // 将u撤销的步骤取消撤销
/ or ? // 查找,可以通过n和Ctrl n进行下一个和上一个的查找
综上所有的代码,规律:
在命令模式下:
在任意代码之前输入数字如3,那么之后执行任意代码都会执行3次,以此类推
</命令模式>
<行模式>
:w // 保存操作
:w [filename] // 将当前文档的内容另存为[filename]的文件名,(加 >> 是将内容追加到这个文件中)
:[n],[x] w >> [filename] // 从[n]到[x]行,将内容追加到[filename]文件中
:q // 退出操作
:[n] // 跳转到数字[n]行
:r [filename] // 读取命令 (读取一个文件的内容)
:e [filename] // 用于更改另外的文件
:e! // 将当前文档恢复成最初的状态
:e! [filename] // 放弃当前的更改,直接却修改文件
:[n],[x]s/[原本]/[新]/g // 从[n]到[x]进行替换,将[原本]替换成[新] g:并且不用询问直接替换,c:单个执行替换询问
:s/[旧]/[新] // 替换字符串
:sh // 新建一个shell执行命令,当输入exit时就返回了
:![命令] // 执行[命令]这个命令
:set number // 显示行号
:set reler // 显示正文行号
:set autoindent // 正文自动缩进
:set option // 设置选项为option
:exit // 直接退出
</行模式>
</vi>
<sed notes="主要用来自动编辑一个或多个文件的内容,主要用于shell编程">
sed是一种流编辑器,它是文本处理中非常中的工具,
能够完美的配合正则表达式使用,功能不同凡响。
处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),
接着用sed命令处理缓冲区中的内容,
处理完成后,把缓冲区的内容送往屏幕。
接着处理下一行,这样不断重复,直到文件末尾。
文件内容并没有 改变,除非你使用重定向存储输出。
Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
-e // 之后用于执行执行的命令,一般需要用到正则表达式
s/.../...1 // 用于替换操作: ... 替换为 ...1
s/.../...1/g // 在行中不管有多少个相同内容都替换,如果不加只是替换第一个
-n // 默认不进行打印,只是用于打印后面带有条件的筛选出来的行
<!-- '/\<shrek\>/p' --> // p表示打印一般要和-n结合使用:表示将行中有shrek单词的行打印出来
'/bash/d' // d删除:将内容有bash这个单词的行删除掉
基本实例:
// 将文件当中的所有root替换为shrek
sed -e 's/root/shrek/g' /etc/passwd
// 行中有bash的行执行删除操作
sed -e '/bash/d' /etc/passwd
// 只输出打印符合行中有shrek单词的行,其他行不显示
<!-- sed -n -e '/\<shrek\>/p' /etc/passwd -->
// 行中有shrek单词的行执行bash替换为nologin,不显示
<!-- sed -n -e '/\<shrek\>/s/bash/nologin/' /etc/passwd -->
// 行中有shrek单词的行执行bash替换为nologin,显示更改的行
<!-- sed -n -e '/\<shrek\>/s/bash/nologin/p' /etc/passwd -->
// 行中shrek单词的行执行所有bash替换为nologin
<!-- sed -e '/\<shrek\>/s/bash/nologin/g' /etc/passwd -->
// 在文件中将所有#开头的和全是空格的行执行删除操作
sed -e '/^#/d' -e '^$/d' /etc/squid/squid.conf
// 行中有bash的行执行全部shrek替换为root的操作
sed -e '/bash/s/shrek/root/g' /etc/passwd
</sed>
<awk notes="比sed更加强大的一种编辑,处理文本工具(可以列操作)">
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。
数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。
它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。
它在命令行中使用,但更多是作为脚本来使用。
awk有很多内建的功能,比如数组、函数等,这是它和C语言的相同之处,灵活性是awk最大的优势。
实例:
// chkconfig --list // 这个命令是用来查看服务运行级别的
// 通过awk命令筛选出内容并换行输出: 第一行 = 第五行
chkconfig --list | awk '{print $1 " = " $5}'
</awk>
<man notes="查看命令帮助文档">
<q>退出帮助文档</q>
</man>
<info notes="查看命令实例帮助文档"></info>
<alias notes="创建别名命令">
可用通过alias命令来创建一个命令,并能使用 如:
[...]# alias ii='ls -l'
[...]# ii //当使用这个命令的时候,就相当于执行了ls -l这个命令
[...]# unalias ii //unalias命令是用来对应alias的,是删除别名命令
[...]# vi ~/.bashrc
在vi编辑器中编辑配置文件,可以把自定义的别名命令添加进去
</alias>
<echo notes="显示内容(在编程中用于显示变量之类的值)">
[...]# echo 一些内容 // 在结果处就是显示"一些内容"
[...]# echo $USER // 显示当前用户的名称
[...]# AAA=jlkjsdfisjfl // 创建一个变量"AAA"
[...]# echo $AAA // 显示AAA的内容:jlkjsdfisjfl
[...]# echo AAA // 就是显示AAA
-n // 不换行输出,跟printf类似了
-e // 若字符串出现<特殊字符>,则特别加以处理,而不会将它当成一般字符输出
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
$echo -e "a\bdddd"
dddd
$echo -e "a\adddd" //输出同时会发出报警声音
adddd
$echo -e "a\ndddd" //自动换行
a
dddd
</特殊字符>
</echo>
<shutdown notes="关机">
-a notes="Use /etc/shutdown.allow."
-c // 中断关机:当执行"shutdown -h 12:00"指令时,只要按+键就可以中断关机的指令
-f // 重新启动时不进行磁盘检测(fsck)
-F // 重新启动时进行磁盘检测(fsck)
-h // 关闭电源
-k // 模拟关机(不是真的关机),只是向登录者发送警告信息出去!
-n // 不调用init进程进行关机,而是强行关机
-r // 关闭系统然后重新启动,类似于Windows平台restart
-t // 延迟关机的时间
-w // 仅做测试,并不真的将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件
注意:别忘了打 now 立刻命令
</shutdown>
<init notes="用于设置系统状态">
[...]# init 0 // 停机(千万不能把initdefault 设置为0 )
[...]# init 1 // 单用户模式
[...]# init 2 // 多用户,没有 NFS
[...]# init 3 // 完全多用户模式(标准的运行级)
[...]# init 4 // 没有用到
[...]# init 5 // 在命令行模式下,打开图形用户界面X11 (xwindow)
[...]# init 6 // 重新启动 (千万不要把initdefault 设置为6 )
vi /etc/inittab // 设置系统启动配置文件(可以配置启动时是否启动x-windows:(5为启动,3为不启动)(第一句))
</init>
<hostname notes="显示/设置主机"></hostname>
<uname notes="显示系统信息(内核版本/编译信息)"></uname>
<last notes="显示最近的用户登录"></last>
<lastlog notes="显示每个用户的登录情况"></lastlog>
<id notes="显示用户的信息"></id>
<w notes="命令用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。">
执行这个命令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w命令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。
</w>
<history notes="调用出历史[操作]记录">
History命令主要用于显示历史指令记录内容, 下达历史纪录中的指令 。
<[1]History命令语法>
[test@linux]# history [n]
[test@linux]# history [-c]
[test@linux]# history [-raw] histfiles
参数:
n :数字,要列出最近的 n 笔命令列表
-c :将目前的shell中的所有 history 内容全部消除
-a :将目前新增的history 指令新增入 histfiles 中,若没有加 histfiles ,
则预设写入 ~/.bash_history
-r :将 histfiles 的内容读到目前这个 shell 的 history 记忆中
-w :将目前的 history 记忆内容写入 histfiles
Linux系统当你在shell(控制台)中输入并执行命令时,shell会自动把你的命令记录到历史列表中,
一般保存在用户目录下的.bash_history文件中。默认保存1000条,你也可以更改这个值。
如果你键入 history, history会向你显示你所使用的前1000个历史命令,并且给它们编了号,
你会看到一个用数字编号的列表快速从屏幕上卷过。你可能不需要查看1000个命令中的所有项目,
当然你也可以加入数字来列出最近的 n 笔命令列表。
linux中history命令不仅仅让我们可以查询历史命令而已. 我们还可以利用相关的功能来帮我们执行命令。
</[1]History命令语法>
<[2]运行特定的历史命令>
history会列出bash保存的所有历史命令,并且给它们编了号,我们可以使用“叹号接编号”的方式运行特定的历史命令.
语法说明:
[test@linux]# [!number] [!command] [!!]
参数说明:
number :第几个指令的意思;
command :指令的开头几个字母
! :上一个指令的意思!
</[2]运行特定的历史命令>
<[3]History命令实战>
列出所有的历史记录:
[test@linux] # history
只列出最近10条记录:
[test@linux] # history 10 (注,history和10中间有空格)
使用命令记录号码执行命令,执行历史清单中的第99条命令
[test@linux] #!99 (!和99中间没有空格)
重复执行上一个命令
[test@linux] #!!
执行最后一次以rpm开头的命令(!? ?代表的是字符串,这个String可以随便输,Shell会从最后一条历史命令向前搜索,最先匹配的一条命令将会得到执行。)
[test@linux] #!rpm
逐屏列出所有的历史记录:
[test@linux]# history | more
立即清空history当前所有历史命令的记录
[test@linux] #history -c
除了使用history命令,在 shell 或 GUI 终端提示下,你也可以使用上下方向键来翻阅命令历史(向下箭头会向前翻阅),直到你找到所需命令为止。这可以让我们很方便地编辑前面的某一条命令,而不用重复输入类似的命令。
History命令的用途确实很大!但需要小心安全的问题!尤其是 root 的历史纪录档案,这是黑客们的最爱!因为不小心的 root 会将很多的重要资料在执行的过程中会被纪录在 ~/.bash_history 当中,如果这个档案被解析的话,后果不堪设想
</[3]History命令实战>
小技巧:永久清空history历史记录:
[...]# history -c
[...]# history -w
使用!加上命令历史的命令数字可以用来调用
<制作指定的[命令记录器]>
有时候记错了命令就输入错误命令,系统也记录了,一两条到时没什么,
但是多了,就看的眼花,所以我们要清除那些错误的,又要保存正确的命令,一下是看到网上的一个方法,感觉挺不错的。
一般情况下,删除命令记录的命令是"history -c",前提是命令大部分是记载与/root/.bash_history这个文件,
所以你vi查看,就会发现,即使用了"history -c",你的命令还是记录在这个文件里,
解决步骤如下:
1. 建立一个文件来存储常用命令, 例如/root/history.txt,把常用命令当成文本写进去,每个命令占一行
2. 在终端运行history -c, 清除杂乱的历史记录,
3. 运行 history -r /root/history.txt , 把命令读进来作为当前bash的历史记录
4. 运行 history, 就得到一个整洁的命令列表了, 例如:
[root@localhost windata]# history -c
[root@localhost windata]# history -r /root/history.txt
[root@localhost windata]# history
1 history -r /root/history.txt
2 mount -t msdos -o iocharset=gb2312 /dev/sda1 /mnt/usb
3 mount -t vfat -o iocharset-gb2312 /dev/hda5 /mnt/windata
4 umount /mnt/windata
5 mount -t vfat -o iocharset-gb2312 /dev/hda5 /mnt/windata
6 cd /mnt/windata
7 history
[root@localhost windata]#
5. 以后命令乱了, 重复1-4的步骤, 又可以使命令很清晰了
</制作指定的[命令记录器]>
</history>
<free notes="查看内存的使用情况"></Free>
<df notes="查看硬盘使用情况"></df>
<du notes="查看文件大小(当然也可以查看目录)"></du>
<mount notes="用于加载文件系统指定的加载点">
此命令最常用于挂载cdrom,使我们可以访问cdrom中的数据,
因为你将光盘插入cdrom中,Linux并不会自动挂载,必须使用Linux mount命令来手动完成挂载
mount -t auto /dev/cdrom /mnt/cdrom
</mount>
<strace notes="是一个集诊断、调试、统计与一体的工具(查看某些东西)"></strace>
<sudo notes="用于暂时暂时使用别的用户的身份来执行命令,预设为root">
在/etc/sudoers中设置了可执行sudo指令的用户。
若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。
</sudo>
进程和作业管理:
<top notes="可以实时查看系统的整体运行情况">
是一个综合了多方信息监测系统性能和运行信息的实用工具.
通过top命令所提供的互动式界面,用热键管理
命令参数:
-b:以批处理模式操作;
-c:显示完整的治命令;
-d:屏幕刷新间隔时间;
-I:忽略失效过程;
-s:保密模式;
-S:累积模式;
-i [时间]:设置间隔时间;
-u [用户名]:指定用户名;
-p [进程号]:指定进程;
-n [次数]:循环显示的次数。
交互式命令:
h:显示帮助画面,给出一些简短的命令总结说明;
k:可以执行kill命令(其中就可以杀死指定的进程)
i:忽略闲置和僵死进程,这是一个开关式命令;
q:退出程序;
r:重新安排一个进程的优先级别;
S:切换到累计模式;
s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;
f或者F:从当前显示中添加或者删除项目;
o或者O:改变显示项目的顺序;
l:切换显示平均负载和启动时间信息;
m:切换显示内存信息;
t:切换显示进程和CPU状态信息;
c:切换显示命令名称和完整命令行;
M:根据驻留内存大小进行排序;
P:根据CPU使用百分比大小进行排序;
T:根据时间/累计时间进行排序;
w:将当前设置写入~/.toprc文件中。
n: 跳高或者调低进程的优先级
实例:
top - 09:44:56 up 16 days, 21:23, 1 user, load average: 9.59, 4.75, 1.92
Tasks: 145 total, 2 running, 143 sleeping, 0 stopped, 0 zombie
Cpu(s): 99.8%us, 0.1%sy, 0.0%ni, 0.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4147888k total, 2493092k used, 1654796k free, 158188k buffers
Swap: 5144568k total, 56k used, 5144512k free, 2013180k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2559 root 14 -1 32344 11m 2444 S 7.2 4.4 28:15:38 X
解释:
top - 09:44:56[当前系统时间],
16 days[系统已经运行了16天],
1 user[个用户当前登录],
load average: 9.59, 4.75, 1.92[系统负载(任务队列的平均长度)三个值分别为1分钟、5分钟、15分钟前到现在的平均值【这三个一般会小于1,如果持续高于5,请仔细查看那个程序影响系统的运行】”]
Tasks: (任务信息总览)
145 total[总进程数],
2 running[正在运行的进程数],
143 sleeping[睡眠的进程数],
0 stopped[停止的进程数],
0 zombie[冻结进程数(僵尸进程数)],
Cpu(s): (CPU信息总览)
99.8%us[用户空间占用CPU百分比],
0.1%sy[内核空间占用CPU百分比],
0.0%ni[用户进程空间内改变过优先级的进程占用CPU百分比],
0.2%id[空闲CPU百分比],
0.0%wa[等待输入输出的CPU时间百分比],
0.0%hi[CPU服务于硬件中断所耗费的时间总额],
0.0%si[CPU服务软中断所耗费的时间总额],
0.0%st[Steal Time (截断时间总额?)],
Mem: (分配信息总览)
4147888k total[物理内存总量],
2493092k used[使用的物理内存总量],
1654796k free[空闲内存总量],
158188k buffers[缓冲区内存总量]
Swap: (交换信息总览)
5144568k total[交换区总量],
56k used[使用的交换区总量],
5144512k free[空闲交换区总量],
2013180k cached[缓冲的交换区总量],
PID:进程ID编号
USER:所属用户
PR:优先级
NI:<nice notes="其表示进程可被执行的优先级的修正数值">
如前面所说,PRI值越小越快被执行,那么加入nice值后,
将会使得PRI变为:PRI(new)=PRI(old)+nice。
这样,当nice值为负值的时候,那么该程序将会优先级值将变小,
即其优先级会变高,则其越快被执行。
nice值的范围是:-20~19之间的整数,取值越高,优先级越低,默认为0
到目前为止,更需要强调一点的是,
进程的nice值不是进程的优先级,他们不是一个概念,
但是进程nice值会影响到进程的优先级变化。
调整nice的两个命令:
<nice notes="一开始执行程序就指定nice值">
nice -n -5 /usr/local/mysql/bin/mysqld_safe &
</nice>
<renice notes="调整已存在进程的nice值">
renice -5 -p 5200
#PID为5200的进程nice设为-5
</renice>
</nice>
VIPT:虚拟内存大小
RES:实际内存大小(进程使用的未被换出的物理内存)
SHR:共享内存的大小
S:进程状态 S(sleep睡眠) T(stop停止) R(run运行) D(Deep sleep深度睡眠) Z(zombie僵尸进程)
%CPU:进程占用的CPU百分比
%MEM:占用内存百分比
TIME+:进城使用CPU累计的CPU时间
COMMAND:执行的命令
</top>
<ps notes="也可以用来查看进程(ps命令的参数加-和不加-是完全不同的意思)">
ps命令用于报告当前系统的进程状态。
可以搭配kill指令随时中断、删除不必要的程序。
ps命令是最基本同时也是非常强大的进程查看命令,
使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,
总之大部分信息都是可以通过执行该命令得到的。
命令参数:
-a:显示所有终端机下执行的程序,除了阶段作业领导者之外。
a:显示现行终端机下的所有程序,包括其他用户的程序。
-A:显示所有程序。
-c:显示CLS和PRI栏位。
c:列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示。
-C [指令名称]:指定执行指令的名称,并列出该指令的程序的状况。
-d:显示所有程序,但不包括阶段作业领导者的程序。
-e:此选项的效果和指定"A"选项相同。
e:列出程序时,显示每个程序所使用的环境变量。
-f:显示UID,PPIP,C与STIME栏位。
f:用ASCII字符显示树状结构,表达程序间的相互关系(显示父子关系)
-g [群组名称]:此选项的效果和指定"-G"选项相同,当亦能使用阶段作业领导者的名称来指定。
g:显示现行终端机下的所有程序,包括群组领导者的程序。
-G [群组识别码]:列出属于该群组的程序的状况,也可使用群组名称来指定。
h:不显示标题列。
-H:显示树状结构,表示程序间的相互关系。
-j或j:采用工作控制的格式显示程序状况。
-l或l:采用详细的格式来显示程序状况。
L:列出栏位的相关信息。
-m或m:显示所有的执行绪。
n:以数字来表示USER和WCHAN栏位。
-N:显示所有的程序,除了执行ps指令终端机下的程序之外。
-p [程序识别码]:指定程序识别码,并列出该程序的状况。
p [程序识别码]:此选项的效果和指定"-p"选项相同,只在列表格式方面稍有差异。
r:只列出现行终端机正在执行中的程序。
-s [阶段作业]:指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。
s:采用程序信号的格式显示程序状况。
S:列出程序时,包括已中断的子程序资料。
-t [终端机编号]:指定终端机编号,并列出属于该终端机的程序的状况。
t [终端机编号]:此选项的效果和指定"-t"选项相同,只在列表格式方面稍有差异。
-T:显示现行终端机下的所有程序。
-u [用户识别码]:此选项的效果和指定"-U"选项相同。
u:以用户为主的格式来显示程序状况。
-U [用户识别码]:列出属于该用户的程序的状况,也可使用用户名称来指定。
U [用户名称]:列出属于该用户的程序的状况。
v:采用虚拟内存的格式显示程序状况。
-V或V:显示版本信息。
-w或w:采用宽阔的格式来显示程序状况。
x:显示所有程序,不以终端机来区分(显示后台进程)
X:采用旧式的Linux i386登陆格式显示程序状况。
-y:配合选项"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 。
- [程序识别码]:此选项的效果和指定"p"选项相同。
--cols [每列字符数]:设置每列的最大字符数。
--columns [每列字符数]:此选项的效果和指定"--cols"选项相同。
--cumulative:此选项的效果和指定"S"选项相同。
--deselect:此选项的效果和指定"-N"选项相同。
--forest:此选项的效果和指定"f"选项相同。
--headers:重复显示标题列。
--help:在线帮助。
--info:显示排错信息。
--lines [显示列数]:设置显示画面的列数。
--no-headers:此选项的效果和指定"h"选项相同,只在列表格式方面稍有差异。
--group [群组名称]:此选项的效果和指定"-G"选项相同。
--Group [群组识别码]:此选项的效果和指定"-G"选项相同。
--pid [程序识别码]:此选项的效果和指定"-p"选项相同。
--rows [显示列数]:此选项的效果和指定"--lines"选项相同。
--sid [阶段作业]:此选项的效果和指定"-s"选项相同。
--tty [终端机编号]:此选项的效果和指定"-t"选项相同。
--user [用户名称]:此选项的效果和指定"-U"选项相同。
--User [用户识别码]:此选项的效果和指定"-U"选项相同。
--version:此选项的效果和指定"-V"选项相同。
--widty [每列字符数]:此选项的效果和指定"-cols"选项相同。
例如:
// 显示所有进程
[...]# ps aux
或者 [...]# ps -ef
</ps>
<kill notes="杀掉关闭进程">
-a:当处理当前进程时,不限制命令名和进程号的对应关系;
-l [信息编号]:若不加[信息编号]选项,则-l参数会列出全部的信息名称;
-p:指定kill 命令只打印相关进程的进程号,而不发送任何信号;
-s [信息名称或编号]:指定要送出的信息;
-u:指定用户。
HUP 1 终端断线
INT 2 中断(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 终止(默认使用)
KILL 9 强制终止(注意:不要常用,容易牵扯子进程的控制问题)
CONT 18 继续(与STOP相反, fg/bg命令)
STOP 19 暂停(同 Ctrl + Z)
例如:
[...]# ps -ef | grep vim
root 3268 2884 0 16:21 pts/1 00:00:00 vim install.log
root 3370 2822 0 16:21 pts/0 00:00:00 grep vim
// 使用9号信号强制杀掉PID是3370的进程
[...]# kill -9 3370
[...]# kill 3268
[...]# kill 3268
-bash: kill: (3268) - 没有那个进程
</kill>
<killall notes="使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程。">
-e:对长名称进行精确匹配;
-l:忽略大小写的不同;
-p:杀死进程所属的进程组;
-i:交互式杀死进程,杀死进程前需要进行确认;
-l:打印所有已知信号列表;
-q:如果没有进程被杀死。则不输出任何信息;
-r:使用正规表达式匹配要杀死的进程名称;
-s:用指定的进程号代替默认信号“SIGTERM”;
-u:杀死指定用户的进程。
</killall>
<skill notes="可以用于杀掉指定的进程(可以包括名字)"></skill>
<pstree notes="以树型的方式显示所有的进程(父子进程)"></pstree>
在执行命令最后加符号:& 即是变为后台任务(包含进程)
当操作一个进程时,输入进程号的时候需加符号: %
杀掉后台进程---可以使用:
// 杀掉任务号是1的任务,任务当中的进程即全部被杀
[...]# kill %1
<jobs notes="用于显示Linux中的任务列表及任务状态,包括后台运行的任务"></jobs>
<fg notes="将后台任务调至前台运行">
例如:
// 将任务号: 3 的任务调至前台运行
[...]# fg %3
</fg>
<bg notes="激活后台暂停的进程"></bg>
<nohup notes="可以将程序以忽略挂起信号的方式运行起来(可以说是直接隶属于init父进程的子进程)">
被运行的程序输出信息将不会显示到终端
无论是否将此命令(nohup)的输出重定向到终端,
输出的结果都将附加到当前目录的nohup.out文件中.
</nohup>
<tee notes="可以将数据重定向到指定文件和屏幕上(可以理解为一根管子又开了一个出口)">
用于将数据重定向到文件,另一方面还可以提供一份重定向数据的副本作为后续命令的stdin
例如:
// 用ls命令列举出/etc目录下的文件,并且从结果中找出l类型的链接文件,
// 通过tee命令复制一个结果到filename文件,并且将这份结果通过wc -l命令统计出有多少行.
// 最终可以知道/etc目录下有多少链接文件,在filename文件中有这些文件的详细信息
ls -l /etc | grep '^l' | tee [filename] | wc -l
</tee>
<tr notes="可以对来自标准输入的字符进行替换,压缩和删除">
它可以将一组字符变成另一组字符,经常用来编写优美的单行命令,作为很强大
字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2”;
字符集2:指定要转换成的目标字符集。
例如:
[...]# echo "HELLO WORLD" | tr 'A-Z' 'a-z'
hello world
</tr>
网络:
<ifconfig notes="查看ip地址(注意命令写法:ifconfig )"></ifconfig>
$ifconfig 显示网络接口以及相应的IP地址。ifconfig可用于设置网络接口
$ifup eth0 运行eth0接口
$ifdown eth0 关闭eth0接口
$iwconfig 显示无线网络接口
$route 显示路由表。route还可以用于修改路由表
$netstat 显示当前的网络连接状态
$ping IP 发送ping包到地址IP
$traceroute IP 探测前往地址IP的路由路径
$dhclient 向DHCP主机发送DHCP请求,以获得IP地址以及其他设置信息。
$host domain DNS查询,寻找域名domain对应的IP
$host IP 反向DNS查询
$wget url 使用wget下载url指向的资源
$wget -m url 镜像下载
</系统命令>
<Shell>
Bash:
<bash内部命令>
alias // 设置bash别名
unalias // 删除已定义的别名
cd // 改变当前工作目录
exit // 终止shell