主页

OpenSSH Port Forwarding

以下端口转发命令都可以加上 -f-N-T 选项,-f 表示让 ssh 进入后台执行命令,-N 表示不执行远程命令,-T 表示不分配终端。

-f
Requests ssh to go to background just before command execution. This is useful if ssh is going to ask for passwords or passphrases, but the user wants it in the background. This implies -n. The recommended way to start X11 programs at a remote site is with something like ssh -f host xterm.

-N
Do not execute a remote command. This is useful for just forwarding ports.

-T
Disable pseudo-terminal allocation.

-C 选项可以对所有转发数据进行压缩,如果转发数据大部分是文本数据,会提高转发效率,如果是二进制数据,则会降低转发效率。

See:

阅读更多

Groovy 语法总结

Groovysh 相关配置

Variables

Shell 变量是无类型的,即不是 def 类型也不是任何其它类型

下面定义了一个 Shell 变量

foo = "bar"

但是下面一行定义了一个本地变量,并且不会保存到 shell 环境中

def foo = "bar"

可以通过设置 :set interpreterMode 来定义有类型的变量(def 或其它类型)

阅读更多

OpenSSH Config

客户端配置文件 SSH_CONFIG

参考手册页了解详细内容

man 5 ssh_config

配置文件段

客户端配置文件可以划分成段,每个段包含一个或一组主机的设置。OpenSSH 以 Host 关键字开始一个新段,后面跟的字符串称为主机规范 (Host Specification)。主机规范可以是以下几种类型:

阅读更多

OpenSSL 常用命令

OpenSSL 简介

OpenSSL 是一个实现了 传输层安全 (Transport Layer Security, TLS v1) 网络协议和相关加密标准的加密工具箱.

openssl 是在 shell 中使用 OpenSSL 加密库中各种加密函数的命令行工具.

阅读更多

Vim 使用技巧

使用折叠

查看 :h fold.txt 手册了解 Vim 中的折叠功能。

折叠方式

Vim 的 foldmethod 有以下 6 种折叠方式

foldmethod value description
fold-manual manual 手动建立折叠。
fold-indent indent 相同缩进距离的行构成折叠。
fold-expr expr ‘foldexpr’ 给出每行的折叠级别。
fold-marker marker 标志用于指定折叠。
fold-syntax syntax 语法高亮项目指定折叠。
fold-diff diff 没有改变的文本构成折叠。

比如: 为 json 文本创建折叠

set ft=json
syntax on
set fdm=syntax

查看 :h 'fold-methods', :h 'foldmethod' 了解折叠方式的详细说明。

阅读更多

Windows 下创建目录链接

在 Windows 下如果通过右键菜单->创建快捷方式生成的文件或文件夹,其实是生成了一个后辍为.lnk 的文件,在其它程序里面是不会引用到原文件或文件夹的,如果通过mklink命令来创建快捷方式(符号链接),则其它程序会认为这就是一个真正的文件或文件夹。

阅读更多

Linux Commands Summary

Linux 在线手册

阅读更多

Linux datetime

Unix timestamp

Unix timestamp 又称为 Unix time, POSIX time。是指从 Unix epoch 1970年1月1日 00:00:00 UTC+00:00 时刻开始,到现在经过的总秒数。一般可通过命令 date +%s 来获得。

时区

Time Zone Abbreviations – Worldwide List

  • UTC (Coordinated Universal Time)
    协调世界时,是个标准时间。

  • GMT (Greenwich Mean Time)
    格林威治时间,是时区时间。

阅读更多

Bash Colors

ANSI escape code

Bash 中使用 echo 输出颜色代码的格式

代码 说明
\003[ or \e 颜色起始修饰符
STYLE;COLORm 样式 + ; + 颜色代码 + m
\003[0m or \e[0m 重置为无颜色

例如:

echo -e "\e[0;31mText\e[0m"

# Color Variables
NC='\003[0m'
Red='\003[0;31m'

echo -e "${Red}Text${NC}"

阅读更多

Iptables

Have a try

查看 nat 表中所有链上的规则

iptables -t nat -L

The following parameters make up a rule specification (as used in the add, delete, insert, replace and append commands).

  • -p, --protocol [!] protocol

    Protocol can be one of tcp, udp, icmp, or all. A protocol name from /etc/protocols is also allowed. A “!” argument before the protocol inverts the test. The number zero is equivalent to all. Protocol all will match with all protocols and is taken as default when this option is omitted.

  • -j, --jump target

    The target can be a user-defined chain (other than the one this rule is in), one of the special builtin targets which decide the fate of the packet immediately, or an extension.

  • -i, --in-interface [!] name

    Name of an interface via which a packet was received (only for packets entering the INPUT, FORWARD and PREROUTING chains). When the “!” argument is used before the interface name, the sense is inverted. If the interface name ends in a “+”, then any interface which begins with this name will match. If this option is omitted, any interface name will match.

  • -o, --out-interface [!] name

    Name of an interface via which a packet is going to be sent (for packets entering the FORWARD, OUTPUT and POSTROUTING chains). When the “!” argument is used before the interface name, the sense is inverted. If the interface name ends in a “+”, then any interface which begins with this name will match. If this option is omitted, any interface name will match.

阅读更多