小编Kam*_*ski的帖子

什么是“/dev/sda0”?这是一个标准的东西吗?

在试图理解另一个问题时,我遇到了/dev/sda0被提及的情况。

\n

我在 Linux 方面有一些经验,并且习惯了这种方案,其中sda, sdb, \xe2\x80\xa6 是设备sda1, , sda2, \xe2\x80\xa6 , sdb1, sdb2, \xe2\x80\xa6 是分区(每个分区都在各自的设备)。在这个方案中sda0, sdb0, \xe2\x80\xa6 不会出现。我不记得sda0曾经见过。

\n

仍然sda0出现在 U&L SE超级用户和其他地方。在它出现的地方,它几乎总是第一个分区,即我希望在sda1我习惯的方案中出现的分区。

\n

另一方面,在 Debian 10 中,我可以看到major,minor数字8,1for sda18,2forsda2等。因此,如果有人问我sda0可能是什么,我会说8,0哪个已经分配给了sda。这个推理sda0相当于sda整个设备。我猜这些数字是 Linux 特有的,在非 Linux Unix(类似)操作系统中它们可能会有所不同,因此推理可能不适用于那里。

\n

在互联网上我发现很少有sda0 …

partition udev devices history block-device

21
推荐指数
3
解决办法
4452
查看次数

如何递归列出全部内容恰好为“\n”的所有文件

我有一些失败的实验结果文件,它们的内容恰好是一个\n(换行符)。

我想将它们全部列出(也许使用类似find或 之类的东西grep),以了解这些文件是什么,然后删除它们。

grep bash find

14
推荐指数
3
解决办法
1514
查看次数

为什么这个 grep 语句与我期望的相反?

我有一个包含一些 HTML 和一些文本的文件,我只想使用文本行。

我在玩弄grep,试图找到一种方法来排除以 HTML 标记开头的行,甚至是在标记前包含空格的行。

不知何故这对我有用,但我认为它不应该:

grep '^\<' file.htm

它只是向我显示没有 html 的行。你能解释一下为什么吗?我想我需要grep -v一些.*地方来完成这项工作。

linux grep html whitespace text

11
推荐指数
1
解决办法
959
查看次数

`/proc/self/environ` 在某些 shell 中的奇怪行为;到底是怎么回事?

我使用的是 Debian GNU/Linux 9。我知道它/proc很特别,我知道什么/proc/self.

这个命令

sh -c '/bin/cat /proc/self/comm - </proc/self/comm'
Run Code Online (Sandbox Code Playgroud)

产量

cat
sh
Run Code Online (Sandbox Code Playgroud)

如果我使用dash而不是sh. 但是用bash,ksh或者zsh结果是

cat
cat
Run Code Online (Sandbox Code Playgroud)

/proc/self/stat代替/proc/self/comm我可以证实这两个cat-s其实都是同一个过程。显然,引擎盖下的外壳不同,没关系。现在让我们采取

sh -c '/bin/cat /proc/self/environ - </proc/self/environ'
Run Code Online (Sandbox Code Playgroud)

看了上面的,sh还是dash期待看到cat第一个的环境,后面的shell的环境。它似乎有效(无论如何,两种环境很可能是相同的,因此很难判断一切是否按预期工作,但我的观点是:两者都不environ是空的)。

bash,ksh或者zsh我希望看到cat两次的环境,但它只打印一次。分为两种不同的情况:

  • bash -c '/bin/cat - </proc/self/environ'什么都不打印,好像environ是空的;
  • bash -c …

shell io-redirection environment-variables proc

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

ssh 具有单独的 stdin、stdout、stderr 和 tty

问题

\n

考虑这样的命令:

\n
<binary_input ssh user@server \'sudo tool\' >binary_output 2>error.log\n
Run Code Online (Sandbox Code Playgroud)\n

其中tool是任意的,ssh是一个包装器或一些ssh-like-contraption允许上述工作的包装器。常规的ssh话是行不通的。

\n

sudo在这里使用,但这只是需要 tty 的命令的示例。我想要一个通用的解决方案,而不是特定于sudo.

\n
\n

研究:原因

\n

常规情况下ssh它不起作用,因为:

