标签: bash

在 bash 脚本运行时阻止 Mac 进入睡眠状态,然后在完成后让它像往常一样进入睡眠状态

我让我的 Mac 在夜间醒来并运行 rsync 来备份它。这是通过节能器 > 计划配置的。

然而,它似乎在完成任何事情之前会重新进入睡眠状态,所以我需要在 rsync 运行的 bash 脚本的执行过程中停止它进入睡眠状态。

我认为最好的方法(如果可能的话)是发出一个命令,在 rsyncs 之前将睡眠超时设置为“从不”或很长的超时,然后在完成后恢复正常。有没有更好的解决方案来做到这一点?

mac sleep bash rsync

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

在未登录的情况下让 bash 脚本在远程终端上运行?

我有一个需要几个小时才能运行的 bash 脚本。在它运行时,我想做其他事情,这可能涉及注销或断开互联网连接(我的脚本在各种计算机上运行网络测试)。

我知道有一个命令可以让我从远程终端运行我的测试并在终端运行时注销。有谁知道这个命令是什么?

remote-desktop ssh bash process

14
推荐指数
1
解决办法
2985
查看次数

仅当某些目录中的文件被修改时才执行 git pre-commit 钩子

我正在尝试为 git pre-commit 钩子创建一个 bash 脚本。每当进行提交时,我想检查某个目录中的文件是否是暂存文件的一部分,如果是,则运行命令(Grunt 任务)。到目前为止,我一切正常,除了只有在修改某些文件时才运行。我正在努力让它发挥作用:

SRC_PATTERN="site/assets/js/"
if [ grep --quiet $SRC_PATTERN `git diff --cached --name-only` ]
then
  echo "none"
  exit 0
fi
Run Code Online (Sandbox Code Playgroud)

不幸的是,这给了我错误。

bash git

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

如何在 Linux Bash 终端的 Windows 子系统上默认登录“root”帐户

Windows 10 周年更新刚刚发布,我立即安装了适用于 Linux 的 Windows 子系统,看看它的表现如何。到目前为止,我只发现了一个主要缺点:没有明显的方法可以使用 root 帐户作为默认值。

我知道这违背了许多最佳实践,但我个人不喜欢sudo在大多数命令前输入。当我打开一个文本文件进行编辑时,这会变得特别烦人nano,却发现我不得不放弃我的更改,因为我没有使用sudo.

有没有办法让终端默认以 root 身份启动?

bash ubuntu-14.04 windows-subsystem-for-linux windows-10-v1607

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

无法在 Windows 上的 Bash 中 ping

当我尝试运行时:

ping www.google.com
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ping: icmp open socket: Permission denied
Run Code Online (Sandbox Code Playgroud)

跑步sudo并没有什么区别。

bash windows-10 windows-subsystem-for-linux windows-10-v1607

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

当我在 bash 配置文件中将默认值设置为 ls -h 时,如何强制 ls 终端命令以字节显示结果?

我正在按照此处的代码段改进我在 Mac OSX 中的终端命令。

它通过导出alias ls='ls -GFh'到 bash 配置文件将 ls 结果的默认值设置为人类可读。这非常方便,但有时我想以字节为单位查看文件的确切大小(以便将其与另一个文件进行比较)。

我怎样才能做到这一点?有没有我可以使用 ls 的命令来强制它以字节为单位显示结果?

我可以使用其他命令来获取文件大小吗?

我想到了,du -s但它只会让我估计该文件的已用磁盘空间,并且最小大小是千字节块。

linux terminal bash command-line macos

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

(*\:2) 中的星号、反斜线、冒号和两个是什么意思?

以下ls命令是什么意思?

ls -l *\:2,*T
Run Code Online (Sandbox Code Playgroud)
  • ls = 列表
  • -l = 长(列表)
  • *T可能意味着T最后

但是那个*\:2和逗号呢?

bash expansion

14
推荐指数
3
解决办法
3743
查看次数

通过 curl 获取响应正文并显示 HTTP 代码

我有返回 JSON(响应正文)的端点。我需要通过 curl 响应主体并对其进行处理(例如使用 jq)。有用:

response=$(curl -s https://swapi.co/api/people/1/?format=json)
name=$(echo $response tmpFile | jq '.name') # irrelevant command, but I need here response body
echo "name:"$name
Run Code Online (Sandbox Code Playgroud)

但我还需要显示 HTTP 代码(以显示请求是否成功):

curl -s -w "%{http_code}\n" -o /dev/null https://swapi.co/api/people/1/?format=json
Run Code Online (Sandbox Code Playgroud)

如何将响应主体设置为变量并同时显示 HTTP 代码(一个请求)?


我找到了解决方案女巫临时文件:

touch tmpFile
curl -s -w "%{http_code}\n" -o tmpFile https://swapi.co/api/people/1/?format=json
name=$(cat tmpFile | jq '.name') # irrelevant command, but I need here only body response
echo "name: "$name
rm tmpFile
Run Code Online (Sandbox Code Playgroud)

不创建文件怎么办?

我尝试使用命名管道(但它仍然需要在磁盘上创建文件...):

mkfifo tmpFifo
curl -s -w "%{http_code}\n" -o tmpFifo https://swapi.co/api/people/1/?format=json
name=$(cat …
Run Code Online (Sandbox Code Playgroud)

bash curl pipe

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

`>>` 在终端命令中是什么意思?

我刚刚遇到了下面给出的命令-

$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

据我所知,它可能用于提交 .bash_profile 中的更改,但它究竟用于什么?

terminal bash command-line .bash-profile

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

是否可以在 iterm2 中使用 vim 键绑定?

我想w用于下一个单词和b上一个单词。如果我能做得更多,我会更快乐。

如果这很重要,我会使用 bash。

terminal bash vim iterm2 macos

14
推荐指数
1
解决办法
7195
查看次数