Unix & Linux

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

2
在运行某些命令期间从一个进程读取日志
我有一些服务可以在文件中生成日志logs.log。 我还有一些与此服务交互的命令。可以说是一些foo.sh。 我需要的是logs.log准确地在foo.sh运行期间剪切并保存日志。换句话说,当服务与我的服务交互时,我需要该服务的那部分日志foo.sh(因此我不在乎foo.sh的日志)。 我希望此命令能够解决问题,但是在foo.sh完成后它将继续读取文件: > foo.sh | tail -f logs.log > foo_part.log 有什么好方法可以执行此技巧吗?
10 bash  tail 

3
为什么看到具有400个权限的文件可由root写入但由用户只读?
如果我以非特权用户身份创建文件,然后将权限模式更改为400,则该用户将其正确地视为只读: $ touch somefile $ chmod 400 somefile $ [ -w somefile ] && echo rw || echo ro ro 一切都很好。 但是随后出现了root: # [ -w somefile ] && echo rw || echo ro rw 有没有搞错?当然,root可以写入只读文件,但不应养成它的习惯:最佳实践将倾向于指示我应该能够测试写入许可位,如果没有,则设置它这种方式是有原因的。 我想我既想了解为什么会这样,又要在测试未设置写位的文件时如何得到错误的返回码?

3
_何时是bash shell的环境变量?
Bash手册说(帮助页面,我的重点): 当Bash调用外部命令时,该变量$_将设置为命令的完整路径名,并在其环境中传递给该命令。 和(特殊参数): _ ($_,下划线。)在shell启动时,设置为用于调用在环境或参数列表中传递的正在执行的shell或shell脚本的绝对路径名。随后,在扩展后,扩展到上一个命令的最后一个参数。还设置为用于调用每个执行的命令的完整路径名,并放置在导出到该命令的环境中。检查邮件时,此参数保存邮件文件的名称。 在bash shell中,我运行: $ bash $ export | grep '_=' 根据手册,_应该是新bash shell的环境变量。export应该输出新bash shell的所有环境变量,但不输出 _。所以我想知道_新bash shell的环境变量是否是? 实际上,在任何bash shell中,都会发生相同的情况 $ export | grep '_=' 什么都不输出 所以我想知道_bash shell的环境变量是否曾经存在吗? 为了比较: $ dash $ export | grep '_=' export _='/bin/dash' 我的帖子的灵感来自Mike的评论和Stephane的回复。

1
如何在Bash中取消其余命令列表?
在Bash中,有时我会键入命令列表并点击Enter,直到后来才意识到列表末尾的某些命令有错误。我知道如果我按Ctrl+ C,它将终止当前正在运行的命令并取消其余列表。有什么方法可以取消列表的其余部分而不终止当前正在运行的命令? 例如,假设我输入了类似 foo; bar 要么 foo && bar foo长时间运行的命令在哪里很重要,不要中断它,并且bar做一些不可逆的和不需要的操作(例如shutdown -h now或rm -rf /)。在foo仍然运行时,是否有一种通用的方法告诉外壳foo完成但不bar随后运行?(是的,我可以更改其权限bar以使其不可执行,但是,如果同时要使用bar类似的东西,这并不是特别方便rm,如果我不拥有它bar或者bar是内置的,也无法使用。)

2
磁盘末尾的dd命令bs选项
如果我要使用以下dd命令: dd if=/dev/zero of=/dev/sdX bs=16M 如果它不是16M的整数倍,那么在磁盘末尾会发生什么?这是否意味着磁盘的最后剩余部分未归零? 我在https://www.marksanborn.net/howto/wiping-a-hard-drive-with-dd/中注意到,他写道,美国政府使用 dd if=/dev/urandom of=/dev/sda bs=8b conv=notrunc 该conv=notrunc选项是否可以确保擦除每个最后一个字节?
10 dd 

4
Linux组织已安装程序文件的方式有什么好处?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 在Windows中,系统驱动器C:有一个目录program_files,每个程序在其下都有其自己的目录。 在Linux中,/usr/和下/usr/local/有/bin, /etc, /share, /src,等等。 因此,在Windows中,每个程序的所有文件都分组在同一目录中,而在Linux中,所有程序中的相同类型的文件都在同一目录中。 我觉得Windows组织已安装程序的方式比Linux更合乎逻辑,因此已安装程序更易于手动管理。 Linux组织已安装程序文件的方式有什么好处?谢谢。 当遇到如何在$ HOME中组织已安装的程序以供Shell在运行它们时搜索它们的问题时,我遇到这个问题?,我尝试以$HOMEWindows的方式组织程序,但是在指定程序的搜索路径时遇到了一些问题。

