有时我会发生这种情况,我不小心按了CTRL+ Z,我的应用程序消失在后台。我知道,我可以把它带回来fg,所以这没什么大不了的。但我想知道job control无论如何都要关闭它。在我的一生中,我无法记住一个我需要它的实例,它在我看来只是过去的遗物。
job control完全禁用可以吗?或者我遗漏了什么,这个功能很有用?我将如何在我的.bashrc
我已经set +m按照@Falsenames 的建议进行了尝试。但是,这仅在我在终端中输入时才有效。添加set +m到我的.bashrc没有效果。
我很困惑应该如何md5sum --check工作:
$ man md5sum
-c, --check
read MD5 sums from the FILEs and check them
Run Code Online (Sandbox Code Playgroud)
我有一个文件,我可以通过管道将其发送到md5sum:
$ cat file | md5sum
44693b9ef883e231cd9f90f737acd58f -
Run Code Online (Sandbox Code Playgroud)
当我明天想检查文件的完整性时,如何检查 md5sum 是否仍然存在44693b9ef883e231cd9f90f737acd58f?
cat file可能是一个流。所以我想在我的例子中使用管道,而不是md5sum file.
我经常使用ctrl+c鼠标右键单击菜单和粘贴从某些 gui 应用程序复制文本,然后将其粘贴到我的终端模拟器(终结器)中。有时我会忘记剪贴板包含几行,当粘贴到 bash 时会导致每一行都被“执行”
是否有一些解决方案可以完全防止多行粘贴?
在脚本中,错误通常用 发送到文件描述符 2 &2,即:
echo "error" >&2
Run Code Online (Sandbox Code Playgroud)
有时/dev/stderr改为使用:
echo "error" > /dev/stderr
Run Code Online (Sandbox Code Playgroud)
看着/dev/stderr,我看到它只是到 的符号链接/proc/self/fd/2,而后者又是到/dev/pts/5(在我当前的终端上)的符号链接。
看起来有点过于复杂了。这背后有什么逻辑吗?
使用/dev/stderr和&2等效吗?
其中任何一个都比另一个更受欢迎吗?
我正在使用 Debian Stretch。我的根分区已挂载read-only。只有当我安装或升级包时,才会/重新挂载到read-write(通过使用 apt 钩子),然后重新挂载回ro.
有时在软件包升级后,我无法重新安装/为只读:
mount -o remount,ro /
mount: / is busy
Run Code Online (Sandbox Code Playgroud)
在较旧的 Debian 版本 (Wheezy) 上,我可以列出已取消链接的打开文件lsof:
lsof +L1
Run Code Online (Sandbox Code Playgroud)
或者,更具体地说,阻止/重新挂载回 ro 的文件:
{ lsof +L1 ; lsof|sed -n '/SYSV/d; /DEL|(path /p;' ; } | grep -Ev '/(dev|home|tmp|var)'
Run Code Online (Sandbox Code Playgroud)
但是,在 Debian Stretch 上,lsof +L1不会列出任何文件。
我没有看到任何改变+|-L在man lsof这可以解释为什么它停止工作。
为什么 lsof +L1 不再列出已取消链接的打开文件?
如何列出那些阻止 / 重新挂载为只读的文件?
更新
我已经停止了所有可以停止的进程,并且只有init并且getty仍在运行,但我仍然无法重新挂载/ …
我有一个文本文件,其中记录分为两行。我想把它们放在一条线上。记录看起来像这样:
2013-07-29
apt-get install git
2013-07-29
apt-get install rsync
2013-07-31
apt-get install nmap
2013-08-02
apt-get install cifs-utils
2013-08-05
apt-get install telnet
Run Code Online (Sandbox Code Playgroud)
我想得到以下内容:
2013-07-29 apt-get install git
2013-07-29 apt-get install rsync
2013-07-31 apt-get install nmap
2013-08-02 apt-get install cifs-utils
2013-08-05 apt-get install telnet
Run Code Online (Sandbox Code Playgroud)
我试过sed,但我无法匹配两行。有什么技巧sed吗,或者有什么更好的工具?
我需要带有上下文、颜色和空白行作为组分隔符的 grep 输出。在这个问题中,我学会了如何定义 custom group-separator,并且我已经像这样构建了我的 grep 命令:
grep --group-separator="" --color=always -A5
Run Code Online (Sandbox Code Playgroud)
但组分隔符实际上不是空的,而是仍然包含颜色代码(即[[36m[[K[[m[[K)。这是因为我正在使用--color=always. 但是我需要在我的 grep 命令中使用颜色,并且我需要将分隔符设为空行(以便进一步处理)
我怎样才能结合这两个条件?
检查 $1 是否为 /bin/dash 整数的最佳方法是什么?
在 bash 中,我可以这样做:
[[ $1 =~ ^([0-9]+)$ ]]
Run Code Online (Sandbox Code Playgroud)
但这似乎不符合 POSIX 标准,而且 dash 不支持
我有一个可执行的二进制文件;让我们称之为a.out。我可以看到二进制文件包含字符串
$ strings a.out
...
/usr/share/foo
....
Run Code Online (Sandbox Code Playgroud)
我需要将字符串更改/usr/share/foo为/usr/share/bar. 我可以用sed?替换字符串吗?:
sed -i 's@/usr/share/foo@/usr/share/bar@' a.out
Run Code Online (Sandbox Code Playgroud)
这看起来是一件安全的事情。当字符串长度不同时,这也能工作吗?
我理解无文件恶意软件的定义:
不基于文件而仅存在于内存中的恶意代码……更具体地说,无文件恶意代码……将自身附加到内存中的活动进程中……
有人可以解释一下这个附加到内存中的活动进程是如何工作的吗?
此外,针对此类攻击有哪些(内核)保护/强化可用?
bash ×2
string ×2
apt ×1
bashrc ×1
binary ×1
clipboard ×1
colors ×1
command-line ×1
dash ×1
debian ×1
elf ×1
executable ×1
files ×1
grep ×1
hashsum ×1
job-control ×1
linux-kernel ×1
lsof ×1
malware ×1
perl ×1
pipe ×1
portability ×1
process ×1
programming ×1
readonly ×1
sed ×1
shell ×1
stderr ×1
x11 ×1