我喜欢保留很多历史,所以我histappend在我的.bashrc. 大多数情况下,一切正常,历史记录是由许多 shell 附加而成的。然而,每隔一段时间,我会启动一个新的 shell 并发现我已经丢失了整个历史——而且它通常只包含来自最后一个 shell 的一些退出命令(即它不仅仅是覆盖而不是附加)。因此,我怀疑它是在 shell 退出时发生的,而不是在其他一些进程杀死.bash_history文件时发生的。支持这个结论,我的提示中有历史命令编号,而且我从未见过它们跳下来。
有人遇到过类似的问题吗?或者甚至只是有关于如何追踪问题的建议?
在 Linux 中,我习惯按Ctrl-Backspace删除最后一个单词,但我不知道如何在 Bash 终端中执行此操作。
在 OS XI 中使用Alt-Backspace做同样的事情。
有没有办法让 Bash 识别Ctrl- 或Alt-Backspace组合键来删除最后一个单词?
在 Linux 中我terminator用作终端模拟器,在 OSX 中我使用iTerm2.
该文件/proc/sys/kernel/sysrq包含一个数字,例如:
1 (启用所有 SysRq 命令),0 (禁用所有),有人能告诉我当位掩码设置为 时允许/禁止哪些 SysRq 函数438吗?
$ cat /proc/sys/kernel/sysrq
438
Run Code Online (Sandbox Code Playgroud) 我想做这样的事情:
$ NAME=John
$ cat << '==end' > test
My name is $NAME
==end
$ cat test
My name is John
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
如果已经问过这个问题,我很抱歉,我找不到任何东西......
假设我想用“newstuff”替换“oldstuff”。基本上是重命名来替换。我尝试使用这个命令:
mv ~/newstuff ~/oldstuff
Run Code Online (Sandbox Code Playgroud)
但这只会将文件夹“newstuff”移动到“oldstuff”文件夹中。
我将如何用“newstuff”替换“oldstuff”?
我正在运行 OS X 10.7。
是否可以从 Linux shell 列出给定网站目录中的所有文件和目录?
类似于:
ls -l some_directory
Run Code Online (Sandbox Code Playgroud)
但不是some_directory,它会是ls -l http://www.some_site.com/some_directory/。显然,后者是行不通的。
根据我的理解,以下含义应该完全相同:
ls -1 | xargs file {}
ls -1 | xargs -I{} file {}
Run Code Online (Sandbox Code Playgroud)
如果未指定 -I 选项,则默认为 -I{}。
我想列出当前目录中的所有文件file并对每个文件运行命令。有些名字中有空格。但是,我注意到了差异。见下文:
$ ls -1
Hello World
$ ls -1 | xargs file {}
{}: ERROR: cannot open `{}' (No such file or directory)
Hello: ERROR: cannot open `Hello' (No such file or directory)
World: ERROR: cannot open `World' (No such file or directory)
$ ls -1 | xargs -I{} file {}
Hello World: directory
Run Code Online (Sandbox Code Playgroud)
明确指定 -I{} 后,文件名中的空格会按预期处理。
我不小心覆盖了一个非常复杂的 bash 脚本,我试图以一种整洁的方式实现范围和线程。
现在相同的脚本仍在运行,但文件已不复存在,问题是:是否可以扫描 ram 并找到文件本身的 sting 表示?
另一个问题是:我找不到 /dev/mem 或 /dev/kmem 文件,已经尝试对其内容进行 grep。
环境:它是 vpsfx.com 上的 debian/sid machine (vps) hostet
root@heisenberg:~# ls -a /dev . kmsg ptyp2 ptyp9 随机 tty1 tty5 ttyp2 ttyp9 urandom .. 记录 ptyp3 ptypa shm tty10 tty6 ttyp3 ttypa xconsole .udev null ptyp4 ptypb stderr tty11 tty7 ttyp4 ttypb 零 字符 ptmx ptyp5 ptypc 标准输入 tty12 tty8 ttyp5 ttypc 控制台 pts ptyp6 ptypd 标准输出 tty2 tty9 ttyp6 ttypd fd ptyp0 ptyp7 ptype tty tty3 ttyp0 …
我知道有一组特定的规则可以让 shell 扩展用户输入的命令。(让我们谈谈 bash shell。)
shell扩展后是否可以打印出表单中的命令?它似乎是一个很好的实用工具,可以学习和确定 shell 如何扩展特殊字符。
例如
$ echo *
{all the filenames in current dir}
Run Code Online (Sandbox Code Playgroud)
我想打印出展开的命令,即以下行:
echo {all the filenames in .}
Run Code Online (Sandbox Code Playgroud)