• Linux相关命令整理


    查看端口占用

    netstat命令用于显示网络状态。
    利用netstat指令可让你得知整个Linux系统的网络情况。
    语法:

     netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
    
    • 1

    参数说明:

    -a或–all 显示所有连线中的Socket。
    -A<网络类型>或–<网络类型> 列出该网络类型连线中的相关地址。
    -c或–continuous 持续列出网络状态。
    -C或–cache 显示路由器配置的快取信息。
    -e或–extend 显示网络其他相关信息。
    -F或–fib 显示FIB。
    -g或–groups 显示多重广播功能群组组员名单。
    -h或–help 在线帮助。
    -i或–interfaces 显示网络界面信息表单。
    -l或–listening 显示监控中的服务器的Socket。
    -M或–masquerade 显示伪装的网络连线。
    -n或–numeric 直接使用IP地址,而不通过域名服务器。
    -N或–netlink或–symbolic 显示网络硬件外围设备的符号连接名称。
    -o或–timers 显示计时器。
    -p或–programs 显示正在使用Socket的程序识别码和程序名称。
    -r或–route 显示Routing Table。
    -s或–statistice 显示网络工作信息统计表。
    -t或–tcp 显示TCP传输协议的连线状况。
    -u或–udp 显示UDP传输协议的连线状况。
    -v或–verbose 显示指令执行过程。
    -V或–version 显示版本信息。
    -w或–raw 显示RAW传输协议的连线状况。
    -x或–unix 此参数的效果和指定"-A unix"参数相同。
    –ip或–inet 此参数的效果和指定"-A inet"参数相同。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    实例如何查看系统都开启了哪些端口?

    [root@centos6 ~ 13:20 #55]## netstat -lnp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1035/sshd
    tcp 0 0 :::22 :::* LISTEN 1035/sshd
    udp 0 0 0.0.0.0:68 0.0.0.0:* 931/dhclient 7 Active UNIX domain sockets (only servers)
    Proto RefCnt Flags Type State I-Node PID/Program name Path
    unix 2 [ ACC ] STREAM LISTENING 6825 1/init @/com/ubuntu/upstart
    unix 2 [ ACC ] STREAM LISTENING 8429 1003/dbus-daemon /var/run/dbus/syst em_bus_socket
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    如何查看网络连接状况?

    [root@centos6 ~ 13:22 #58]## netstat -an
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address Foreign Address State
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
    tcp 0 0 192.168.147.130:22 192.168.147.1:23893 ESTABLISHED
    tcp 0 0 :::22 :::* LISTEN
    udp 0 0 0.0.0.0:68 0.0.0.0:*
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    如何统计系统当前进程连接数?输入命令:

    netstat -an | grep ESTABLISHED | wc -l
    
    • 1

    输出结果 177 ,一共有 177 连接数。
    用 netstat 命令配合其他命令,如按照源 IP 统计所有到80 端口的ESTABLISHED 状态链接的个数

    netstat -tunlp
    netstat -an

    压缩成.tar.gz压缩包

    tar -czvf 1.tar.gz /dirname
    tar -czvf 1.tar.gz *

    grep查找

    grep反查

    如:grep test:查找包含test的行,grep -v test查找不包含test的行
    grep -v test

    查找关键字前后的N行

    grep -C 5 ‘false’ catalina.out //上下5行
    grep -B 5 ‘false’ catalina.out //前5行
    grep -A 5 ‘false’ catalina.out //后5行

    满足任意条件(word1、word2和word3之一)将匹配。

    grep -E “word1|word2|word3” file.txt

    必须同时满足三个条件(word1、word2和word3)才匹配。

    grep word1 file.txt | grep word2 |grep word3

    grep 同时排除多个关键字

    grep -v ‘word1|word2’ abc.txt

    wc统计文件行数,单词数,字符数等

    wc file //分别打印出文件的行数、单词数和字符数
    wc -l file //行数
    wc -w file //单词数
    wc -c file //字符数

    命令说明

    -h 或 --help 或 help
    man
    info

    解压

    将压缩文件text.zip在当前目录下解压缩。

    unzip test.zip

    将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。

    unzip -n test.zip -d /tmp

    查看压缩文件目录,但不解压。

    unzip -v test.zip

    将压缩文件test.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件。

    unzip -o test.zip -d tmp/

    压缩

    zip -r a.zip ./a/

    linux中快速清空文件内容的几种方法

    $ : > filename
    $ > filename
    $ echo “” > filename
    $ echo > filename
    $ cat /dev/null > filename

    查看进程

    ps -ef 或者 ps -aux 或者pgrep mysql -a

    关机相关

    shutdown: shutdown -h now: 指定现在立即关机;
    shutdown +5 “System will shutdown after 5 minutes”:指定5分钟后关机,同时送出警告信息给登入用户。

    reboot -w: 做个重开机的模拟(只有纪录并不会真的重开机)

    按时间查询文件

    find / -cmin -1  查询根路径下最近一分钟新增的文件
    find / -ctime -1  查询根路径下最近一天新增的文件

    Linux系统下用find命令查找最近修改过的文件

    https://www.cnblogs.com/hechunhua/p/4860544.html

    scp

    1.从linux本机文件上传到另一台linux

    格式:
    scp 要传的文件 root@目标ip:路径
    scp –r 要传的目录 root@目标ip:路径
    例子:
    scp /root/1.txt root@192.168.3.1:/root # 上传文件
    scp -r /root/data root@192.168.3.1:/root #上传目录

    2.从linux下载文件到linux本机:

    格式:
    scp root@192.168.3.1:/root/data /root
    scp命令用户名@目标IP地址:文件路径本地位置
    例子:
    scp root@192.168.3.1:/root/1.txt /root #下载文件
    scp -r root@192.192.3.1:/root/data /root #下载目录

    文件授权

    chmod

    Linux/Unix 的文件调用权限分为三级 : 文件拥有者、群组、其他。利用 chmod 可以控制文件如何被他人所调用。
    用于改变 linux 系统文件或目录的访问权限。用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设
    定法。
    每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。
    可使用 ls -l test.txt 查找。
    以文件 log2012.log 为例:

    -rw-r--r-- 1 root root 296K 11-13 06:03 log2012.log
    
    • 1

    第一列共有 10 个位置,第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。如果是 d,表示是一个目录。
    从第二个字符开始到第十个 9 个字符,3 个字符一组,分别表示了 3 组用户对文件或者目录的权限。权限字符用横线代表空许可,r 代表只读,w 代表写,x 代表可执行。常用参
    数:

    -c 当发生改变时,报告处理信息
    -R 处理指定目录以及其子目录下所有文件
    
    • 1
    • 2

    权限范围:

    u :目录或者文件的当前的用户
    g :目录或者文件的当前的群组
    o :除了目录或者文件的当前用户或群组之外的用户或者群组
    a :所有的用户及群组
    
    • 1
    • 2
    • 3
    • 4

    权限代号:

    r :读权限,用数字4表示
    w :写权限,用数字2表示
    x :执行权限,用数字1表示
    - :删除权限,用数字0表示
    s :特殊权限
    
    • 1
    • 2
    • 3
    • 4
    • 5

    实例:
    (1) 增加文件 t.log 所有用户可执行权限

    chmod a+x t.log
    
    • 1

    (2) 撤销原来所有的权限,然后使拥有者具有可读权限,并输出处理信息

    chmod u=r t.log -c
    
    • 1

    (3) 给 file 的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行
    的权限,给其他用户分配执行的权限

    chmod 751 t.log -c(或者:chmod u=rwx,g=rx,o=x t.log -c)
    
    • 1

    (4) 将 test 目录及其子目录所有文件添加可读权限

    chmod u+r,g+r,o+r -R text/ -c
    
    • 1
    chown

    chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户 ID;组可以是组名或者组 ID;文件是以空格分开的要改变权限的文件列表,支持通配符。

    -c 显示更改的部分的信息
    -R 处理指定目录及子目录
    
    • 1
    • 2

    实例:
    (1) 改变拥有者和群组 并显示改变信息

    chown -c mail:mail log2012.log
    
    • 1

    (1) 改变文件群组

    chown -c :mail t.log
    
    • 1

    (2) 改变文件夹及子文件目录属主及属组为 mail

    chown -cR mail: test/
    
    • 1

    磁盘管理相关命令

    cd

    cd(changeDirectory) 命令语法:

    cd [目录名]
    
    • 1

    说明:切换当前目录至 dirName。

    实例:
    (1)进入根目录

    cd /
    
    • 1

    (2) 进入 “home” 目录

    cd ~
    
    • 1

    (3) 进入上一次工作路径

    cd -
    
    • 1

    (4) 进入上级路径

    cd ..
    
    • 1

    (5) 把上个命令的参数作为cd参数使用。

    cd!$
    
    • 1
    df

    显示磁盘空间使用情况。获取硬盘被占用了多少空间,目前还剩下多少空间等信息,如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。
    默认情况下,磁盘空间将以 1KB 为单位进行显示,除非环境变量POSIXLY_CORRECT 被指定,那样将以512字节为单位进行显示。
    参数:

    -a 全部文件系统列表
    -h 以方便阅读的方式显示信息
    -i 显示inode信息
    -k 区块为1024字节
    -l 只显示本地磁盘
    -T 列出文件系统类型
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    实例:
    (1) 显示磁盘使用情况

    df ‐l
    
    • 1

    (2) 以易读方式列出所有文件系统及其类型

    df ‐haT
    
    • 1
    du

    du 命令也是查看使用空间的,但是与 df 命令不同的是 Linux du 命令是对文件和目录磁盘使用的空间的查看:命令格式:

    du [选项] [文件]
    
    • 1

    常用参数:

    -a 显示目录中所有文件大小
    -k 以KB为单位显示文件大小
    -m 以MB为单位显示文件大小
    -g 以GB为单位显示文件大小
    -h 以易读方式显示文件大小
    -s 仅显示总计
    -c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    实例:
    (1) 以易读方式显示文件夹内及子文件夹大小

    du -h scf/
    
    • 1

    (2) 以易读方式显示文件夹内所有文件大小

    du -ah scf/
    
    • 1

    (3) 显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和

    du -hc test/ scf/
    
    • 1

    (4) 输出当前目录下各个子目录所使用的空间

    du -hc --max-depth=1 scf/
    
    • 1
    ls

    就是 list 的缩写,通过 ls 命令不仅可以查看 linux 文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限) 查看目录信息等等。
    常用参数搭配:

    ls -a 列出目录所有文件,包含以.开始的隐藏文件
    ls -A 列出除.及..的其它文件
    ls -r 反序排列
    ls -t 以文件修改时间排序
    ls -S 以文件大小排序
    ls -h 以易读大小显示
    ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    实例:
    (1) 按易读方式按时间反序排序,并显示文件详细信息

    ls -lhrt
    
    • 1

    (2) 按大小反序显示文件详细信息

    ls -lrS
    
    • 1

    (3)列出当前目录中所有以"t"开头的目录的详细内容

    ls -l t*
    
    • 1

    (4) 列出文件绝对路径(不包含隐藏文件)

    ls | sed"s:^: pwd /:"
    
    • 1

    (5) 列出文件绝对路径(包含隐藏文件)

    find $pwd -maxdepth 1 |xargs ls -ld
    
    • 1
    mkdir

    mkdir 命令用于创建文件夹。
    可用选项:

    -m: 对新建目录设置存取权限,也可以用 chmod 命令设置;
    -p: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录。
    
    • 1
    • 2

    实例:
    (1) 当前工作目录下创建名为 t的文件夹

    mkdir t
    
    • 1

    (2) 在 tmp 目录下创建路径为 test/t1/t 的目录,若不存在,则创建:

    mkdir -p /tmp/test/t1/t
    
    • 1
    pwd

    pwd 命令用于查看当前工作目录路径。
    实例:
    (1) 查看当前路径

    pwd
    
    • 1

    (2) 查看软链接的实际路径

    pwd -P
    
    • 1
    rmdir

    从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对其父目录的写权限。
    注意:不能删除非空目录
    实例:
    (1)当 parent 子目录被删除后使它也成为空目录的话,则顺便一并删除:

    rmdir -p parent/child/child11
    
    • 1

    linux系统下查看CPU、内存负载情况

    vmstat
    $ vmstat
    procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
    r b    swpd   free  buff cache 		si so      bi bo   	 in cs  	us sy id wa st
    1 4    329796 26040 4528 3379824    1  1       50 160  	 36 17 		2  10 85 3  0
    
    • 1
    • 2
    • 3
    • 4

    结果解释如下:

    1. procs

      • r 列表示运行和等待cpu时间片的进程数,如果长期大于1,说明cpu不足,需要增加cpu。
      • b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。
    2. memory

      • swpd 切换到内存交换区的内存数量(k表示)。如果swpd的值不为0,或者比较大,比如超过了100m,只要si、so的值长期为0,系统性能还是正常
      • free 当前的空闲页面列表中内存数量(k表示)
      • buff 作为buffer cache的内存数量,一般对块设备的读写才需要缓冲。
      • cache: 作为page cache的内存数量,一般作为文件系统的cache,如果cache较大,说明用到cache的文件较多,如果此时IO中bi比较小,说明文件系统效率比较好。
    3. swap

      • si 由内存进入内存交换区数量。
      • so由内存交换区进入内存数量。
    4. IO

      • bi 从块设备读入数据的总量(读磁盘)(每秒kb)。
      • bo 块设备写入数据的总量(写磁盘)(每秒kb)
    5. system 显示采集间隔内发生的中断数

      • in 列表示在某一时间间隔中观测到的每秒设备中断数。
      • cs列表示每秒产生的上下文切换次数,如当 cs 比磁盘 I/O 和网络信息包速率高得多,都应进行进一步调查。
    6. cpu 表示cpu的使用状态

      • us 列显示了用户方式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。
      • sy 列显示了内核进程所花费的cpu时间的百分比。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。
      • id 列显示了cpu处在空闲状态的时间百分比
      • wa 列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。
      • st 被虚拟机所盗用的 CPU 百分比。Prior to Linux 2.6.11, unknown.
  • 相关阅读:
    delphi中Message消息的使用方法
    改善游戏体验:数据分析与可视化的威力
    php 获取音频时长等信息
    轻松掌握 jQuery 基础
    “氛围感 真环绕”可拆卸自由观影新物种 ——索尼发布“积木音响”HT-AX7
    kubeadm升级k8s集群
    .Net依赖注入神器Scrutor(下)
    从语法的角度刷LeetCode题库
    Linux accept和FD_xxx的使用
    qt指定窗体背景色以及各种颜色(生成调色方案)
  • 原文地址:https://blog.csdn.net/wenqiangluyao/article/details/126902475