Linux 常用指令(一)
Linux系统无可视化,一切操作皆命令,每条指令即是一个软件工具。熟悉并掌握Linux常用指令对于开发技术人员非常重要。
1、删除文件/目录
在Linux下删除文件或目录用rm命令,具体用法如下:
rm [选项] 文件/目录
选项说明:
-f -force 忽略不存在的文件,强制删除,无任何提示
-i --interactive 进行交互式地删除
-r | -R --recursive 递归式地删除列出的目录下的所有目录和文件
-v --verbose 详细显示进行的步骤
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前面的:)
: w filename (输入 「w filename」将文章以指定的文件名filename保存) : wq (输入「wq」,存盘并退出vi) : q! (输入q!, 不存盘强制退出vi)
4、查看文件内容
--- 常用应用场景:Linux系统查看应用日志
- less 指令
less 指令是对文件或者其他指令输出内容进行分页显示的工具。可以说是Linux正统查看文件内容的工具,功能极其全面。
1. 指令特点
less 与 more类似,但是less指令可以随意浏览文件内容,而more指令只能向前查看,却不能向后查看,并且less指令在查看之前不会加载整个文件。
2. 命令格式
less [参数] 文件
3. 常用命令参数
-f 强迫打开特殊文件 -i 忽略搜索时的大小写 -N 显示每行的行号 -s 显示连续空行为一行
4.常用操作命令参数
shift + > : 查看文件最后一页 u : 向前翻半页 f : 向前翻一页 d :向后翻半页 b : 向后翻一页 方向键向上箭头:向后移动一行 方向键向下箭头:向前移动一行 ?字符串 : 向上搜索“字符串” /字符串 : 向下搜索“字符串” n :重复前一个搜索(与 / 或 ? 有关) N :反向重复前一个搜索(与 / 或 ? 有关) Q : 退出less指令 F : 在 less 查看日志文件时,可以按大写 F,就会有类似 tail -f 的效果,读取写入文件的最新内容, 按 ctrl+C 停止。
5.常用实例
实例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
注意:|:管道命令,指ps和less同时执行。管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。
- tail 指令
tail命令用于查看文件内容,常用场景:结合 -f 参数实时查看日志文件内容动态更新。
- 命令格式
tail [参数] 文件
常用参数: -f : 循环读取 -n : 显示文件的尾部n行内容
2.常用实例
tail -100f server.log 实时查看server.log文件最新100行内容。 等价于 : tail -f -n 100 server.log ctrl + c : 停止动态刷新实现。
5、查找文件内容
- 常用方式
方式1: less指令 + ?参数 (上文有介绍) 方式2: cat指令 + egrep指令 方式3:cat指令 + grep指令
方式4: tail指令 + grep指令 (实时查找)
- 常用实例:
实例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出现的次数
实例5:实时动态查找文件中包含某关键字的行
tail -f server.log | grep 关键字
6、查看进程快照
ps指令:process status的缩写。ps指令列出系统中当前运行的进程快照,就是执行ps命令时刻系统正在运行的进程,如果想要动态显示系统进程信息,可以使用top指令。
ps优点:能够定义显示的字段,能够选择想要查看的字段。
- 指令格式
ps [参数] 常用参数: -a 显示所有程序 -e 显示所有进程 f 显示程序间的关系
u 指定用户的所有进程
-aux 显示所有包含其他使用者的行程
- 常用实例
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、从根目录开始查找某文件 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、使用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:
ps -ef | grep firefox //把ps的查询结果通过管道给grep查找包含特定字符串的进程 + kill -s 9 pid
其中-s 9 指定传递给进程的信号是9,即强制、尽快终止进程
$ 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:
pgrep 进程名 //进程查询 + kill -s 9 pid
pgrep的p表明了这个命令是专门用于进程查询的grep。
$ pgrep java 8085 $kill -s 9 8085