我想从 shell 脚本运行多个 MySQL 查询。
我正在使用以下代码:
mysql -u <redacted> -p<redacted> servermail << EOF
CREATE TABLE `virtual_domains` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `virtual_users` (
`id` INT NOT NULL AUTO_INCREMENT,
`domain_id` INT NOT NULL,
`password` VARCHAR(106) NOT NULL,
`email` VARCHAR(120) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`),
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `virtual_aliases` (
`id` INT NOT …Run Code Online (Sandbox Code Playgroud) 在 Ubuntu Lucid 系统上遇到一个奇怪的案例:
bash 命令行在大多数情况下都可以正常工作,但由于某些原因有时Up无法回忆起以前的命令。它记得以前的,但就像最后一个被遗忘了。所以它必须输入或复制粘贴回来,真的很烦人......
知道是什么原因造成的吗?
bash 版本是发行版附带的版本,4.1.5(1)-release(包:4.1-2ubuntu3)
由于在登录酒店 Wi-Fi 时单击“我同意”弹出窗口,因此我的bash提示中包含某种哈希值。现在的格式是:
<strange hash>:<working dir> <username>
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?这很危险吗?
在 VIM 中,我有以下的领导快捷方式:
:!git commit % -m 'updated '; git push;
Run Code Online (Sandbox Code Playgroud)
一旦我执行了这个领导者快捷方式,我的光标就会在更新后落在角色上。现在的问题是:
如何使用快捷键删除到该行的末尾?在 bash 中,它将是“CTRL-k”,但这在这里不起作用。我只想删除“更新”一词后的所有内容。

我只是想以某种模式列出当前目录中的文件,但它不适用于隐藏文件。如何匹配所有文件?
我试过
ls *foo*
Run Code Online (Sandbox Code Playgroud)
和
ls -a *foo*
Run Code Online (Sandbox Code Playgroud)
在谷歌上没有找到任何东西,我能想到的搜索这个关键字导致了很多不相关的信息......
我安装了paris-traceroute,我不记得我做了什么用 paris-ping 替换 Ubuntu Trusty 打包的 ping,这需要 root 才能运行。现在我想摆脱它。
$ ping --version
version 1.0
$ whereis ping
ping: /bin/ping /usr/share/man/man8/ping.8.gz
$ ping
-bash: /usr/local/bin/ping: No such file or directory
Run Code Online (Sandbox Code Playgroud)
paris-ping是在/usr/local/bin/ping。我删除了该文件,但现在该ping命令仍然无法从/bin/ping. 我在这里缺少什么?
这个超级用户回答使用 ffmpeg 的 2 个视频之间的交叉淡入淡出让我到目前为止,但现在我已经尝试了很多解决方案并看到了那里的每个 SO 链接,是时候向大家寻求帮助了。
我正在尝试同时使用音频和视频对 2 个 ts 格式的视频进行交叉淡化,每个 10 秒。
步骤是:
这仅适用于视频,但是当我尝试添加音频时,我无法跳过此错误消息:
带有未连接到任何目的地的 asetpts 的过滤器实例“Parsed_asetpts_4”的类型音频的输出垫“默认”
看来我没有正确连接音频输出。我想我需要更改 [over] 行以包含音频。但是我该怎么做呢?
`ffmpeg -i vid1.ts -i vid2.ts -f lavfi -i color=black -filter_complex \
"[0:v]format=pix_fmts=yuva420p,\
fade=t=out:st=9:d=1:alpha=1,setpts=PTS-STARTPTS[v0];\
[0:a]\
afade=t=out:st=9:d=1,asetpts=PTS-STARTPTS[a0];\
[1:v]format=pix_fmts=yuva420p,\
fade=t=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+9/TB[v1];\
[1:a]\
afade=t=in:st=0:d=1,asetpts=PTS-STARTPTS+9/TB[a1];\
[a0][a1]amix=inputs=2;\
[2:v]scale=720x406,trim=duration=19[over];\
[over][v0]overlay[over1];\
[over1][v1]overlay=format=yuv420[outv]" -vcodec libx264 -y -map [outv] final.ts`
Run Code Online (Sandbox Code Playgroud) 如何将一些输入逐行传递给命令行(即为每一行调用命令)?
xargs 不起作用,因为它将行作为参数传递,而不是作为标准输入传递。
出现这种情况的具体情况是解码一个文件,其行是 base64 编码的字符串。
有人可以澄清差异吗?其中一些被认为是最佳实践吗?如果我没记错的话,我以某种方式在 SO 上读到这1>/dev/null应该在此之前:2>&1
ls -al /doesNotExists 2>&1 1>/dev/null
ls -al /doesNotExists 1>/dev/null 2>&1
ls -al /doesNotExists 1>&2 2>/dev/null
ls -al /doesNotExists 2>/dev/null 1>&2
ls -la /doesNotExists 2<&1 1>/dev/null
ls -la /doesNotExists 2<&1 2>/dev/null
ls -la /doesNotExists 1<&2 1>/dev/null
ls -la /doesNotExists 1<&2 2>/dev/null
ls -la /doesNotExists 1>/dev/null 2<&1
ls -la /doesNotExists 2>/dev/null 2<&1
ls -la /doesNotExists 1>/dev/null 1<&2
ls -la /doesNotExists 2>/dev/null 1<&2
Run Code Online (Sandbox Code Playgroud) 我遇到了服务器升级到 RHEL 6.5 的问题,我们在通过 sftp 和 ssh 命令连接的 RHEL 5.9 安装上安装了自动 bash 脚本。
现在,新服务器仅支持密码 aes128-ctr、aes192-ctr 和 aes256-ctr。
我能够更新 ssh 命令以将 -c 选项与 aes256-ctr 一起使用,这有效:
ssh -c aes256-ctr ${remote_host} ${my_command}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试对 sftp 执行等效操作时:
sftp -oCipher=aes256-ctr ${remote_host} <<< $'get /home/me/* me/'
Run Code Online (Sandbox Code Playgroud)
我收到一个错误,指出客户端不支持与服务器相同的密码:
找不到匹配的密码:客户端 arcfour256,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc 服务器 aes128-ctr,aes192-ctr,aes256-ctr
这些 ssh 和 sftp 命令在同一个 RHEL 5.9 机器上执行,所以我想知道为什么这适用于 ssh 而不是 sftp?
另外,如何解决这个问题,以便我可以使用 sftp 进行连接而无需任何客户端更改?