精华内容
参与话题
问答
  • linux工具之jq

    千次阅读 2019-01-04 14:31:14
    linux工具之jq 后端开发的工程师经常在linux下开发,当我们拿到一个json格式的数据时,如何有效对这个数据进行分析?我们可以采用python结合json库来分析,但是linux有一个很好用的工具,让我们可以方便地处理json...

    linux工具之jq

    后端开发的工程师经常在linux下开发,当我们拿到一个json格式的数据时,如何有效对这个数据进行分析?我们可以采用python结合json库来分析,但是linux有一个很好用的工具,让我们可以方便地处理json文本,功能非常强大。

    官方文档

    下载

    参考官网说明
    macOS:

    brew install jq
    

    Linux

    sudo apt-get install jq
    

    使用

    数据准备

    jq可以把json的文本输出为可读形式,我准备了一份测试json数据,如下:

    {
        "name": "xueyuan",
        "age": 21,
        "birthday": "10th August",
        "email": "im.hexueyuan@outlook.com",
        "skills" : [
            "C/C++",
            "Python",
            "Golang",
            "Node.js"
        ]
    }
    

    我使用python的json库把它处理为一个字符串,如下:

    {"skills": ["C/C++", "Python", "Golang", "Node.js"], "age": 21, "birthday": "10th August", "name": "xueyuan", "email": "im.hexueyuan@outlook.com"}
    

    这个格式是我们在实际生产中经常看到的格式,比如我们使用curl请求一个接口,返回了一个json,比如我们在自己的项目中测试输出了一个json数据,这种格式往往可读性较差,我们需要进行处理后才能查看。

    使用

    要转换成python处理前的那一种易读形式很简单,执行:

    cat json2.data | jq '.'
    #也可以写作 cat json2.data | jq .
    #不加引号,但是为了标准最好写上,因为某些时候不加会有问题.
    

    输出
    在这里插入图片描述
    jq把数据转换成易读格式,还添加了颜色高亮说明,其中key和value使用了不同的颜色。

    如果json数据很大,我们只想看其中某个字段数据,那么使用如下语法:

    #key是字段名称
    jq '.<key>'
    

    测试
    在这里插入图片描述

    当某个字段是一个列表,jq可以对其进行切片

    jq '.<list-key>[s:e]'
    

    测试
    在这里插入图片描述
    切片支持图中几种格式,注意和python列表切片方式进行区分。

    区别一下’.skills’和’.skills[]'两种,可以看到前者输出是一个列表,后者是非json格式的列表成员。

    用法详解

    上一节是jq的常用用法,这里讲解jq的具体原理。

    jq从linux管道或者文件中获取文本输入,如果文本不满足json格式,那么jq会报错,可以用这个方法来检查一个文本是否满足json检查:

    jq '.' json_file > /dev/null
    

    jq使用filter来处理json文本,并输出filter处理后的内容到标准输出,filter是用来过滤满足需求的字段的,比如最简单的filter '.',这个表示无过滤策略,因此会输出全部json文本。

    key filter

    '.<key>'
    

    过滤满足key的字段名,输出这个key的值。

    key-value filter

    '<key>'
    

    输出key和value,区别key filter,如下
    在这里插入图片描述
    因为key-value必须归属于某个对象,所以添加外层{}。

    index filter

    '.<list-key>[index]'
    '.<list-key>[index1, index2]'
    '.<list-key>[s:e]'
    '.<list-key>[:e]'
    '.<list-key>[s:]'
    '.<list-key>[]'
    

    数组索引和切片,用来操作列表元素。

    嵌套层级filter

    '.key1.key2.key3'
    

    用于嵌套的json数据filter。

    多个filter

    '.key1, .key2, .key3'
    

    使用英文单字节逗号分隔filter,用于在一个filter中过滤多个字段。

    filter管道

    'filter1 | filter2 | filter3'
    

    example

    jq '.contact | .phone | .home' people.json
    

    由于大部分filter之后,输出仍然是一个json数据,所以可以将filter通过管道连接。

    重新组织filter后输出的数据
    有时候我们需要重新构造json的结构,比如去掉某一层嵌套,比如取某几个字段组成一个新的json,这时候我们需要重新改变json的结构,我们可以使用[]{}来重新组织json。

    #把输出组织成一个列表
    jq '[filter1, filter2, filter3]' data.json
    

    测试
    在这里插入图片描述

    #把输出组织为新的json对象
    jq '{filter1, filter2, filter3}' data.json
    

    测试
    在这里插入图片描述

    递归展开json结构
    有时候我们需要在一个json里边查找某个字段,但是确不知道这个字段在哪个嵌套里边,如果嵌套很深那么很难找到,jq可以把嵌套展开打平之后再查找。

    #展开嵌套
    jq '..' data.json
    

    测试
    在这里插入图片描述
    展开之后结合管道再次filter可以查找key。

    length filter
    计算元素长度,对于对象,length表示对象里的元素个数,对于string,length表示string字符数,对于列表,表示列表元素个数。

    测试
    在这里插入图片描述

    keys filter
    输出全部的key,列表形式
    测试
    在这里插入图片描述

    检查某个key是否存在
    如果输入是一个对象,那么对象的元素是以"key-value"形式存在的,使用

    jq 'has("key-name")' data.json
    

    检查json对象是否含有某个key。

    列表遍历
    jq支持使用map()或者map_values()遍历列表,或者对象的值。

    测试
    在这里插入图片描述

    删除某个key

    jq 'del(filter)' json.data
    

    使用del()删除filter描述的key-value。

    了解更多

    上一节只说明了jq比较常用的功能,实际上jq还有更多实用的filter,如果上述的功能还没有满足你的需求,你可以在jq项目地址上找到详细说明。

    展开全文
  • 【秋招面试必备】第一弹——Linux工具

    千次阅读 多人点赞 2020-10-03 17:06:30
    Linux工具 Linux下还是有很多超棒的开发工具的。 在Linux日常使用中,最常用的命令自然是sudo, ls, cp, mv, cat等,但作为后台开发者,上述命令远远不够。从我的理解来看,合格的C/C++开发者至少需要从开发及调试...

    Linux工具

    Linux下还是有很多超棒的开发工具的。

    在Linux日常使用中,最常用的命令自然是sudo, ls, cp, mv, cat等,但作为后台开发者,上述命令远远不够。从我的理解来看,合格的C/C++开发者至少需要从开发及调试工具、文件处理、性能分析、网络工具四个方面针对性使用一些开发工具。这里我罗列了一些,大部分都是开发中经常需要使用的命令,有些功能比较简单的命令我会给出一些基本用法,有些本身自带体系(比如vim, gdb等)的命令只能附上链接了。

    开发及调试工具介绍了从“编辑 -> 编译 -> 分析目标文件 -> 追踪调用过程”的全套命令,文件处理部分介绍了查找、统计、替换等基本文本操作命令,性能分析介绍了查看进程信息、CPU负载、I/O负载、内存使用情况等基本命令,网络工具介绍了可以查看“链路层 -> 网络层 -> 传输层 -> 应用层”信息的工具。除此以外,其他命令中也列出了开发者经常会用到的一些命令,基本可以满足日常开发需要。


    目录

    Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5
    开发及调试 文件处理 性能分析 网络工具 其他
    • 开发及调试

      • 编辑器:vim
      • 编译器:gcc/g++
      • 调试工具:gdb
      • 查看依赖库:ldd
      • 二进制文件分析:objdump
      • ELF文件格式分析:readelf
      • 跟踪进程中系统调用:strace
      • 跟踪进程栈:pstack
      • 进程内存映射:pmap
    • 文件处理

      • 文件查找:find
      • 文本搜索:grep
      • 排序:sort
      • 转换:tr
      • 按列切分文本:cut
      • 按列拼接文本:paste
      • 统计行和字符:wc
      • 文本替换:sed
      • 数据流处理:awk
    • 性能分析

      • 进程查询:ps
      • 进程监控:top
      • 打开文件查询:lsof
      • 内存使用量:free
      • 监控性能指标:sar
    • 网络工具

      • 网卡配置:ifconfig
      • 查看当前网络连接:netstat
      • 查看路由表:route
      • 检查网络连通性:ping
      • 转发路径:traceroute
      • 网络Debug分析:nc
      • 命令行抓包:tcpdump
      • 域名解析工具:dig
      • 网络请求:curl
    • 其他

      • 终止进程:kill
      • 修改文件权限:chmod
      • 创建链接:ln
      • 显示文件尾:tail
      • 版本控制:git
      • 设置别名:alias

    内容

    开发及调试

    开发工具大部分都提供了完善的功能,所以这里不一一列举用法。从技术层面来说,调试工具比开发工具更考验一个人的工程能力。

    1. 编辑器:vim

      • 服务器端开发必知必会,功能强大,这里不一一列举,但基本的打开文件、保存退出要会。
      • 详见
    2. 编译器:gcc/g++

      • C/C++编译器,必知必会,除此以外需要了解预处理-> 编译 -> 汇编 -> 链接等一系列流程。
      • 详见
    3. 调试工具:gdb

      • 服务器端调试必备。
      • 详见
    4. 查看依赖库:ldd

      • 程序依赖库查询
      # ldd后接可执行文件
      # 第一列为程序依赖什么库,第二列为系统提供的与程序需要的库所对应的库,第三列为库加载的开始地址
      # 前两列可以判断系统提供的库和需要的库是否匹配,第三列可以知道当前库在进程地址空间中对应的开始位置
      
      ldd a.out
      
    5. 二进制文件分析:objdump

      • 反汇编,需要理解汇编语言
      • 详见
    6. ELF文件格式分析:readelf

      • 可以得到ELF文件各段内容,分析链接、符号表等需要用到
      • 详见
    7. 跟踪进程中系统调用:strace

    8. 跟踪进程栈:pstack

    9. 进程内存映射:pmap

      • 显示进程内存映射
      # -x显示扩展信息,后接进程pid
      # Address: 内存开始地址
      # 显示信息:
          Kbytes: 占用内存的字节数
          RSS: 保留内存的字节数
          Dirty: 脏页的字节数(包括共享和私有的)
          Mode: 内存的权限:read、write、execute、shared、private
          Mapping: 占用内存的文件、或[anon](分配的内存)、或[stack](堆栈)
          Device: 设备名 (major:minor)
      
      pmap -x 12345
      

    文件处理

    Everything is file. 在Linux环境下,对文本处理相当频繁,所以有些命令的参数还是需要记忆的。另外其他很多命令的输出信息都需要通过文件处理命令来筛选有用信息。

    1. 文件查找:find

      按名查找:

      - 查找具体文件(一般方式)

      find . -name *.cpp
      

      - 查找具体文件(正则方式)

      # -regex为正则查找,-iregex为忽略大小写的正则查找 
      
      find -regex ".*.cpp$"
      

      定制查找:
      - 按类型查找

      # f(file)为文件,d(dictionary)为目录,l(link)为链接
      
      find . -type f
      

      - 按时间查找

      # atime为访问时间,x天内加参数"-atime -x",超过x天加"-atime -x"
      # mtime为修改时间
      
      find . -type f -atime -7
      

      - 按大小查找

      # -size后接文件大小,单位可以为k(kb),m(MB),g(GB)
      
      find . -type f -size -1k
      

      - 按权限查询

      # -perm后接权限
      
      find . -type -perm 644
      
    2. 文本搜索:grep
      - 模式匹配

      # 匹配test.cpp文件中含有"iostream"串的内容
      
      grep "iostream" test.cpp  
      

      - 多个模式匹配

      # 匹配test.cpp文件中含有"iostream"和"using"串的内容
      
      grep -e "using" -e "iostream" test.cpp  
      

      - 输出信息

      # -n为打印匹配的行号;-i搜索时忽略大小写;-c统计包含文本次数
      
      grep -n "iostream" test.cpp  
      
    3. 排序:sort
      - 文件内容行排序

      # 排序在内存进行,不改变文件
      # -n(number)表示按数字排序,-d(dictionary)表示按字典序
      # -k N表示按各行第N列进行排序
      # -r(reverse)为逆序排序
      
      sort -n -k 1 test
      
    4. 转换:tr
      - 字符替换

      # 转换在内存进行,不改变文件
      # 将打开文件中所有目标字符替换
      
      cat test | tr '1' '2'
      

      - 字符删除

      # 转换在内存进行,不改变文件
      # -d删除(delete)
      
      cat test | tr -d '1'
      

      - 字符压缩

      # 转换在内存进行,不改变文件
      # -s位于后部
      
      cat test | tr ' ' -s
      
    5. 按列切分文本:cut
      - 截取特定列

      # 截取的内存进行,不改变文件
      # -b(byte)以字节为单位,-c(character)以字符为单位,-f以字段为单位
      # 数字为具体列范围
      
      cut -f 1,2 test
      

      - 指定界定符

      # 截取的内存进行,不改变文件
      # -d后接界定符
      
      cut -f 2 -d ',' new
      
    6. 按列拼接文本:paste
      - 按列拼接

      # 在内存中拼接,不改变文件
      # 将两个文件按对应列拼接
      # 最后加上-d "x"会将x作为指定分隔符(paste test1 test2 -d ",")
      # 两文件列数可以不同 
      
      paste test1 test2
      

      - 指定界定符拼接

      # 在内存中拼接,不改变文件
      # 按照-d之后给出的界定符拼接
      
      paste test1 test2 -d ","
      
    7. 统计行和字符:wc
      - 基本统计

      # -l统计行数(line),-w统计单词数(word),-c统计字符数(character)
      
      wc -l test
      
    8. 文本替换:sed

      • 区别于上面的命令,sed是可以直接改变被编辑文件内容的。
      • 详见
    9. 数据流处理:awk

      • 区别于上面的命令,awk是可以直接改变被编辑文件内容的。
      • 详见

    系统信息

    性能监视工具对于程序员的作用就像是听诊器对于医生的作用一样。系统信息主要针对于服务器性能较低时的排查工作,主要包括CPU信息,文件I/O和内存使用情况,通过进程为纽带得到系统运行的瓶颈。

    1. 进程查询:ps

      • 查看正在运行进程
      # 常结合grep筛选信息(e.g, ps -ef | grep xxx)
      
      ps -ef
      
      • 以完整格式显示所有进程
      # 常结合grep筛选信息
      
      ps -ajx
      
    2. 进程监控:top

      • 显示实时进程信息
      # 这是个大招,都不带参数的,具体信息通过grep筛选
      # 交互模式下键入M进程列表按内存使用大小降序排列,键入P进程列表按CPU使用大小降序排列
      # %id表示CPU空闲率,过低表示可能存在CPU存在瓶颈
      # %wa表示等待I/O的CPU时间百分比,过高则I/O存在瓶颈 > 用iostat进一步分析
      
      top
      
    3. 打开文件查询:lsof

      • 查看占用某端口的进程
      # 最常见的就是mysql端口被占用使用(lsof i:3307)
      # 周知端口(ftp:20/21, ssh:22, telnet:23, smtp:25, dns:53, http:80, pop3:110, https:443)
      
      lsof -i:53
      
      • 查看某用户打开的文件
      # -u(user)为用户,后接用户名
      
      lsof -u inx
      
      • 查看指定进程打开的文件
      # -p(process)为进程,后接进程PID
      
      lsof -p 12345
      
      • 查看指定目录下被进程打开的文件
      # 这里是"+d",需要注意,使用"+D"递归目录
      
      lsof +d /test
      
    4. 内存使用量:free

      • 内存使用量
      # 可获得内存及交换区的总量,已使用量,空闲量等信息
      
      free
      
    5. 监控性能指标:sar

      监控CPU

      • 监控CPU负载
      # 加上-q可以查看运行队列中进程数,系统上进程大小,平均负载等
      # 这里"1"表示采样时间间隔是1秒,这里"2"表示采样次数为2
      
      sar -q 1 2
      
      • 监控CPU使用率
      # 可以显示CPU使用情况
      # 参数意义同上
      
      sar -u 1 2
      

      监控内存

      • 查询内存
      # 可以显示内存使用情况
      # 参数意义同上 
      
      sar -r 1 2
      
      • 页面交换查询
      # 可以查看是否发生大量页面交换,吞吐率大幅下降时可用
      # 参数意义同上
      
      sar -W 1 2
      

    网络工具

    网络工具部分只介绍基本功能,参数部分一笔带过。这部分重点不在于工具的使用而是对反馈的数据进行解读,并且这部分命令功能的重合度还是比较高的。

    1. 网卡配置(链路层):ifconfig

      • 显示设备信息
      # 可以显示已激活的网络设备信息
      
      ifconfig
      
      • 启动关闭指定网卡
      # 前一个参数为具体网卡,后一个为开关信息
      # up为打开,down为关闭
      
      ifconfig eth0 up
      
      • 配置IP地址
      # 前一个参数为具体网卡,后一个为配置的IP地址
      
      ifconfig eth0 192.168.1.1
      
      • 设置最大传输单元
      前一个参数为具体网卡,后面为MTU的大小
      # 设置链路层MTU值,通常为1500
      
      ifconfig eth0 mtu 1500
      
      • 启用和关闭ARP协议
      # 开启arp如下,若关闭则-arp
      
      ifconfig eth0 arp
      
    2. 查看当前网络连接(链路层/网络层/传输层):netstat

      • 网络接口信息
      # 显示网卡信息,可结合ifconfig学习
      
      netstat -i
      
      • 列出端口
      # -a(all)表示所有端口,-t(tcp)表示所有使用中的TCP端口
      # -l(listening)表示正在监听的端口
      
      netstat -at
      
      • 显示端口统计信息
      # -s(status)显示各协议信息
      # -加上-t(tcp)显示tcp协议信息,加上-u(udp)显示udp协议信息
      
      netstat -s
      
      • 显示使用某协议的应用名
      # -p(progress)表示程序,可以显示使用tcp/udp协议的应用的名称
      
      netstat -pt
      
      • 查找指定进程、端口
      # 互逆操作第一个显示某程序使用的端口号,第二个显示某端口号的使用进程
      # 第二个操作可以用lsof替代
      
      netstat -ap | grep ssh
      netstat -an | grep ':80'
      
    3. 查看路由表(网络层IP协议):route

      • 查看路由信息
      # 得到路由表信息,具体分析路由表工作需要网络知识
      # 可以通过netstat -r(route)得到同样的路由表
      
      route
      
    4. 检查网络连通性(网络层ICMP协议):ping

      • 检查是否连通
      # 主要功能是检测网络连通性
      # 可以额外得到网站的ip地址和连接最大/最小/平均耗时。
      
      ping baidu.com
      
    5. 转发路径(网络层ICMP协议):traceroute

      • 文件包途径的IP
      # 
      # 可以打印从沿途经过的路由器IP地址
      
      traceroute baidu.com
      
    6. 网络Debug分析(网络层/传输层):nc

      • 端口扫描
      # 黑客很喜欢
      # 扫描某服务器端口使用情况
      # -v(view)显示指令执行过程,-w(wait)设置超时时长
      # -z使用输入输出模式(只在端口扫描时使用)
      # 数字为扫描的端口范围 
      
      nc -v -w 1 baidu.com  -z 75-1000
      
    7. 命令行抓包(网络层/传输层):tcpdump

      • 抓包利器,没有什么比数据更值得信赖。可以跟踪整个传输过程。
      • 详见
    8. 域名解析工具(应用层DNS协议):dig

      # 应用层,DNS
      # 打印域名解析结果
      # 打印域名解析过程中涉及的各级DNS服务器地址
      
      dig baidu.com
      
    9. 网络请求(应用层):curl


    其他

    这里都是日常开发中高频命令。

    1. 终止进程:kill

      • 杀死具体进程
      # 加具体进程PID
      
      kill 12345
      
      • 杀死某进程相关进程
      # 加上"-9"杀死某进程相关进程
      
      kill -9 12345
      
    2. 修改文件权限:chmod

      • 更改文件权限
      # 可以对三种使用者设置权限,u(user, owner),g(group),o(other)
      # 文件可以有三种权限,r(read),w(write),x(execute)
      # 这里u+r表示文件所有者在原有基础上增加文件读取权限
      # 这里777分别对应,u=7,g=7,o=7,具体数字含义自行google
      
      chmod u+r file
      chmod 777 file
      
    3. 创建链接:ln

      • 创建硬链接
      # 文件inode中链接数会增加,只有链接数减为0时文件才真正被删除
      
      ln file1 file2
      
      • 创建软(符号链接)链接
      # -s(symbol)为符号链接,仅仅是引用路径
      # 相比于硬链接最大特点是可以跨文件系统
      # 类似于Windows创建快捷方式,实际文件删除则链接失效
      
      ln -s file1 file2
      
    4. 显示文件尾:tail

      • 查看文件尾部
      # -f参数可以不立即回传结束信号,当文件有新写入数据时会及时更新
      # 查看日志时常用
      
      tail -f test
      
    5. 版本控制:git

      • 版本控制最好用的软件,没有之一。至少要知道"git init",“git add”,“git commit”,“git pull”,"git push"几个命令。
      • 详见
    6. 设置别名:alias

      • 常用命令添加别名
      # ".bashrc"文件中配置常用命令别名,生效后在命令行只需要使用别名即可代替原先很长的命令
      
      alias rm='rm -i'
      

    实战

    假设已经通过vim编辑,gcc编译得到可执行文件server,这时就可以使用一些开发者常用的工具来进行后期调试。这里都是给出最简单的用法,意在快速掌握一些基本开发工具。

    先clone这个项目,然后使用src_code下代码编译通过后通过下面命令调试。代码

    1. 单步调试:gdb

      • 运行得不到正确结果可以通过gdb设置断点来查看每个中间变量值,以此来确定哪里出了问题。因为gdb调试内容较多,这里不详细说明。另外,gdb出了可以单步查看变量值,还可以分析coredump文件来排查错误。
    2. 动态库依赖:ldd

      • 命令:ldd ./server

      • 可以查看可执行文件server所需的所有动态库,动态库所在目录及其被映射到的虚拟地址空间。

    3. 性能分析:top

      • top可以查看当前系统很多信息,比如1,5,15分钟内负载,运行、休眠、僵尸进程数,用户、内核程序占CPU百分比,存储信息等。top可以定位具体哪个进程CPU占用率高和内存使用率高。我们可以以此定位性能问题出在什么程序上(比如你后台执行TKeed server之后,可以看到CPU占用率为99%,这时候我们就需要从这个程序入手了)。
    4. 系统调用:strace

      • 命令:strace ./server

      • 上面已经提到TKeed server的CPU占用率为99%,那么问题通常一定是出在了死循环上。我们接下来在代码中找到死循环位置。因为程序中epoll_wait需要阻塞进程,我们怀疑是不是这里没有阻塞,这时就可以通过上面的方式运行server程序。此时可以打印出没次系统调用及其参数等,我们也可以加-o filename将系统调用信息保存下来。

    5. 打印进程:ps

      • 命令:ps -ejH

      • 我们在命令行下打开的程序的父进程是shell程序,之前用strace打开server程序,strace也是server的父进程。我们有时候需要知道进程间的层级关系就需要打印进程树,上面的ps命令可以做到。当出现僵尸进程时就可以通过进程树定位具体是哪个进程出了问题。另外当想要知道进程pid时,ps -el | grep XXX也是很常用的。

    6. 打开文件:lsof

      • lsof -i:3000

      • 比如在运行server时发现端口被占用了,可以通过lsof -i:port来查看对应端口号正在被哪个进程所占用。端口占用是非常常见的问题,比如3306被占用我遇到过好几次,要么是某个程序正好占用了要么是之前没能结束进程,这些都可以借助lsof帮助查看端口。

    7. 修改权限:chmod

      • chmod 000 ./index.html

      • 可以修改文件权限,这里设为000,这样任何人都无法访问,重新在浏览器请求127.0.0.1:3000/index.html就会因为文件权限不够而无法展示,服务器返回状态码为403,符合我们预期。修改权限后再请求一次可得到状态码200。

    8. 网卡信息:ifconfig

      • ifconfig

      • 如果想看一下整个传输过程,可以使用tcpdump来抓包,但是抓包时参数需要加上网卡信息,这时候可以通过ifconfig来获得网卡信息。

    9. 抓包分析:tcpdump

      • tcpdump -i eth0 port 3000

      序的父进程是shell程序,之前用strace打开server程序,strace也是server的父进程。我们有时候需要知道进程间的层级关系就需要打印进程树,上面的ps命令可以做到。当出现僵尸进程时就可以通过进程树定位具体是哪个进程出了问题。另外当想要知道进程pid时,ps -el | grep XXX也是很常用的。

    10. 打开文件:lsof

      • lsof -i:3000

      • 比如在运行server时发现端口被占用了,可以通过lsof -i:port来查看对应端口号正在被哪个进程所占用。端口占用是非常常见的问题,比如3306被占用我遇到过好几次,要么是某个程序正好占用了要么是之前没能结束进程,这些都可以借助lsof帮助查看端口。

    11. 修改权限:chmod

      • chmod 000 ./index.html

      • 可以修改文件权限,这里设为000,这样任何人都无法访问,重新在浏览器请求127.0.0.1:3000/index.html就会因为文件权限不够而无法展示,服务器返回状态码为403,符合我们预期。修改权限后再请求一次可得到状态码200。

    12. 网卡信息:ifconfig

      • ifconfig

      • 如果想看一下整个传输过程,可以使用tcpdump来抓包,但是抓包时参数需要加上网卡信息,这时候可以通过ifconfig来获得网卡信息。

    13. 抓包分析:tcpdump

      • tcpdump -i eth0 port 3000

      • 可以用tcpdump来抓包分析三次握手及数据传输过程,-i之后加上上一步得到的网卡地址,port可以指定监听的端口号。

    展开全文
  • Linux 工具收集

    千次阅读 2020-02-22 14:16:48
    1.应用场景 用于快速操作Linux, 提高工作效率. 2.... 工具一: putty: 免费, 简单, 易用 https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html //putty下载 ...

    1.应用场景

    用于快速操作Linux, 提高工作效率.

    2.学习/操作

    命令在线查询:

    https://www.linuxcool.com/

     

    1. 连接远程Linux服务器, 如: 云服务器[阿里云/腾讯云/华为云]

    工具一: putty: 免费, 简单, 易用

    https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html  //putty下载

     

    推荐下载 putty.exe //好处, 不用安装直接执行, 但是本电脑上出现报错如下: 原因TBD

     

    这里先使用: putty-64bit-0.73-installer.msi

    傻瓜式安装, 打开, 输入如下信息, 点击open

    点击yes

    输入账号密码,回车.

    如上所示, 已经进入系统中.

    更多使用暂请自行查找资料.

     

     

    备注:

    putty支持输入中文, 但是git bash/cmd 均不支持.

    工具二: xshell //不推荐, 原因收费, 而且爆出留有后门时间, 存在安全问题.

    具体使用省略.

     

     

    2. 传输文件

    工具一: WinSCP

    下载:  链接如下

    https://winscp.net/eng/index.php  //官网

    https://winscp.net/eng/download.php  //下载页面

    https://winscp.net/download/WinSCP-5.17-Setup.exe   //下载链接

     

    安装: 傻瓜式安装, 省略.

     

    使用: 直接打开软件, 输入地址, 账号, 密码即可, 暂时省略.

     

     

     

     

    后续补充

    ....

    3.问题/补充

    1. putty连接远程服务器时, vim编辑时支持中文输入,  git bash/cmd 不支持?

    经过确认是支持的. 不论是系统自带的输入法, 还是第三方输入法, 如 搜狗输入法

     

    ...

    4.参考

    https://blog.csdn.net/william_n/article/details/103140509

    https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

    https://winscp.net/eng/index.php

    后续补充

    ...

     

    展开全文
  • Kali Linux工具文档翻译计划

    万次阅读 2017-03-15 21:38:09
    Kali Linux工具文档翻译计划Kali Tools Translate Volunteers是一个公益项目,简称KTTV,目标是将 http://tools.kali.org/tools-listing 的所有说明文档汉化。也许你是: 技术狂人 安全健将 英语达人 管理能手 哪怕...

    Kali Linux工具文档翻译计划

    Kali Tools Translate Volunteers是一个公益项目,简称KTTV,目标是将 http://tools.kali.org/tools-listing 的所有说明文档汉化。

    也许你是:

    • 技术狂人
    • 安全健将
    • 英语达人
    • 管理能手

    哪怕你没有强大的渗透技术,我们也能一起创造历史。

    加入项目,你将从中得到:

    • 良好的团队协作能力
    • 五湖四海的朋友
    • 一场有意义的经历
    • 一些预料不到的惊喜

    来吧,不妨让情怀挥洒一次,因为你我的努力将降低更多人接触Kali的门槛,为网络安全做出自己的贡献。

    项目地址:kalitools.github.io

    QQ群:146478946

    展开全文
  • Xshell5远程连接Linux工具设置

    千次阅读 2018-03-27 12:29:42
    Xftp5是文件传输工具,实现windows与linux直降文件传输Xshell5是远程连接linux工具,实现连接linux服务器连接xftp5连接linux服务器:Xshell5连接linux服务器:设置密码保存自动登录设置字体大小和颜色...
  • Xshell免费版安装 常用连接linux工具

    千次阅读 2019-02-25 17:32:17
    1 常用连接linux工具 2 putty: 推荐 ❤ 3 Xshell: 中文绿色版 推荐 ❤❤❤ 4 mobaXterm 绿色版 推荐 ❤❤❤❤❤ 手打不容易,感觉好就赞一毛钱地 1 常用连接linux工具 一般我们装linux,基本上都是用来做服务器...
  • 这里是最好的 Kali Linux 工具列表,它们可以让你评估 Web 服务器的安全性,并帮助你执行黑客渗透测试。-- Ankush Das如果你读过Kali Linu...
  • 链接Linux工具(SecureCRT)

    千次阅读 2018-01-16 09:12:51
    链接Linux工具(SecureCRT) SecureCRT下载 点我下载 http://download.csdn.net/download/weixin_39549656/10207279 安装 先运行注册机 链接 输入密码 出现以下界面就说明成功了 命令 ipconfig...
  • 下面介绍几款文件传输工具SSHSecureShellClientSSHSecureShellClient是比较原始的 轻量的传输工具。http://download.csdn.net/detail/q383965374/6474765下载安装后 会有一个远程登录linux服务器的客户端和一
  • 使用 Linux 工具进行计算机取证

    千次阅读 2016-06-15 09:26:18
    使用 Linux 工具进行计算机取证  本文通过介绍 Linux 系统工具(Ftkimage、xmount、Volatility、dd、netcat)来介绍使用计算机取证的方法和步骤。 硬盘数据的取证是指为了证据保全,确保取证工作造成数据丢失,在...
  • 一些Linux工具

    千次阅读 2016-05-09 16:10:44
    因为笔者本科是学电子的,所以大概去年的这个时候,我还对Linux一点儿也不了解,我一直以为操作系统就是Windows那样的,写程序就该是用VS那样的IDE。所以,刚接触Linux的时候我极端不适应,我可以说是很排斥用Linux...
  • BusyBox---- Linux 工具里的瑞士军刀

    千次阅读 2016-12-20 13:46:18
    一、简介BusyBox 是一个集成了一百多个最常用linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。有些人将 BusyBox ...
  • 常用的远程连接Linux工具有哪些??

    万次阅读 2016-07-30 22:06:48
    常用的远程连接Linux工具有:XShell、Putty、SecureCRT、等。下面重点介绍该三种工具:1、Xshell:是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。软件强大,在windows...
  • 常用连接linux工具

    千次阅读 2015-03-27 01:35:51
    本篇文章,将会介绍在工作中接触的常用连接linux工具。 putty 下载地址 host Name设置一个ip或者主机名,Sessions设置别名,Connection type选择ssh(默认linux是开启ssh端口的)点击左
  • arm-linux工具链下载地址搜集

    千次阅读 2009-08-18 21:54:00
    开发ARM Linux应用必备的工具首当其冲的就是arm-linux工具链(toolchain)了。自己从源代码构建arm-linux交叉编译工具链是一件很麻烦的事情,所以如果能下载到预先编译好的工具链是比较节省时间的做法。为此我也搜集...
  • NUMA的Linux工具:numactl

    千次阅读 2019-05-08 14:07:13
    作者:qccz123456 ...NUMA(Non-Uniform Memory Access)字面直译为“非一致性内存访问”,对于Linux内核来说最早出现在2.6.7版本上。这种特性对于当下大内存+多CPU为潮流的X86平台来说确实会有不...
  • 安装windows下的Linux工具

    千次阅读 2017-04-15 17:54:20
    安装Cygwin,可以在windows下使用很多unix工具,甚至可以用linux的shell来工作。——也许顺便可以学习windows下的命令行,脚本,bat。 学习精通一种编辑器,或者emacs。选择学习vim,在windows下可以安装。学会后...
  • Windows下的Unix Linux工具集:UnxUtils

    千次阅读 2018-01-02 15:11:23
    公司总是有需求要在windows下执行类似linux下的命令,只是可惜dos命令功效有限(关键不熟),如果能使用到linux系统上类似grep,sed,awk三剑客之前没有在意,以为系统不同无法实现,总是找一些别的代替方法,今天无意...
  • linux工具——PPTP搭建及配置

    千次阅读 2018-06-30 10:03:42
    简介 安装 配置 客户端配置 1、安装软件包 ...yum install -y ppp pptp pptp-setup ...pptpsetup --create test --server IP --username 用户 --password 密码 --encrypt --start 连接 VPN 服务端。...
  • Linux工具大全_AsciiDoc

    千次阅读 2013-11-02 13:13:40
    AsciiDoc 是一个非常不错的文档格式化工具,使用它可以将一般的文本文档转换成 HTML 网页、Man 手册、以及 DocBook 等等。其输出的文档不仅可以包含常规的内容,而且对于数学公式或者音乐简谱同样能够胜任。 ...
  • Kali Linux 工具使用中文说明书

    千次阅读 2017-11-28 12:54:00
    From: https://www.hackfun.org/kali-tools/kali-tools-zh.html 英文版地址:http://tools.kali.org/    信息收集     acccheck ace-voip Amap Automater bing-ip2hosts ...cisco-torch...
  • Linux工具大全_bison

    千次阅读 2013-10-28 11:41:53
    参考资料 GNU bison_维基百科http://zh.wikipedia.org/wiki/GNU_bison Bison - GNU parser generatorhttp://www.gnu.org/software/bison/
  • 结合linux工具安装黑苹果小记

    千次阅读 2012-10-29 18:36:39
    对于普通玩家来说,成功装上要靠 rp,靠耐心。安装不可能很顺利,无法进安装界面很正常,甚至安装时死机也不奇怪。  关于Chameleon  现在的变色龙有启动光盘,方便很多,于是可以在grub(2)或u盘上的grub加一个...
  • 工具可以使用命令远程控制Linux,而且可以方便地与Linux系统进行文件的交互,使其在Linux与Windows之间搭起一座便捷的桥梁。  使用SSH Secure Shell Client远程控制Linux (1)安装SSH Secure ...
  • Linux Benchmark工具

    千次阅读 2019-01-20 20:00:20
    Linux Benchmark工具
  • Linux so库查看工具

    千次阅读 2016-08-18 09:45:50
    反汇编so库 Linux工具
  • kali Linux工具功能简介

    万次阅读 2018-08-10 09:41:44
    Kali Linux工具清单 https://tools.kali.org/tools-listing 名称 类型 使用模式 功能 功能评价 dmitry 信息收集   whois查询/子域名收集/端口扫描 whois并不简单明了;子域名和邮箱...
  • Linux漏洞建议工具Linux Exploit Suggester

    千次阅读 2017-05-16 15:34:59
    Linux漏洞建议工具Linux Exploit Suggester
  • 十大好用的Linux实用工具推荐

    千次阅读 2015-10-22 13:51:55
    本文我们收集了对 Linux 用户非常有用的 10 个工具,其中包括网络监控、系统审计或其它有用命令,这 10 个 Linux 工具可以帮助大家提高工作和使用效率,非常实用。其中包括网络监控、系统审计或其它有用命令.1.w对,...

空空如也

1 2 3 4 5 ... 20
收藏数 168,255
精华内容 67,302
关键字:

linux工具

linux 订阅