\n
    \n
  • sudo需要 tty 询问密码(或者根本无法工作),所以我需要ssh -t; 实际上在这种情况下我需要ssh -tt.
  • \n
  • 另一方面ssh -tt将使sudo读取密码binary_input。我想通过本地 tty 提供密码。即使sudo配置为无需密码即可工作,或者如果我将密码注入到binary_inputssh -tt也会从远程 tty 进行读取sudo和写入,并将输出错误以及提示写入远程 tty。我不仅无法在本地区分输出和错误/提示。所有流都将由远程 tty 处理,这将破坏数据(您可以在 …

ssh sudo io-redirection tty

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

Ctrl+c 或 Ctrl+z 如何通过 SSH 发送?

我试图弄清楚当我在 PuTTY 或 OpenSSH 中按Ctrl+时到底发送到 SSH 主机的内容是什么。c我想做的就是以编程方式发送控制代码,这相当于用户按下Ctrl+时的z情况。到目前为止,每次我发送^C\cc\003它只是打印出来。必须有某种附加信息才能让终端知道它已^C转义?

我正在以编程方式将字符发送到已连接到 SSH 主机的 SSH 会话。我希望看到与打开 OpenSSH 客户端并按键盘上的Ctrl+时相同的效果。c

ssh signals

6
推荐指数
1
解决办法
4037
查看次数

Debian 不遵守 GRUB2 分辨率设置 – 屏幕上的垃圾

我有没有 GUI 的Debian GNU/Linux 7

我的 LCD 显示器原始分辨率是 1280x1024。我希望我的操作系统默认使用此分辨率tty1tty2等等。

这些是我的/etc/default/grub

GRUB_GFXMODE=1280x1024
GRUB_GFXPAYLOAD_LINUX=1280x1024
Run Code Online (Sandbox Code Playgroud)

我已经运行了sudo update-grub,它没有任何问题。重新启动。这应该足够了,但事实并非如此。

行为如下:

  • GRUB2 菜单始终使用配置的分辨率。我已经检查过GRUB_GFXMODE它也可以使用较低的分辨率,在这种情况下,图片被拉伸并使用了整个屏幕——一切正常。
  • 系统启动时,很少会按预期显示初始消息,并且显示器以其原始分辨率工作。
  • 一瞬间,当消息Waiting for /dev to be fully populated...出现时,屏幕闪烁。一秒钟后,图片以相同的分辨率返回,但屏幕底部和右边缘有垃圾(如静态像素噪声)。
  • 当我登录并随后工作时,有两个条纹(底部,右边缘)对我不可用。

这就是它的外观(请原谅照片分辨率低,但这应该无关紧要)。蓝色mc窗口应占据整个屏幕。在右上角可以看到图形垃圾。底部的条纹是全黑的,但那里也经常有垃圾。

mc 窗口只是屏幕的一部分


尽管设置了 GRUB2,但我的操作系统并未使用所需的分辨率。这是输出fbset

mode "1024x768"
    geometry 1024 768 1280 1024 32
    timings 0 0 0 0 0 0 0
    accel true
    rgba 8/16,8/8,8/0,0/0
endmode
Run Code Online (Sandbox Code Playgroud)

尽管如此,显示器确实使用其原始分辨率。请参阅这张照片的最后一行:

监控报告使用中的原始分辨率

如何使 GRUB2 设置工作?


附加信息:

  • 硬件为JBC362F36W-2600-B Barebone Mini-ITX System
  • 它的主板是 …

debian grub2 tty resolution

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

将行转换为 CSV 文件的命令

我有一个以下格式的文件,每行前都有一个前导空格:

 "Western Overseas",
 "Western Overseas",
 "^",
 "--",
 "^",
 "--",
 "--",
 null,
 24995,
 9977,
 "CR",

 "Western Refrigeration Private Limited",
 "Western Refrigeration Private Limited",
 "[ICRA]A",
 "--",
 "[ICRA]A1",
 "--",
 "Stable",
 null,
 14951,
 2346,
 "CR",
Run Code Online (Sandbox Code Playgroud)

我想将其转换为 CSV 文件,格式为:

 "Western Overseas","Western Overseas","^","--","^","--","--",null,24995,9977,"CR"
 "Western Refrigeration Private Limited","Western Refrigeration Private Limited","[ICRA]A","--","[ICRA]A1","--","Stable",null,14951,2346,"CR"
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用,tr但遇到了麻烦,因为它将所有输出打印到一行,并且似乎用双换行符替换换行符。任何帮助表示赞赏。

osx shell-script text-processing text-formatting

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

SSH ClientAliveCountMax 设置似乎不起作用并断开用户连接

我已经/etc/ssh/sshd_config按如下方式配置了我的 Ubuntu Linux 服务器文件:

ClientAliveInterval 60
ClientAliveCountMax 60
Run Code Online (Sandbox Code Playgroud)

我假设服务器会以 60 秒的间隔发送 60 个空数据包以保持连接有效。连接确实保持活动状态,但可以无限期地保持连接,并且在 1 小时左右后不会断开连接。

我在 1 小时 20 分钟不活动时尝试了它(我只是让 SSH 终端打开而不输入任何内容),它仍然存在。

可能是什么问题?

ssh ubuntu

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

用 $Date 替换 $Date$ 的 sed 命令:2021-01-06

我需要使用sed命令来搜索文本文件并替换$Date$为: 日期文本$Date: 2021-01-06... $ 在哪里...

我有一个sed命令可以搜索Date并将其替换为 Date: 2021-01-06...

sed "s/Date/Date $(date)/"
Run Code Online (Sandbox Code Playgroud)

但我无法得到一个sed命令来替换$Date$.

此外,我能够得到一个sed命令来替换$Date usingsed "s/\$Date/\$Date $(date)/" 但我无法弄清楚搜索和替换的语法$Date$

我试过:

sed "s/\$Date\$/\$Date $(date) \$/"
Run Code Online (Sandbox Code Playgroud)

但它不起作用。

sed

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

如何解决使用“expect”时远程终端屏幕混乱的问题?(通常在调整大小之后)

使用expectssh 和密码自动登录远程,调整窗口大小时,stty size报告旧大小。vim导致诸如和 之类的命令less变得混乱。

shell ssh remote expect

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

为什么`rm` 声称我的符号链接是一个目录?

我做了一个指向这样的目录的符号链接:

ln -s /some/directory symlink
Run Code Online (Sandbox Code Playgroud)

现在我想删除符号链接:

rm symlink/
Run Code Online (Sandbox Code Playgroud)

这不起作用。错误信息是:

rm: cannot remove 'symlink/': Is a directory
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?为什么rm声称我的符号链接是目录?如何正确删除符号链接?

directory symlink rm

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