我想并行运行多个 Bash shell 脚本。但是,我想避免竞争条件。我可以为此目的使用哪些 Unix 命令真正具有原子性,我该如何使用它们?
我知道“一切都是文件”意味着即使设备在 Unix 和类 Unix 系统中也有它们的文件名和路径,并且这允许在各种资源上使用通用工具,而不管它们的性质如何。但我无法将其与 Windows 进行对比,这是我使用过的唯一其他操作系统。我读过一些关于这个概念的文章,但我认为对于非开发人员来说,它们有些难以掌握。外行的解释是人们需要的!
例如,当我想将文件复制到连接到读卡器的 CF 卡时,我将使用类似
zcat name_of_file > /dev/sdb
Run Code Online (Sandbox Code Playgroud)
在 Windows 中,我认为读卡器将作为驱动程序出现,我认为我们将做类似的事情。那么,“一切都是文件”的哲学在这里有何不同?
我正在写一些关于如何安装某些东西的说明(与 TeX 相关 - 如果你不问,我不会通过提供更多细节来破坏你的一天)并用于sudo在系统范围内安装。有人评论说,他们不认为这sudo在所有 Linux(或 Unix)发行版上都可用。
是否有没有没有的 Unix 发行版,如果有sudo,它们是什么?是否有一个举世公认的“给我超级用户权限”命令,该命令是在所有系统上?
我有一个设备需要一块专门为它保留的内存块,而没有操作系统的干预。有什么方法可以告诉 BIOS 或操作系统保留一块内存,并且不能使用它?
我在 openSUSE 机器上使用这个设备。
经过一些非常快速的研究,似乎 Bash是一种图灵完备的语言。
我想知道,为什么 Bash 几乎只用于编写相对简单的脚本?由于 Linux 附带了 Bash shell,因此您可以像其他流行的计算机语言一样运行 shell 脚本,而无需任何外部解释器或编译器。这是一个巨大的优势,在某些情况下可以弥补语言本身的平庸。
那么,此类程序的复杂程度是否有限制?纯 Bash 是用来写复杂程序的吗?是否可以在纯 Bash 中编写文件压缩器/解压缩器?编译器?一个简单的视频游戏?
是否仅仅因为只有非常有限的调试工具而很少使用?
如何从命令行调整分区大小?我听说过GParted,但我不想使用 GUI 程序。
这是/home3我系统上目录的内容:
./ backup/ hearsttr@ lost+found/ randomvi@ sexsmovi@
../ freemark@ investgr@ nudenude@ romanced@ wallpape@
Run Code Online (Sandbox Code Playgroud)
我想清理它,但我担心符号链接指向另一个驱动器。
如果我说它rm -rf /home3会删除另一个驱动器吗?
我有一个程序可以输出一个stdout喜欢的输出:
[OK] Something is ok
[OK] Something else is also ok
[FAIL] This does not look good
[FAIL] Neither does this
[OK] At least this is fine
Run Code Online (Sandbox Code Playgroud)
为了更容易地从输出中发现失败,我想FAIL用红色标记关键字的出现而不丢弃其他消息。如果我也可以OK用绿色突出显示关键字,那就太好了:)。
使用管道egrep --color FAIL将只显示FAIL存在关键字的行。
为什么 FreeBSD 使用 GCC 作为它的默认编译器?
我的印象是 FreeBSD 哲学的核心支柱是不使用任何 GNU 软件,尤其是 GPL 代码。
然而 GCC 既是 GNU 又是 GPL,它与 FreeBSD 捆绑在一起。
为什么?
bash ×2
filesystems ×2
linux ×2
architecture ×1
colors ×1
command-line ×1
compiling ×1
distros ×1
files ×1
freebsd ×1
gcc ×1
gnu ×1
grep ×1
hard-link ×1
hardware ×1
kernel ×1
licenses ×1
memory ×1
partition ×1
portability ×1
programming ×1
root ×1
scripting ×1
semaphore ×1
shell ×1
sudo ×1
symlink ×1
windows ×1