Linux常用命令

Posted 小河沟大河沟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

 

以上是关于Linux常用命令的主要内容,如果未能解决你的问题,请参考以下文章

linux中怎么查看mysql数据库版本

Linux常用文件管理命令

markdown [Docker] Docker片段列表和命令#linux #docker #snippets

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

C#常用代码片段备忘

常用python日期日志获取内容循环的代码片段