我的提示是这样的:
PS1="\[\033[32m\]\u@myserver\n\[\033[33m\w$\033[0m\] "
Run Code Online (Sandbox Code Playgroud)
因此,作为我ls后的输出,我看到了以下内容:
jake@myserver
~/public_html$
~/public_html$
Run Code Online (Sandbox Code Playgroud)
当我只应该(我认为)看到:
jake@myserver
~/public_html$
Run Code Online (Sandbox Code Playgroud)
颜色命令工作得很好(很漂亮),但是这个重复的线条让我发疯。我根据 Windows 版 MySysGit 附带的命令提示符改编了此命令提示符。
为什么会发生这种情况?
如果我只是在提示符下按回车键,它就会正确打印,而不会出现重复的第二行。复制仅发生在ls、cd或其他一些 bash 命令之后。
我使用的是 Mac OS X 10.6.4,并且在执行以下命令时遇到困难:
diskutil
Run Code Online (Sandbox Code Playgroud)
每当我输入 diskutil 时,终端都会显示:
-bash: diskutil: command not found
Run Code Online (Sandbox Code Playgroud)
有谁知道可能是什么问题?我可以安装 diskutil 脚本吗(可能通过将一些 *.sh 复制到某个目标并向 bash.profile 添加一些内容)?
我可能让自己陷入了困境。我在 emacs 中有 3 个窗口,其中 2 个是缓冲区,其中一个是我使用以下命令创建的 bash shell:M-x term
现在我无法切换出该窗口 ( C-x o),因为所有命令都被定向到终端。如何切换该缓冲区窗口?
多谢。
我尝试使用终端。我输入“help”,很高兴看到屏幕上出现命令列表,其中“使用‘info bash’来了解有关 shell 的更多信息”。所以我输入“info bash”,出现了这些词:
File: ada-mode, Node: GNU Free Documentation License, Next: Index, Prev: Comment Handling, Up: Top
Run Code Online (Sandbox Code Playgroud)
接下来是各种文本段落。
看起来当我按空格键时,我可以跳到下一页文本。我找不到如何退出这个“应用程序”。我应该怎么做 ?
这个应用程序的名称是什么?
我有一个文件出现的目录。我想定期运行一个脚本,查找该目录中只有一个链接的所有文件,并将它们硬链接到另一个目录中。但是,我希望创建第二个目录中的目录结构以匹配第一个目录。
查找 /srcdir/ -links 1 -exec ln {} /dstdir/ \;
硬链接所有文件,但不创建我需要的目录。
如果目录仅包含已具有多个链接的文件,则无需在目标中创建该目录。
我知道 bash 功能 !text,它运行以“text”开头的最后一个命令。但当“文本”包含空格时,它似乎不起作用。有时,搜索包含空格的内容很有用。
例如:
history | grep ping
514 ping 192.168.100.2
515 ping 192.168.100.3
516 ping 192.168.100.4
517 ping google.com
518 ping 192.168.100.5
519 ping 192.168.100.6
520 ping 192.168.100.7
Run Code Online (Sandbox Code Playgroud)
我想使用 ! 来调用线路“ping google.com”。特征。我尝试了一些事情,但失败了:
这是标准行为,它运行最后一个 ping 命令
/root# !ping
ping 192.168.100.7
Run Code Online (Sandbox Code Playgroud)
一个简单的字符串,后面有空格!不起作用
/root# !ping google
ping 192.168.100.7 google
Run Code Online (Sandbox Code Playgroud)
据我所知,引号告诉 bash 将带有空格的字符串解释为单个字符串,而不是 2 个单独的字符串。但在这里它并没有按预期工作。
/root# !"ping google"
bash: !"ping: event not found
/root# !'ping google'
bash: !'ping: event not found
/root# "!ping google"
"ping 192.168.100.7 google google"
/root# '!ping google'
bash: …Run Code Online (Sandbox Code Playgroud) 当我尝试从 Bash 脚本运行“yum -y update”时,它不起作用。
脚本如下所示。
#!/usr/bin/
echo "--> Updating CentOS System"
yum -y update
Run Code Online (Sandbox Code Playgroud)
我用这个命令运行脚本。
bash script.sh
Run Code Online (Sandbox Code Playgroud)
我得到以下输出。
Loaded plugins: fastestmirror, refresh-packagekit, security
. Please use /usr/bin/yum --help.
Run Code Online (Sandbox Code Playgroud)
CentOS 6 FINAL 通过文本提示安装。我从文本提示中以 root 身份登录,然后启动 x 进入 GUI 桌面。
但是当我直接在终端中运行相同的命令时它会起作用吗?
我已经用谷歌搜索过,但不确定我是否在谷歌上搜索了正确的术语。
感谢您的帮助。
有一个 bash 脚本将对引用 sqlite 数据库的文件执行“一些魔法”\xe2\x84\xa2,并且在执行“一些魔法”\xe2\x84\xa2 后,应该更新数据库。这是简化的代码
\n\nsqlite3 database.db "select NUMBER from table WHERE STATUS = \'N\'" | while read line; do\n SELECTION=$(echo $line | awk -F\'|\' \'{ print $1 }\')\n [some magic]\xe2\x84\xa2\n sqlite3 database.db "update table SET STATUS=\'Y\' WHERE NUMBER=\'$SELECTION\'"\ndone\nRun Code Online (Sandbox Code Playgroud)\n\n一切正常,sqlite 数据库将被逐行读取,我可以对引用的文件执行“一些魔法”\xe2\x84\xa2,但我可以\xc2\xb4t 更新数据库中的行 - I\xc2\xb4ve出现错误:
\n\n\n\n\n错误:数据库已锁定
\n
有人知道我如何在读取数据库时更新数据库吗?或者还有其他解决方案可以让我做到这一点吗?
\n我有一些这样的文件:
??? abc.conf
??? def.conf
??? xyz.conf
??? 10-abc.conf.postix
??? 10-def.conf.postix
Run Code Online (Sandbox Code Playgroud)
我想.postfix从所有以10-. 为了在不安装任何工具的情况下执行此操作,我尝试使用bash,find和来执行此操作sed。
我建立了这个:
$ find . -name "10-*.conf.postfix" -exec mv '{}' $(echo {} | sed -E 's/(.*)\.postfix$/\1/') \;
Run Code Online (Sandbox Code Playgroud)
但它失败了,因为mv-command 将呈现为:
$ mv '10-abc.conf.postix' 10-abc.conf.postix
Run Code Online (Sandbox Code Playgroud)
如果我在我的子 shell 中测试代码,那么它会按预期工作(它返回不带 的文件名.postifx)。我不确定出了什么问题。你对我有什么暗示吗?
我经常发现自己想要制作一个快速图表来说明依赖关系或过程。
dot这样做很好,但是如果我可以将渲染图直接生成到剪贴板而不是生成临时文件,那会方便得多。
理想情况下,我想要类似的东西
echo "graph {a--b; b--c;}" | dot -Tpng | xclip
Run Code Online (Sandbox Code Playgroud)
这个命令写得不太好 - 复制的数据不会粘贴到通常接受粘贴图像的应用程序中。
有什么技巧可以dot产生可粘贴到应用程序中的输出吗?
作为切线,也许是为了解决我问题根源的知识差距,是什么让图像“可粘贴”开始?我上面的命令与在 Web 浏览器中右键单击图像并选择 之间有什么区别Copy Image?