尝试在 bash shell 下执行以下命令 echo "Reboot your instance!"
在我的安装中:
root@domU-12-31-39-04-11-83:/usr/local/bin# bash --version
GNU bash, version 4.1.5(1)-release (i686-pc-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
root@domU-12-31-39-04-11-83:/usr/local/bin# uname -a
Linux domU-12-31-39-04-11-83 2.6.35-22-virtual #35-Ubuntu SMP Sat Oct 16 23:57:40 UTC 2010 i686 GNU/Linux
root@domU-12-31-39-04-11-83:/usr/local/bin# echo "Reboot your instance!"
-bash: !": event not …Run Code Online (Sandbox Code Playgroud) 我正在通过 SSH 连接到一台 Linux 机器,并且我正在尝试运行一个重型 bash 脚本来进行文件系统操作。预计它会持续运行数小时,但由于互联网连接问题,我无法让 SSH 会话保持打开状态。
我怀疑使用后台运算符和符号 ( &)运行脚本是否会奏效,因为我尝试过,后来发现该过程未完成。如何注销并保持进程运行?
有什么是你不能没有的,会让我的生活变得更轻松吗?以下是我使用的一些(“磁盘空间”和“文件夹”特别方便)。
# some more ls aliases
alias ll='ls -alh'
alias la='ls -A'
alias l='ls -CFlh'
alias woo='fortune'
alias lsd="ls -alF | grep /$"
# This is GOLD for finding out what is taking so much space on your drives!
alias diskspace="du -S | sort -n -r |more"
# Command line mplayer movie watching for the win.
alias mp="mplayer -fs"
# Show me the size (sorted) of only the folders in this directory
alias folders="find . -maxdepth 1 -type d -print …Run Code Online (Sandbox Code Playgroud) 检查卷是否安装在 Bash 脚本中的最佳方法是什么?
我真正想要的是一种可以像这样使用的方法:
if <something is mounted at /mnt/foo>
then
<Do some stuff>
else
<Do some different stuff>
fi
Run Code Online (Sandbox Code Playgroud) 我想运行一个 bash 子 shell,(1) 运行一些命令,(2) 然后留在那个子 shell 中按照我的意愿去做。我可以单独做这些:
使用-c标志运行命令:
$> bash -c "ls; pwd; <other commands...>"
Run Code Online (Sandbox Code Playgroud)
但是,它会在命令执行后立即返回到“超级”shell。我也可以只运行一个交互式子shell:
启动新bash进程:
$> bash
Run Code Online (Sandbox Code Playgroud)
它不会退出子shell,直到我明确地说出来......但我无法运行任何初始命令。我找到的最接近的解决方案是:
$> bash -c "ls; pwd; <other commands>; exec bash"
Run Code Online (Sandbox Code Playgroud)
这是可行的,但不是我想要的方式,因为它在一个子 shell 中运行给定的命令,然后打开一个单独的命令进行交互。
我想在一行上做到这一点。一旦我退出子外壳,我应该返回到常规的“超级”外壳,而不会发生任何事故。一定有办法~~
注意:我不是在问什么......
xterm -e 'ls'我有一个不断运行的脚本,我输出到日志文件:
script.sh >> /var/log/logfile
Run Code Online (Sandbox Code Playgroud)
我想在附加到日志的每一行之前添加一个时间戳。喜欢:
Sat Sep 10 21:33:06 UTC 2011 The server has booted up. Hmmph.
Run Code Online (Sandbox Code Playgroud)
有什么柔术可以用吗?
当我有 dircolors 定义的生活充满了......颜色。
当我ls通过管道less滚动时,我失去了颜色。
有什么建议?
我需要将一些复杂的 xml 写入 bash 脚本中的变量。xml 需要在 bash 脚本中可读,因为这是 xml 片段所在的位置,而不是从另一个文件或源读取。
所以我的问题是,如果我有一个很长的字符串,我想在我的 bash 脚本中成为人类可读的,那么最好的方法是什么?
理想情况下,我想要:
这可以用EOF或其他东西来完成,谁能给我举个例子?
例如
String = <<EOF
<?xml version="1.0" encoding='UTF-8'?>
<painting>
<img src="madonna.jpg" alt='Foligno Madonna, by Raphael'/>
<caption>This is Raphael's "Foligno" Madonna, painted in
<date>1511</date>-<date>1512</date>.</caption>
</painting>
EOF
Run Code Online (Sandbox Code Playgroud) 我想发起一个讨论,以积累您的 Linux 命令行 (CLI) 最佳实践和技巧。
我搜索了这样的讨论来分享以下评论,但没有找到,因此这篇文章。
我希望我们都能从中吸取教训。
欢迎您分享您的 Bash 技巧、grep、sed、AWK、/proc 和所有其他相关的 Linux/Unix 系统管理、shell 编程最佳实践,以造福我们所有人。