我正在使用 urxvt 并运行屏幕。我的问题:
有任何想法吗?
# terminfo and termcap for nice 256 color terminal
# allow bold colors - necessary for some reason
attrcolor b ".I"
# erase background with current bg color
defbce "on"
#terminfo rxvt-256color 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
#terminfo screen 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
# Skip the startup message
startup_message off
term xterm
screen
title VIM …Run Code Online (Sandbox Code Playgroud) 我正在使用 scp 传输大文件,但出现此错误:
write failed: Broken pipe lost connection.
Run Code Online (Sandbox Code Playgroud)
现在我需要重新启动 scp 但告诉它从停止的地方继续。我查看了联机帮助页,但无法弄清楚如何执行此操作,并且没有交互模式或方法可以跳过目标中已经存在的文件。
可能的重复:
Bash shell 中的键盘快捷键
有什么办法可以撤销由 bash 完成的自动完成?例如:
$> ls first/second/t
<Presses tab>
$> ls first/second/third
<realizes it should be fourth and not third>
<presses backspace key till initial prompt is reached>
$> ls first/second/
Run Code Online (Sandbox Code Playgroud)
有什么办法可以用一些很酷的组合替换令人讨厌的退格部分,从而取消最近的自动完成?
我试图弄清楚如何操作一个相当大的 Java 程序“prog”。如果我转到它的 /bin/ 目录并配置它的 setenv.sh 和 prog.sh 以使用本地目录和我当前的用户帐户。然后我尝试通过“./prog.sh start”运行它。以下是 prog.sh 的所有相关部分:
USER=(my current account)
_CMD="/opt/jdk/bin/java -server -Xmx768m -classpath "${CLASSPATH}" -jar "${DIR}/prog.jar""
case "${ACTION}" in
start)
nohup su ${USER} -c "exec ${_CMD} >>${_LOGFILE} 2>&1" >/dev/null &
echo $! >${_PID}
echo "Prog running. PID="`cat ${_PID}`
;;
stop)
PID=`cat ${_PID} 2>/dev/null`
echo "Shutting down prog: ${PID}
kill -QUIT ${PID} 2>/dev/null
kill ${PID} 2>/dev/null
kill -KILL ${PID} 2>/dev/null
rm -f ${_PID}
echo "STOPPED `date`" >>${_LOGFILE}
;;
Run Code Online (Sandbox Code Playgroud)
当我实际执行 ./prog.sh start 时,它会启动。但是我在进程列表中根本找不到它。我也不能使用 shell 脚本使用的相同命令手动杀死它。但是我可以说它正在运行,因为如果我执行 ./prog.sh …
为了“正确”实现我喜欢的 shell 的标准配置bash,以便在多个平台上使用,在处理与他们选择的 shell 启动类型(登录或交互式)不一致的终端时,我遇到了一些困惑)。
从 bash 手册中,我确定了启动文件和它们来源的顺序/案例之间的区别(/etc/profile、~/.bash_profile、~/.bash_login、 和~/.profile登录 shell,以及~/.bashrc交互式非登录 shell)。该文档建议您将特定于 bash 的登录配置存储~/.bash_profile在~/.bashrc. 手册本身甚至建议添加if [ -f ~/.bashrc ]; then source ~/.bashrc; fi到~/.bash_profile文件中,以便登录 shell 继承您的交互式 shell 设置。
从我在手册和各种在线论坛/文档中读到的内容来看,将非 bash 特定的登录配置抽象为明智之举,~/.profile因为其他 shell 可以获取此文件。对于除了 bash 之外还可能使用 Bourne shell 的人来说,这可能是一个边缘情况(这在我的情况下不太可能),但这似乎是一个好习惯。
到目前为止,这一切看起来都非常简单和合乎逻辑,尤其是在各种 shell 启动类型之间的区别很明显的环境中:在命令行是主要界面的系统或终端上,登录 shell 是您的主要会话 shell ,交互式 shell 是在该会话中启动的后续 shell,而您的非交互式 shell 是运行脚本的 shell。
真正令人困惑的是,当您的 shell 从已通过系统身份验证的 GUI 环境中的终端启动时,登录 shell 的构成是什么? …
我怎样才能得到一个$PS1包含方框图的字符?
我正在运行 bash,如果它有所作为。
假设我有一个目录结构,如
Dir1/
SubDir1/
SubDir2/
SubDir3/
Run Code Online (Sandbox Code Playgroud)
我希望能够将“Dir1”传递给 bash 脚本,然后对它的所有子目录(SubDir1、SubDir2、SubDir3)执行操作。
谢谢你的帮助!
所以我有一个 cron 设置,每小时将一个文件夹备份到一个 tarball 中。我想在我使用的 shell 脚本中添加大约三天后自动删除文件的功能,这样我就没有大量的文件。
我该怎么办?谢谢。
我有一个大约 3200 行长的以空格分隔的文件。每行包含 7 个以上的字段。
我想要做的是编辑文件,sed以便在字段 5 中包含某个变量的每一行都将其字段 1 更改为 X。
我在想的是做这样的事情:
for variable in `cat word.list.file`
do
sed 's/line_with_$variable_in_field5/replace_field1_with_X/g' old.file > new.file
cp new.file old.file
done
Run Code Online (Sandbox Code Playgroud)
这样对吗?有没有更好的办法?
我需要帮助的是填写sed命令或寻找替代方法来完成同样的事情。
如果能让事情变得更容易,我可以轻松地将空格分隔的文件转换为逗号分隔的文件。
如果需要澄清,请告诉我。
例如,如何做到这一点:
$ job1 &
$ p1=$LASTPID
$ job2 &
$ p2=$LASTPID
$ wait $p1 $p2
Run Code Online (Sandbox Code Playgroud)