我在这里特别想知道的是:不管底层硬件如何,Linux 内核如何在所有不同的 PC 上工作。
或者一般来说,无论 PC 硬件配置如何,任何内核(Microsoft 的 NT 内核、mac os 和 Linux)如何在任何 PC 上工作。
为了解释我的疑问,这里有一个场景:与PC-2相比,PC-1的蓝牙、键盘、wifi等配置不同,由不同的制造商开发。为了使所有这些硬件都能正常工作,我猜内核应该有硬件特定的代码来启用这些硬件。我相信内核有设备驱动程序层,它应该启用这些硬件吗?或者它只是从其他地方加载特定于设备的固件?内核中硬件特定代码的确切位置?此外,在清除我的疑问时,我遇到了 HAL、BSP。这些是什么以及这些层在内核中的位置?
重新启动后,Debian GNOME 桌面会在 tty 中自动启动。当我尝试启动或停止服务时systemctl出现此消息。
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus. Host is down.
Run Code Online (Sandbox Code Playgroud)
我无法正常启动我的系统。随着startx是服务器出现在桌面上。

我正在尝试执行这个 shell 脚本 - https://raw.githubusercontent.com/oneindex/script/master/gclone.sh
这个 shell 脚本检查uname -m输出并且不喜欢它(即 aarch64 )。
xd003@localhost:~$ uname -m
aarch64
xd003@localhost:~$
Run Code Online (Sandbox Code Playgroud)
我想将uname -m输出更改为aarch64,arm64以便它绕过 shell 脚本中的此检查并正确执行。
我想tail在找到匹配项后终止命令,直到所有行都写入另一个文件。
tail -f logfile | sed '/special string/q' | tee output.txt
Run Code Online (Sandbox Code Playgroud)
Output.txt 将包含直到找到特殊字符串为止的行。但问题是,之后我想结束命令tail。
我正在运行 Ubuntu 19.04。我最近需要安装 Chrome 或 Firefox 以外的浏览器才能播放 Flash 视频。我现在遇到了一个更复杂的问题。
每次我尝试使用 dpkg 执行某些操作时,都会收到如下错误代码:
dpkg: error: dpkg frontend lock is locked by another process
Run Code Online (Sandbox Code Playgroud)
为了尝试解决这个问题,我尝试了以下命令:
sudo dpkg -l | grep ^..r
Run Code Online (Sandbox Code Playgroud)
找出违规过程是什么,但那里什么也没有。我还sudo rm编辑了一堆文件夹,例如/var/lib/apt/lists/lock. 运气不好,我仍然无法安装任何软件包。
我想不出这背后的原因,除了:我最近更改了我的 sources.list 文件;并下载 Chrome(非免费)浏览器。不过,我不知道这两种情况下的联系是什么。有什么想法可以解决这个问题吗?
我有一个连接到家庭网络的树莓派,但每次重新启动它时,IP 地址都会发生变化。我不想每次都调用 ssh user@ipaddress,而是想运行一个 bash 脚本来知道哪个地址有效。
我试图ssh user@ipaddress多次运行更改 IP 地址的最后一个数字。我不知道 bash 是如何工作的,所以我尝试制作一个文件.sh来做到这一点:
for i in {1..100}
do
call=`ssh user@192.168.0.$i`
if [['$call'==*'user'*]]; then
echo "$i"
else
:
fi
done
Run Code Online (Sandbox Code Playgroud)
我的问题是:
所以我想知道是否有bash函数可以在其他设备时传递命令,因为我知道我的用户名,我只需要在第一行的命令输出中找到我的用户名,并且不要'不需要等待更多的输出。
我需要一个 shell 脚本,它将一些字符串添加到目录和子目录中存在的文件名(.c 文件)中。
例如:如果lokesh是父目录并且在它里面lokesh1,lokesh2是子目录和里面lokesh1( 1.c, 2.c...) 和里面lokesh2( a.c, b.c...)。因此,在运行脚本后,我想将其更改为 ( x_1.c, x_2.c... ) 和(x_a.c, x_b.c...)。
有没有可以收集命令并连续运行它们的应用程序?当我有多个不应该同时运行的命令要运行时,这会很有帮助。有一个小窗口,我可以在其中看到正在运行和即将到来的命令,这也很有趣。
我搜索了“linux shell 批处理列表”,但没有找到任何东西。
例如 whoami 和日期。我可以那样做
whoami>/home/user/folder/file
date>>/home/user/folder/file
Run Code Online (Sandbox Code Playgroud)
但我确信它可以在一行中完成而无需两次输入路径。我试过使用
|
Run Code Online (Sandbox Code Playgroud)
但总是第一个命令被忽略。