-
Notifications
You must be signed in to change notification settings - Fork 14
/
LinuxNoteCommands.md
266 lines (206 loc) · 9.91 KB
/
LinuxNoteCommands.md
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
# Linux笔记 Chapter 2
[PREV 1.x Linux初步与环境安装](LinuxNote.md) | [NEXT 3.x vi/vim文本编辑器](LinuxNoteVim.md)
## 2.1 文件处理命令
### ls
```
ls 选项 [-al] [文件或目录]
a:显示所有文件,包括隐藏文件
l:显示详细信息
```
- 权限:所有用户(此后如不显示,则为所有用户)
- 描述:显示文件目录
### touch
`touch [文件名]`:创建一个空文件
### mkdir
`mkdir [-p选项表示递归创建文件夹] [文件夹名称]`:创建一个文件夹
### cp
```
cp [源文件] [目标文件]
cp -r [源目录] [目标目录]
```
- 描述:复制文件或目录
### rm
```
rm -f [文件]
rm -r [目录]
rm -rf [目录,包含目录下内容]
```
- 描述:删除文件或目录
### cat
`cat [文件名称]`:查看文件内容(内如过多,显示内容可能不全)
### more
`more [文件名称]`:查看文件内容,可完全显示。用法:使用空格进行翻页,回车显示下一行,q退出(或者ctrl+c)
### head
`head -number [文件名]`:查看文件的前多少行
### tail
`tail -number [文件名]`:查看文件的后多少行
### mv
- `mv [源文件名称] [新文件名称]`:修改文件名称
- `mv [源文件名称] [新文件位置+ 新文件名称]`:移动文件位置
### ln
`ln -s [源文件] [目标文件](硬链接则不需要-s选项)`:创建软链接文件
- 软链接特点:权限是所有人都可以访问,并且软链接文件指向源文件。软链接就像Windows系统中的快捷方式一样,特点也都类似。
- 硬链接:类似copy,硬链接大小和源文件一样,并且是同步更新的。
- 另外:硬链接不能跨文件系统分区,而软链接可以。
## 2.2 权限处理命令
### chmod
```
chmod [{ugo}{+-=}{rwx}] [文件或目录]
chmod [mode=421] [文件目录]
```
改变文件或目录的权限,形如:`chmod g+w filename`,`chmod 761 filename`
文件的rwx权限:
- `r`:可以执行catch、more等读操作
- `w`:修改文件的内容等写操作,但是不代表可以把这个文件删除
- `x`:对文件进行执行操作
目录的rwx权限:
- `r`:可读操作,可以列出目录的内容,比如ls命令
- `w`:表示可以在目录下创建或删除文件的权限
- `x`:表示可以进入这个目录(基本上所以的目录都会有rx权限)
**所以,删除文件的权限,是拥有当前文件所在的目录的写权限。**
文件目录权限总结
代表字符 | 权限 |对文件的含义 | 对目录的含义
---|---|-----|-----
r | 读权限 | 可查看文件内容 | 可列出目录中的内容
w | 写权限 | 可修改文件内容 | 可在目录中创建、删除文件
x | 执行权限 | 可执行文件 | 可进入目录
### chown
`chown user 文件`:改变文件的所有者。示例:`chown tc110 out.log`
- `useradd username`:添加用户
- `passwd username`:为用户设置密码
### chgrp
`chgrp group 文件`:改变文件的所属组。示例:`chgrp adm t1.sh`
- 查看系统默认的权限:`umask -S`(umask查看权限掩码值022 使用777-022得到真实权限)
## 2.3 文件搜索命令
### find
```
find [搜索范围路径] -name 【文件名称】(根据文件名查找)
find [搜索范围路径] -size [(+-)文件大小](根据文件大小查找,大于+ 小于-)
find [搜索范围路径] -user(文件的所有者)
find [时间查找] [以天为单位]
[以天为单位] 1 ctime、atime、mtime
[以分钟为单位] 2 cmin、amin、mmin
```
查找任何文件或目录(所有)。find命令示例:
- `find [搜索范围路径] -name`:`find /etc -name init`
- `匹配任意字符 *`:`find /etc -name *init`
- `匹配指定字符 ?`:`find /etc -name ?init`
`find [搜索范围路径] -size [+-文件大小](根据文件大小查找,大于+小于-)`
- 注意,对于文件的大小是以数据块为单位。数据块大小是512bit
- 形如:如需查找100M的文件,那么就要知道100M为多少block?
```
100M = ? block
1M = 1024K
100M = 102400K
1K = 2 block
100M = 2*102400 block
```
`find [搜索范围路径] -user(文件的所有者)`:查找隶属于某个用户的文件
- `find /home -user root -name out*`
`find [时间查找] [以天为单位]`
- 天:`ctime`、`atime`、`mtime`
- 分钟:`cmin`、`amin`、`mmin`
- `c`表示:change改变文件属性的意思(比如所有者、所属组、权限变更)
- `a`表示:access表示被访问过的意思(比如被查看过等)
- `m`表示:modify更改内容的意思
- 在时间前面添加:`-`表示之内,`+`表示之外:`find /home -mmin -120`
find应用的连接符:
- `-a`(and的意思,逻辑与):`find /etc -size +1024 -a -name ca*`
- `-o`(or的意思,逻辑或)
find根据文件类型进行查找:`-type`。其中:`f`表示二进制文件,`l`表示软链接文件,`d`表示目录
- `find /home -type d`
- `find /home -type d -o -name out.log`
find的连接执行符号:`find ... -exec [执行命令] {} \;`
- 注意:"{}"表示find命令查找的结果,而"\"表示转义符
```
find ... -exec [执行命令] {} \;
find ... -ok [执行命令] {} \;
```
ok和exec的区别就是ok有询问确认的意思
`find /etc -name init* -a -type f -exec ls -la {} \;`
`find -inum [i节点标号]`:根据i节点查找文件,在Linux系统中,所有的文件都有一个唯一的标识,方便Linux内核去调用,这就是i节点
```
[root@tc110 home]# ll -i
13 -rw-r--r--. 1 root root 54 Feb 12 06:08 error.log
[root@tc110 home]# find /home -inum 13
/home/error.log
```
### which
`which [命令名称]`:查看命令所在的目录位置
- 在Linux里面一般只有两种命令,第一种是所有用户都可以使用,第二种则是只允许管理员使用,还有一个命令叫`whereis`,和`which`使用类似
- 比如:rm命令,可以使用`which rm`查看其命令内容:
```
[root@tc110 home]# which rm
alias rm='rm -i'
/bin/rm
```
alias就是别名的意思,说明使用的`rm`命令在默认的情况下加了`-i`选项,意思是在删除的时候进行询问是否需要删除,那么添加"\"就使用真正的`rm`命令而不是别名,直接就可以删除不需要提示询问。
### locate
`locate [文件名称]`:查找文件,根据Linux数据库内部的索引(`updatedb`命令,可以手工更新updatedb数据库,一般和locate配合使用)
注意:locate的查找速度非常快,比find查找快很多,原因是locate查找的是Linux系统构建的文件数据库的索引值,所以速度非常快,但是有的时候新创建的文件使用locate命令查找不到,原因是这个文件的索引没有马上更新到Linux系统文件数据库里。
### man
`man [命令或者配置文件]`:帮助命令,非常的有用,可以获得命令的帮助文档,如何使用等
### whatis
`whatis [命令]`:查看命令的描述
### --help
`[命令] --help`:查看命令的选项用法。
## 2.4 压缩解压缩命令
### gzip
`gzip [文件名称]`:压缩的时候不保留原文件,并且只能压缩文件不能压缩目录
### gunzip
`gunzip [已压缩的文件]`:解压缩文件,不保留源文件
### tar
```
tar [zcvf] [zxvf] [打包文件名.tar.gz] [源文件]
-c 产生tar打包文件(必选)
-x 产生的解压缩文件(必选)
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
```
打包目录生成的后缀名`.tar.gz`,或者进行解压。最后配置加`-C`表示文件解压后存放的路径
### file
file命令可以查看任何文件的类型
### zip
`zip 选项[-r] [压缩后文件名称] [源文件]`:zip的格式是Windows和Linux通用的格式,可以压缩文件和目录,压缩目录时需要选项`-r`
### unzip
`unzip [解压缩的文件]`:进行解压缩。最后配置加`-d`表示文件解压后存放的路径
## 2.5 其它命令
### ping
排查ping不通对方网络:
1. 首先ping一下回环地址127.0.0.1检查自己本机的网络协议是否正确
1. 再ping一下本机ip查看自己本机的网络是否正确
1. 然后检查对方网络设置、防火墙、插件等
1. 如果发现丢包率里有丢失数据包,可能是网络、网线的原因
1. ping配置选项`ping -c 6 192.168.1.110`(表示ping 6次之后断开)
1. ping配置选项`ping -s 60000`(最大65507)
- `ifconfig`:查看网卡信息
- `shutdown -h now`:关机
- `reboot`:重启
- `ctrl + l`:清屏
- `ctrl + c`:退出应用
- tab键,信息补全
### grep
过滤:grep,可以将指定内容进行过滤然后输出。
管道:将一个命令的输出传送给另一个命令,作为另外一个命令的输入。管道可以连接N个命令。
- `ls -l /etc | more`(表示将`ls -l /etc`的输出,当做more命令的输入,即more命令浏览的内容为前面命令的输出结果)
- `ls -l /etc | grep init`(表示将`ls -l /etc`的输出结果进行过滤,显示为init的结果)
- `ls -l /etc | grep init | wc -l`(最后进行统计显示的个数)
### 逻辑与(&&)
形如:`ls && pwd`(第一个命令如果执行成功。第二个命令才会执行)
### 逻辑或(||)
形如:`ls || pwd`(第一个命令执行成功,则第二个不执行;第一个命令执行失败,则执行第二个)
### 重定向
输入输出重定向:Shell对每一个进程预先定义了3个文件描述字(0,1,2)
- 0(stdin)标准输入
- 1(stdout)标准输出
- 2(stderr)标准错误输出
输出重定向:就是把输出的结果显示到一个文件上(>表示输出重定向)
- `ll /home > /home/out.log`
如果想进行结果的追加,使用">>"
- `date >> /home/out.log`
输入重定向:就是把输入的信息重定向,比如把一个文件里的内容,进行发出
- `wall < /home/out.log`
错误重定向:一般是把程序执行的错误日志信息存放到指定的log日志中
- `ll /abcdefg 2> /home/error.log`
[PREV 1.x Linux初步与环境安装](LinuxNote.md) | [NEXT 3.x vi/vim文本编辑器](LinuxNoteVim.md)