命令技巧

Network

bash检查远程端口开放情况

1
echo >/dev/tcp/ip/port && echo "open"

File

文本的md5值

1
echo -n "text" | md5sum

检测xml语法

1
xmllint --noout file.xml

输入多行文字 (按 CTRL + d 退出)

1
cat > test.txt

创建空白的文件或者清空已存在的文件

1
> test.txt

SSH

打开SSH调试模式

1
ssh -vvv user@ip_address

使用pem key的进行SSH连接

1
ssh user@ip_address -i key.pem

Shell

提取字符串的前5个字符

1
${variable:0:5}

生成随机16进制数字

N表示字符长度

1
openssl rand -hex N

通过子 shell 返回到当前目录

如果你想通过 cd 命令进入另一个目录完成一些任务,然后再返回当前工作目录,那么你可以将命令置于括号中。你可以在你的 Linux 系统上尝试下面这个命令。记住你当前的工作目录,然后运行:

1
(cd /etc && ls -a)

如何工作的呢?运行一个括号中的命令会创建一个子 shell 或一个当前 shell 进程的复刻副本。该子 shell 可以访问所有的父变量,反之则不行。所以请记住,你是在运行一个非常复杂的单行命令。

在并行处理中经常使用子shell ,但是在命令行中,它也能为你带来同样的力量,从而使你在浏览文件系统时更加容易。

查找命令历史的交互模式

history 读取 bash 历史,然后以编号列表的方式输出到标准输出(stdout)。

可以通过快捷键 ctrl+r 启动交互模式,然后进入一个交互提示中,它将会根据你提供的字符串来向后搜索 bash 历史。

可以通过再次按下 ctrl+r 向后搜索更老的命令,或者按下 ctrl+s 向前搜索。

运行history中的命令

这里在history中的第100个

1
!100

重复运行命令并显示它的输出

默认2秒重复一次

1
watch ps -ef