小编And*_*sne的帖子

如何将 wget 的输出重定向为解压缩的输入?

我必须从这个链接下载一个文件。文件下载是一个 zip 文件,我必须将其解压缩到当前文件夹中。

通常,我会先下载它,然后运行 ​​unzip 命令。

$ wget http://www.vim.org/scripts/download_script.php?src_id=11834 -O temp.zip
$ unzip temp.zip
Run Code Online (Sandbox Code Playgroud)

但是这样,我需要执行两个命令,等待第一个执行完成后执行下一个,而且,我必须知道文件的名称temp.zip才能将其提供给unzip.

是否可以将输出重定向wgetunzip?就像是

$ unzip < `wget http://www.vim.org/scripts/download_script.php?src_id=11834`
Run Code Online (Sandbox Code Playgroud)

但它没有用。

bash wget http://www.vim.org/scripts/download_script.php?src_id=11834 -O temp.zip:: 不明确的重定向

此外,wget被执行了两次,并下载了两次文件。

command-line io-redirection

169
推荐指数
6
解决办法
16万
查看次数

stat 命令上下文中的修改和更改有什么区别?

stat命令的手册页说:

   %x     Time of last access
   %y     Time of last modification
   %z     Time of last change
Run Code Online (Sandbox Code Playgroud)

我无法理解modifychange之间的区别。我明白这些词是同义词(英语不是我的母语),但它们的输出不同。

我尝试了以下命令

stat --printf="Change %z\nAccess %x\nModify %y\n" p.txt
Run Code Online (Sandbox Code Playgroud)

现在当我打开 p.txt 时,访问时间改变了,我进入插入模式,编辑文件,修改和更改时间保持不变。

更改 2010-10-06 12:48:39.286252389 +0500
访问 2010-10-06 12:49:14。962243456 +0500
修改 2010-10-06 12:48:39.234498878 +0500

当我将更改写入 file :w、 modify 和 change 时,两者都会更改但给出不同的值。

更改 2010-10-06 12:51:21。949082169 +0500
访问 2010-10-06 12:51:21.908246082 +0500
修改 2010-10-06 12:51:21。908246082 +0500

那么在这种情况下,“修改”和“更改”的含义是什么?也就是说,修改和更改的时间给出了哪些事件的时间?

谢谢

command-line timestamps files

153
推荐指数
1
解决办法
11万
查看次数

如何grep标准错误流(stderr)?

我正在使用 ffmpeg 来获取音频剪辑的元信息。但我无法grep它。

    $ ffmpeg -i 01-Daemon.mp3  |grep -i Duration
    FFmpeg version SVN-r15261, Copyright (c) 2000-2008 Fabrice Bellard, et al.
      configuration: --prefix=/usr --bindir=/usr/bin 
      --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib
      --mandir=/usr/share/man --arch=i386 --extra-cflags=-O2 
      ...
Run Code Online (Sandbox Code Playgroud)

我检查过,这个 ffmpeg 输出被定向到 stderr。

$ ffmpeg -i 01-Daemon.mp3 2> /dev/null
Run Code Online (Sandbox Code Playgroud)

所以我认为 grep 无法读取错误流来捕获匹配的行。我们如何启用 grep 读取错误流?

使用nixCraft链接,我将标准错误流重定向到标准输出流,然后 grep 工作。

$ ffmpeg -i 01-Daemon.mp3 2>&1 | grep -i Duration
  Duration: 01:15:12.33, start: 0.000000, bitrate: 64 kb/s
Run Code Online (Sandbox Code Playgroud)

但是如果我们不想将 stderr 重定向到 stdout 呢?

grep io-redirection ffmpeg

121
推荐指数
8
解决办法
10万
查看次数

如何摆脱桌面环境并仅使用窗口管理器?

我一直在使用 xterm 来完成我的所有工作。我意识到像 GNOME 这样的桌面环境必须提供的功能对我来说没有多大用处。现在,我是否有可能完全删除 GNOME 和 KDE,并仅在运行级别 5 (X11) 中使用某些窗口管理器来播放视频、使用浏览器以及偶尔使用像 Nautilus 这样的文件管理器。我该怎么做?这是个好主意吗?你会推荐哪个窗口管理器?

到目前为止我所做的:我安装了Window Maker。当我重新启动时,登录时又提供了一种选择 - GNOME、KDE、Window Maker。我选择了Window Maker。它为我提供了多个工作区、可自定义的键盘快捷键,而没有面板、通知区域、桌面图标等常见的桌面功能。

但是我观察到每当我启动 Nautilus 时,桌面背景都会更改为我在 GNOME 上设置的背景,并且所有桌面图标都恢复为它们在 GNOME 中的状态,尽管 Window Maker 的键盘快捷键仍然有效。但是要删除 GNOME 背景和桌面图标,我必须注销并再次登录。

