mv
我并不完全清楚,但是和rename
(从util-linux-ng 2.17.2
as )有什么区别/usr/bin/rename
?rename
除了接受正则表达式之外,还有其他的优势mv
吗?我相信rename
也可以一次处理多个文件重命名,mv
而不会这样做。
我无法在他们的man
页面中找到明确的指示,或者通过我自己的一些调查,他们与众不同。
在尝试获取最后一个位置参数集时/bin/dash
,我试过了echo ${$#}
。令人惊讶的是,这并没有导致错误,而是进入与$$
变量内容相同的 PID。问题,为什么该语法有效?shell 在这里应用的语法规则是什么?
基本上,我所做的是
$ set 1 2 3 4 5
$ echo ${$#}
13819
$ echo $$
13819
显然,%
在这种结构中,字符也会被忽略
$ echo ${$%}
13819
但是*
并@
导致错误的替换错误:
$ echo ${$*}
sh: 10: Bad substitution
$ echo ${$@}
sh: 11: Bad substitution
我有一个awk
脚本,new.awk
:
BEGIN { FS = OFS = "," }
NR == 1 {
for (i = 1; i <= NF; i++)
f[$i] = i
}
NR > 1 {
begSecs = mktime(gensub(/[":-]/, " ", "g", $(f["DateTime"])))
endSecs = begSecs + $(f["TotalDuration"])
$(f["CallEndTime"]) = strftime("%Y-%m-%d %H:%M:%S", endSecs)
}
{ print }
我在 shell 中调用它
awk new.awk sample.csv
...但我可以看到终端的变化。如何在文件中进行就地更改,例如使用时sed -i
?
从这个对Linux 的回答: /dev/console 、 /dev/tty 和 /dev/tty0 之间的区别
从 文档中:
/dev/tty Current TTY device /dev/console System console /dev/tty0 Current virtual console
在过去的美好时光
/dev/console
是系统管理员控制台。TTY 是用户连接到服务器的串行设备。现在/dev/console
和/dev/tty0
代表当前显示和通常是一样的。console=ttyS0
例如,您可以通过添加来覆盖它grub.conf
。之后,您/dev/tty0
的是显示器并且/dev/console
是/dev/ttyS0
。
通过“系统控制台”,/dev/console
看起来像是文本物理终端的设备文件,就像/dev/tty{1..63}
虚拟控制台的设备文件一样。
通过“/dev/console
和/dev/tty0
代表当前显示和通常相同”,/dev/console
在我看来它也可以是虚拟控制台的设备文件。/dev/console
看起来更像/dev/tty0
不是/dev/tty{1..63}
(/dev/tty0
是当前活动的虚拟控制台,可以是任何一个/dev/tty{1..63}
)。
是什么/dev/console
?它是干什么用的?
/dev/console
Linux内核的作用与/dev/tty
进程的作用相同吗?(/dev/tty
是进程的进程会话的控制终端,可以是一个pts,/dev/ttyn
在哪里n
是1到63,或者更多?)
另一个回复提到:
内核文档
/dev/console
将字符设备指定为编号为 5:1 的字符设备。打开这个字符设备会打开“主”控制台,它是控制台列表中的最后一个 tty。
“控制台列表”是否意味着引导选项console=
中的所有 ' ?
“/dev/console
作为编号为 5:1 的字符设备”是否意味着这/dev/console
是物理文本终端(即系统控制台)的设备文件?(但同样,我上面引用的第一个回复说/dev/console
可以与/dev/tty0
不是物理文本终端,而是虚拟控制台相同)
谢谢。
我在一个分区上有一个物理卷,它延伸到整个磁盘,比如 /dev/sda1 使用 100% 的 /dev/sda。现在我需要缩小它来创建/dev/sda2。一个逻辑卷实际上使用了大约 50% 的 PV,因此理论上有足够的可用空间,但它们都是使用单个 PV 分配的。有没有一种安全的方法来缩小物理卷(和底层磁盘分区),为第二个分区创造一些额外的空间?不幸的是,我的配置排除了临时将物理卷 pvmove 到另一台设备的可能性。
当然,我知道我可以在文件级别上执行此操作(例如备份内容、重新分区磁盘驱动器和重新创建 LVM 配置),但我更愿意在不需要从头开始配置 LV 的情况下完成这项工作。
谢谢你。
我想为我在 Arch Linux 中使用的Sway提供一个简单、平静的状态栏。
到目前为止,我发现的配置使用单独的程序,例如waybar或i3status。status_command
虽然它们看起来很棒,但我想保持简单并man sway-bar
直接使用。
最好,此状态栏与i3一样好,这应该是可能的,因为 Sway 旨在使其配置与 i3 兼容。
将数组转换为命令的参数的公认答案?使用以下 Bash 命令:
command "${my_array[@]/#/-}" "$1"
我正试图弄清楚这/#/-
部分到底是做什么的。不幸的是,我不知道该怎么称呼它,所以我很难找到任何文档。我浏览了有关数组和一些网站的 Bash 手册页部分,但找不到任何东西。
我的服务器有两个 1-Gbit 和两个 10-Gbit 板载网卡。
我需要完全禁用 1-Gbit 网卡,这样ifconfig -a
就不会显示它们。
网卡使用不同的内核模块。10-Gbit 使用ixgbe
, 1-Gbit 使用igb
。
01:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
Subsystem: Dell Ethernet 10G 4P X520/I350 rNDC
Kernel driver in use: ixgbe
05:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
Subsystem: Dell I350 Gigabit Network Connection
Kernel driver in use: igb
两者ixgbe
都igb
在内核中静态编译(不是作为可加载模块)。我需要使用内核引导参数禁用模块。
我尝试将以下内容附加到我的内核中,但没有效果:
igb.blacklist=yes
igb.enable=0
igb.disable=yes
igb网卡还在显示
如何完全禁用 igb?