zoukankan      html  css  js  c++  java
  • Linux常用命令

    • linux下查找某个文件位置的方法

      whereis <程序名称>
      查找软件的安装路径
      -b 只查找二进制文件
      -m 只查找帮助文件
      -s 只查找源代码
      -u 排除指定类型文件
      -f 只显示文件名
      -B <目录> 在指定目录下查找二进制文件
      -M <目录> 在指定目录下查找帮助文件
      -S <目录> 在指定目录下查找源代码
    dsp@dsp:~$ whereis python.exe
    python: /usr/bin/python3.5dm /usr/bin/python3.5 /usr/bin/python3.5m /usr/bin/python3.5-dbg /usr/bin/python3.5-dbg-config /usr/bin/python2.7 /usr/bin/python3.5dm-config /usr/bin/python /usr/bin/python2.7-config /usr/lib/python3.5 /usr/lib/python2.7 /etc/python3.5 /etc/python2.7 /etc/python /usr/local/lib/python3.5 /usr/local/lib/python2.7 /usr/include/python3.5dm /usr/include/python3.5m /usr/include/python2.7 /usr/local/python /usr/share/python
    locate <文件名称>
    在文件索引数据库中搜索文件: 只要文件路径中带pycharm的都会出现
    -d <数据库路径> 搜索指定数据库
    updatedb
    更新文件索引数据库
    dsp@dsp:~$ locate pycharm
    /home/dsp/pycharm
    /home/dsp/.cache/gnome-software/3.20/snap-icons/cb0d662757f4e9fe3f5b2182e02e697b52ef085c-pycharm_logo_256_WJuIBUR.png
    /home/dsp/.gnome/apps/jetbrains-pycharm-ce.desktop
    /home/dsp/.local/share/applications/jetbrains-pycharm-ce.desktop
    
    /home/dsp/pycharm/Install-Linux-tar.txt
    /home/dsp/pycharm/bin
    /home/dsp/pycharm/build.txt
    /home/dsp/pycharm/help
    /home/dsp/pycharm/helpers
    /home/dsp/pycharm/jre64
    /home/dsp/pycharm/lib
    find [路径] <表达式>
    查找文件
    -name <表达式> 根据文件名查找文件
    -iname <表达式> 根据文件名查找文件,忽略大小写
    -path <表达式> 根据路径查找文件
    -ipath <表达式> 根据路径查找文件,忽略大小写
    -amin <分钟> 过去N分钟内访问过的文件
    -atime <天数> 过去N天内访问过的文件
    -cmin <分钟> 过去N分钟内修改过的文件
    -ctime <天数> 过去N天内修改过的文件
    -anewer <参照文件> 比参照文件更晚被读取过的文件
    -cnewer <参照文件> 比参照文件更晚被修改过的文件
    -size <大小> 根据文件大小查找文件,单位b c w k M G
    -type <文件类型> 根据文件类型查找文件。b 块设备 c 字符设备 d 目录 p 管道文件 f 普通文件 l 链接 s 端口文件
    -user <用户名> 按归属用户查找文件
    -uid <uid> 按UID查找文件
    -group <群组名> 按归属群组查找文件
    -gid <gid> 按GID查找文件
    -empty 查找空文件
    dsp@dsp:~/pycharm$ find /home/ -name build.txt
    find: ‘/home/dsp/.gvfs’: Permission denied
    /home/dsp/pycharm/build.txt
    find: ‘/home/dsp/.cache/dconf’: Permission denied

    Linux下有三个命令:lsgrepwc。通过这三个命令的组合可以统计目录下文件及文件夹的个数。

    dsp@dsp:~/pycharm$ ll
    total 44
    drwxrwxr-x  9 dsp dsp 4096 Nov  5  2017 ./
    drwxr-xr-x 78 dsp dsp 4096 May 10  2018 ../
    drwxrwxr-x  2 dsp dsp 4096 Nov  5  2017 bin/
    -rw-r--r--  1 dsp dsp   14 Oct 20  2017 build.txt
    drwxrwxr-x  2 dsp dsp 4096 Nov  5  2017 help/
    drwxrwxr-x 18 dsp dsp 4096 Nov  5  2017 helpers/
    -rw-r--r--  1 dsp dsp 1987 Oct 20  2017 Install-Linux-tar.txt
    drwxrwxr-x  4 dsp dsp 4096 Nov  5  2017 jre64/
    drwxrwxr-x  4 dsp dsp 4096 Nov  5  2017 lib/
    drwxrwxr-x  2 dsp dsp 4096 Nov  5  2017 license/
    drwxrwxr-x 18 dsp dsp 4096 Nov  5  2017 plugins/
    dsp@dsp:~/pycharm$ ls -l |grep "^-" |wc -l
    2
    dsp@dsp:~/pycharm$ ls -lR |grep "^-" |wc -l
    2445

    命令解析:

    • ls -l

    长列表输出该目录下文件信息(注意这里的文件是指目录、链接、设备文件等),每一行对应一个文件或目录,ls -lR是列出所有文件,包括子目录。

    • grep "^-"

    过滤ls的输出信息,只保留一般文件,只保留目录是grep "^d"

    • wc -l

    统计输出信息的行数,统计结果就是输出信息的行数,一行信息对应一个文件,所以就是文件的个数。

    • cd命令: 它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。
    • ls命令:有用的查看文件与目录的命令
    • grep命令: 该命令常用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工
    • find命令: find是一个基于查找的功能非常强大的命令,相对而言,它的使用也相对较为复杂,参数也比较多
    • cp命令: 该命令用于复制文件,copy之意,它还可以把多个文件一次性地复制到一个目录下
    • mv命令: 该命令用于移动文件、目录或更名,move之意;该命令可以把一个文件或多个文件一次移动一个文件夹中,但是最后一个目标文件一定要是“目录”
    • rm命令: 该命令用于删除文件或目录
    • ps命令: 该命令用于将某个时间点(静态)的进程运行情况选取下来并输出
    • kill命令:该命令用于向某个工作(%jobnumber)或者是某个PID(数字)传送一个信号,它通常与ps和jobs命令一起使用,它的基本语法如下:
          kill -signal PID  
      
      signal的常用参数如下:
      
      注:最前面的数字为信号的代号,使用时可以用代号代替相应的信号。
      
          1:SIGHUP,启动被终止的进程  
          2:SIGINT,相当于输入ctrl+c,中断一个程序的进行  
          9:SIGKILL,强制中断一个进程的进行  
          15:SIGTERM,以正常的结束进程方式来终止进程  
          17:SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行  
      
      例如:
      
          # 以正常的结束进程方式来终于第一个后台工作,可用jobs命令查看后台中的第一个工作进程  
          kill -SIGTERM %1   
          # 重新改动进程ID为PID的进程,PID可用ps命令通过管道命令加上grep命令进行筛选获得  
          kill -SIGHUP PID 
    • killall命令: 该命令用于向一个命令启动的进程发送一个信号
    • file命令: 该命令用于判断接在file命令后的文件的基本数据,因为在Linux下文件的类型并不是以后缀为分的,所以这个命令对我们来说就很有用了:
    dsp@dsp:~/pycharm$ file build.txt
    build.txt: ASCII text, with no line terminators
    • tar命令: 该命令用于对文件进行打包,默认情况并不会压缩,如果指定了相应的参数,它还会调用相应的压缩程序(如gzip和bzip等)进行压缩和解压
        -c :新建打包文件  
        -t :查看打包文件的内容含有哪些文件名  
        -x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中  
        -j :通过bzip2的支持进行压缩/解压缩  
        -z :通过gzip的支持进行压缩/解压缩  
        -v :在压缩/解压缩过程中,将正在处理的文件名显示出来  
        -f filename :filename为要处理的文件  
        -C dir :指定压缩/解压缩的目录dir  
        
        压缩:tar -jcv -f filename.tar.bz2 要被处理的文件或目录名称  
        查询:tar -jtv -f filename.tar.bz2  
        解压:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录  
    • zip/unzip命令
      格式:zip 压缩文件.zip 目录或文件
      功能:将目录或文件压缩成zip格式。
    • cat命令: 该命令用于查看文本文件的内容,后接要查看的文件名,通常可用管道与more和less一起使用,从而可以一页页地查看数据。
        cat text | less # 查看text文件中的内容  
        # 注:这条命令也可以使用less text来代替  
        ctrl z 退出
    • more命令
      格式:more [选项] [文件]
      功能:more命令显示文件内容,每次显示一屏。
    • less命令
      格式:less [参数] 文件
      功能:less命令与more命令类似,但二者存在差别,less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。
    • chgrp命令:命令用于改变文件所属用户组
    • chown命令: 该命令用于改变文件的所有者
    • chmod命令: 该命令用于改变文件的权限;chmod还可以使用u(user)、g(group)、o(other)、a(all)和+(加入)、-(删除)、=(设置)跟rwx搭配来对文件的权限进行更改。
    • vim命令: 该命令主要用于文本编辑,它接一个或多个文件名作为参数,如果文件存在就打开,如果文件不存在就以该文件名创建一个文件
    • gcc命令: 对于一个用Linux开发C程序的人来说,这个命令就非常重要了,它用于把C语言的源程序文件,编译成可执行程序,由于g++的很多参数跟它非常相似,所以这里只介绍gcc的参数,它的常用参数如下:
        -o :output之意,用于指定生成一个可执行文件的文件名  
        -c :用于把源文件生成目标文件(.o),并阻止编译器创建一个完整的程序  
        -I :增加编译时搜索头文件的路径  
        -L :增加编译时搜索静态连接库的路径  
        -S :把源文件生成汇编代码文件  
        -lm:表示标准库的目录中名为libm.a的函数库  
        -lpthread :连接NPTL实现的线程库  
        -std= :用于指定把使用的C语言的版本  
          
        # 例如:  
        # 把源文件test.c按照c99标准编译成可执行程序test  
        gcc -o test test.c -lm -std=c99  
        #把源文件test.c转换为相应的汇编程序源文件test.s  
        gcc -S test.c  
    • time命令: 该命令用于测算一个命令(即程序)的执行时间。
    • pwd命令 格式: pwd 功能:显示出当前工作目录的绝对路径。
    • touch命令
      格式:touch[选项] 文件名…
      功能:touch命令参数可以更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件
    • mkdir命令
      格式:mkdir [选项] dirname…
      功能:mkdir命令用来创建目录。
    • touch能够新建文件,mkdir用来新建文件夹。rm用来删除文件或文件夹。
    • man 命令
      格式:man [选项] 命令
      功能:man命令格式化并显示某一命令的联机帮助手册页。
    • head命令
      格式:head [选项] [文件]
      功能:head命令在屏幕上显示指定文件的开头若干行。
    • tail命令
      格式:tail [选项] [文件]
      功能:用于显示指定文件的末尾,不指定文件时,作为输入信息进行处理。常用查看日志文件。
    • date显示
      date 指定格式显示时间:date+%Y:%m:%d
      date用法:date:date[OPTION]… [+FORMAT]
    • cal命令
      格式:cal [参数] [月份] [年份]
      功能:用于查询日历等时间信息,如果只有一个参数,则表示年份(1-9999),如果有两个参数,则表示月份和年份。
    • linux如何查看端口被哪个进程占用?

    1、lsof -i:端口号

    2、netstat -tunlp|grep 端口号

    都可以查看指定端口被哪个进程占用的情况

    netstat命令各个参数说明如下:
      -t : 指明显示TCP端口
      -u : 指明显示UDP端口
      -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)
      -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。
      -n : 不进行DNS轮询,显示IP(可以加速操作)
    即可显示当前服务器上所有端口及进程服务,于grep结合可查看某个具体端口及服务情况··
    netstat -ntlp   //查看当前所有tcp端口·
    netstat -ntulp |grep 80   //查看所有80端口使用情况·

    netstat -ntulp | grep 3306   //查看所有3306端口使用情况·

    dsp@dsp:~$ netstat -ntlp
    (Not all processes could be identified, non-owned process info
     will not be shown, you would have to be root to see it all.)
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 127.0.0.1:5939          0.0.0.0:*               LISTEN      -               
    tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      -               
    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -               
    tcp        0      0 127.0.0.1:8888          0.0.0.0:*               LISTEN      28291/python    
    tcp6       0      0 ::1:631                 :::*                    LISTEN      -               
    dsp@dsp:~$ netstat -ntlp|grep 8888
    (Not all processes could be identified, non-owned process info
     will not be shown, you would have to be root to see it all.)
    tcp        0      0 127.0.0.1:8888          0.0.0.0:*               LISTEN      28291/python    
    dsp@dsp:~$ netstat -tunlp
    (Not all processes could be identified, non-owned process info
     will not be shown, you would have to be root to see it all.)
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 127.0.0.1:5939          0.0.0.0:*               LISTEN      -               
    tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      -               
    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -               
    tcp        0      0 127.0.0.1:8888          0.0.0.0:*               LISTEN      28291/python    
    tcp6       0      0 ::1:631                 :::*                    LISTEN      -               
    udp        0      0 0.0.0.0:36592           0.0.0.0:*                           -               
    udp        0      0 0.0.0.0:5353            0.0.0.0:*                           -               
    udp        0      0 127.0.1.1:53            0.0.0.0:*                           -               
    udp        0      0 0.0.0.0:68              0.0.0.0:*                           -               
    udp        0      0 0.0.0.0:631             0.0.0.0:*                           -               
    udp        0      0 0.0.0.0:50033           0.0.0.0:*                           -               
    udp6       0      0 :::5353                 :::*                                -               
    udp6       0      0 :::58343                :::*                                -               
    dsp@dsp:~$ lsof -i
    COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    jupyter-n 28291  dsp    3u  IPv4 385473      0t0  TCP localhost:8888 (LISTEN)
  • 相关阅读:
    Flink Application Development DataStream API Execution Mode (Batch/Streaming)- Flink应用程序开发DataStream API执行模式(批/流)
    Flink Application Development DataStream API Overview
    Flink Concept Stateful Stream Processing -Flink概念有状态流处理
    Hdfs原理
    Leetcode 763 划分字母区间
    406. 根据身高重建队列
    贝叶斯统计概要(待修改)
    蒙特卡罗方法
    马尔科夫链蒙特卡罗方法(MCMC)
    Leetcode452. 用最小的箭引爆气球
  • 原文地址:https://www.cnblogs.com/ranjiewen/p/9017458.html
Copyright © 2011-2022 走看看