-
Notifications
You must be signed in to change notification settings - Fork 0
/
linux常用命令(综合).txt
447 lines (396 loc) · 17 KB
/
linux常用命令(综合).txt
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
目录操作类:
*1.ls命令
ls -l:查看文件的详细信息,简写ll,ll命令不同通用的,有些系统不支持
ls -a:查看目录下的所有文件(包括隐藏文件)
共显示了七列信息,从左至右依次为:权限、文件数、归属用户、归属群组、文件大小、创建日期、文件名称
d :第一位表示文件类型
d 文件夹
- 普通文件
l 链接
c 字符设备文件
b 块设备文件
p 管道文件
s 套接口文件
*2、pwd命令
查看当前路径
*3、cd命令
进入某个指定的目录,指定的路径可以是相对路径,也可以是绝对路径,在Linux下/代表根目录,以/开始的路径都是绝
对路径。
相对路径:../表示当前目录的上级目录 ./表示当前目录下的某个目录
*4、mkdir命令
mkdir 目录名称:创建目录
mkdir -p 目录路径/目录路径/...... :创建多级目录,如果目录的父目录不存在,他会自动创建
5、rmdir命令(不常用)
删除目录,只能删除空目录
6、rm命令
删除文件或目录
*7、mv命令
移动文件或者文件夹(改名)
*8、cp命令
复制文件到其他路径
-r 复制文件夹下所有文件或文件夹
cp 文件名 文件名
*9、scp命令 sshcopy
复制本地文件到远程目录
scp -r 本地文件 用户@ip地址:/目录
前提是ssh服务可以使用
10、rsync (remote synchronize)
rsync可通过LAN/WAN快速同步多台主机间的文件和目录,rsync算法并不是每一次都整份传输,而是只传输两个文件的不同部分,因此其传输速度相当快。
快速:第一次同步时rsync复制全部内容,但在下一次值传输修改过的内容
压缩传输:rysnc在传输的过程中可以实行压缩及解压缩操作,可以使用更少的带宽
安全:可以使用scp、ssh等方式来进行文件传输
rsync不仅可以远程同步数据(类似于scp),而且可以本地同步数据(类似于cp),做差异同步
openssh 8.0已经把scp标记为过时不建议使用了。建议用sftp或者rsync替代scp
-r:递归处理
-a:归档模式,表示以递归方式传输文件,并保持所有文件属性不变
-P:把参数简单化,表示传进度
-v:复杂的输出信息
-z:对备份的文件在传输时进行压缩处理
#本地同步,将/etc目录备份到/opt目录下,和cp的区别在于会自动增量备份
rsync -avz /etc /opt
#将本地文件推送(上传)到远端
rsync -avzP 本地文件名 user@remoteip:/路径
#将远端文件拉(下载)到本地
rsync -avz user@localip:/路径 本地路径
rsync -aP thc-hydra-master.tar.gz 192.168.101.129:/tmp/
scp thc-hydra-master.tar.gz 192.168.101.129:/tmp/
文件查看编辑类:
*1、cat命令 category
查看文件内容
cat 文件路径/文件名
cat 文件名 >> 另外一个文件 >> 追加(append)
cat 文件名 > 另外一个文件 > 覆盖(overwrite)
*2、more命令
查看文件内容 more 文件名.扩展名 |grep 要搜索的关键字
more 文件路径
退出查看要使用 Ctrl+C
3、less命令
查看文件内容
less 文件路径
退出查看要使用 Ctrl+Z
*4、head命令
查看文件内容,从文件开始查看文件内容,可以指定查看从开始行开始的多少行内容
head -n 文件路径:n表示一个正数,查看文件的前n行数据
*5、tail命令
查看文件内容,从文件结尾查看文件内容
tail -n 文件路径:n表示一个正数,查看文件的后n行数据
tail -f 文件路径:表示查看文件末尾的数据,如果文件内容有更新,它会显示最新的末尾内容,使用Ctrl+Z退出查看
,一般使用来查看日志文件。
*6、vi/vim 命令
vi:是一个强大的文本编辑工具
vi 文件路径/文件名
Esc i:进入编辑模式,表示在光标当前行插入内容。
Esc o:进入编辑模式,表示在光标当前行的下一行插入内容。
Esc dd:表示删除光标当前行的内容,并存放到缓冲区,也有剪切的意思,如剪切多行可执行 ndd
Esc yy:表示复制光标当前行的内容。如复制多行可执行nyy
Esc p:表示粘贴到光标下一行。
Esc x:将光标后的字符删除掉。如删除多个字符可执行nx
Esc X:将光标前的字符删除掉。如删除多个字符可执行nX
Esc u:恢复上一次操作。
Esc $:表示将光标移动到当前行的行尾。
Esc :/word 表示要查找的word,从前往后找
Esc :?word 表示要查找的word,从后往前找
Esc :set number表示显示文本的行号,缩写nu
Esc :set encoding表示显示文本文件的编码格式
Esc :q 表示退出vi命令
Esc :w 表示保存文件内容不退出
Esc :wq 表示保存文件内容退出vi命令
Esc :q! 表示强制退出vi命令
Esc :wq! 表示强制保存退出vi命令
*7、echo命令
echo 显示内容:在控制台输出内容
echo 环境变量
echo也可以创建一个文件,它创建的文件一般是有内容的:
echo 显示内容 >> 文件名:表示将显示内容写入到文件中,如果文件不存在,会创建一个新文件。
8、touch命令
touch文件:表示创建一个新的文件。
*组管理类:
1、groupadd命令
groupadd 用户组名称:创建用户组
2、groupdel命令
删除用户组
3、groupmod命令
修改用户组标识或组名称
-g 修改组标识
groupmod -g 新组标识 组名
-n 修改组名称
groupmod -n 新组名 旧组名
*用户管理类:
1、useradd命令
useradd 用户名 -g 指定用户组 :创建指定组的新用户
2、usermod命令
将已存在的用户添加到用户组里 usermod -g 新用户组名 用户名
3、userdel命令
userdel用于删除用户账号,-r 参数:删除用户基目录以及其下子目录
4、passwd命令
passwd 用户名 :创建/修改用户密码
*su:切换用户
su - 用户名
sudo:可以让某个用户执行root用户才能执行的命令
需要在/etc/sudoers 增加一行 普通用户名称 ALL=NOPASSWD:ALL
*所属权限修改类:
1、chgrp命令 changegroup
修改文件或文件夹的所属组
chgrp groupname 文件或文件夹
*2、chown命令 changowner
chown命令:修改某个文件的所属者(owner)。
-R 修改该目录下的所有文件夹以及文件的所属者
chown owner -R 文件或者文件夹
*3、chmod命令
chmod命令:设置某个文件或者文件夹的权限,这个权限可以针对所有用户。
chmod 权限 -R 文件或者文件夹路径:表示修改文件或者文件夹的权限,-R 如果是目录,那该目录下的所有文件夹以及文件的权限都修改
权限:
读权限r:4
写权限w:2
执行权限x:1
drwxr-xr-x:755
10个字符:d表示目录,第2到4表示owner文件拥有者的权限,第5到7表文件拥有者所在用户组的权限,第8到10表示其他用户对该目录或者文件所具有的权限。
chmod 775 文件
+表示增加相应权限
-表示减少相应权限
chmod u+rwx 文件 == 该文件所属的用户权限为rwx
chmod g+rwx 文件 == 该文件所属的用户组权限为rwx
chmod o+rwx 文件 == 该文件所属的其他用户权限为rwx
chmod u=rwx,g=rx,o=rx 文件 == chmod 755 文件
网络信息查看及进程操作类:
*1、ifconfig命令
查看网卡、IP等本地网络信息
*2、netstat
需要root权限
查看端口是否被占用,如果出现listen,则说明端口被占用
netstat -anlp |grep 端口号
远程查看其他服务器上的端口是否被占用
nmap 192.168.245.129 -p 3306
nc -v 192.168.245.129 3306
telnet ip port
*3、ps命令
ps查看进程命令
ps -aux
ps -ef |grep 进程名关键字
4、kill命令
kill -9 进程id : 强制杀死进程 kill -15 进程id
kill all 进程名 : 全部杀死
5、service命令
启动/关闭/查看服务命令 start/stop/status enable/disable
centos7版本以上使用:
systemctl start|stop 服务名称
systemctl enable|disable 服务名称
systemctl start/stop firewalld.service 开启/停止防火墙守护进程
firewall-cmd --add-port=80/tcp --permanent 防火墙开放80端口
*应用安装类:
*1、yum命令
yum 是centos和redhat的默认安装命令
安装:yum install 包名
卸载:yum remove/uninstall 包名
更新:yum update
-y 自动安装依赖
ubuntu:app-get
*2、wget命令
(下载)
centos6.5的包下载路径
wget https://vault.centos.org/6.5/os/x86_64/Packages/ntpdate-4.2.6p5-1.el6.centos.x86_64.rpm
centos7的包下载路径
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm
*3、rpm命令
rpm:rpm package安装
https://mirrors.aliyun.com/centos/7/os/x86_64/Packages
(离线安装)
rpm -ivh ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm
--查看包是否安装
rpm -qa|grep 包名
--卸载包
rpm -e 包名
--强制卸载rpm包(不考虑依赖)
rpm -e 包名 --nodeps
--查看某个命令存放在哪个路径下
which ntpdate
--查看某个路径下的命令二进制文件的对应rpm包名
rpm -qf /usr/sbin/ntpdate
--根据包前缀名查看该包的详细信息,包括包的完整名称、版本、安装时间、URL来源地址等
rpm -qi ntpdate
rpm -qi coreutils
编译安装:
make && make install
前提是编译器需要先安装好 yum install -y gcc gcc-c++
*文件压缩解压类:
解压、压缩
*1、zip包的压缩和解压
1.1 zip命令(压缩)
-r:递归压缩
-g:添加文件到压缩包,如:zip -g a.zip b.txt 将b.txt添加到a.zip中
-d:指定删除压缩包中文件(跟zip命令时指删除),如:zip a.zip -d b.txt 将b.txt从a.zip中删除
-x:压缩文件时排除指定文件,如:zip -r /root/boot.zip /boot -x /boot/grub/grub.conf 压缩/boot目录,但是排除/boot/grub/grub.conf文件
-u:更新添加指定文件到压缩包,如:zip -u /root/a.zip /root/b 更新/root/a.zip压缩文件,添加/root/b.txt文件
-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中
-e:压缩时指定加密,如:zip -e /root/a.zip /root/a.txt 将/root/a文件压缩成/root/a.zip文件,并指定加密密码
zip -r 生成压缩文件名 要压缩的文件或者路径
查看zip压缩包内容
zipinfo zip压缩文件
1.2 unzip(解压)
-v:查看压缩包内文件,不解压,如:unzip -v a.zip
-d:指定解压文件到某个目录下,如:unzip -d /root a.zip b.txt 将b.txt从a.zip中解压并放到/root目录下
unzip zip压缩文件名 -d 解压目录
*2、tar命令
-z 支持gzip解/压文件
-c 建立新的压缩文件(压缩)
-x 从压缩的文件中提取文件(解压)
-v 显示操作过程
-f 指定压缩文件
-r 追加文件到压缩包
-u 更新文件到压缩包
-t 查看压缩包文件
tar -cvf tar包 :将目标文件压缩成tar压缩包
tar -zcvf tar.gz包 :将目标文件压缩成.tar.gz包
tar -xvf tar包: 解压.tar包
tar -zxvf tar.gz包:解压.tar.gz包
--对tar文件的压缩以及解压
tar -cvf wc.input.tar wc*.input
tar -xvf wc.input.tar
--从tar包中取出a.txt文件
tar -xvf wc.input.tar a.txt
--对tar.gz包的解压以及压缩
tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C 指定路径
tar -zcvf sqoop-1.4.7.bin__hadoop-2.6.0.tar1.gz sqoop-1.4.7.bin__hadoop-2.6.0
--追加文件到tar包
tar -rvf wc.input.tar wc.input
/*
--追加文件到tar.gz包
tar -zrvf wc.input.tar.gz wc.input
*/
--查看tar包内容不解压
tar -tf wc.input.tar
创建链接文件:
ln命令
增加-s参数后表示创建软连接
硬链接:ln 源路径文件 目标路径文件
软链接:ln -s 源路径文件 目标路径文件
资源查看类(系统运维类):
1、uptime命令
查看系统1、5、15分钟的平均负载(CPU)
*2、free命令
查看内存使用情况
-m:以MB为单位
3、iostat
iostat:磁盘I/O监控
4、vmstat
vmstat:查看操作系统核心指标(内存、硬盘、CPU等)
5、pidstat
pidstat:查看进程所占CPU的百分比
*6、top命令
动态查看资源利用率
*7、df命令
查看磁盘(分盘区分文件系统)使用情况
-l:以B为单位
-h:以GB为单位
*8、du命令
查看目录及目录下文件占用大小
du -h --max-depth=n , n代表几级目录
--type=xfs 查看xfs文件系统的磁盘设备
-i 查看inode块使用情况
9、fdisk命令
-l 查看磁盘分区情况
文本搜索类:
*1、grep命令
文本搜索命令
grep 搜索内容 文件路径/文件名
grep -v 反向搜索 搜索排除指定内容的其他文本
grep -x 精确搜索
*2、find命令
查找包含某搜索内容的文件所在路径以及包含搜索关键字的内容
-name:按照文件名查找
-perm:按照权限查找 例如 find ./ -perm 700
a(last accessed) 最近一次访问时间
c(last changed) 最近一次改变时间
m(last modified) 最近一次修改时间
-mtime:按照修改或访问时间查找 +1 1天之前 -2 2天之内
-type: 按照文件类型查找 d 目录 f 文件 b 块设备 s 套接字 c 字符设备 l 链接 p 管道 (FIFO)
-size: 按照文件大小查找 +1k 大于1KB
xargs:对于查找出的文件应用其他的命令
find 路径 -name "*.*" |xargs grep 搜索内容 |wc -l 查找搜索行数
例如:find ./ -mtime +1 | xargs -i rm -Rf {} #删除当前时间1天以前的文件
| 管道符:表示将符号前的命令的执行结果传给符号后面的命令去执行
3、wc命令(wordcount)
统计文件字数、行数、字节数
wc -l 文件:表示统计文件的行数
wc -w 文件:表示统计文件的字数(英文单词)
wc -c 文件:表示统计文件的字节数
4、cut命令(查看)
截取命令
cut -f 第几列 :表示提取第几列(分隔符默认为\t)
cut -d 分隔符 :表示指定分隔符
cut -d ':' -f 1,3 /etc/passwd :表示截取文件passwd的第一列和第三列,以:作为分隔符
cut -c:以字符为单位进行分割
cut -c 1-4 /etc/passwd :输出/etc/passwd文件每一行的前4个字符
文件替换类:
*sed命令
查找显示文件内容,替换文件内容
sed 参数 '动作' 文件名
参数:
-n:把经过sed命令处理的行输出到屏幕
-e:允许对输入数据应用多条sed命令编辑
-i:用sed编辑修改读取的数据文件,而不是修改屏幕输出
动作:
a :追加,在当前行后添加一行或多行,添加多行时除最后一行外,每行末尾需要用"\"来代表数据未完结。
c :行替换,用c后面的字符替换员数据行,替换多行时除最后一行外,每行末尾需要用"\"来表示数据未完结。
i :插入,在当前行插入一行或者多行,插入多行时除最后一行外每行末尾需要用"\"来表示数据未完结。
d :删除指定行 ","表示连续,2,4的意思就是2-4行
p :打印输出指定行
s :字符串替换,用一个字符串替换另外一个字符串,
格式 行范围 s/旧字符串(正则匹配符)/新字符串/g
例如:
打印sed.txt文件第二行内容
sed -n '2p' sed.txt
在屏幕上打印sed.txt文件的第三行内容,不修改文件内容
sed -n '3p' sed.txt
同时应用多个修改,只输出到屏幕上,不修改文件内容:
sed -e "s/18/20/g;s/korean/chinese/g" sed.txt
sed -e "s/18/20/g" -e "s/korean/chinese/g" sed.txt
修改sed.txt文件第二行文件内容
sed -i "2s/girl/boy/g" sed.txt
在sed.txt文件第二行的下一行追加内容,不修改文件内容
sed '2a I am a good boy' sed.txt
在sed.txt文件第二行的上一行插入内容,不修改文件内容
sed '2i I am a good boy' sed.txt
将sed.txt文件第二行替换为指定内容,不修改文件内容
sed '2c I am a good boy' sed.txt
删除sed.txt文件2-4行,不修改文件内容
sed '2,4d' sed.txt
将orders.txt文件中的所有制表符(\t)替换成 ,
sed -i "s/\t/,/g" orders.txt
将orders.txt文件中的所有,替换成制表符(\t)
sed -i "s/,/\t/g" orders.txt
操作系统启动关机管理类:
1、reboot命令
重启操作系统
2、shutdown命令
关闭操作系统(关机)
shutdown -h now 立即关机
shutdown -r now 立即重启
帮助类命令:
1、help命令
vim --help
2、man命令
man vim
CTRL+Z 退出
*awk命令
逐行读取文本,默认以空格或tab键为分隔符进行分隔,将分隔所得的各个字段保存到内建变量中,并按模式或者条件执行编辑命令
内建变量(可直接用)如下所示
FS:列分割符。指定每行文本的字段分隔符,默认为空格或制表位。与"-F"作用相同
NF:当前处理的行的字段的个数。 比如 {print NF}:字段的个数 {print $NF} :最后一个列
NR:当前处理的行的行号(序数)。
$0:当前处理的行的整行内容。
$n:当前处理行的第n个字段(第n列)。
FILENAME:被处理的文件名。
RS:行分隔符。awk从文件上读取资料时,将根据RS的定义把资料切割成许多条记录,而awk一次仅读入一条记录,以进行处理。预设值是’\n’
awk '{print $0}' 文件名 #输出文件所有内容
awk 'NR==3{print $0}' 文件名 #输出文件指定行内容
awk '(NR>=1)&&(NR<=3){print $0}' 文件名 #输出文件第一到第三行内容
awk 'NR==1||NR==3{print $0}' 文件名 #输出文件第一或第三行内容
awk 'NR==3,FS{print $2}' 文件名 #根据空格或者制表符输出文件中指定行和列
awk -F ":" '{print $1,$3}' 文件名 根据":"作为列分隔符,输出第一、三列
awk -F "," '{print $NF,$(NF-1)}' 以","作为列分隔符,输出倒数第一、二列
sync
pidof
lsof
iftop
nc