Unix & Linux

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

2
测试ZIP文件的完整性?
据我所知,zip -T选项仅确定是否可以提取文件-并没有真正测试存档的内部完整性。例如,我故意破坏了文件的本地(而非中央目录)CRC,而zip根本不关心,将存档报告为OK。还有其他实用程序吗? ZIP文件中有很多内部冗余,最好有一种检查所有方法的方法。当然,通常只需要中央目录,但是在修复损坏的存档时,通常您所拥有的只是一个片段,中央目录被破坏或丢失。我想知道我创建的档案是否可恢复。
21 zip 

1
'script / dev / null'是做什么的?
每次我以root su用户身份登录VM并登录到用户帐户,并尝试使用screen它时都会引发错误: Cannot open your terminal '/dev/pts/0' - please check. 一个Stack Overflow帖子说我需要使用script /dev/null它来修复它,并且它可以工作,但是仍然不能解释为什么我需要输入script /dev/null。我想了解它的作用以及为什么要键入它。
21 terminal  gnu-screen  su  pty 

2
当输出文件为/ dev / null时,为什么tar似乎会跳过文件内容?
我有一个包含超过400 GiB数据的目录。我想检查所有的文件都没有错误被读取,所以一个简单的方法,我认为是tar成/dev/null。但是相反,我看到以下行为: $ time tar cf /dev/null . real 0m4.387s user 0m3.462s sys 0m0.185s $ time tar cf - . > /dev/null real 0m3.130s user 0m3.091s sys 0m0.035s $ time tar cf - . | cat > /dev/null ^C real 10m32.985s user 0m1.942s sys 0m33.764s 在运行了很长时间之后,上面的第三个命令被Ctrl+ 强制停止C。此外,当前两个命令正在工作时,包含该存储设备的活动指示器.几乎始终处于空闲状态。使用第三个命令,指示灯会持续亮起,这意味着非常忙碌。 如此看来,当tar能够发现其输出文件为时/dev/null,即当/dev/null直接打开以具有tar写入的文件句柄时,文件主体就会被跳过。(添加v选项tar的确会打印tar红色目录中的所有文件。) 所以我想知道,为什么会这样呢?是某种优化吗?如果是,那么为什么还要tar针对这种特殊情况进行如此可疑的优化呢? 我在Linux …
21 tar  null 

2
为什么此Shell脚本中包含反斜杠?
在conda.sh脚本的副本中,我看到以下几行: if [ -n "${_CE_CONDA}" ] && [ -n "${WINDIR+x}" ]; then SYSP=$(\dirname "${CONDA_EXE}") else SYSP=$(\dirname "${CONDA_EXE}") SYSP=$(\dirname "${SYSP}") fi 我很好奇,为什么在前面的一个反斜杠d中dirname。我认为没有必要。反斜杠的这种用法也出现在源文件的其他位置。我有没有这样做的理由?


3
如果删除设备文件会怎样?
我大致了解/ dev下的文件。 我知道有两种类型(字符/块),访问这些文件与内核中的驱动程序通信。 我想知道删除一个文件会发生什么-专门针对两种文件类型。如果删除块设备文件,请说/dev/sda这有什么作用(如果有)?我刚刚卸载了磁盘吗? 同样,如果删除/dev/mouse/mouse0,该怎么办?鼠标会停止工作吗?它会自动取代自己吗? 我什至可以删除这些文件吗?如果设置了虚拟机,则可以尝试。

3
Linux如何区分线程和子进程?
Linux实际上并不区分进程和线程,而是将两者实现为数据结构task_struct。 那么,Linux为某些程序提供了哪些功能,以使其从子进程中得知进程的线程?例如,是否可以查看Linux中某个进程具有的所有线程的详细信息? 谢谢。
21 linux  process  thread 



1
将私钥导入干净安装后,gpg —list-keys命令输出uid [未知]
我干净安装了Arch Linux,然后导入了备份的gpg私钥。作为健全性检查,我跑了: gpg —list-keys 一切正常显示,但uid现在显示为: uid [ unknown ] User < user@useremail.com > 当我在全新安装之前首次创建此密钥时,它显示为: uid [ ultimate ] User < user@useremail.com > 为什么会从改变[ ultimate ]到[ unknown ]其导入到一个干净的安装后? 提前致谢。
21 gpg  gnu 


2
命令行术语:命令的这些部分叫什么?
在命令行中,我经常使用“简单”命令,例如 mv foo/bar baz/bar 但我不知道该怎么称呼它的所有部分: ┌1┐ ┌──2───┐ git checkout master │ └──────3──────┘ └───────4─────────┘ 我(认为我)知道1是命令,2是参数,我可能将3称为参数列表(对吗?)。 但是,我不知道该怎么称呼4。 如何标记更复杂的“命令”? find transcripts/?.? -name '*.txt' | parallel -- sh -c 'echo $1 $2' {} {/} 我希望能得到一个答案,该答案细分了上面所谓的“ 1、2、3、4”以及该“命令”的各个部分的名称。 最好也了解一下我这里未包括的其他独特/令人惊讶的事物。


7
意外使用了输出重定向>而不是管道|
一个月前,我写了一个Python脚本来映射来自stdin的MAC和IP地址。两天前,我记得它并曾经过滤过输出,tcpdump但由于输入错误而出错。我打过 tcpdump -ne > ./mac_ip.py 输出什么也没有。但是,如果无法解析输入,则输出应为“未知”,因此我cat ./mac_ip.py找到了所有tcpdump数据而不是程序。然后我意识到我应该使用 tcpdump -ne | ./mac_ip.py 有什么办法可以让我的程序恢复原状吗?无论如何,我都可以再次编写程序,但是如果在更重要的程序中再次发生该程序,我应该可以做一些事情。或有什么办法告诉输出重定向以检查文件并警告它是否是可执行文件?

2
较少的file1 file2 | 猫-为什么起作用?
当我使用时,less file1 file2两个文件都显示在“较少缓冲区查看器”中,但是less file1 file2 | cat打印了两个文件的内容并附加到stdout中。怎么不知道它是否应该显示“较少的缓冲区查看器”或为下一命令生成输出到stdout?什么机制用于执行此操作?
21 pipe  cat  less 

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.