在试图理解另一个问题时,我遇到了/dev/sda0
被提及的情况。
我在 Linux 方面有一些经验,并且习惯了这种方案,其中sda
, sdb
, \xe2\x80\xa6 是设备sda1
, , sda2
, \xe2\x80\xa6 , sdb1
, sdb2
, \xe2\x80\xa6 是分区(每个分区都在各自的设备)。在这个方案中sda0
, sdb0
, \xe2\x80\xa6 不会出现。我不记得sda0
曾经见过。
仍然sda0
出现在 U&L SE、超级用户和其他地方。在它出现的地方,它几乎总是第一个分区,即我希望在sda1
我习惯的方案中出现的分区。
另一方面,在 Debian 10 中,我可以看到major,minor
数字8,1
for sda1
、8,2
forsda2
等。因此,如果有人问我sda0
可能是什么,我会说8,0
哪个已经分配给了sda
。这个推理sda0
相当于sda
整个设备。我猜这些数字是 Linux 特有的,在非 Linux Unix(类似)操作系统中它们可能会有所不同,因此推理可能不适用于那里。
在互联网上我发现很少有sda0 …
我有一些失败的实验结果文件,它们的内容恰好是一个\n
(换行符)。
我想将它们全部列出(也许使用类似find
或 之类的东西grep
),以了解这些文件是什么,然后删除它们。
我有一个包含一些 HTML 和一些文本的文件,我只想使用文本行。
我在玩弄grep
,试图找到一种方法来排除以 HTML 标记开头的行,甚至是在标记前包含空格的行。
不知何故这对我有用,但我认为它不应该:
grep '^\<' file.htm
它只是向我显示没有 html 的行。你能解释一下为什么吗?我想我需要grep -v
一些.*
地方来完成这项工作。
我使用的是 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 …
考虑这样的命令:
\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
话是行不通的。
我sudo
在这里使用,但这只是需要 tty 的命令的示例。我想要一个通用的解决方案,而不是特定于sudo
.
常规情况下ssh
它不起作用,因为:
我试图弄清楚当我在 PuTTY 或 OpenSSH 中按Ctrl+时到底发送到 SSH 主机的内容是什么。c我想做的就是以编程方式发送控制代码,这相当于用户按下Ctrl+时的z情况。到目前为止,每次我发送^C
或\cc
或\003
它只是打印出来。必须有某种附加信息才能让终端知道它已^C
转义?
我正在以编程方式将字符发送到已连接到 SSH 主机的 SSH 会话。我希望看到与打开 OpenSSH 客户端并按键盘上的Ctrl+时相同的效果。c
我有没有 GUI 的Debian GNU/Linux 7。
我的 LCD 显示器原始分辨率是 1280x1024。我希望我的操作系统默认使用此分辨率tty1
,tty2
等等。
这些是我的/etc/default/grub
:
GRUB_GFXMODE=1280x1024
GRUB_GFXPAYLOAD_LINUX=1280x1024
Run Code Online (Sandbox Code Playgroud)
我已经运行了sudo update-grub
,它没有任何问题。重新启动。这应该足够了,但事实并非如此。
行为如下:
GRUB_GFXMODE
它也可以使用较低的分辨率,在这种情况下,图片被拉伸并使用了整个屏幕——一切正常。Waiting for /dev to be fully populated...
出现时,屏幕闪烁。一秒钟后,图片以相同的分辨率返回,但屏幕底部和右边缘有垃圾(如静态像素噪声)。这就是它的外观(请原谅照片分辨率低,但这应该无关紧要)。蓝色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 设置工作?
附加信息:
我有一个以下格式的文件,每行前都有一个前导空格:
"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
但遇到了麻烦,因为它将所有输出打印到一行,并且似乎用双换行符替换换行符。任何帮助表示赞赏。
我已经/etc/ssh/sshd_config
按如下方式配置了我的 Ubuntu Linux 服务器文件:
ClientAliveInterval 60
ClientAliveCountMax 60
Run Code Online (Sandbox Code Playgroud)
我假设服务器会以 60 秒的间隔发送 60 个空数据包以保持连接有效。连接确实保持活动状态,但可以无限期地保持连接,并且在 1 小时左右后不会断开连接。
我在 1 小时 20 分钟不活动时尝试了它(我只是让 SSH 终端打开而不输入任何内容),它仍然存在。
可能是什么问题?
我需要使用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)
但它不起作用。
使用expect
ssh 和密码自动登录远程,调整窗口大小时,stty size
报告旧大小。vim
导致诸如和 之类的命令less
变得混乱。
我做了一个指向这样的目录的符号链接:
ln -s /some/directory symlink
Run Code Online (Sandbox Code Playgroud)
现在我想删除符号链接:
rm symlink/
Run Code Online (Sandbox Code Playgroud)
这不起作用。错误信息是:
Run Code Online (Sandbox Code Playgroud)rm: cannot remove 'symlink/': Is a directory
我究竟做错了什么?为什么rm
声称我的符号链接是目录?如何正确删除符号链接?
ssh ×4
grep ×2
shell ×2
tty ×2
bash ×1
block-device ×1
debian ×1
devices ×1
directory ×1
expect ×1
find ×1
grub2 ×1
history ×1
html ×1
linux ×1
osx ×1
partition ×1
proc ×1
remote ×1
resolution ×1
rm ×1
sed ×1
shell-script ×1
signals ×1
sudo ×1
symlink ×1
text ×1
ubuntu ×1
udev ×1
whitespace ×1