我正在运行 CentOS 7.9,今天我的终端显示奇怪的字符。有些字母看起来不错,但有些符号显示为一些非英文字符。例如,我制作了一个包含以下内容的文本文件:
!@#$%^&*()_+{}
Run Code Online (Sandbox Code Playgroud)
当我打开这个vi或者nano它看起来正如我上面写的是正确的。但在终端中它看起来像这样:
$ cat chars.txt
!É#$%Ü&*()_+äå
$ od -An -vtx1 < chars.txt
21 40 23 24 25 5e 26 2a 28 29 5f 2b 7b 7d 0a
Run Code Online (Sandbox Code Playgroud)
这些奇怪的字符随处可见,即使在我打字时也是如此。这台机器一直工作到今天。我认为这是在我下载了一个二进制文件curl并忘记使用该-O参数之后发生的。重新启动并以其他用户身份登录没有帮助。我的语言环境设置如下;我不知道还有什么要找的。我使用的 shell 是 Bash 4.2 版,没什么异常。
$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)
编辑:说服务器的外壳是 bash 4.2 会更准确。我在 macOS Big Sur 上使用 Terminal.app 登录。
我想使用 find -exec 选项执行一些命令,但我不确定这段代码有什么问题。目前,它只处理第一个查找结果,然后卡住了。我在 OS X 中使用 bash。
read -e DIRECTORY
find $DIRECTORY -type f -name '*.mov' -exec sh -c '
file="$0"
echo "Processing $file ..."
modmovie -notrack "Timecode Track" $file -save-in-place
read line </dev/tty
' {} \;
Run Code Online (Sandbox Code Playgroud) 为什么uname 显示x86_64 三次?这是 Ubuntu 12.04.4。
$ uname -a
Linux seedbox 3.2.0-59-generic #90-Ubuntu SMP Tue Jan 7 22:43:51 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud) 我知道pciconf,但这没有提供足够的信息。lspci -vvFreeBSD 中有类似的东西吗?我想知道协商的链路速度、序列号和其他重要产品数据、NUMA 节点等。
关于重要产品数据,手册页说-V显示了它,但我系统上的任何设备都没有显示任何内容。
这是来自 FreeBSD 的示例
# pciconf -lbcevV pci0:4:0:0
mpr0@pci0:4:0:0: class=0x010700 card=0x30e01000 chip=0x00971000 rev=0x02 hdr=0x00
vendor = 'LSI Logic / Symbios Logic'
device = 'SAS3008 PCI-Express Fusion-MPT SAS-3'
class = mass storage
subclass = SAS
bar [10] = type I/O Port, range 32, base 0xa000, size 256, enabled
bar [14] = type Memory, range 64, base 0xfb300000, size 65536, enabled
cap 01[50] = powerspec 3 supports D0 D1 D2 D3 current …Run Code Online (Sandbox Code Playgroud) 我正在尝试在其中运行一个 for 循环,bash -c以便我可以计时。此代码每次写入 23。我怎样才能让它遍历数字?
time bash -c "for i in {0..23}; do echo $i & done"
Run Code Online (Sandbox Code Playgroud)
此代码有效,但我需要对整个操作计时:
for i in {0..23}; do echo $i & done
Run Code Online (Sandbox Code Playgroud)
该echo命令只是为了简单起见。我真的很想跑dd,这就是为什么我用 &