标签: bash

使用 histappend 时 Bash 历史记录丢失

我喜欢保留很多历史,所以我histappend在我的.bashrc. 大多数情况下,一切正常,历史记录是由许多 shell 附加而成的。然而,每隔一段时间,我会启动一个新的 shell 并发现我已经丢失了整个历史——而且它通常只包含来自最后一个 shell 的一些退出命令(即它不仅仅是覆盖而不是附加)。因此,我怀疑它是在 shell 退出时发生的,而不是在其他一些进程杀死.bash_history文件时发生的。支持这个结论,我的提示中有历史命令编号,而且我从未见过它们跳下来。

有人遇到过类似的问题吗?或者甚至只是有关于如何追踪问题的建议?

bash history

20
推荐指数
3
解决办法
7479
查看次数

如何从 Mac 上的终端打开文件夹?

我想打开一个包含我所有简历的文件夹,我该如何从终端打开?

mac terminal bash

19
推荐指数
1
解决办法
9万
查看次数

使用 Ctrl 或 Alt 和退格键删除 Bash 中的最后一个单词

在 Linux 中,我习惯按Ctrl-Backspace删除最后一个单词,但我不知道如何在 Bash 终端中执行此操作。

在 OS XI 中使用Alt-Backspace做同样的事情。

有没有办法让 Bash 识别Ctrl- 或Alt-Backspace组合键来删除最后一个单词?

在 Linux 中我terminator用作终端模拟器,在 OSX 中我使用iTerm2.

bash linux-terminal

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

如何检查哪些 SysRq 功能已启用?

该文件/proc/sys/kernel/sysrq包含一个数字,例如:

  • 1 (启用所有 SysRq 命令),
  • 0 (禁用所有),
  • 或用作二进制位掩码的基数为 10 的正整数,启用函数的子集。

有人能告诉我当位掩码设置为 时允许/禁止哪些 SysRq 函数438吗?


$ cat /proc/sys/kernel/sysrq
438
Run Code Online (Sandbox Code Playgroud)

linux bash bitmaps linux-kernel sysrq

19
推荐指数
2
解决办法
7788
查看次数

如何在bash中将变量传递给HEREDOC?

我想做这样的事情:

$ NAME=John
$ cat << '==end' > test
My name is $NAME
==end

$ cat test
My name is John
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

linux bash shell-script

19
推荐指数
1
解决办法
3万
查看次数

用 mv 命令替换现有文件夹

如果已经问过这个问题,我很抱歉,我找不到任何东西......

假设我想用“newstuff”替换“oldstuff”。基本上是重命名来替换。我尝试使用这个命令:

mv ~/newstuff ~/oldstuff
Run Code Online (Sandbox Code Playgroud)

但这只会将文件夹“newstuff”移动到“oldstuff”文件夹中。

我将如何用“newstuff”替换“oldstuff”?

我正在运行 OS X 10.7。

mac bash mv macos

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

如何查看网站目录中的所有文件?

是否可以从 Linux shell 列出给定网站目录中的所有文件和目录?

类似于:

ls -l some_directory
Run Code Online (Sandbox Code Playgroud)

但不是some_directory,它会是ls -l http://www.some_site.com/some_directory/。显然,后者是行不通的。

linux bash shell

19
推荐指数
1
解决办法
14万
查看次数

xargs -I 替换-str 选项区别

根据我的理解,以下含义应该完全相同:

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 xargs

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

是否可以从 RAM 中检索正在运行的 bash 脚本的内容

我不小心覆盖了一个非常复杂的 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 …

memory linux bash

19
推荐指数
2
解决办法
4407
查看次数

是否可以打印出外壳扩展?

我知道有一组特定的规则可以让 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)

bash shell wildcards expansion

19
推荐指数
3
解决办法
4422
查看次数