-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlinux.sh
More file actions
449 lines (377 loc) · 23.3 KB
/
linux.sh
File metadata and controls
449 lines (377 loc) · 23.3 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
#!/bin/bash
一、Linux拓展命令
##############------- 1、用户和用户组命令 -------#############
用户和用户组命令,以及账号信息(用户信息,用户组信息,用户密码):
命令 作用
useradd 添加新用户
usermod 修改用户信息(?????)
userdel 删除用户
groupadd 添加新用户组
groupmod 修改用户组
groupdel 删除用户组
passwd 修改用户密码(root用户不用输入旧密码)
## 注意:
## 1) 因为命令有多个参数,且每个参数都有参数值,所以格式为: command -var1 value1 -var2 value2 -var3 value3 ... value , 如: useradd -c '这是duringnoe用来测试的' -g testUser -d /home test001
## 2) usermod 可以修改useradd 中的所有属性; groupmod同理
## 3) UID 和 GID的取值范围: (500,60000), 即501~59999
# 1、用户
## useradd 添加
### 参数:
# -c # comment 指定一段注释
# -d # 目录 指定用户家目录,若此目录不存在,则需要使用-m创建家目录(家目录又名主目录)
# -g # 用户组 指定用户所属用户组
# -G # 用户组,指定用户附加的用户组; 注:一个用户可以属于多个用户组,但只有一个主要的属组(登录时默认),其他属组均为附加用户组
# -s # Shell文件 指定用户的登录执行文件; 注:每个用户都会有个登录执行文件,参照文件/etc/passwd
# -u # 用户ID,若同时使用-ou 表示不仅指定用户ID,并且重复使用用户ID(即用户ID已存在时,但是新用户仍然使用原用户ID)
总结:
### 1) 创建用户时,若未指定用户组,则默认创建与用户名同名的用户组, 如: useradd test001, 则同时创建用户组test001
### 2) useradd -c '测试账号001' -g testUsers -G testUsers,customs,tests -d /home/ test001 # 指定用户组testUsers, 同时添加多个附加用户组,附加用户组名间用逗号隔开
## usermod 修改
### 参数:
# usermod -c '修改后的测试账号005' -g test006 -G test003 -d /utest005 -s /sbin/nologin test005 # 可以修改用户的所有属性(useradd命令中有介绍)
## userdel 删除
### 参数:
# userdel test005 # 删除用户test005,注: 只删用户在文件/etc/passwd 信息,不会删除 /etc/group 中信息 和 用户家目录 /home/test005
# userdel -r test005 # 删除用户test005所有信息, (删除/etc/passwd, /etc/group, /etc/shadow 和 家目录/home/test005)
# 2、密码
## passwd [option] 用户名 修改用户密码(即口令)
### 参数:
# -l # 锁定口令,即禁用账号,注:lock
# -u # 口令解锁,注:unlock
# -d # 使账号无口令,即无密码
# -f # 强迫用户下次登录时修改口令
#
# 格式:
# passwd [option] 用户名
# 总结:
## 1) passwd [用户名] #若默认用户,则修改当前用户密码, 如 passwd test001
## 2) 密码规则(取值范围): 0-9,a-z,A-Z, 这三者的随意组合; 但是不得有特殊字符
## 3) passwd -d test001 # test0011下次登录时,不再需要密码
## 4) passwd -l test001 # 锁定用户test001,解锁: passwd -u test001
# 3、用户组
## groupadd 添加
### 参数:
# -g 指定新用户组的组标识号(GID)
# -o 一般和-g一起用,表示新用户组的GID 可以和已有的用户组GID相同,注: over
#
# 总结:
## 1) groupadd -g 522 用户组名 # 新建用户组名,如: grounp testUsers (新建用户组testUsers)
## 2) groupadd -g 505 -o 用户组名 # 新建用户组名,指定GID,且可以使用已存在的GID
##
## groupmod 修改
### 参数:
# 参数与groupadd参数一致,可以修改上述所有属性
#
# groupmod -g 506 -o test0823 # 其中506为修改后的GID
## groupdel 删除
### 参数:
## newgrp 切换用户组
#
# newgrp testUsers # 切换用户组,切换到testUsers 用户组;注: testUsers必须为用户的主组或附加组,一般用于多用户组用户
# 二、 文件介绍 (文件作用和文件内容格式)
# 文件路径 作用 文件文件内容格式
# /etc/passwd 存放用户信息
# /etc/shadow 存放用户密码(加密后)
# /etc/group 存放用户组信息
#
## 总结: 三种文件中分隔符号都是分号
# 1、/etc/passwd 存放用户用户名信息
# 格式:
# testxxx:x:503:504:测试账号xxx:/home/testxxx:/bin/bash
# 用户名:密码:用户ID:用户属组ID:注释:用户家目录:用户登录后的shell执行文件
# 总结:
## 1) 若用户拥有多个用户组,则/etc/passwd只显示一个用户属组ID(此用户组登录后默认),更换属组需要手动切换(执行: )
## 2) 在创建用户时,若未指定用户组(指定的用户组必须已存在,否则报错),则默认建立与用户名同名的用户组,如 useradd test001 ,则建立一个test001用户,同时建立test001用户组
## 3) 为了安全保密, 密码为 x 或者空, 加密后的密码存放在文件 /etc/shadow
## 4) 登陆后shell文件: /bin/bash 表示该用户可登陆; 若为 /sbin/nologin ,表示用户无登陆权限,即不可登陆
##
# 2、/etc/shadow 存放用户密码
# 格式:
# test002:!!:17765:0:99999:7:::
# 用户名:口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
#
# 例子:
# test001:$6$.H5rMd0K$JnY5CJxA9MAcb7bMj8n55LVi1qjqqk0VwJvUeUPLuWrWEle7uL3vNrdcp8OvQ90v3XsEgd6yP.2TA/eOJqpfJ.:17766:0:99999:7::: # 存放了加密后口令
# testxxx::17766:0:99999:7::: # 口令被删除时,口令那列为空
# test002:!!:17765:0:99999:7::: # !! : 表示初始化口令,还未设置
# 总结:
## 1) 口令: 是加密后的用户口令;若为空,则该用户没有口令,登录时不需要口令;如果含有不属于集合 { ./0-9A-Za-z }中的字符,则对应的用户不能登录。注: CentOS6.8Linux系统登录密码不得为空
## 2) 最后一次修改时间: 从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCO Linux 中,这个时间起点是1970年1月1日。
## 3) 最小时间间隔: 指两次修改口令之间所需的最小天数。
## 4) 最大时间间隔: 指口令保持有效的最大天数。
## 5) 警告时间: 的是从系统开始警告用户到用户密码正式失效之间的天数。
## 6) 不活动时间: 指用户没有登录活动但账号仍能保持有效的最大天数。
## 7) 失效时间: 给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。
# 3、/etc/group
# 格式:
# testUsers:x:504:testxxx,test0823,test0823C
# 组名:口令:组标识号:组内列表
#
# 总结:
## 1) 组内用户列表: 同一用户组中的用户名,以逗号隔开
## 2) 组标识号: 即GID
# 三、批量添加用户,批量添加密码
# 流程:
# 1) 创建newUsers.txt 存放多个用户信息(文件内容格式参照/etc/passwd); newPasswd.txt 存放多个新用户对应的密码,格式: 用户名1:密码(明文), 有多少用户,就写多少行
# 注意: 以下命令均在root用户下执行
# 2) /usr/sbin/newusers < /mnt/www/shell/userGrounp/newUsers.txt # 将用户信息导入/etc/passwd文件中
# 3) pwunconv # 将 /etc/shadow 产生的 shadow 密码解码,然后回写到 /etc/passwd 中,并将/etc/shadow的shadow密码栏删掉。这是为了方便下一步的密码转换工作,即先取消 shadow password 功能
# 4) /usr/sbin/chpasswd < /mnt/www/shell/userGrounp/newPasswd.txt # 创建用户密码,chpasswd 会将经过 /usr/bin/passwd 命令编码过的密码写入 /etc/passwd 的密码栏。
# 5) /usr/sbin/pwconv # 将密码编码为 shadow password,并将结果写入 /etc/shadow。
#
# ???shadow的加密算法
# 四、其他命令
## ls [option] [文件目录名(非文件),默认为当前目录] # 列出目录下所有文件信息
# 常用命令:
# ls -lh # 列出目录下所有文件,并显示文件容量,单位K
# ls --full-time # 列出目录下所有文件,并显示完整创建时间
# ls -li # 列出目录下所有文件,并显示文件inode编号
# ls -ln # 列出目录下所有文件,并显示文件所属用户id和用户组id
## groups # 查看所有用户组信息,如: groups testUsers (查看用户组testUsers信息,默认查看所有用户组)
## id # 查看用户信息,如: id test001 (查看test001用户信息,默认查看所有用户)
################------- 2、磁盘空间管理 -------#############
#磁盘空间管理
df # 列出文件系统的整体磁盘使用量
du # 检查磁盘空间使用量
disk # 用于磁盘分区
stat # 查看文件inode 信息
fdisk # 磁盘分区
fsck # 磁盘检测,(file system check)
mkfs # 磁盘格式化
mount # 磁盘挂载
umount # 磁盘卸载
# 磁盘空间命令
# 1、 df 检查文件系统的磁盘空间占用情况
# 语法:
## df [option] [目录或文件名]
#
# 常用参数:
# -a 列出所有的文件系统,包括系统特有的/proc 等文件系统
# -k 以KBytes 的容量单位显示各文件系统
# -m 以MBytes 的容量单位显示各文件系统
# -h 以人们较易阅读的GBytes,MBytes,KBytes 等格式自行显示
# -H 以 M=1000K 取代 M=1024 的进位方式
# -T 显示文件系统类型,连同该partition 的filesystem 名称(例如ext3)也列出
# -i 不用硬盘容量,而以inode 的数量来显示
#
# 总结:
## 1) df # 默认显示当前文件系统的使用情况(文件系统名-总容量-已用容量-可用容量-已用百分比-系统挂载路径)
## 2) df -hm # 显示以 MBytes 显示的文件系统使用情况; 注: df 后可跟多个参数,若两个参数意义重复,后面参数的内容会覆盖前面的内容,
## 3) df -ai # 所有文件系统,同时显示他们的 文件索引号信息, inode 数量使用情况
# 2、 df 检查文件系统的磁盘空间占用情况
# 语法:
## du [option] [目录或文件名]
# -a 列出所有的文件系统,包括系统特有的/proc 等文件系统
# -k 以KBytes 的容量单位显示各文件系统
# -m 以MBytes 的容量单位显示各文件系统
# -h 以人们较易阅读的GBytes,MBytes,KBytes 等格式自行显示
# -s 列出总量,而不列出每个子目录占用容量
# -S 只显示各个子目录的占用容量,不显示目录总容量
#
# 总结:
## 1) du -h # 常用
## 2) du -m # 当文件容量不足1MBytes时,向上取整,如: 文件目录容量为206KB,du -m 后显示 1MB
## 3) du -s # 在同一目录下, -s 的结果数 = -S 的结果数相加之和
# 3、 stat 获取文件inode信息
# 语法:
## stat 文件路径名 # 获取文件的inode信息(文件名,文件inode信息,文件的权限,所有者的UID和所属GID,以及文件的创建时间、修改时间...)
#stat执行结果中的参数
## Access:atime 表示我们最后一次访问(仅仅是访问,没有改动)文件的时间
## modify:mtime 表示我们最后一次修改文件的时间
## change:ctime 表示我们最后一次对文件属性改变的时间,包括权限,大小,属性等等。
# 总结:
## 1) Modify的时间不能单独发生改变,只要Modify时间改变了,其他两个的时间必定发生改变
## 2) 文件系统有文件实际内容和文件属性两部分,两部分数据一般分别存放在不同的区块,权限与属性存放在 inode 中,至于实际数据则放置到 data block 区块中。另外,还有一个超级区块(superblock)会记录整个文件系统的整体信息,包括 inode 与 block 的总量、使用量、剩余量等。
## 3) stat -c ''
# 4、 fdisk linux系统磁盘分区格式化
# 语法:
# fdisk [-l] 装置名称 # fdisk -l : 输出后面接的装置所有的分区内容,只有指定 -l 才输出所有分区内容
#
# 例子:
## fdisk /dev/hdc # 获取分区内容
### 注: m: 获取参数帮助;
### w: 保存所有动作(即更改记录);
### q: 退出,并不保存任何动作(即更改记录);
### p: 可以列出目前这颗磁盘的分割表信息,这个信息的上半部在显示整体磁盘的状态
# 5、mkfs 磁盘格式化
# 语法:
## mkfs [-t 文件系统格式] 装置文件名 # 磁盘格式化; -t (type): 指定文件系统格式(当前系统支持的)
#
# 总结:
## 1) mkfs[tab][tab] # 即 mkfs + 按2次tab键, 可查看当前系统所支持的文件系统格式
# 6、fsck 磁盘检验,用于检验和维护不一致的文件系统
# 语法:
## fsck [-t 文件系统] [option] 装置名称 # 检验磁盘
# 常用参数:
## -t : 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数
## -s : 依序一个一个地执行 fsck 的指令来检查
## -A : 对/etc/fstab 中所有列出来的 分区(partition)做检查
## -C : 显示完整的检查进度
## -d : 打印出 e2fsck 的 debug 结果
## -p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行
## -R : 同时有 -A 条件时,省略 / 不检查
## -V : 详细显示模式
## -a : 如果检查有错则自动修复
## -r : 如果检查有错则由使用者回答是否修复
## -y : 选项指定检测每个文件是自动输入yes,在不确定那些是不正常的时候,可以执行 # fsck -y 全部检查修复。
##
# 总结:
## 1) fsck -C -f -t ext3 /dev/hdc6 # 强制检测 /dev/hdc6 分区(该分区文件系统为 ext3); 注: 若文件系统不曾出现问题,检查的经过非常快速!若加上 -f 强制检查,才会一项一项的显示过程; (-f 表示强制执行)
## 2) fsck[tab][tab] # fsck + 按两次tab键, 查看并列出系统中所有支持fsck命令 的文件系统
# 7、 mount 将文件挂载指定挂载点(挂载点:文件分区的入口);
# 语法:
## mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点
##
# 总结:
## 1) 挂载方式: 共两种,临时挂载和永久挂载;此命令为临时挂载,永久挂载需将挂载配置写入守护进程
## 2) mount /dev/hdc6 /mnt/hdc6 # 将装置/dev/hdc6(分区名) 挂载到 /mnt/hdc6 文件上面
# 8、 umount 卸除挂载点的装置(即关闭这个分区入口)
# 语法:
## umount [option] 装置文件名或挂载点 # 卸除文件的挂载
##
# 常用参数:
## -f 强制卸除,可用在类似网络文件系统 (NFS) 无法读取到的情况下
## -n 不升级/etc/mtab 的情况下卸除
##
#
# 总结:
## 1) umount /dev/hdc6 # 卸除装置 /dev/hdc6,此处/dev/hdc6位装置名(分区名)
## 2)
################------- 3、vim命令笔记 -------#############
vim命令笔记
三种模式:
类型 进入模式的命令 标志(现象)
1) 命令模式 vim 文件名 进入到文件内部
2) 输入模式 i,o,a 窗口左下角出现 --insert-- 或 --插入--
3) 底线命令模式 : 窗口左下角出现 :
1、命令模式: <j> 表示 j 键(需要区分的地方使用,默认字符不使用)
# 命令 功能
# 屏幕移动
## Ctrl + <f> 屏幕向下移动一页,相当于PageDown
## Ctrl + <b> 屏幕向上移动一页,相当于PageUp
## Ctrl + <d> 屏幕向下移动半页,down
## Ctrl + <u> 屏幕向上移动半页,up
##
## >> 缩进
## << 取消缩进
# 光标移动
## n<j> 光标向下移动 n 行,相当于 n + 方向下键; (h --左, j --下, k --上, l --右)
## n<空格> 光标向后(右)移动n个字符,若本行字符不足,则继续移动到下一行, 如: 10+<空格> # 光标后移10个字符
## + 光标移动到下一行(实测:下一行可为空格行)
## - 光标移动到下一行
## 0 光标移到本行第一个字符处,等同于<Home>
## $ 光标移到本行最后一个字符处,等同于<End>
## H 光标移动到屏幕最上方那行的第一个字符处
## M 光标移动到屏中间那行的第一个字符处
## L 光标移动到屏幕最下方那行的第一个字符处
## G 光标移动到 文件最后一行; 先用 :set nu 显示文件行号
## n<G> 光标移动到 文件 第 n 行
## gg 光标移动到 第一行
## n<Enter> 光标向下移动 n 行
# 搜索替换 (向上向下,是相对于光标而言)
## /ding 向下搜索字符ding;
## ?ding 向上搜索字符ding;
## <n> 下一个搜索的字符(沿着搜索方向:/ 搜索时,向下; ? 搜索时,向上)
## <N> 上一个搜索的字符(沿着搜索方向)
## :m,n<s>/findStr/replaceStr/g 在第 m 行 到 第 n 行之间区域,查找findStr ,并将其替换成replaceStr; 例如: :10,20s/'666'/'777'/g # 将第10行到第20行区域内的字符'666'全都替换成'777'
##
## :1,$s/findStr/replaceStr/g # 全文替换:从第1行到最后一行搜索findStr,并替换成replace
##
## :1,$s/findStr/replaceStr/gc # 全文替换:从第1行到最后一行搜索findStr,并替换成replace, c confirm 每次替换需要用户确认,若有五次替换,需要五次确认,确认过才替换
# 删除
## x 向后删除一个字符,(实测: 删除当前光标位置的字符)
## X 向前删除一个字符
## n<x> 连续向后删除 n 个字符(从当前位置开始,包含当前位置),n表示删除字符个数
## n<X> 连续向前删除 n 个字符,(不包含当前位置)
## dd 删除当前行
## n<d><d> 同时删除 n 行,n表示行数;如: 10dd 表示删除10行(当前行向下数)
## <d>n<G> n 为数字,删除第 n 行; n=1表示文件第一行,n=G表示文件最后一行
## dG 删除 当前行 到 文件最后一行的内容
## d$ 删除当前行(的当前字符到行尾)部分,包含当前字符
## d0 删除当前行(的当前字符到行首)部分,不包含当前字符
# 复制
## yy 复制当前行内容
## n<y><y> n为行数,复制 n 行(从当前行开始往下数)内容
## <y>n<G> n为行号,复制第 n 行内容
## yG 复制当前行到文件最后一行的内容
## y0 复制光标到行首的内容,不包含当前字符
## y$ 复制光标到行尾的内容,包含当前字符
# 粘贴
## p 向下粘贴;例如: 光标在第20行处, 10yy 复制了10行; 按下p,则粘贴内容从第21行开始,截止到第30 行,原第20行之后的内容,均向后移动10行 (如: 原第 21 行~第 30 行向后移动,变成第31~40行)
## P 向上粘贴;结果类似 p
## J 将当前行和下一行 合并成一行(并用空格分隔当前行和下一行的内容);例如:在第 20行 执行 J ,则会将第21 行内容合并到 第 20 行行尾,同时用 空格隔开两行内容
## c 重复删除多个数据, 例如向下删除 10 行: 10cJ 或 10c+<方向下键>
## u 撤回,复原前一个动作
## <Ctrl>r 重复上一个动作
## . 口水点,重复上一个动作; 注: 只重复动作,不重复内容,如上一步是在第20行4dd(删除了第21~24行),当把光标移动第31行,会把第31~34行删除
# 2、编辑模式(输入模式,取代模式)
#
# 命令 功能
#
# 进入输入模式
## i 从当前光标处输入
## I 从当前行的第一个非空字符处输入
## a 当前位置的下一个字符处输入
## A 当前行最后一个字符处输入
## o 当前行的下一行输入,并另起一行; 例如: 当前行为第20行,输入o,会在原地20行和第21行之间新建一行,为新的第21行,原第21行变为第22行,且原行号大于等于21行的均向下移动一行
## O 当前行的上一行输入,插入新的一行; 例如: 当前行为第20行,输入O,会在原地19行和第20行之间新建一行,为新的第20行,原第20行变为第21行,且原行号大于等于20行的均向下移动一行
# 进入取代模式
## r 只会取代当前位置的字符一次; 注:先按<r>, 再输入替代的字符
## R 会不断地取代当前位置的字符,直到按下<Esc>取消; 注: 先按<R>,再按替代的字符,只作用于当前行,不会自动跳转到下一行
## <Esc> 退出当前模式(编辑模式/底部命令模式),回到命令模式
##
##
# 注意:
## 1) 输入模式时,左下角会出现 '-- Insert --' 或 '-- 插入 --' 标志
## 2) 替代模式时,左下角会出现 '-- Replace --' 或 '-- 替代 --' 标志
# 3、底部命令模式(均以:开头)
# 命令 功能
# 保存,退出
## :w 将数据保存到硬盘中
## :w! 强制保存(一般用于只读权限时写入操作)
## :q 退出当前文件(离开vim 界面)
## :q! 强制退出(一般用于离开时,不保存修改记录)
## :wq 保存文件,并离开
## ZZ 若文件有更改,则保存更改并离开,若没有更改,则不保存并离开
# 同时操作其他文件
## :w [filename] 将编辑的数据保存到另一个文件中(filename); 注: [] 表示可选参数,若filename 参数存在,则操作指定文件(fileaname),若无参数时则保存当前文件
## :r [filename] 在当前文件中,插入另一个文件(filename)的数据,插入位置为当前位置的下一个字符处; r--read; 注: [] 表示可选参数,若filename 参数存在,则操作指定文件(fileaname),若无参数时则默认操作当前文件
## :m,n <w> [filename] 将第m 行到第 n 行的内容写入filename 这个文件中
## :! command 暂时离开当前vim界面,进入linux命令界面,执行command命令,并显示执行结果,按任意键,返回vim界面
## :set nu 显示当前文件的所有行号
## :set nonu 隐藏当前文件的所有行号
##
# 注意:
## 1) ! # 表示强制 (在vim 窗口)
## 2) :r [filename] # [] 表示可选参数,若filename 参数存在,则操作指定文件(fileaname),若无参数时则默认操作当前文件
## 3) :w [filename] # [] 表示可选参数,若filename 参数存在,则操作指定文件(fileaname),若无参数时则保存当前文件
## 4) vim命令中的 n 多为数字,表示行数 或 具体行号(第几行), 如: ndd -- 删除n行; dnG -- 删除第n 行
## 5) 笔记中的涉及位置和方向的描述(当前位置,当前行,向下,向上...) 均是以光标所在位置作为参照
################------- 3、yum命令及安装 -------#############
yum命令及安装
1、yum: 包依赖管理工具(基于RPM包管理),可以解决复杂的安装包依赖关系(例如: 安装A包,需要B包的支持,安装B包,需要C包的支持,成为A依赖B,B依赖C; 但是yum只需要安装A包就可以,因为yum会自动在安装A包之前去安装C,B包,所以程序员用yum只需要安装一个A包即可)
2、语法: yum [option] [command] [package]
常用参数:
option: 可选; -h (帮助); -y (安装过程提示选择全部为'yes'); -q (不显示安装的过程) 等等
command: 要进行的操作
package: 要下载的安装包/软件名
3、yum命令(常用的一些)
1) yum check -update # 列出所有可更新的软件列表
2) yum update # 更新所有软件
3) yum install packageName # 安装指定的软件packageName
4) yum update packageName # 更新指定的软件packageName
5) yum list [rules] # 列出所有可安装的软件列表, 支持正则规则(可选参数)
6) yum remove packageName # 删除指定的软件packageName
7) yum search keyWords # 查找软件包(根据关键字keyWords)
4、 清除缓存命令
1) yum clean packages # 清除缓存目录下的软件包
2) yum clean headers # 清除缓存目录下的headers
3) yum clean oldheaders # 清除缓存目录下旧的headers
4) yum clean [all] # all为可选字符,清除缓存目录下的软件包和旧的headers; 注: 相当于 yum clean packages; 加上 yum clean oldheaders
5、yum命令例子:
1) yum install php # 安装php软件
2) yum remove php # 删除php软件
3) yum list php* # 正则查找软件名以php开头的软件名列表
6、
# 国内yum源 (见菜鸟教程/百度)
# 配置本地yum仓库 (见菜鸟教程/百度)