这是关于 linux,但如果有人知道一般的 *nix 方法会很好。
我昨天在插入以太网电缆的情况下启动了一个系统。“NetworkManager”没有安装,所以一旦它启动,我就去寻找以太网接口的名称ifconfig来手动启动一个 DHCP 客户端,但除了lo.
NIC 通过 列出lspci,并加载了适当的内核驱动程序。系统通常使用 wifi,我记得它的接口名称是wlan0. 当我尝试时ifconfig wlan0 up,wlan0出现了。但是我能记住的唯一以太网接口名称是eth[N]和em[N]- 两者都不起作用。
本文档提到了“可预测的接口名称”,但并没有很好地用简单的术语解释它们可能是什么。它确实引用了一段源代码,这意味着在这种情况下,名称可能是从 PCI 总线和插槽编号推断出来的,这似乎是一个不必要的复杂麻烦。
其他搜索使我相信这可能是由systemd与 一起确定的udev,但是有将近 100 个文件/usr/lib/udev/rules.d并且花了一个小时试图确定在哪里(以及是否)有一个 systemd 配置文件,这似乎也很荒谬。
这也将是不错的肯定知道,他们是可用的,不只是他们怎么可能被命名为,如果是这样,所以我可以排除硬件问题等是不是有一个简单的方法来找到可用的网络接口的名称在Linux上?
要关闭我的系统,我可以使用以下三个命令之一:
sudo halt
Run Code Online (Sandbox Code Playgroud)
或者:
sudo poweroff
Run Code Online (Sandbox Code Playgroud)
或者:
sudo shutdown -h now
Run Code Online (Sandbox Code Playgroud)
这些命令之间有什么区别,或者它们都只是彼此的别名?
如何确定我的系统使用的是哪个用户级 C 库?需要此信息的可能原因包括:
我有一个命令行应用程序,当运行时它没有做它应该做的事情,并且在某个时刻留下消息:
Segmentation fault
Run Code Online (Sandbox Code Playgroud)
这是什么意思?我该怎么办?
我有一个由普通用户运行时需要 root 权限的进程。显然我可以使用“setuid 位”来完成此操作。在 POSIX 系统上执行此操作的正确方法是什么?
另外,如何使用使用解释器(bash、perl、python、php 等)的脚本执行此操作?
有人可以告诉我如何制作程序来执行此操作:5 分钟后
echo "80" > /sys/class/leds/blue/brightness
Run Code Online (Sandbox Code Playgroud)
我希望这个程序在后台运行(比如rngd服务)我不能这样做,因为我对 Linux 不太了解。
我想尝试使用我的发行版提供的内核以外的内核——或者来自其他地方,或者是我定制的。这是困难还是危险?
我从哪里开始?
我想要一种向 $PATH、系统范围内或单个用户添加内容的方法,而无需多次添加相同的路径。
想要这样做的一个原因是,可以在 中进行添加.bashrc,这不需要登录,并且在使用(例如)lightdm从不调用 的系统上也更有用.profile。