标签: bash

输出文件时如何替换环境变量?

我想以某种方式吐出一个文件(其中包含 env 变量引用)并替换实际值。这是我尝试过的,但正如您所看到的,它不起作用。有任何想法吗?

-bash-3.00$ cat vars_file 
${MY_VAR}
-bash-3.00$ export MY_VAR=MY_VALUE; cat ./vars_file | xargs echo
${MY_VAR}
Run Code Online (Sandbox Code Playgroud)

bash environment-variables

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

创建包含 bash 历史扩展的别名

我经常忘记用 sudo 运行命令,所以我发现自己经常sudo !!在之后立即打字。

我试过别名这个,但 bash 扼杀了这一!!部分。有没有办法在别名中表示这个快捷方式?

sudo bash alias bash-alias

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

您如何确定正在输入您的实际命令?

假设我有一个名为 .bash 的 bash 脚本log.sh。在这个脚本中,我想从管道读取输入,但我也想知道用于将输入管道输入到我的命令。例子:

tail -f /var/log/httpd/error | log.sh
Run Code Online (Sandbox Code Playgroud)

在shell脚本中,我想知道命令tail -f /var/log/httpd/error.

linux bash pipe

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

无法在我的 Mac 上编辑 /etc/profile

在终端,我这样做:

sudo vi /etc/profile
Run Code Online (Sandbox Code Playgroud)

但我得到了一个只读版本。作为超级用户,我从来都无法编辑任何东西——这是怎么回事?

mac bash

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

在程序打印到标准输出的每个新行之前放置一个文本

所以我想做一些日志记录,因此,想在 bash 脚本的输出前面放一个日期。问题是它有多行输出。我只能将日期放在整个输出之前。但是后来我在日志中有一行没有日期。当然,我可以假设上一行的日期是相同的,但我希望有一个解决方案。提前致谢!

这是我调用另一个脚本的脚本:

#!/bin/sh
echo $(date "+%F %T") : starting script
echo $(date "+%F %T") : $(./script.sh)
echo $(date "+%F %T") :script ended
Run Code Online (Sandbox Code Playgroud)

这是输出:

2012-07-26 15:34:12 : starting script
2012-07-26 15:35:14 : First line of output
second line of output
2012-07-26 15:35:17 : script ended
Run Code Online (Sandbox Code Playgroud)

这就是我想要的:

2012-07-26 15:34:12 : starting script
2012-07-26 15:35:14 : First line of output
2012-07-26 15:35:15 : second line of output
2012-07-26 15:35:17 : script ended
Run Code Online (Sandbox Code Playgroud)

bash date

9
推荐指数
1
解决办法
4106
查看次数

定期保存 bash 历史记录

我已将 bash 设置为将历史记录保存到文件中。每当 bash [正确] 退出时,它就会执行此操作。由于有时 bash 无法正确退出,因此历史记录会丢失。

所以问题是我可以设置 bash 来更频繁地保存历史记录吗?


我正在使用 Linux 内核运行 Debian Gnu(版本 6,Squeeze)。

bash 版本:GNU bash,版本 4.1.5(1)-release (i486-pc-linux-gnu)

linux bash gnu

9
推荐指数
1
解决办法
1662
查看次数

基于温度的节流CPU?- Ubuntu

我在我的 Ubuntu 机器上运行了一些程序,这些程序长时间使用最大 CPU 功率。这会导致计算机过热。

有人可以建议一个好的程序来降低 CPU 功率以保持设定的温度吗?

我试过木星,但它没有那个功能。我也尝试了一些 Linux 脚本,但我没有修改它们以在 Ubuntu 上工作的技能。

任何帮助将非常感激。

bash ubuntu

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

/usr/bin/env: php: 没有那个文件或目录

我想使用 .sh 脚本来部署我的应用程序。该脚本位于我的主服务器(Ubuntu 15.10 服务器)上,标记为可执行文件。对这个脚本的访问是通过 ssh 完成的,使用教程,我设置了 ssh 登录,它运行该脚本。所以基本上我只是调用ssh deployer@XXX.com someArguments它并使用someArguments作为参数运行我的脚本。用户的deployeruid=0,所以它基本上root(这将在未来改变,我设置它只是为了消除权限问题,直到它正常工作)。

这就是事情变得棘手的地方。脚本报告/usr/bin/env: php: No such file or directoryat 命令/bin/composer install(使用Composer)。我越看那个剧本,事情就越奇怪。在这一行之前,还有一个叫做/bin/composer self-updateand /bin/composer -V,它既能正确运行,又能显示正确的输出。

我检查了以下几件事:

  • /usr/bin/env php -v显示正确的 PHP 版本(与 相同/usr/bin/php -v
  • whereis php 显示 php: /usr/bin/php /usr/local/bin/php /usr/share/man/man1/php.1.gz
  • php5-cli 安装包和最新版本
  • $PATH 包含 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
  • which env 显示 /usr/bin/env

我也尝试过以下事情:

  • 直接bash deploy.sh在 root 下运行脚本(因为它与该用户相同) - 完美无误
  • 直接运行失败的命令 - …

linux ssh bash php ubuntu

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

Windows 上的 Ubuntu 上的 Bash:无法更改(某些)目录颜色

在 Windows (10) 应用程序上的 Ubuntu 上的新 Bash 上,我尝试将目录颜色从蓝色更改为更明显的颜色,但由于某种原因无法更改某些文件/目录颜色。如何更改所有目录/文件颜色?我的 .bashrc 文件当前设置为文件和目录颜色的颜色提示为绿色和其他亮色。设置是:

LS_COLORS=$LS_COLORS:'di=1;31:fi=0;31;bd=0;32:fi=0;33:cd=0;96';
export LS_COLORS

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[0;31m\]\u@\h\[\033[0,31m\]:\[\033[0;31m\]\w\[\033[0,31m\]\$ '
Run Code Online (Sandbox Code Playgroud)

某些文件和文件夹已更改了与我的 .bashrc 文件相对应的颜色,但其他文件和文件夹由于某种原因没有更改。

一些示例截图: 在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

bash colors ubuntu windows-subsystem-for-linux

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

是否有可能具有目录感知的 bash 历史记录

我不是唯一一个在某些目录中使用某些命令而在其他目录中使用某些命令的人。当我进入一个特定目录并从中运行带有多个参数的脚本时,我希望可以轻松获得它的历史记录。取而代之的是,历史被来自不同选项卡和窗口的成百上千的其他命令填满了垃圾邮件,并且很难达到我想要重新运行的东西。

想象一下,您有一个服务器,用于非常特定的脚本,该脚本启动时带有大量参数-x this -y that/thing/there.conf -d -g -t also -t more- 每当您通过 ssh 连接到该服务器时,要使用该脚本,您只需按几次,它就在那里。

那么,有没有办法在一个系统上,在一个用户下执行此操作?

linux bash

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