我有一个服务器,它只能通过端口 22 访问外部世界(用于从服务器到其他计算机的 ssh 使用)。
我想通过apt-get在这台服务器上安装一些软件包。
我可以通过 ssh-tunnel 连接到我的超级机器,它在所有端口上都可以访问互联网吗?
如果是这样,如何?因为如果我通过 ssh 启动到我的超级机器的隧道,超级机器的 sshd 在端口 22 上等待。我假设我不能将这个相同的端口 22 重用于隧道,可以吗?
还有其他解决方案吗?
如何将命令行计算器添加到我的 bash 中?我找到了一些,但他们都使用句号作为小数点,但我想让它像世界上大多数人一样使用逗号作为小数点,见图:

(来源维基百科)
我发现的那些(全部以句号作为小数点)如下,这些行必须放入您的~/.bashrc文件中:
使用 bc,它的优点是可以计算出大得离谱的数字:
calc () {
bc -l <<< "$@"
}
Run Code Online (Sandbox Code Playgroud)使用 awk,您可以使用三角函数和其他函数的助记符名称,并且可以使用分数指数,并且可以通过两个字符**而不是在某些难以键入的键盘上给出指数^:
calc () {
awk "BEGIN { print $* ; }"
}
Run Code Online (Sandbox Code Playgroud)如何使用 GNU find 命令一次匹配多种文件类型(一个搜索命令)?
手册页说:
-type c
File is of type c:
b block (buffered) special
c character (unbuffered) special
d directory
p named pipe (FIFO)
f regular file
l symbolic link; this is never true if the -L option or the -follow
option is in effect, unless the symbolic link is broken. If
you want to search for symbolic links when -L is in effect, use
-xtype.
s socket
D door (Solaris)
Run Code Online (Sandbox Code Playgroud)
我想搜索文件 ( f) 和符号链接 ( l …
我正在尝试转向 perl(从 sed)。但是我怎样才能以同样简短的方式用 perl 替换这个 sed 表达式呢?
sed -n '/patternmatch/s%stuff%changed%p' file
Run Code Online (Sandbox Code Playgroud)
我需要搜索一个模式,并且只有在找到该模式时,才将“东西”替换为“已更改”。
我能做到的唯一方法是使用看起来像这样的 if 语句
perl -ne 'if ( /patternmatch/ ) { s%stuff%changed%; print }' file
Run Code Online (Sandbox Code Playgroud)
是否可以像使用 sed 一样短?如何?
PS:python方法在这里。
这个问题与 enzotib 对以下问题的回答有关:How can I use Bash to find 2 bytes in a binary file,增加它们的值,并替换?
这将两个字节转换为其十六进制值:
$ echo -n $'\x1b\x1f' | od -tx2
0000000 1f1b
0000002
Run Code Online (Sandbox Code Playgroud)
但是现在,这应该给我十进制值:
echo -n $'\x1b\x1f' | od -tu2
0000000 7963
0000002
Run Code Online (Sandbox Code Playgroud)
但是如果我将十六进制值转换为十进制,它应该是
$ printf "%d" 0x1b1f
6943
Run Code Online (Sandbox Code Playgroud)
这是为什么?我od对十进制输出使用错误吗?