Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答

6
生成一致的机器唯一ID
我们能否为每台PC生成唯一的ID,例如uuuidgen,但是除非进行硬件更改,否则它永远不会改变?我当时正在考虑合并CPUID和MACADDR并对其进行哈希处理以生成一致的ID,但是我不知道如何使用bash脚本解析它们,我知道如何从中获取CPUID dmidecode -t 4 | grep ID 和 ifconfig | grep ether 那么我需要组合这些十六进制字符串,并使用sha1或md5对其进行散列以创建固定长度的十六进制字符串。 如何解析该输出?

5
Netstat本地地址列的含义
当我这样做时,netstat -ntlp有一列称为Local Address: 有时它将输出IP地址为 0.0.0.0:7180 有时 127.0.0.1:9001 这两种符号的含义是什么? 特定的IP地址是否充当传入连接的筛选器?例如,127.0.0.1:9001它将仅接受来自本地主机的9001端口连接?
20 netstat 

1
从Docker容器中提取文件?
我可以看到可以通过以下方式将文件插入Docker容器insert: docker insert IMAGE URL PATH 有没有一种方法可以获取Docker容器中文件的内容并将其保存在主机操作系统上的某个位置?我想提取配置文件的值并将其存储在主机操作系统上。
20 linux  docker 

2
文件描述符链接的可移植性
我一直想知道这一点,但从来没有花时间找出来,所以我现在就这样做-是使用便携式怎么这里显示的任一/proc/$$/fd/$N或/dev/fd/$N?我了解POSIX担保 /dev/null, /dev/tty, and /dev/console (尽管我是在阅读有关此答案的评论后的第二天才发现的),但是其他这些担保呢? 据我所知,它们很常见,但是我不能指望它们在哪些系统中找到?为什么不?找到一个比另一个更有可能吗?他们会总是表现出类似的属性吗? 我倾向于以各种方式广泛地使用这些设备,并且我想知道是否有机会尝试一下。 另外,上述问题应该被理解为仅是我想,我想知道,但是,因为我显然要问的第一个地方,我可能不知道最好在这方面,他们不应该被认为是严格要求答案。请告诉我,如果可以的话。

2
运行Zsh首次使用向导
第一次配置Zsh时,我做出了一个错误的选择,所以现在我想再次运行配置向导(第一次登录时运行的向导)。我该怎么做呢?

4
路径独立shebangs
我有一个脚本,希望能够在两台计算机上运行。这两台机器从相同的git存储库中获取脚本的副本。该脚本需要使用正确的解释器(例如zsh)运行。 不幸的是,这两个 env和zsh住在本地和远程计算机不同的位置: 遥控机器 $ which env /bin/env $ which zsh /some/long/path/to/the/right/zsh 本地机器 $ which env /usr/bin/env $which zsh /usr/local/bin/zsh 如何设置shebang,以便像/path/to/script.sh往常一样运行脚本中的Zsh可用脚本PATH?
20 shell  zsh  cron  path 

5
如何获取单个显示器的EDID?
在等待xrandr回答之前,将放大器检测为监视器,可能的解决方法是将具有特定EDID的设备列入黑名单。不幸的是,xrandr --verbose所有内容都以难以解析的格式打印,并且不支持查询单个设备,并且get-edid的输出似乎不容易映射到xrandr的监视器ID(例如DVI-1)。 是否有某种方法可以为单个监视器获取易于解析的 EDID ?
20 xrandr  edid 

4
命令dd中的'seek'参数
有人可以解释一下以下几行吗? dd if=/dev/urandom bs=4096 seek=7 count=2 of=file_with_holes 特别是寻找部分不清楚 手册页说: seek=BLOCKS skip BLOCKS obs-sized blocks at start of output 什么是obs大小的块?
20 dd 

3
在不同的shell中使用“ echo -e”转义序列
我只是注意到,Linux上的Shell中-e似乎不存在该echo命令的标志。这是一个混乱的设置还是“正常”的? 以一些代码为例: #!/bin/sh echo -e "\e[3;12r\e[3H" 印刷品: -e \e[3;12r\e[3H 这以前工作!我猜有些stty命令非常错误,现在不再起作用。有人建议我sh实际上是正义的bash。

5
Udev:重命名我的网络接口
我刚刚在Dell 1950服务器上安装了RHEL 6.3。该服务器作为两个GBit端口Gb0和Gb1。 由于某些模糊的原因,udev选择命名为Gb0 eth1和Gb1 eth0。这对我来说绝对不是一个好发现,只会让人感到困惑。 所以我修改了配置/etc/udev/rules.d/70-persistent-net.rules: # PCI device 0x14e4:0x164c (bnx2) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \ ATTR{address}=="00:20:19:52:d3:c0", \ ATTR{type}=="1", KERNEL=="eth*", NAME="eth1" # PCI device 0x14e4:0x164c (bnx2) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \ ATTR{address}=="00:20:19:52:d3:be", \ ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" 我只是更改了文件上的“名称”字段,以反映我想要的内容。我重新启动了服务器,但它没有工作。 在dmesg日志中,我可以阅读以下内容: udev: renamed network interface eth1 to rename5 udev: renamed network interface eth0 to …
20 linux  rhel  udev 

6
终端-从CLI复制而不使用鼠标
在CLI中触发命令时,我想复制刚触发的命令或在终端中编写的任何内容,然后将其粘贴到其他位置而不使用鼠标。 如下图所示,我想不使用鼠标就复制更新命令(全部或部分),并将其粘贴到某处。

4
将长输出分成两列
是否有一个简单的实用程序或脚本来对我的一个脚本的输出进行列化?我有某种形式的数据: A aldkhasdfljhaf B klajsdfhalsdfh C salkjsdjkladdag D lseuiorlhisnflkc E sdjklfhnslkdfhn F kjhnakjshddnaskjdh 但是如果这变成两个长,则以以下形式写入数据(仍然按垂直顺序排列): A aldkhasdfljhaf D lseuiorlhisnflkc B klajsdfhalsdfh E sdjklfhnslkdfhn C salkjsdjkladdag F kjhnakjshddnaskjdh 通过阅读手册页,我认为这column不适合,但我不确定。拆分表格很容易: A B C D E F 通过仅\n每隔两行打印一次(我当前脚本执行的操作)。有任何想法吗?谢谢!


5
阻止SSH客户端将TERM环境变量传递给服务器?
我目前正在使用Fedora 18 gnome-terminal,然后tmux在其中启动了多路复用器。通过命令连接到CentOS 5服务器后ssh,我发现: ls 结果没有颜色 tmux,screen,hexedit,htop都未能启动,错误信息,如:打开终端失败:终端丢失或不合适:screen-256color 似乎ssh将$ TERM环境变量传递给服务器,但是我在/etc/ssh/ssh_configFedora 18的文件中找不到它。 尽管我可以在服务器上手动更改$ TERM变量,但是每次连接时,它都会再次发生。那么如何预防呢?

2
以空合并方式设置shell变量
我真的很喜欢“空合并”,您可以在其中将变量设置为事物列表中的第一个“非空”值。许多语言都支持此功能,例如: C#: String myStr = string1 ?? string2 ?? "default"; JavaScript: var myStr = string1 || string2 || "default"; ...等等。我只是好奇是否可以在Bash中设置变量? 伪: MY_STR=$ENV{VAR_NAME}??$ANOTHER_VAR??"default";
20 bash  shell  variable 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.