Unix & Linux

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


1
这些ANSI艺术作品使用哪种编码类型?
我已经找到这个网站 ; 它包含所有艺术品的zip文件(主页上的链接)。其中一些具有.ans扩展名,看起来像Linux / Unix上使用的ANSI转义代码,但是当我cat在XFce终端中使用其中一个打开它们时,会产生垃圾(但是是彩色的)。它们看起来不像图片库。 链接中主要艺术品的第一行如下所示(从Emacs复制): [0;1m[30mthere is no substitute [0;33mÜܲ[1;43m°±²²[40mÛ[43mÛ²±[0;33mÝ ßÜ[1;43m²²²[40mÛÛ²[40m[K 文件类型是DOS,但是可以在Windows上创建。 在搜索ANSI艺术作品时,我还发现该网站的 zip文件仅包含带有.ans扩展名的文件,并且它们在Linux上也无法正确呈现(第2页,画廊)。 我的问题是: 对于哪种计算机,这是什么类型的编码? 我需要特殊的查看器才能在Linux终端上看到它吗? 您是否知道这种艺术品是为Linux / Unix终端创建的?我只发现了ASCII艺术。 是否可以将其转换为在Linux终端上查看?
12 linux  ansi-term  ansi 

4
在2018年仍然可以安装Debian 5吗?
我想在旧PC上安装Debian 5,因为我希望Debian 5的内核在这台计算机上能更好地工作。 我从下载了netinstall ISO,debian.org然后尝试将其安装在Virtualbox计算机上。我收到此错误:Bad mirror。我将镜像更改archive.debian.org为主机名,然后/debian/问题得到解决。 我现在的问题是安装卡在Please wait...的屏幕上Select and install(恰好在选择要安装的内容之后-仅Standard System-13%)。 我没有任何错误。我也不知道如何检查日志或其他是否存在的日志。 当我按CTRL+ ALT+时F4,我在屏幕上看到以下内容: > sep 14 15:36:00 in-target: You should only proceed with the installation if you re certain that > sep 14 15:36:00 in-target: this is what you want to do. > sep 14 15:36:00 in-target: > sep …

1
Unix中的进程,内核线程,轻量级进程和用户线程之间是什么关系?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 Vahalia的Unix Internal拥有显示进程,内核线程,轻量级进程和用户线程之间关系的数字。本书最关注SVR4.2,还详细探讨了4.4BSD,Solaris 2.x,Mach和Digital UNIX。请注意,我并不是在问Linux。 对于每个流程,该流程始终存在一个或多个轻量级流程吗?图3.4似乎是肯定的。 为什么图3.5(a)在CPU上直接显示进程,而在两者之间却没有轻量级进程? 对于每个轻量级进程,轻量级进程始终始终存在一个内核线程吗?图3.4似乎是肯定的。 为什么图3.5(b)在进程顶部直接显示轻量级进程,而在它们之间却没有任何内核线程? 内核线程是唯一能够调度的实体吗? 轻量级进程是否仅通过调度底层内核线程间接进行调度? 是否仅通过调度底层轻量级进程来间接调度进程? 更新: 我问了一个类似的Linux问题,Linux 的内核线程是否有轻量级进程? 我猜可能是因为《操作系统概念》一书隐含地介绍了使用Unix的概念,而Unix和Linux可能有所不同,所以我了解了Unix内核。 感谢当前的回复,但我希望重新打开该帖子,以便我可以接受其他回复。

3
直流精度损失
我想dc用十六进制点来处理一些基数为16的数字,但是我遇到了精度问题。例如,下面,我乘F423F.FD用100,无论是十六进制。预期的答案是F423FFD,反而给出F423FFA.E1接近,但即使四舍五入也不够准确。 $ dc 16 d i o F423F.FD 100 * p F423FFA.E1 我读到那dc是一个无限精度的计算器,无论如何这都不是很大的数字。我做错什么了吗? 感谢您的回答。鉴于存在的问题dc,我忍无可忍,并编写了自己的解析器,用于其他基数的实数。如果有人对代码感兴趣,可以在此处发布。
12 dc 

3
为什么“ cat {foo}”不输出foo,而是“ cat {foo,bar}”呢?
我试图在子文件夹中串联文本文件并尝试: cat ./{mainfolder1,mainfolder2,mainfolder3}/{subfolder1}/book.txt > out$var 但是,这没有返回任何内容。因此,尝试添加一个不存在的“ subfolder2” cat ./{mainfolder1,mainfolder2,mainfolder3}/{subfolder1,subfolder2}/book.txt > out$var 这次确实解决了,成功地将文件串联在一起。为什么会这样?

3
路径斜杠后的Bash括号扩展
我正在尝试使用大括号扩展名将文件复制到相同的目录中。我正在使用bash 4.4.18。 这是我所做的: cp ~/some/dir/{my-file-to-rename.bin, new-name-of-file.bin} 但是我得到这个错误: cp: cannot stat '/home/xyz/some/dir/{my-file-to-rename.bin,': No such file or directory 甚至像这样简单的括号扩展也会给我同样的错误: cp {my-file-to-rename.bin, new-name-of-file.bin} 我究竟做错了什么?

2
在管道链中使用jq不会产生任何输出
jq网上讨论了重定向输出时需要显式过滤器的问题。但是jq,即使在使用显式过滤器的情况下,如果它是管道链的一部分,我也无法重定向输出。 考虑: touch in.txt tail -f in.txt | jq '.f1' # in a different terminal: echo '{"f1":1,"f2":2}' >> in.txt echo '{"f1":3,"f2":2}' >> in.txt 不出所料,该jq命令在原始终端中的输出为: 1 3 但是,如果在jq命令末尾添加任何类型的重定向或管道,则输出将变为静默: rm in.txt touch in.txt tail -f in.txt | jq '.f1' | tee out.txt # in a different terminal: echo '{"f1":1,"f2":2}' >> in.txt echo …

6
如何为每行添加随机字符串?
我正在尝试在运行时为每行添加随机字符串: awk '{print "name" "'$ran'" "-"$0}' 'myfile' 在此之前,将生成随机字符串: ran="$(tr -dc '[:alnum:]' </dev/urandom | head -c 6)" 问题是它将为每行打印相同的随机字符串: nameGQz3Ek- nameGQz3Ek- nameGQz3Ek- 我应该怎么做才能获得每行不同的随机字符串?
12 awk 

1
使用grep时屏幕上出现奇怪的符号?
知道是什么原因造成的吗?如果不使用grep,则唯一显示的内容是ISO代码和空白。 使用的软件 命令: ./trans --id --input /path/to/txt | grep ISO | grep [a-z] root@box /test # alias grep alias grep='grep --color=auto' root@box /test # type grep grep is aliased to `grep --color=auto' 正常输出:

6
shebang(脚本声明)行过多-有什么方法可以减少行数?
我有一个包含约20个小.sh文件的项目。我将这些名称命名为“小”,因为通常没有文件包含超过20行的代码。我之所以采用模块化方法,是因为我忠于Unix理念,并且对我来说维护项目更容易。 在每个.sh文件的开头,我放置了#!/bin/bash。 简而言之,我了解脚本声明有两个目的: 它们帮助用户回忆起执行该文件所需的外壳程序(例如,几年后不使用该文件)。 他们确保脚本仅在特定外壳程序(在这种情况下为Bash)下运行,以防止在使用其他外壳程序的情况下出现意外行为。 当一个项目开始从5个文件增长到20个文件或从20个文件增长到50个文件时(不是这种情况,只是为了演示),我们有20行或50 行的脚本声明。我承认,即使对某些人来说可能很有趣,但我对使用20或50而不是每个项目只说1个(也许在项目的主文件中)感到有点多余。 有没有一种方法可以通过在某些主文件中使用一些“全局”脚本声明来避免所谓的20或50或更多行的脚本声明冗余?


4
bash是否支持使用指针?
简单的问题。bash shell在编写shell脚本时是否支持使用指针? ${var[@]}在数组上进行迭代时,我对扩展符号很熟悉$var,但是目前尚不清楚这是利用指针在数组索引上进行迭代。bash是否像其他语言一样提供对内存地址的访问? 如果bash不支持使用指针,那么其他shell呢?
12 bash 

2
为什么我的脚本“ killl”失败了,但是重命名后却能正常工作?
有问题的脚本终止了我的本地主机端口8080上的最新进程。 #!/bin/bash x=$(lsof -i:8080 | tail -1 | awk '{print $2}') kill -9 $x 如果脚本被命名为“ killl”(得到它吗?杀死最新消息?),那是行不通的。它提示我cmdsubst> 将脚本重命名为“ asdf”,一切正常。有这种行为的解释吗?我正在使用MacOS ElCapitán。
12 shell-script  osx 

6
从现在开始的某个时候做一些事情(也许还会在控制台中显示结果)
我使用Ubuntu服务器16.04,并且希望at在当前会话中使用该实用程序从现在开始1分钟(例如echo)进行操作,而没有给出具体的日期和时间-比当前时间提前1分钟。 这失败了: echo 'hi' | at 1m 我之所以选择at,sleep是因为睡眠妨碍了当前会话,因此更适合于延迟另一会话中的命令,而不是我们大多数时间都在使用的命令。航空(AFAIR),at这种举止不会妨碍我的会议。 更新_1 通过Pied Piper的回答,我已经尝试过: (sleep 1m; echo 'hi') & 我对此方法有疑问:“ hi”流打印在我的主要提示内,并且还在_包含它的主要提示下添加了一个空的辅助提示(),请参见: USER@:~# (sleep 1m; echo 'hi') & [1] 22731 USER@:~# hi ^C [1]+ Done 更新_2 通过彼得·科德的回答,我尝试过: (sleep 2 && echo -e '\nhi' && kill -WINCH $$ &) 看来,这在Bash 4.4中正常运行,但在某些旧版本中似乎无效(请参见答案中的注释)。我个人在自己的环境中使用Bash 4.3。
12 console  stdout  at  sleep  delay 

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.