我正在尝试捕获构建操作的所有输出,并将其发送到myprogram. 我似乎只能捕捉到其中的一部分。这就是我正在尝试的:
make clean && make DISABLE_ID3TAG=1 CFLAGS="-O2 -DNDEBUG -W64" | myprogram &2 > 1
Run Code Online (Sandbox Code Playgroud)
我也试过:
make clean && make DISABLE_ID3TAG=1 CFLAGS="-O2 -DNDEBUG -W64" &2 > 1 | myprogram
Run Code Online (Sandbox Code Playgroud)
基本上我想把所有东西都发送给stdout,然后用它做一些事情。目前我只捕获部分输出,另一部分将显示在屏幕上。如何将所有内容通过管道传输到另一个程序?
我想在 Amazon 的 EC2 上设置一个新服务器,我想使用 Ubuntu 11.04,它是相当新的但不是太新。我以前使用过 10.10,我认为它也非常稳定且经过时间考验。
我的问题是,当我运行ec2-describe-images -o amazon(获取亚马逊拥有的图像)时,这些都不是 Ubuntu。如果我运行ec2-describe-images -a(获取所有图像),大约有 12k 个图像。
问题
在bash有没有什么办法,扩大相对路径为绝对路径,或许与tab完成?
我问是因为有时我会搜索一个文件,找到它,然后vim它:
cd /etc
cd apache2
cd sites-available
vim 000-default
Run Code Online (Sandbox Code Playgroud)
然后我会做一些其他的事情并更改目录:
cd /tmp
ls
cd ~
ls
Run Code Online (Sandbox Code Playgroud)
然后我会发现我需要再次编辑同一个文件,但是不能使用history,(或历史搜索),因为文件路径是相对的。
当前的解决方法
如果我知道我将多次重用一个文件,在我找到它之后,我将使用以下内容获取完整路径realpath:
$ realpath 000-default
/etc/apache2/sites-available/000-default
(copy and paste path into next command:)
$ vi /etc/apache2/sites-available/000-default
Run Code Online (Sandbox Code Playgroud)
注意事项
这仍然需要复制和粘贴。我相信应该有一种更简单的方法可以将文件的完整路径添加到我的历史记录中。我有哪些选择?
我相信我(不小心)在将相对路径扩展为完整路径之前按下了一些组合键。我知道在 bash 中你可以输入:
cd /etc
ls bash_*(control+x *)
Run Code Online (Sandbox Code Playgroud)
并得到:
ls bash.bashrc bash_completion bash_completion.d
Run Code Online (Sandbox Code Playgroud)
那么有没有一种方法可以将相对路径扩展为绝对路径,以便我可以使用该文件的完整路径保存对历史记录中文件的操作?
根据维基百科的bash壳control+u
清除光标前的行内容并将其复制到剪贴板
如果我通过 ssh 进入一个盒子并尝试这样做,文本肯定会消失,但我不知道它去了哪里。我可以以某种方式访问它吗?我不想使用xsel或设置x-forwarding,我只是好奇它是否存储在远程某个寄存器中。例如,我尝试从系统 clibpoard启动vim和输入"*p或"+p粘贴,但没有任何运气。
如果我control+u在通过 ssh 连接到一个盒子时远程使用它,它会去哪里,我可以访问它吗?
在Mac OS X 10.9.5我正在运行boot2docker并想临时将非特权 UDP 端口 69 转发到boot2docker虚拟机的端口 69 。Virtualbox 只支持转发特权端口。
我试过socat像这样运行:
socat UDP-LISTEN:69,fork,reuseaddr UDP:192.168.59.101:69
Run Code Online (Sandbox Code Playgroud)
它工作得很好,直到我尝试建立tftp连接然后它崩溃:
socat[32232] E bind(5, {LEN=16 AF=2 0.0.0.0:69}, 16): Address already in use
Run Code Online (Sandbox Code Playgroud)
netstat -an就UDP而言,检查并没有显示多少开放:
udp6 0 0 *.58669 *.*
udp4 0 0 *.58669 *.*
Run Code Online (Sandbox Code Playgroud)
我在网上能找到的唯一相关的东西并没有多大帮助。
在 Mac OS X 上,将 UDP 流量从一个端口“镜像”到另一个端口的好方法是什么?
我以 root 身份运行。我想将系统的 .bash_history 文件中的所有用户复制到我的主目录中。我可以这样做将所有这些合并为一个,但是我无法分辨谁的命令是谁的。
find /home/ -maxdepth 2 -iname ".bash_history" -type f -exec cat {} >> ~/combined.txt \;
Run Code Online (Sandbox Code Playgroud)
我想将用户名放在文件中的每个文件之间combined.txt,或者我想以这种类型的结构复制文件:
~/user-bash/john.txt
~/user-bash/mary.txt
~/user-bash/bob.txt
~/user-bash/larry.txt
~/user-bash/root.txt
Run Code Online (Sandbox Code Playgroud)
我如何才能完成其中一项(或两项)?
当我运行时,top我看到一行看起来不太好:
2475 www-data 20 0 0 0 0 Z 1 0.0 0:00.19 apache2 <defunct>
Run Code Online (Sandbox Code Playgroud)
为什么是这个过程<defunct>,我应该怎么做?
在撰写本文时,Nagios 的最新版本是 3.3.1。我正在运行 Ubuntu 10.04,并且过去常常使用apt-get update; apt-get install nagios33.2.0 版。
我知道有很多关于手动编译和安装最新版本 Nagios 的说明,但是有没有一种方法可以apt-get用来做它 - 也许编辑/etc/apt/sources.list文件或类似的东西?
我问这个问题已经有一段时间了,现在我使用的是 Ubuntu 12.04 而不是 10.04,但我很失望地报告系统上加载了旧版本的 Nagios (3.2.3) 而不是当前版本( 3.4.1) 如果您使用apt-get安装方法。
我打开了一个悬赏,希望能得到更多信息。请在赏金块中查看下面的注释。
在之前针对 bash 的问题中,我问如何在命令行中扩展相对路径并使用制表符补全?
我喜欢 @Mikel 的答案,其中提到使用Ctrl+ Alt+e来扩展所有变量,并且我经常使用它。
从那时起,我已经切换到,zsh虽然我可以键入$PWD并按Tab以展开当前目录的路径,但如果我键入类似的内容$PWD/.profile并按Tab它不会展开。
我已经阅读了类似的问题,并且看到了有关扩展别名的答案,以及如何通过键入变量并按来扩展变量,但没有什么与在 中按+ +Tab相同 。CtrlAltebash
是否有某种方法允许转义序列(例如Ctrl+ Alt+)e展开正在输入的命令行中的所有变量zsh?
我通常使用rs+[tab]getrsync但它显示了三个选项(在新系统上):
? $ rs
rsh rsync rsyslogd
Run Code Online (Sandbox Code Playgroud)
我很少使用rsh或rsyslogd- 如何防止这些在 zsh 的自动完成列表中显示为匹配项?
command-line ×4
autocomplete ×2
bash ×2
linux ×2
ubuntu ×2
zsh ×2
amazon-ec2 ×1
apache-httpd ×1
apt ×1
aptitude ×1
clipboard ×1
copy-paste ×1
make ×1
networking ×1
osx ×1
pipe ×1
process ×1
ps ×1
scripting ×1
security ×1
socat ×1
ssh ×1
stdout ×1
udp ×1
upgrade ×1
variable ×1