• ifconfig
  • 本机ip

  • hostname -i
  • 本机ip

  • curl ifconfig.io
  • 本机外网ip

  • ss
  • (https://www.cnblogs.com/yychuyu/p/11459575.html)
    Socket Statistics 的缩写,用来统计 socket 连接的相关信息,它跟 netstat 差不多,但有着比 netstat 更强大的统计功能,能够显示更多更详细的连接信息

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ss -s  #分类统计socket链接情况
    ss -a | wc -l 统计所有socket链接数目
    ss -ta #所有 TCP socket
    ss -ua #所有 UDP socket
    ss -wa #所有 RAW socket
    ss -xa #所有 UNIX socket
    ss -4a #所有 IPV4 socket
    ss -6a #所有 IPV6 socket
    ss -t  #要查看刚建立的 TCP 连接
    ss -lt #要仅显示监听 socket ,尝试
  • netstat
  • (https://www.cnblogs.com/ftl1012/p/netstat.html)
    netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告

    1
    netstat -nlp #数字(不解析主机端口)显示正在监听的进程pid
  • tcpdump
  • 功能强大

    1
    tcpdump  -XvvennSs 0 -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854   #抓取http
  • lsof
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    lsof -i:80 #查看打开80端口的所有进程
    lsof -i [46] [protocol][@hostname|hostaddr][:service|port]
    46 --> IPv4 or IPv6
    protocol --> TCP or UDP
    hostname --> Internet host name
    hostaddr --> IPv4地址
    service --> /etc/service中的 service name (可以不只一个)
    port --> 端口号 (可以不只一个)
    例如:
    lsof -i tcp@127.0.0.1  #tcp监控本地
    lsof -i 4 #显示ipv4
  • iftop
  • https://www.vpser.net/manage/iftop.html

    当我们在 shell 的 bash 里操作多行内容的字符串,我们往往会想到 普通的字符串处理办法 例如:

    1
    2
    string="Hello linux"
    echo $string

    其实 bash 提供了一个非常好的解决办法,就是 “Multi-line”
    变量的基本使用
    e.g. 包含变量

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    cat > myfile.txt <<EOF
    this file has $variable $names $inside
    EOF


    # 注入文档到 myfile.txt
    cat myfile.txt
    #输入:
    #this file has

    variable="ONE"
    names="TWO"
    inside="expanded variables"

    cat > myfile.txt <<EOF
    this file has $variable $names $inside
    EOF


    #print out the content of myfile.txt
    cat myfile.txt
    #输入:
    #this file has ONE TWO expanded variables

    无变量

    1
    2
    3
    4
    5
    6
    7
    8
    9
    cat > myfile.txt <<"EOF"
    this file has $variable $dollar $name $inside
    EOF

    cat myfile.txt
    #得到
    #this file has $variable $dollar $name $inside

    #PS:引用符号 "EOF" 决定是否需要输入变量

    无变量 – 例子 2

    1
    2
    3
    4
    5
    6
    7
    8
    9
    cat > myfile.txt <<EOF
    this file has $variable \$dollar \$name \$inside
    EOF


    cat myfile.txt
    # 得到
    # this file has $variable $dollar $name $inside

    #转义 dollar "$" 符号,bash将取消变量的解析

    将一个多行文本赋值到变量里面
    例1:

    1
    2
    3
    4
    5
    6
    7
    8
    read -d '' stringvar <<-"_EOF_"

    all the leading dollars in the $variable $name are $retained

    _EOF_
    # 输入变量
    echo $stringvar;
    # all the leading dollars in the $variable $name are $retained

    例2:

    1
    2
    3
    4
    5
    6
    read -d '' help <<- "_EOF_"
      usage: up [--level <n>| -n <levels>][--help][--version]

      Report bugs to:
      up home page:
    _EOF_

    例3:

    1
    2
    3
    4
    5
    6
    VARIABLE1="<?xml version="1.0" encoding='UTF-8'?>
    <report>
      <img src="a-vs-b.jpg"/>
      <caption>Thus is a future post on Multi Line Strings in bash
      <date>1511</date>-<date>1512</date>.</caption>
    </report>"

    例4:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    VARIABLE2=$(cat <<EOF
    <?xml version="1.0" encoding='UTF-8'?>
    <report>
      <img src="a-vs-b.jpg"/>
      <caption>Thus is a future post on Multi Line Strings in bash
      <date>1511</date>-<date>1512</date>.</caption>
    </report>
    EOF
    )

    例5:

    1
    2
    3
    4
    5
    6
    7
    8
    VARABLE3=`cat <<EOF
    <?xml version="1.0" encoding='UTF-8'?>
    <report>
      <img src="a-vs-b.jpg"/>
      <caption>Thus is a future post on Multi Line Strings in bash
      <date>1511</date>-<date>1512</date>.</caption>
    </report>
    EOF`

    例6 (直接写入文件):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    cat > heredocfile.txt <<_EOF_
    I am line 1
    I am line 2
    I'm the last line
    _EOF_

    # 测试
    cat heredocfile.txt
    # I am line 1
    # I am line 2
    # I'm the last line

    # and then, change your echo statement to include the '-e' option
    # which will turn on escape sequence processing:
    echo -e $USAGE >&2

    例7:

    1
    2
    3
    4
    5
    6
    7
    sudo cat > /aaaa.txt <<_EOF_
    I am line 1
    I am line 2
    I'm the last line
    _EOF_

    # sudo and >>: permission denied

    例8:

    1
    2
    3
    4
    # create
    sudo tee /aaa.txt << EOF
      echo "Hello World 20314"
    EOF

    例9(可向文本文件追加):

    1
    2
    3
    4
    # Append to Sudo
    sudo tee -a  /aaa.txt << EOF
     echo "This Line is appended"
    EOF

    例如10:

    1
    2
    3
    4
    5
    6
    sudo sh -c "cat > /aaa.txt" <<"EOT"
    this text gets saved as sudo - $10 - ten dollars ...
    EOT

    cat /aaa.txt
    #this text gets saved as sudo - $10 - ten dollars ...

    例11:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    cat << "EOF" | sudo tee /aaa.txt
    let's count
    $one
    two
    $three
    four

    EOF

    cat /aaa.txt
    #let's count
    #$one
    #two
    #$three
    #four

    关于 tee
    > tee –help
    Usage: tee [OPTION]… [FILE]…
    Copy standard input to each FILE, and also to standard output.

    -a, –append append to the given FILEs, do not overwrite
    -i, –ignore-interrupts ignore interrupt signals
    –help display this help and exit
    –version output version information and exit

    If a FILE is -, copy again to standard output.

    Report tee bugs to bug-coreutils@gnu.org
    GNU coreutils home page:
    General help using GNU software:
    For complete documentation, run: info coreutils ‘tee invocation’

    参考:
    1. Heredoc Quoting – Credit to Ignacio Vazquez-Abrams: http://serverfault.com/questions/399428/how-do-you-escape-characters-in-heredoc
    2. eredoc Quoting – Credit to Dennis Williamson: http://stackoverflow.com/questions/3731513/how-do-you-type-a-tab-in-a-bash-here-document
    3. http://serverfault.com/questions/72476/clean-way-to-write-complex-multi-line-string-to-a-variable
    4. http://arstechnica.com/civis/viewtopic.php?p=21091503
    5. http://superuser.com/questions/201829/sudo-permission-denied
    6. http://stackoverflow.com/questions/4937792/using-variables-inside-a-bash-heredoc
    7. http://stackoverflow.com/questions/2600783/how-does-the-vim-write-with-sudo-trick-work
    8. http://www.unix.com/shell-programming-scripting/187477-variables-heredoc.html

    来源:http://www.woola.net/detail/2016-09-05-bash-multi-line-text.html

    Encrypting Your File

    tar and gzip the file, then encrypt it using des3 and a secret key.
    tar cvzf – mysql_dump.sql | openssl des3 -salt -k #YOUR PASSWORD# | dd of=encrypted_mysql_dump
    That simple!

    Decrypting Your File

    dd if=encrypted_mysql_dump |openssl des3 -d -k #YOUR PASSWORD# |tar xvzf –

    1
    2
    ls -ial   #获取文件节点
    find . -maxdepth 1 -type f -inum 748010  -delete   #通过节点删除

    1. 每个文件有唯一的索引号
    2. ls -i 可获得索引号
    3. find命令重命名:
    find . -inum 索引号 -exec mv {} newname \;
    -exec后为shell命令,{}代表当前文件名,\;表示shell命令结束
    4. 批量重命名:
    ls -i | awk ‘{printf(“find . -inum %s -exec mv {} %03d.txt \;\n”,$1,++i)}’ | sh
    awk的printf命令与C语言类似,$1表示已空格分隔的第一个参数,++i变量未初始化,默认为0