我渴望知道的区别curl和wget。两者都用于获取文件和文档,但它们之间的主要区别是什么。
为什么有两个不同的程序?
我创建了这个文件结构:
test/src
test/firefox
Run Code Online (Sandbox Code Playgroud)
当我运行此命令时:
ln -s test/src test/firefox
Run Code Online (Sandbox Code Playgroud)
我希望test/firefox/src创建一个指向的符号链接test/src,但是我收到了这个错误:
-bash: cd: src: Too many levels of symbolic links
Run Code Online (Sandbox Code Playgroud)
无意中我映射Enter通过xkbset到Pointer_button2。
现在每次我点击Enter一些乱码都会出现。
我想到了一个涉及将它重新映射回来的解决方法,但这意味着我将不得不运行一个命令xmodmap -e "keycode 135 = Pointer_Button2"(或除 之外的任何其他键码Enter)。但是我无法在终端中运行此命令,而无需点击Enter.
我该怎么做?
我正在运行 Ubuntu 12.04。
我正在尝试将我目录中所有 xml 文件的时间戳更新为当前时间(递归)。我使用的是 Mac OSX 10.8.5。
在大约 300,000 个文件上,以下echo命令需要10 秒:
for file in `find . -name "*.xml"`; do echo >> $file; done
Run Code Online (Sandbox Code Playgroud)
但是,以下touch命令需要10 分钟!:
for file in `find . -name "*.xml"`; do touch $file; done
Run Code Online (Sandbox Code Playgroud)
为什么这里的回声比触摸快得多?
我只知道这一点ls -t,ls -f并在目录下对文件和子目录进行了不同的排序。
例如,我看到有人写道:
默认情况下,rsync 程序只查看文件的大小和时间戳是否不同。它不关心哪个文件更新,如果不同,它会被覆盖。您可以将 '--update' 标志传递给 rsync,这将导致它跳过目标文件,如果它们比源文件新,但前提是它们是相同类型的文件。这意味着,例如,如果源文件是常规文件而目标文件是符号链接,则无论时间戳如何,目标文件都将被覆盖。
附带说明一下,这里的文件类型是否仅表示常规文件和 simlink,而不是 pdf、jpg、htm、txt 等类型?
我常常感到困惑的是,尽管我从事计算机专业工作几十年,Linux 工作十年,但我实际上将操作系统的大部分功能视为黑匣子,与魔术没什么两样。
今天我想到了这个kill命令,虽然我每天多次使用它(无论是“正常”还是-9风格),我必须承认我完全不知道它在幕后是如何工作的。
在我看来,如果一个正在运行的进程被“挂起”,我会调用kill它的 PID,然后它突然不再运行了。魔法!
那里到底发生了什么?联机帮助页谈论“信号”,但这肯定只是一种抽象。发送kill -9到进程不需要进程的合作(如处理信号),它只是将其杀死。
我真的很想知道这一切!
我想安装在我的 Linux red-hat 机器上gettext-0.19.1.tar.xz。
首先我做以下
cd gettext-0.19.1
./configure
make
Run Code Online (Sandbox Code Playgroud)
在make它失败期间g++: command not found
libtool: compile: g++ -DIN_LIBASPRINTF -DHAVE_CONFIG_H -I. -c autosprintf.cc - o .libs/autosprintf.o
./libtool: line 1128: g++: command not found
make[5]: *** [autosprintf.lo] Error 1
make[5]: Leaving directory `/var/tmp/gettext-0.19.1/gettext-runtime/libasprintf'
make[4]: *** [all] Error 2
make[4]: Leaving directory `/var/tmp/gettext-0.19.1/gettext-runtime/libasprintf'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/var/tmp/gettext-0.19.1/gettext-runtime'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/var/tmp/gettext-0.19.1/gettext-runtime'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory …Run Code Online (Sandbox Code Playgroud) 在我的.bashrc. 它看起来像这样:
PS1='\u@\h:\w\[\033[33m\]$(virtual_env)\[\033[32m\]$(git_branch)\[\033[0m\]$ '
Run Code Online (Sandbox Code Playgroud)
其中virtual_env和git_branch是在标准输出上输出内容的 bash 函数。
现在,为了更易于阅读和修改,我想将颜色代码存储在变量中并引用它们,而不是将它们直接嵌入到PS1. 所以我有一堆这样的变量:
GREEN="\[\033[32m\]"
YELLOW="\[\033[33m\]"
RESET="\[\033[0m\]"
Run Code Online (Sandbox Code Playgroud)
我希望能够写出类似的东西:
PS1='\u@\h:\w${YELLOW}$(virtual_env)${GREEN}$(git_branch)${RESET}$ '
Run Code Online (Sandbox Code Playgroud)
但这不起作用——颜色代码显示在提示中,就像它们被转义一样。如果我使用双引号代替 for PS1,颜色可以正常工作,但只有在我这样做时提示才会改变source ~/.bashrc。
我尝试了其他我见过的人做的事情——使用printf,使用单引号作为颜色,将\[和\]放入PS1而不是颜色变量,但似乎没有任何效果。
如何为颜色代码使用变量?
我是 UNIX 的新手,我正在使用 Kirk McElhearn 的“Mac OS X 命令行”自学一些命令。
我正在尝试使用trandgrep以便我可以在常规 MS-Office Word 文档中搜索文本字符串。
$ tr '\r' '\n' < target-file | grep search-string
Run Code Online (Sandbox Code Playgroud)
但它返回的只是:
Illegal byte sequence.
Run Code Online (Sandbox Code Playgroud)
robomechanoid:Position-Paper-Final-Draft robertjralph$ tr '\r' '\n' < Position-Paper-Final-Version.docx | grep DeCSS
tr: Illegal byte sequence
robomechanoid:Position-Paper-Final-Draft robertjralph$
Run Code Online (Sandbox Code Playgroud)
我实际上在我创建的脚本上运行了同一行,vi并且它正确地进行了搜索。