2
该研究指南在确定文件类型的命令方面是否错误?
学习指南LPIC-1培训和准备指南(Ghori Asghar,ISBN 978-1-7750621-0-3)包含以下问题... 以下哪个命令可用于确定文件类型? (一种) file (B) type (C) filetype (D) what ……并声称答案是:“(B)type”。 但是“(A)file”不是正确的答案吗? 我开始怀疑整本书。
10 linux  bash 


2
如何使用来自HTTP的文件作为GNU make中的先决条件?
我想将万维网上的文件用作我的makefile中的先决条件: local.dat: http://example.org/example.gz curl -s $< | gzip -d | transmogrify >$@ 我只想在远程文件比本地文件更新的情况下“迁移”,就像make正常运行一样。 我不希望保留的高速缓存副本example.gz -文件都很大,而且我不需要原始数据。最好我完全避免下载文件。目的是使用-jmake标志并行处理其中的一些。 有什么干净的方法可以解决这个问题?我可以想到一些方法: 保留一个空的虚拟文件,每次重新创建目标时更新 一些使用GNU make的新插件系统的插件(我对此一无所知) 不可知的方式将HTTP服务器安装在本地文件系统中 在深入探讨之前,我想提出一些建议,最好是具体的例子!

3
直接从本地Linux Git远程更改Github存储库中的目录名称吗?
这是我的Git存储库: https://github.com/benqzq/ulcwe 它具有一个名为dir的目录local,我想将其名称更改为另一个名称(例如,从local到xyz)。 通过GitHub GUI手动更改它是一个噩梦,因为我必须分别更改每个文件的目录名称(不管,信不信由你,GitHub尚未包括“目录重命名”功能)。 安装Git之后,我尝试了以下命令: git remote https://github.com/benqzq/ulcwe && git mv local xyz && exit 虽然没有提示输入GitHub密码,但确实收到此错误: fatal: Not a git repository (or any parent up to mount point /mnt/c) Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set). 我知道Git的全部目的是下载一个项目,进行更改,测试,然后推送到托管提供程序(在本例中为GitHub),但是仅更改目录,我希望直接进行操作。Git甚至可能吗? 我应该使用其他程序吗?

1
带有10 GB hardrive,8个CPU和4GB RAM的VM是否合理?
我收到了分配这些规格的VirtualBox中的Fedora 24-1.2的任务,并且遇到了一些问题,使我怀疑这是多么现实。 首先,我什至无法创建8个CPU。VirtualBox甚至没有给我选择。我最多只能做4。 其次,它不允许我仅用10GB的硬盘就创建这么多的RAM。 现在,我已经仔细检查了十多次作业,是的,这是我的老师想要的。如果需要的话,我会弄清楚...我只是想确认一下,这些设置是否合理?

1
为什么可以通过部分IP地址访问服务器?
在我的网络中,我有一台IP地址为10.0.0.15的服务器。无意间,我发现了命令:ping 10.0.15结果 64 bytes from 10.0.0.15: icmp_seq=1 ttl=64 time=9.09 ms ...因此正确的服务器会响应ping。即使我尝试:ping 10.15我也得到可比的结果。此外,远程登录到部分地址按预期方式工作。但是,SSH失败。为什么发送到部分地址的数据包到达正确的服务器?
10 linux  networking  ip  ping  telnet 

2
原始Unix Box的命令数
在查看Unix时,我总是发现终端命令的数量有些庞大。作为我最喜欢的发行版,TinyCoreLinux有300多个命令。我不知道其中许多命令的必要性。原始Unix盒有多少个命令? 我实质上希望,通过转到原始框,我们可以减少发给新手的命令数量。是的,我了解您不必学习所有命令,但是当我了解了发行版的所有命令时(这还没有完全发生),我肯定会感到一种完成感。
10 command  history 

2
如何使用我自己的标准软件包版本
我遇到了Nautilus的问题,除了下载源代码,进行一些更改并自行编译之外,没有找到其他解决方案。因此,现在我有两个版本的Nautilus,这是来自存储库的正式版本,还有一些改动。我想保留两者。 从应用程序内部启动Nautilus时,告诉应用程序使用我自己的Nautilus编译版本的好方法是什么?(例如,使用firefox打开“下载”文件夹) 我发现了firefox的调用,/usr/bin/nautilus所以我可以用一个指向我自己程序的符号链接代替它。但是,我相信在安装Nautilus更新后,此符号链接将被覆盖。我还能做些什么吗?
10 debian  apt 

4
ls -lt将遵循精确的mtime还是仅遵循近似的mtime直到秒?
ls -l仅显示文件的修改时间戳,最长时间为秒。如果两个文件具有相同的时间戳(最高达一秒),但修改的时间不完全相同,则将ls -lt以准确的mtime的顺序或仅近似mtime的顺序对文件进行排序(直到m秒)(因此,文件之间的顺序可以是任意)?
10 ls  timestamps 

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.