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 参数实时查看日志文件内容动态更新。

  1. 命令格式
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

  

 

 

 

 

 

 

 

posted @ 2018-10-14 17:17  马非白即黑  阅读(447)  评论(0编辑  收藏  举报