小编Dak*_*ron的帖子

为什么 nullglob 不是默认值?

在大多数 shellnullglob中不是默认的。这意味着,例如,如果您运行此命令

ls *
Run Code Online (Sandbox Code Playgroud)

在一个空目录中,它会将*glob扩展为一个 literal *,而不是一个空的参数列表。有一些方法可以改变这种行为,这样*在一个空目录中将返回一个空的参数列表,这看起来更直观。

那么,是否有理由nullglob默认禁用?如果是,那是什么原因?

shell wildcards

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

清除 apt-get 列表

我正在为基于 Debian 的嵌入式 Linux 构建映像。我apt-get update之前确实在我想用作该图像基础的设备上使用过,因此下面的列表/var/lib/apt/lists非常大(大小接近 100 MB)。

我想保留apt-get功能(所以我不想删除 apt 存储库)但我想释放这些列表中使用的空间(列表几乎是图像大小的两倍)。

有谁知道这是怎么做到的吗?我可以删除下面的文件/var/lib/apt/lists吗?

debian apt package-management

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

CTRL+C:复制或中断

在 Linux 和 Windows CTRL + 中 C 有两种截然不同的含义,这取决于您使用的程序。在某些程序(主要是 GUI 程序)中,它的意思是“复制”,而在其他程序(几乎所有命令行工具)中,它的意思是“中断”或“退出”。

这对于从使用 GUI 转向使用命令行的人来说尤其麻烦,因为“复制”是一种完全安全的操作,而中断可能会杀死您当前正在使用的程序,从而可能破坏您的工作。

原因是什么,或者这种分歧的起源在哪里?

keyboard-shortcuts user-interface

7
推荐指数
1
解决办法
6552
查看次数

如何让 /bin/login 不超时

在我的/etc/inittab我使用以下行:

ttyS0::respawn:/bin/login
Run Code Online (Sandbox Code Playgroud)

如果我想连接到串行端口,这会给我一个登录提示。但它不断呼应这一点:

[hostname] login: 
Login timed out [hostname] login: 
Login timed out [hostname] login: 
Run Code Online (Sandbox Code Playgroud)

我怎样才能阻止它并让它不超时?

因此,要澄清评论中的内容:

  • 登录超时是正常的预期行为
  • 我想在我的机器上改变这种行为,这样就login不会再超时了
  • 在其他Linux发行版,你可以编辑LOGIN_TIMEOUT/etc/login.defs为这个答案解释:变化TTY登录超时- ArchLinux的
  • 这在 Busybox 中不起作用

login busybox busybox-init

5
推荐指数
1
解决办法
2337
查看次数

命令将字符泄漏到 bash

在构建一个小的 Expect 脚本时,我注意到,执行脚本后,一些字符会自动出现在 bash 的输入中。我以前在其他程序上见过这种情况,但在这里我有一些可重现的东西。

我的期望脚本如下:

#!/usr/bin/expect
spawn ssh root@[lindex $argv 0]
expect "password:"
send "[lindex $argv 1]\r"
expect "~#"
Run Code Online (Sandbox Code Playgroud)

这是结果:

user@PC:~$ expect test.exp 192.168.0.2 root
spawn ssh root@192.168.0.2
root@192.168.0.2's password:

^[[51;117Rroot@device:~# user@PC:~$ ;117R
-bash: syntax error near unexpected token `;'
user@PC:~$
Run Code Online (Sandbox Code Playgroud)

正如您在输出的第五行中看到的那样,stdout ( ^[[51;117R) 上有一些随机字符,其中一些泄漏到 shell 输入行 ( ;117R) 上。如果我在执行 Expect 脚本后按 Enter 键,bash 会尝试解释该 ( ;117R),就像我已将其输入到 bash 中一样。

我的问题是,这里发生了什么以及如何阻止它?

shell bash expect stdout stdin

0
推荐指数
1
解决办法
708
查看次数