标签: bash


#!/bin/sh 是否被解释器读取?

bashor 中sh,我想任何以 开头的#都是注释

但是在bash脚本中我们写:

#!/bin/bash
Run Code Online (Sandbox Code Playgroud)

在 Python 脚本中,有:

#!/bin/python
Run Code Online (Sandbox Code Playgroud)

这是否意味着它#本身是一个评论而#!不是?

python bash scripts

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

如何修改我的 PATH 以便更改在每个终端会话中可用

我想添加一个目录来搜索我的搜索路径。我知道我必须修改PATH环境变量。但是,我希望更改是永久性的,这样对于我打开的每个终端 (bash) 窗口,它始终有效。

https://help.ubuntu.com/community/EnvironmentVariables 中有大量令人困惑且可能相互冲突的信息

我正在使用 Ubuntu 10.04。假设我想添加/usr/local/foo到我的PATH. 哪个文件(.bashrc.profile.bash_login,等...),我应该修改,应该怎么新线(S)是什么样子?

bash environment-variables

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

如何删除目录中的所有文件和子目录而不删除bash中的目录?

是否有删除目录中所有文件和子目录而不删除目录的命令?

例如,如果我有目录dontDeleteMe与子目录123和每个子目录中有几张图片,我怎么能删除子目录12以及3所有的文件在其中,而不删除父目录dontDeleteMe

command-line bash rm directory

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

如何让bash在选项卡完成期间停止转义$?

我在命令行上有这个:

ln -sf $PWD/wine-
Run Code Online (Sandbox Code Playgroud)

然后我点击Tab完成文件名。在早期版本的 Ubuntu 中,这可以很好地完成wine-文件名(并且$PWD在当时会扩展副作用)。但现在它变成了

ln -sf \$PWD/wine-
Run Code Online (Sandbox Code Playgroud)

这根本不是我的意思,也没有完成任何事情,因为该文件并不是从字面上开始的 $.

我如何完成恢复到较少损坏的行为?

set 告诉我这些是我当前的设置:

BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
Run Code Online (Sandbox Code Playgroud)

command-line bash

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

是否可以停止创建 .sudo_as_admin_successful?

每次我使用 执行命令时sudo.sudo_as_admin_successful都会在我的主目录中创建一个名为的文件。据我所知,它存在的唯一目的是禁用 bash 在启动时打印的消息:

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
Run Code Online (Sandbox Code Playgroud)

可以通过注释掉 中的相关部分来停止该消息/etc/bash.bashrc,但sudo仍会在我的主目录中创建一个烦人的文件。

此网页建议您可以通过将自己从admin组中删除来停止创建文件,但我不在任何此类组中,admin也不在/etc/group.

有没有办法阻止这个文件被创建?


我相信这不是这个问题的重复,因为那是问是否有可能使 bash 打印的通知消失,而不是是否有可能停止由sudo.

bash sudo

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

使用带蓝牙耳机的麦克风时如何将音频配置文件保持在 A2DP?(一键通)

我有一个 CEL-TEC F5A 耳机。规范说:

蓝牙 4.0,配置文件:耳机、免提、A2DP、AVRCP/HSP/HFP

它与高保真播放(A2DP 接收器)配置文件配合得很好。

当我想将音频输入切换到耳机的麦克风时,输出配置文件会自动更改为耳机主机 (HFS/HFP)并且质量很差 - 比如 8 位声音或其他东西。当我将其切换回 A2DP 时,输入又回到桌面麦克风。

我读过一些其他问题,似乎 A2DP 不支持输入,对吗?但我猜 HFS/HFP 中的 HFP 部分是高保真播放?听起来它可以用作耳机,但听起来仍然不像 1950 年代的手机。

我怎样才能简化配置文件之间的切换,以便在我说话时是 HFS/HFP,而在我听时是 A2DP?例如作为一键通。

Ubuntu 17.10,没有声音定制 IIRC,一切都是最新的。
https://www.kabelmanie.cz/cel-tec-f5a-active-noise-bluetooth-stereo-sluchatka-s-mikrofonem/

我的输出:

$ pactl list cards
Card #0
        Name: alsa_card.pci-0000_00_03.0
...

Card #4
        Name: bluez_card.00_19_5D_25_6F_6C
        Driver: module-bluez5-device.c
        Owner Module: 30
        Properties:
                device.description = "F5A"
                device.string = "00:19:5D:25:6F:6C"
                device.api = "bluez"
                device.class = "sound"
                device.bus = "bluetooth"
                device.form_factor = "headset"
                bluez.path = "/org/bluez/hci0/dev_00_19_5D_25_6F_6C"
                bluez.class = …
Run Code Online (Sandbox Code Playgroud)

sound bash microphone bluetooth 17.10

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

如何限制孩子的计算时间?

需要限制我的孩子(7、8 岁)的帐户访问我们的计算机(不仅是互联网),直到他们长大到可以自己管理为止。在此之前,我们需要能够定义以下内容:

  • 一天中计算正常的时间(例如下午 5 - 9 点)
  • 一周中计算不正常的日子(例如星期一到星期五)
  • 每天允许的时间(例如 2 小时)

在 11.10 中,用于完成这项工作的以下所有内容不再起作用:

  • Timekpr:对于 > 11.10 不再通过 ppa 提供。
  • Timeoutd:命令行替代品,但从 11.10中从存储库中删除
  • Gnome Nanny:看起来不错,但反复崩溃以强制重新启动 X-server。所以我们暂时不能使用或推荐这个程序。

还有其他选择吗?

bash parental-controls software-recommendation

66
推荐指数
7
解决办法
6万
查看次数

长时间运行的命令完成时的桌面通知

每当运行超过 15 秒的命令在交互式 shell 中完成时,我都希望收到桌面通知。

换句话说,我希望所有命令都包含在这样的东西中

start=$(date +%s);
ORIGINAL_COMMAND;
[ $(($(date +%s) - start)) -le 15 ] || notify-send "Long running command finished"
Run Code Online (Sandbox Code Playgroud)

在 bash 中完成此任务的最佳方法是什么?

notification bash

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

如何将 $PATH 显示为每行一个目录?

我无法弄清楚如何分别列出各种路径,$PATH使它们看起来像这样:

/bin
/usr/bin
/usr/local/bin
Run Code Online (Sandbox Code Playgroud)

如何才能做到这一点?

bash paths

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