• linux 常见命令20200424


     

    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>注意:|:管道命令,指psless同时执行。管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。
    • tail 指令

     tail命令用于查看文件内容,常用场景:结合 -f 参数实时查看日志文件内容动态更新。

    1. 命令格式
    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
  • 相关阅读:
    2017.5.2-afternoon
    2017.5.2-morning
    2017.4.27-afternoon
    2017.4.27-morning
    2017.4.26-morning
    2017.4.26-afternoon
    2017.4.24-4.25
    2017.4.21-afternoon
    Linux下进程间通信(二)----共享内存和信号量
    Linux下进程间通信(一)----概述和管道通信
  • 原文地址:https://www.cnblogs.com/sunyllove/p/12767502.html
Copyright © 2020-2023  润新知