如何修复它以便启动 Nautilus 不会带来 GNOME 背景?我应该使用其他文件管理器吗?

更新

我已经编译并安装了 dwm。这一点都不难。虽然我需要执行以下步骤才能使 dwm 显示在我的登录屏幕菜单中。

$ cd /usr/share/xsessions/  
$ vim dwm.desktop  
Run Code Online (Sandbox Code Playgroud)

dwm.desktop我写道:

[Desktop Entry]
Encoding=UTF-8
Name=dwm
Comment=To start dwm session
Exec=/usr/local/bin/dwm
Type=Application
Run Code Online (Sandbox Code Playgroud)

这次当我登录时,菜单中出现了 dwm。

更新

我使用以下步骤解决了鹦鹉螺问题。

$ gconftool-2 --recursive-list "/apps" |less
Run Code Online (Sandbox Code Playgroud)

我在这里搜索了鹦鹉螺。它给了我

 /apps/nautilus:
  /apps/nautilus/preferences:
   show_icon_text = local_only
   start_with_sidebar = true …
Run Code Online (Sandbox Code Playgroud)

window-manager desktop-environment nautilus

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

为什么我的 vim-7.3 编译无法包含客户端服务器?

我正在尝试编译 vim-7.3 将启用所有功能。我跑了配置

$ ./configure --with-features=huge --enable-gui --enable-cscope
$ make ; make install
Run Code Online (Sandbox Code Playgroud)

当我检查版本时,它显示一些功能仍未安装。

没有GUI的巨大版本。包含(+)或不包含(-)的功能:+arabic +autocmd -balloon_eval -browse ++builtin_terms +byte_offset +cindent -clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments +conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con +diff +digraphs -dnd -ebcdic +emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path ....

现在根据vimdoc

N +浏览
N +客户端服务器

它说

因此,如果一个特性被标记为“N”,则它包含在 Vim 的普通版本、大型版本和大型版本中。

features.h 还说

+启用所有可能的功能。

根据上面提到的两个资源,huge意味着所有功能都已启用。即使不是全部,那么至少+clientserver+browse具有在启用huge编译模式。

但我的经验却不然。巨大的编译未能包括浏览和客户端服务器功能。

  1. 为什么会这样?难道我对文档的理解有误?
  2. 如何启用客户端服务器功能?
  3. 如何启用gui?
  4. 是否可以简单地启用所有功能?我很累,正如features.h建议的那样它将启用所有可能的功能,但它没有用。

谢谢你的时间。

编辑:问题已解决!

感谢你们所有人的无价帮助。
我查了一下,vim73/src/auto/config.log …

compiling vim

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

我应该如何处理 Fedora 的短生命周期?

很长一段时间以来,我一直使用 Fedora 作为我的主要发行版。“困扰”我的一件事是它的生命周期相对较短。我安装了它的最新版本,恢复了我的备份,自定义了应用程序,松了一口气,但到那时新版本就在眼前。

Fedora 的生命周期相对较短:X 版本会一直维护到 X+2 版本发布后一个月。发布间隔为 6 个月,每个版本的维护期非常短,只有 13 个月。维基百科

有一次我在从 Fedora 9 迁移到 10 时使用了 pre-upgrade。它运行不顺利。新升级的 Fedora 使用的是 Fedora 9 的旧内核映像。我花了很长时间才弄明白,我不得不使用 live usb 来修复它。从那以后我决定不使用pre-upgradeUpgrade an existing installation选择。我在应用程序上也遇到了一些问题。

使用fresh install似乎更安全。但现在我必须备份所有数据,连同我的脚本和 rc 文件,然后再次恢复。这需要时间来安装默认未安装的应用程序和删除不需要的应用程序。

主要问题是每个应用程序的自定义设置。仅在 Firefox 中,我必须导出保存的密码、书签、保存的会话、不同扩展的首选项等。其他一些应用程序根本不提供保存/导出设置的选项。所以我必须手动配置每一个。

总而言之,升级到最新版本需要时间,如果我的网络连接由于某种原因中断,时间会更长。每次升级时,我都无法忘记几个月后会有新版本敲我的门,我将不得不再次重复整个练习。

  1. 备份所有数据并恢复它的无痛且简单的过程是什么?我更喜欢命令行解决方案。
  2. 如果应用程序不提供导出设置的选项,我如何保留应用程序的设置?
  3. 如果您是 Fedora 用户,您会怎样做才能跟上它的频繁发布?
  4. 我怎样才能让这整个过程更快、更少痛苦?升级所需的时间和努力使我发布了这个问题。我怎样才能让我的生活更轻松?

fedora upgrade package-management

5
推荐指数
2
解决办法
3481
查看次数