标签: bash

如何使用 FTP 或 SSH 从命令行上传文件?

我以前从未这样做过,我正在创建一个 bash shell 脚本来为我做这件事。我还将通过 ssh 连接来做一些事情(我已经知道怎么做)。那么也许有一种方法可以通过 ssh 上传文件,以便我可以在一个连接中完成所有操作?

我怎样才能做到这一点?

#!/bin/sh

cd ./files-to-upload
#upload the files
Run Code Online (Sandbox Code Playgroud)

ftp ssh bash command-line

39
推荐指数
4
解决办法
22万
查看次数

如何在不执行命令的情况下将命令添加到 Bash 历史记录?

不时地将命令直接添加到 Bash 中的历史记录而不实际执行它会很有用。到目前为止,我发现的封闭的东西是#在它前面添加一个并点击返回。有更好的方法吗?

bash command-history

39
推荐指数
2
解决办法
9790
查看次数

如何在bash中获取文件的完整路径?

我想要一种简单的方法来获取文件的完整路径。我目前输入这个:

echo `pwd`/file.ext
Run Code Online (Sandbox Code Playgroud)

为了缩短它,我做了一个 bash 别名:

alias fp='echo `pwd`/'
Run Code Online (Sandbox Code Playgroud)

但是现在如果我输入fp file.ext,在/和之间会出现一个空格file.ext

这样的命令是否已经存在,而我错过了它?如果没有,我将如何在 bash 中创建这样的别名或函数?

bash command-line

39
推荐指数
4
解决办法
10万
查看次数

防止 bash 在后台命令完成执行时显示“完成”

如果我在后台运行一个命令&,像这样:

sleep 2 &
Run Code Online (Sandbox Code Playgroud)

命令完成后,我得到“完成”。如何避免看到“完成”消息?

bash

39
推荐指数
3
解决办法
6799
查看次数

如何动态解压/解压输出

执行以下操作的惯用方法是什么

  • 焦油到标准输出
  • 从 stdout 读取此 tar 输出并解压缩到其他文件夹。

我的解决方案是 tar --to-stdout .. | tar -C somefolder -xvf -

但可能有更惯用的方法来做到这一点。

bash tar stdout

39
推荐指数
2
解决办法
6万
查看次数

“观察”命令的输出,直到观察到特定的字符串,然后退出

我正在寻找一种以编程方式观察命令输出的方法,直到观察到特定字符串然后退出。这与this question非常相似,但我不想拖尾文件,而是要“拖尾”命令。

就像是:

看 -n1 my_cmd | grep -m 1 "我正在寻找的字符串"

(但这对我不起作用。)

更新:我需要澄清“my_cmd”不会连续输出文本,而是需要重复调​​用直到找到字符串(这就是我想到“watch”命令的原因)。在这方面,“my_cmd”就像许多其他 unix 命令,例如:ps、ls、lsof、last 等。

linux bash

39
推荐指数
3
解决办法
4万
查看次数

什么是 BASH 的 $PROMPT_COMMAND 的 ZSH 等价物?

BASH 支持$PROMPT_COMMAND定义在任何第一级交互式提示之前要执行的命令的环境变量。我正在寻找等效的 ZSH。

文档precmd我可以定义一个函数来实现它;但是,我不知道如何从环境变量中定义它。

我考虑过传递一个环境变量,让 ZSH 读取包含该函数定义的文件,但 ZSH似乎不支持这样的事情:它只读取全局文件,然后读取每个用户的文件。我可以替换它们,但我不能在不修改文件的情况下添加它们,这是我做不到的。

那么如何通过环境变量在 ZSH 中定义预提示钩子,就像我$PROMPT_COMMAND在 BASH 中所做的那样?

bash zsh shell environment-variables

39
推荐指数
2
解决办法
2万
查看次数

Mac 上的终端会话之间不保留 Bash 历史记录

我的 bash 历史神秘地停止工作,我不知道如何修复它。这是我的 .bashrc 的样子:

HISTSIZE=500
HISTFILESIZE=500
HISTFILE=$HOME/.bash_history
Run Code Online (Sandbox Code Playgroud)

但是,当我运行echo $HISTFILE它时会打印出来/Users/myusername/.bash_sessions/EE8689E5-7DAD-4018-817E-0AF1DE36082A.historynew

我是 .bash_history 文件的所有者,所以我不太确定我将如何解决这个问题。

谢谢!

unix terminal bash history macos

39
推荐指数
4
解决办法
4万
查看次数

envsubst 中的 SHELL-FORMAT 是什么?

当我偶然发现envsubst我只想用它来替换特定变量并怀疑 SHELL-FORMAT 参数可能是我想要的但我无法让它工作时。

不幸的是,maninfo页面没有给出任何使用示例,只说

如果给出了 SHELL-FORMAT,则仅替换 SHELL-FORMAT 中引用的那些环境变量

这并没有告诉我如何引用它们。

bash environment-variables

39
推荐指数
2
解决办法
2万
查看次数

用一个命令重命名一组文件

如果我有一组扩展名为 .htm 的文件,我如何将它们全部重命名为 .html?

mv *.htm *.html
Run Code Online (Sandbox Code Playgroud)

不起作用。

unix bash

38
推荐指数
4
解决办法
3万
查看次数