标签: bash

.profile 在 Mac OS X 中?

我已将终端首选项设置为执行:

 set -o vi 
Run Code Online (Sandbox Code Playgroud)

在启动时。问题是我在打开新的终端选项卡时没有执行该命令。

在 OS X 中是否有类似 .profile 的东西可以放置该命令?

bash .profile command-line macos

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

从 Mac 终端将输出保存到文本文件

我怎么能输入一个命令,比如 system_profiler,并将输出保存在我的计算机上的某个地方?

mac terminal bash

23
推荐指数
1
解决办法
7万
查看次数

Windows 7 上的 Git Bash 手册页

我在 Windows 7 上使用 Git bash。它为我提供了一种方法来使用我过去在 Ubuntu 机器上的 bash shell 上使用的大多数命令。但是 man 和 info 命令不起作用。有没有办法让这些(令人难以置信的)文档命令在 Windows 上的 Git bash shell 上工作?

windows-7 bash git man

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

检查是否导出 shell 变量的最简单的脚本化方法是什么?

对于某些 shell 会话,如果未设置和导出 shell 变量,我希望能够打印警告标志。

如果SET_ME未设置或为空,则执行类似操作以在提示中打印“错误”相当简单。

test_var () { test -z "$1" && echo Error; }
PS1='$(test_var "$SET_ME") \$ '
Run Code Online (Sandbox Code Playgroud)

但是,如果我设置SET_ME而不导出它,则无法标记,这是我希望能够检测到的错误。$(bash -c 'test -z "$SET_ME" && echo Error;')缺少类似或 grepping 的输出export,是否有一个简单的检查可以测试是否SET_ME已导出?

完全可以接受非 POSIX、仅 bash 的解决方案。

bash environment-variables

23
推荐指数
4
解决办法
5538
查看次数

每次登录时 BASH 历史记录被截断为 500 行

出于某种原因,我无法让我的系统在重新启动后保留我的 BASH 历史记录。以下是我的相关部分~/.bashrc

shopt -s histappend
PROMPT_COMMAND='history -a; updateWindowTitle'
export HISTCONTROL=ignoredups
export HISTSIZE=9999
export HISTFILESIZE=999999
export HISTFILE="$HOME/.bash_history"
Run Code Online (Sandbox Code Playgroud)

据我所知,这些是所有必要的选项(我知道过去我可以在多次重新启动后保留历史记录,而过去没有所有这些)。但是,尽管在几次重新启动之前添加了这些选项,但在重新启动后我仍然丢失了大部分历史记录。它不是空的,但它没有我重新启动之前的 9999 行。

在有人抱怨之前,是的,我已经阅读了这些问题。我已经实施了他们上面列出的一些建议,其余的要么没有帮助,要么不相关:

如果那里可能有其他相关命令,您可以~/.bashrc 在此处查看我的全部内容。

那么,我错过了什么?为什么我的历史没有保存?如果有人认为另一个文件可能相关,请告诉我,我会发布它。我通过grep -i hist \.*在 my$HOME中运行来检查它显示唯一.包含字符串hist或的相关文件HIST.bashrc.

我正在运行 Linux Mint Debian 版,GNU bash,版本 4.2.36(1)-release (x86_64-pc-linux-gnu) 和我最喜欢的终端模拟器(如果相关)是terminator.


更新:

按照@mpy 在评论中的建议,我将 my 更改 …

linux terminal bash shell history

23
推荐指数
2
解决办法
8178
查看次数

是否有一个标准的 unix 程序可以返回一个数字范围

我从一本过时的教科书中学习 shell 脚本,在我看来,拥有一个只返回一串由空格分隔的数字的程序真的很有用,比如

$ range 10 20
10 11 12 13 14 15 16 17 18 19 20
Run Code Online (Sandbox Code Playgroud)

然后,如果你在做一个 shell 脚本,你可以有

for i in `range 10 20`; do some stuff with numbers in that range;done
Run Code Online (Sandbox Code Playgroud)

这种东西存在吗,还是我需要自己写?

unix bash

23
推荐指数
4
解决办法
4260
查看次数

远程 SSH 命令 - bash 绑定警告:未启用行编辑

我正在使用 bash 4.3.11(1) 并安装了以下历史插件(通过.bash_it):

# enter a few characters and press UpArrow/DownArrow
# to search backwards/forwards through the history
bind '"^[[A":history-search-backward'
bind '"^[[B":history-search-forward'
Run Code Online (Sandbox Code Playgroud)

当我登录到交互式会话时一切正常,但是当我通过ssh host 'ls -als'例如运行远程命令时,我看到以下输出:

: ssh host 'ls -als'
/home/ubuntu/.bash_it/plugins/enabled/history.plugin.bash: line 3: bind: warning: line editing not enabled
/home/ubuntu/.bash_it/plugins/enabled/history.plugin.bash: line 4: bind: warning: line editing not enabled
Run Code Online (Sandbox Code Playgroud)

当我echo -e '\0033\0143'在每次绑定调用后修改历史插件时,我不再收到警告,但我的控制台已被清除。不是一个巨大的缺点,但知道一种更简洁的方法来抑制远程命令的这种情况会很好。

# Works, but annoyingly clears console
# enter a few characters and press UpArrow/DownArrow
# to search backwards/forwards through the history …
Run Code Online (Sandbox Code Playgroud)

ssh bash shell

23
推荐指数
3
解决办法
6781
查看次数

Homebrew 中没有可用的“pdfunite”公式?

我在 Mac OS X 10.10 (Yosemite) 上,我是 Bash 的新手。我正在尝试安装pdfunite. 我安装了Homebrew并运行了以下命令:

brew install pdfunite
Run Code Online (Sandbox Code Playgroud)

我收到了

错误:pdfunite 没有可用的公式

正在搜索公式...

正在搜索水龙头...

确实在那之后,如果我使用,pdfunite我会收到错误“找不到命令”。

我该如何解决这个问题?

mac bash command-line homebrew macos

23
推荐指数
2
解决办法
7901
查看次数

如何在 OS X 上设置 cron 作业以每天在特定时间运行 curl 命令?

我有一个 CURL 命令,我想每天在凌晨 3 点运行,但我不确定如何设置它,而且指南都很奇怪。

假设我有很多终端/bash 经验,但我以前从未设置过 cron。

cron 作业是否有可能唤醒我的计算机,即使它正在睡眠并且盖子关闭(macbook pro),只是为了运行这个 curl 命令然后让它重新进入睡眠状态?

我该如何设置?

mac bash cron macos

23
推荐指数
1
解决办法
3万
查看次数

scp:错误:意外的文件名:

我使用了很长时间来上传文件的 SCP 突然停止工作。我在 12 小时前运行了脚本,它运行得很好,但突然停止了。

有问题的命令是将当前目录上传到远程文件夹:

#!/bin/bash
cd "$(dirname "$0")"

scp -r . <remote_server>:<remote_folder>
Run Code Online (Sandbox Code Playgroud)

错误信息是:

scp: error: unexpected filename: .
Run Code Online (Sandbox Code Playgroud)

我在运行 Mojave 10.14.2 的 Mac 上。

更新:我已经通过将命令重写为此解决了特定问题,但我仍然有兴趣知道发生了什么:

scp -r $(pwd) <remote_server>:<remote_folder>
Run Code Online (Sandbox Code Playgroud)

bash scp

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