我已经使用 Linux (Ubuntu) 几个月了,我想尝试 Debian,看看它有什么不同。
好吧,我已经发现了一些不同之处..
我面临着 31 张 CD 的清单......
debian-506-i386-CD-1.iso
-to-
debian-506-i386-CD-31.iso
Run Code Online (Sandbox Code Playgroud)
这是关于什么的,我需要哪个.iso来安装 vanilla(32 位)桌面?
以下代码片段中发生了什么?我没有得到预期的输出。
我认为这是一个错误,但它发生在 2 个不同的程序(uniq 和 sort)中,所以我怀疑这与……嗯,我不知道是什么……因此问题。
前 3 个(共 4 个)示例有效,但第 4 个失败!。
我希望任何和所有角色都有相同的行为。
IE。打印出 2 行(来自 3 行输入)...但在第 4 种情况下,我只得到 1 行(对于sort -u和uniq);两个相同的林斯消失了!
为了视图的紧凑性,我已将输出 '\n' 转换为空间。
我使用的uniq和排序从(GNU的coreutils)7.4 ...的Ubuntu 10.04.3 LTS桌面上运行。
剧本:
{
locale -k LC_COLLATE
echo
for c1 in x ? ;do
for c2 in z ? ;do
echo -n "asis : "; echo -e "$c1\n$c2\n$c2" |tr '\n' ' ';echo
echo -n "uniq : "; echo -e "$c1\n$c2\n$c2" |uniq |tr '\n' …Run Code Online (Sandbox Code Playgroud) 我的非交互式 bash shell 有extglob off. 我想在命令之前的语句中打开它,但我注意到当shopt -s extglob它在一个if .. then .. else块内时,它以某种方式没有注册。
以下extglob-dependant命令无效:syntax error near unexpected token '('.
在哪里可以extglob设置,为什么会有限制?这是否适用于其他选项?... GNU bash 4.1.5
这有效:
shopt -s extglob
if true ;then
touch a.bcd; ls a.@(bcd)
fi
Run Code Online (Sandbox Code Playgroud)
这失败了:
if true ;then
shopt -s extglob
touch a.bcd; ls a.@(bcd)
fi
... line 17: syntax error near unexpected token `('
... line 17: `touch a.bcd; ls a.@(bcd)'
Run Code Online (Sandbox Code Playgroud) 我想~/bin从我的 PATH 中删除。几个月前,当 Linux (Ubuntu) 对我来说还很陌生时,我就设置了它,但我不知道我是如何添加它的...
当我搜索下面列出的所有文件时,没有任何显示。
还能在哪里设置?它在$HOME/.profile前缀 PATH之后被前置$HOME/bin
如果它有任何区别,我会从命令提示符和正在运行的脚本中获得相同的 PATH。
#!/bin/bash
{
echo "first dir of PATH is: '${PATH%%:*}'"
shopt -s nullglob
cat \
/etc/profile \
/etc/bash.bashrc \
/etc/profile.d/*.sh \
$HOME/.bashrc \
$HOME/.bash_aliases \
/etc/bash_completion \
$HOME/.bash_completion* \
$HOME/.profile \
$HOME/.profile_zap \
$HOME/.bash_profile* \
$HOME/.bash_login* \
| sed -rne '/~\/bin/p'
}
Run Code Online (Sandbox Code Playgroud)
输出是:
first dir of PATH is: '~/bin'
Run Code Online (Sandbox Code Playgroud) 我对默认的 Mw 很满意,因为(kill-ring-save)它在运行命令时会丢失该区域的突出显示。我不想改变它的行为,但我确实想重新绑定<C-insert>以执行类似的操作并保持该区域的突出显示。
我已经尝试transient-mark-mode直接(取消)设置并通过函数进行设置,但该区域仍然无法突出显示。
仅(kill-ring-save (region-beginning) (region-end))在交互式功能中运行按预期工作,即。它失去了突出显示。
仅(exchange-point-and-mark) (exchange-point-and-mark)在交互式功能中运行按预期工作,即。它重新突出显示该区域并将点放在/离开它的原始/正确位置。
然而,当我把它们放在一起的功能,但它不能再突出的区域。这是不起作用的函数和绑定:
(defun kill-ring-save-keep-highlight ()
(interactive)
(kill-ring-save (region-beginning) (region-end))
(exchange-point-and-mark) (exchange-point-and-mark)
)
(global-unset-key (kbd "<C-insert>"))
(global-set-key (kbd "<C-insert>") 'kill-ring-save-keep-highlight)
Run Code Online (Sandbox Code Playgroud)
使用:Ubuntu 10.04.3 中的 GNU Emacs 23.1.1
这是错误还是功能?
对于未引用的字母数字,似乎会发生这种情况。
运行 GNU bash,版本 4.1.5
for alpha01234; do echo $((++i)); done
Run Code Online (Sandbox Code Playgroud)
输出:
1
2
3
4
Run Code Online (Sandbox Code Playgroud) 为什么 grep 将 ANSI 代码添加\e[K到其彩色输出中?我看不出它的意义,但显然开发人员可以。它是一个ANSI/VT100 终端代码,用于“清除从当前光标位置到行尾的行”。
在边缘情况下,grep 会导致文本从终端显示中“消失”。例如:
echo -e "ab\rc"
echo -e "ab\rc" |grep --color=always "c"
Run Code Online (Sandbox Code Playgroud)
简单的回显显示:cb,但彩色显示显示:c
底层编码文本是:echo -e 'ab\r\033[01;31m\033[Kc\033[m\033[K'
但是,没有\e[K代码, echo -e 'ab\r\033[01;31mc\033[m'按预期工作!
grep 包含这些\e[K代码的原因是什么。我正在写一个脚本来允许一个叠加的第二彩色化通,如:c=--color=always; ls $c /bin/gzip | grep $c 'z'。所以我需要了解为什么 grep 使用\e[K.
如何将 8 个字节“读取/解释”为无符号整数(Little Endian)?
也许为此有一个 Bash-fu 魔法转换?
更新:
在我的问题的解释中,似乎有些事情发生了交叉。这是我正在尝试做的一个更广泛的例子。
我想读取文件的第一个(也是最后一个)64k。每个 8 字节字将被解释为 64 位小端无符号整数。这些整数将用于唯一标识文件的散列计算。所以有很多计算要进行, ? 速度是首选,但不是关键。(我为什么要这样做?因为smplayer散列其播放的媒体 .ini 文件的名称,我想访问和修改这些文件,所以我在 Bash 中模仿了 smplayer 的 C++ 代码。)
迎合接受管道输入的解决方案将是最佳的,并且可能是必不可少的,因为 Bash 变量无法处理 \x00..
我意识到像这样的东西可能更适合 Python、Perl 和 C/C++ 之类的东西,但我不知道 Python 和 Perl,虽然我可以用 C++ 来做,但我已经好几年没用了它,我正试图专注于 Bash。
简短的 Perl 和 Python 片段很好。Bash 是首选(但不以牺牲速度为代价)。
我目前对熵池的理解是它以缓慢的速度收集真正随机的数据位。我想知道 Unix 和 Linux 如何收集熵,以及 /dev/random 如何使用该熵。
我听说过(一般)熵收集方法,例如“随机”选择的网络数据包到达时视频卡 CPU 的状态,与数模转换器中的嘶嘶声因子相匹配,以及其他更钝的方法。
我相信熵“池”会根据需要被利用,并用于为伪随机生成器提供种子....
我不是在寻求深入的答案,但我很想知道这是否是 Unix/Linux 使用的一般方法?...也许还有一些关于熵收集煤面实际发生的事情的提示。 ..然后,什么是送入..它是一个高级加密标准Rijndael加密熵?
我上面评论的背景信息来自Steve Gibson 的Security Now!播客:第 301 集随机播放,第 2 部分,第 2 部分......他只是泛泛而谈(但正如他的风格一样,足够详细和清晰,即使我也能理解他。听了前面的 300 集有帮助:), ...我想知道这是否是 Unix/Linux 的方式...