Linux系统无可视化,一切操作皆命令,每条指令即是一个软件工具。熟悉并掌握Linux常用指令对于开发技术人员非常重要。
1、删除文件/目录
在Linux下删除文件或目录用rm命令,具体用法如下:
rm [选项] 文件/目录
选项说明:
-f -force 忽略不存在的文件,强制删除,无任何提示
-i --interactive 进行交互式地删除
-r | -R --recursive 递归式地删除列出的目录下的所有目录和文件
-v --verbose 详细显示进行的步骤
1
2
3
|
rm -f . /service .log 强制删除当前目录下service.log文件。 rm -rf . /temp 强制删除当前temp目录以及其下所有文件与目录。 |
2、查看当前目录路径
pwd:执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。
3、VI编辑器
- 用vi打开文件后,是处于「命令行模式(command mode)」,您要切换到「插入模式(Insert mode)」才能够输入文字。
切换方法:在「命令行模式(command mode)」下按一下字母「i」就可以进入「插入模式(Insert mode)」,这时候你就可以开始输入文字了。
- 编辑好后,需从插入模式切换为命令行模式才能对文件进行保存,切换方法:按「ESC」键。(实际上在底行模式保存退出,按ESC进入命令行模式,「命令行模式(command mode)」下,按一下「:」冒号键进入「Last line mode」)
- 保存并退出文件:在命令模式下输入:wq即可!(别忘了wq前面的:)
1
2
3
|
: w filename (输入 「w filename」将文章以指定的文件名filename保存) : wq (输入「wq」,存盘并退出 vi ) : q! (输入q!, 不存盘强制退出 vi ) |
4、查看文件内容
--- 常用应用场景:Linux系统查看应用日志
- less 指令
less 指令是对文件或者其他指令输出内容进行分页显示的工具。可以说是Linux正统查看文件内容的工具,功能极其全面。
1. 指令特点
less 与 more类似,但是less指令可以随意浏览文件内容,而more指令只能向前查看,却不能向后查看,并且less指令在查看之前不会加载整个文件。
2. 命令格式
1
|
less [参数] 文件 |
3. 常用命令参数
1
2
3
4
|
-f 强迫打开特殊文件 -i 忽略搜索时的大小写 -N 显示每行的行号 -s 显示连续空行为一行 |
4.常用操作命令参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
shift + > : 查看文件最后一页 u : 向前翻半页 f : 向前翻一页 d :向后翻半页 b : 向后翻一页 方向键向上箭头:向后移动一行 方向键向下箭头:向前移动一行 ?字符串 : 向上搜索“字符串” /字符串 : 向下搜索“字符串” n :重复前一个搜索(与 / 或 ? 有关) N :反向重复前一个搜索(与 / 或 ? 有关) Q : 退出less指令 F : 在 less 查看日志文件时,可以按大写 F,就会有类似 tail -f 的效果,读取写入文件的最新内容, 按 ctrl+C 停止。 |
5.常用实例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
实例1:查看文件 命令: less server.log less -i server.log 实例2: ps 查看进程信息并通过 less 分页显示 命令: ps -ef | less 实例3:查看操作命令使用历史记录并通过 less 分页显示 命令: history | less 实例4: 浏览多个文件 命令: less server1.log server2.log 输入 :n,切换到server2.log 输入 :p,切换到server1.log<br><br>注意:|:管道命令,指 ps 和 less 同时执行。管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。 |
- tail 指令
tail命令用于查看文件内容,常用场景:结合 -f 参数实时查看日志文件内容动态更新。
- 命令格式
1
2
3
4
|
tail [参数] 文件<br> 常用参数: -f : 循环读取 -n : 显示文件的尾部n行内容 |
2.常用实例
1
2
3
4
|
tail -100f server.log 实时查看server.log文件最新100行内容。 等价于 : tail -f -n 100 server.log ctrl + c : 停止动态刷新实现。 |
5、查找文件内容
- 常用方式
1
2
3
4
5
|
方式1: less 指令 + ?参数 (上文有介绍) 方式2: cat 指令 + egrep 指令 方式3: cat 指令 + grep 指令<br><br>方式4: tail 指令 + grep 指令 (实时查找) |
- 常用实例:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
实例1:查找文件中某个关键字 cat server.log | grep 'java' 查找server.log文件中含有java关键字的行 实例2:查找文件中匹配多个关键字任意一个的行 cat server.log | egrep 'java|c++' 匹配server.log文件中含有java 或者 c++的行 实例3:查找文件中同时匹配多个关键字的行 cat server.log | grep 'java' | grep 'c++' 匹配server.log文件中同时含有关键字java、C++的行 等价于: cat server.log | egrep 'java' | egrep 'c++' 实例4:查找文件中某关键字出现的次数 grep -o java server.log | wc -l 查找server.log文件中java出现的次数<br><br>实例5:实时动态查找文件中包含某关键字的行<br> tail -f server.log | grep 关键字 |
6、查看进程快照
ps指令:process status的缩写。ps指令列出系统中当前运行的进程快照,就是执行ps命令时刻系统正在运行的进程,如果想要动态显示系统进程信息,可以使用top指令。
ps优点:能够定义显示的字段,能够选择想要查看的字段。
- 指令格式
1
2
3
4
5
6
|
ps [参数] 常用参数: -a 显示所有程序 -e 显示所有进程 f 显示程序间的关系<br>u 指定用户的所有进程<br>-aux 显示所有包含其他使用者的行程 |
- 常用实例
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
|
1、显示所有当前进程 ps -ax 使用 -a 参数。-a 代表 all。同时加上x参数会显示没有控制终端的进程。 这个命令的结果或许会很长。为了便于查看,可以结合 less 命令和管道来使用。 ps -ax | less 2、查看某个进程 ps -ef | grep java 查看java进程 类似于 ps -eaf | grep java 注: ps -ef :显示当前所有进程详细状况 3、根据用户过滤进程 ps -u root 查看用户 'root' 的进程 4、通过cpu和内存使用来过滤进程 ps -aux | less 使用 aux 参数,来显示进程全面的信息 可以使用管道和 less 命令来筛选。默认的结果集是未排好序的。可以通过 -- sort 命令来排序。 <1>根据 CPU 使用来降序排序 ps -aux -- sort -pcpu | less <2>根据内存使用降序排序 ps -aux -- sort -pmem | less <3>根据CPU降序和内存升序排序,并通过管道显示前5个进程 ps -aux -- sort -pcpu,+pmem | head -n 5 5、通过进程名和PID过滤 ps -C java 使用 -C 参数,后面加你要查找的进程名。 ps -f -C java 使用-f参数来查看格式化的信息列表 6、根据线程来过滤进程 ps -L 进程ID 使用-L 参数,后面加上特定的PID,查看特定进程的线程。 7、使用PS实时监控进程状态 ps 命令会显示你系统当前的进程状态,但是这个结果是静态的。 如果需要通过CPU和内存的使用率来筛选进程,并且希望结果能够每秒刷新一次,即实时刷新。可以将 ps 命令和 watch 命令结合使用。 watch -n 1 ‘ ps -aux -- sort -pmem, -pcpu’ 如果输出太长,可以使用 head 命令限制前10条。 watch -n 1 ‘ ps -aux -- sort -pmem, -pcpu | head 10’ |
7、常见退出指令
- ssh退出:exit 或者 logout
- telnet退出: 先 ctrl + ] 后 quit
8、查找文件或者目录的位置
- 查找文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
1 、从根目录开始查找某文件 find / -name server.log //从根目录开始查找server.log文件 2 、从根目录开始查找文件名中包含某关键字的文件 find / -name *key.log //从root目录开始查找文件名包含key的log后缀文件 3 、查找当前目录下文件 find ./ -name *.log //查找当前目录下log后缀的文件,不包含子目录下文件 4 、从当前目录开始查找文件(需要加双引号) find ./ -name "*.log" //除了当前目录下log后缀文件,还查找到子目录下的log后缀文件 5 、在root目录下,查找内容中包含关键字的文件 find /root -name "*" |xargs grepn "key" //在root目录下查找内容包含key的文件 |
9、请求web资源
curl:客户端(client)的 URL 工具
1
2
3
4
5
|
1、使用curl发送GET请求: curl protocol: //ip :port /url ?args 2、使用curl发送POST请求: curl -d "key1=value1&key2=value2&key3=value3" protocol: //ip :port /path |
10、强制杀死进程
- 常用方式1:
1
2
3
|
ps -ef | grep firefox //把ps的查询结果通过管道给grep查找包含特定字符串的进程 + kill -s 9 pid <br><br>其中-s 9 指定传递给进程的信号是9,即强制、尽快终止进程 |
1
2
3
4
5
6
|
$ ps -ef | grep java smx 8085 1 4 11 : 38 ? 00 : 27 : 33 /usr/lib/firefox- 3.6 . 18 /java-bin smx 12029 1824 0 21 : 54 pts/ 0 00 : 00 : 00 grep --color=auto java $kill -s 9 8085 |
- 常用方式2:
1
2
3
|
pgrep 进程名 //进程查询 + kill -s 9 pid <br><br>pgrep的p表明了这个命令是专门用于进程查询的grep。 |
1
2
3
4
|
$ pgrep java 8085 $kill -s 9 8085 |