我以前从未这样做过,我正在创建一个 bash shell 脚本来为我做这件事。我还将通过 ssh 连接来做一些事情(我已经知道怎么做)。那么也许有一种方法可以通过 ssh 上传文件,以便我可以在一个连接中完成所有操作?
我怎样才能做到这一点?
#!/bin/sh
cd ./files-to-upload
#upload the files
Run Code Online (Sandbox Code Playgroud) 不时地将命令直接添加到 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 中创建这样的别名或函数?
执行以下操作的惯用方法是什么
我的解决方案是
tar --to-stdout .. | tar -C somefolder -xvf -
但可能有更惯用的方法来做到这一点。
我正在寻找一种以编程方式观察命令输出的方法,直到观察到特定字符串然后退出。这与this question非常相似,但我不想拖尾文件,而是要“拖尾”命令。
就像是:
看 -n1 my_cmd | grep -m 1 "我正在寻找的字符串"
(但这对我不起作用。)
更新:我需要澄清“my_cmd”不会连续输出文本,而是需要重复调用直到找到字符串(这就是我想到“watch”命令的原因)。在这方面,“my_cmd”就像许多其他 unix 命令,例如:ps、ls、lsof、last 等。
BASH 支持$PROMPT_COMMAND定义在任何第一级交互式提示之前要执行的命令的环境变量。我正在寻找等效的 ZSH。
文档说precmd我可以定义一个函数来实现它;但是,我不知道如何从环境变量中定义它。
我考虑过传递一个环境变量,让 ZSH 读取包含该函数定义的文件,但 ZSH似乎不支持这样的事情:它只读取全局文件,然后读取每个用户的文件。我可以替换它们,但我不能在不修改文件的情况下添加它们,这是我做不到的。
那么如何通过环境变量在 ZSH 中定义预提示钩子,就像我$PROMPT_COMMAND在 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 文件的所有者,所以我不太确定我将如何解决这个问题。
谢谢!
当我偶然发现envsubst我只想用它来替换特定变量并怀疑 SHELL-FORMAT 参数可能是我想要的但我无法让它工作时。
不幸的是,man和info页面没有给出任何使用示例,只说
如果给出了 SHELL-FORMAT,则仅替换 SHELL-FORMAT 中引用的那些环境变量
这并没有告诉我如何引用它们。
如果我有一组扩展名为 .htm 的文件,我如何将它们全部重命名为 .html?
mv *.htm *.html
Run Code Online (Sandbox Code Playgroud)
不起作用。