标签: bash

.bashrc 或 .bash_profile 用于 ssh-agent?

.bashrc.bash_profile哪个配置文件是 ssh-agent 的合适位置?我正在寻找一个答案来解释交互式 shell 和登录 shell 之间的区别。

ssh bash bashrc

8
推荐指数
1
解决办法
4826
查看次数

使用 bash 读取文件的第一行

有谁知道一个简单的单行代码来读取 bash 中文件的第一行?

bash

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

Bash 自定义提示打破长命令行的换行

我有一个自定义的 bash 提示,它为我的用户名、主机名和当前工作目录着色。颜色显示正确,但是当我键入需要换行的命令行时,终端不会开始新行,而是覆盖命令的开头。这发生在 RHEL 4 和 Debian 上。

这个问题详细说明了 OS X 上的一个类似问题;似乎这是一个错误终止的控制序列的问题,但是我看不出是什么原因造成的,因为我到处都使用 $(tput) 代码,而不是手工编写我的代码。下面的片段 - 有没有人能够建议我做错了什么?

# Control codes

COL_RST=$(tput sgr0)  # Remove all colour formatting
COL_BRIGHT=$(tput bold) # Emphasise

# Foreground
COL_G=$(tput setaf 2) # Green
COL_Y=$(tput setaf 3) # Yello
COL_B=$(tput setaf 4) # Blue

COL_USR=${COL_Y}${COL_BRIGHT}
COL_PWD=${COL_B}${COL_BRIGHT}
COL_HST=${COL_G}${COL_BRIGHT}

# Set prompt
PROMPT="${COL_USR}\u${COL_RST}@${COL_HST}\h${COL_RST}:${COL_PWD}\W${COL_RST}"

# Put it all together....
PS1="[$PROMPT]\$ "

export PS1
Run Code Online (Sandbox Code Playgroud)

linux bash prompt

8
推荐指数
1
解决办法
3014
查看次数

如何在 bash 中以较少的开销查看磁盘使用情况?

du -csh /
Run Code Online (Sandbox Code Playgroud)

以上将花费大量时间来计算,有没有办法以更少的开销查看不太准确的结果?

更新

我想知道的是特定目录下的总大小。

bash disk-space-utilization

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

将用户名传递给脚本,找到用户的主目录

我正在编写一个脚本,当用户登录并检查某个文件夹是否存在或是否是损坏的符号链接时,该脚本会被调用。(这是在 Mac OS X 系统上,但问题纯粹是 bash)。

它不优雅,也不起作用,但现在它看起来像这样:

#!/bin/bash

# Often users have a messed up cache folder -- one that was redirected
# but now is just a broken symlink.  This script checks to see if
# the cache folder is all right, and if not, deletes it
# so that the system can recreate it.

USERNAME=$3
if [ "$USERNAME" == "" ] ; then
    echo "This script must be run at login!" >&2
    exit 1
fi

DIR="~$USERNAME/Library/Caches"

cd $DIR …
Run Code Online (Sandbox Code Playgroud)

unix bash

8
推荐指数
1
解决办法
4587
查看次数

如何中断卡住的 bash 选项卡完成?

案件:

  • 使用 samba 通过不稳定的 VPN 连接安装的 Windows 共享(有时非常慢,有时会掉线)
  • 在对文件名进行制表符补全时,如果 VPN 速度较慢或在我尝试制表符补全时掉线,我的 bash shell 可能会冻结。

例子:

$ cp myfile.zip /mnt/winbox-c/Progr<tab> key pressed here

发生这种情况时,我是否可以按下一个键来使 bash 脱离挂起状态?

linux bash

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

Stdout/stderr 在 start-stop-daemon 中重定向

我正在尝试编写init配置,将我的守护进程的输出重定向到两个文件(对于 stdout 和 stderr)。问题是,它不起作用。我现在正在读这个

所以,我已经完成了这个 shell 脚本来测试这种方法。它不起作用:

PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Seed kurokikaze starter"
#NAME=node
DAEMON="/etc/node-version/0.1.99/bin/node"
DAEMON_ARGS="/etc/seed/kurokikaze/server.js"
DAEMON_DIR="/etc/seed/kurokikaze"

APPLOG_FILE="/var/log/seed/kurokikaze"
ERRLOG_FILE="/var/log/seed/kurokikaze-err"

PIDFILE="/var/run/seeds/kurokikaze.pid"
SCRIPTNAME="/etc/seed-init/kurokikaze"

NCMD="exec $DAEMON $DAEMON_ARGS 1>>$APPLOG_FILE 2>>$ERRLOG_FILE"

start-stop-daemon -Sbmv --pidfile $PIDFILE --chdir ${DAEMON_DIR} --exec $DAEMON --startas /bin/sh -- $NCMD
Run Code Online (Sandbox Code Playgroud)

但是,如果您在没有将守护程序包装在单独的 shell 中的情况下启动它,它会按预期工作(只是没有 stderr/stdout 重定向):

start-stop-daemon -Sbmv --pidfile $PIDFILE --chdir ${DAEMON_DIR} --exec $DAEMON -- ${DAEMON_ARGS}
Run Code Online (Sandbox Code Playgroud)

问题是:为什么第一个脚本不起作用?系统是Debian Lenny,start-stop-daemon版本是1.14.29

debian bash

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

防止 bash 脚本中出现“rm -rf /”的最佳实践

众所周知,env.variable 中的额外空间会导致 bash 脚本中的 / 目录被删除。

#!/bin/bash
...
rm -rf /$MYPATH
Run Code Online (Sandbox Code Playgroud)

如果 $MYPATH 包含像"dir""dir /"这样的值,它将导致"rm -rf / dir""rm -rf dir /"。并会导致“rm -rf /”

是否有任何最佳做法可以防止这种情况?

linux bash rm

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

如何删除 bash 脚本的某个符号

我有一个 bash 脚本,可以在其中获取磁盘使用情况,例如60%. 如何删除%符号?使用 grep 还是 awk?

scripting linux bash grep awk

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

rsync:如何仅在最顶层目录中排除 Dotfiles?

在 Bash 下使用 执行备份时rsync,我试图排除顶级目录中的所有点文件和隐藏目录,但排除其他目标目录中的那些。例如:

/copyme.c  
/.dontcopythisfile  
/.dontcopythisdirectory/or_its_contents  
/directory/.butcopymetoo
Run Code Online (Sandbox Code Playgroud)

rsync -a --include=".includeme" --exclude=".*" . DEST无法复制子目录中所需的点文件,但诸如此类的变体--exclude="./.*"也失败。

建议?这是否需要过滤规则而不是更简单的规则--exclude

bash rsync regex

8
推荐指数
1
解决办法
8367
查看次数

标签 统计

bash ×10

linux ×4

awk ×1

bashrc ×1

debian ×1

disk-space-utilization ×1

grep ×1

prompt ×1

regex ×1

rm ×1

rsync ×1

scripting ×1

ssh ×1

unix ×1