Unix & Linux

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



7
测试服务是否在脚本中运行的“正确”方法
我的问题: 我正在编写一个bash脚本,在其中我想检查给定的服务是否正在运行。 我知道如何使用手动进行操作$ service [service_name] status。 但是(尤其是自从移至systemd以来),它会打印出一堆很难理解的混乱文本。我假设有一个针对脚本的命令,该脚本具有简单的输出或可以检查的返回值。 但是,谷歌搜索只会产生大量的“哦,就是ps aux | grep -v grep | grep [service_name]”结果。那不是最佳实践,是吗?如果该命令的另一个实例正在运行,但不是由SysV初始化脚本启动的,该怎么办? 还是我应该闭嘴并用一点pgrep弄脏我的手?

5
“ foo(){}函数”和“ foo(){}”之间的区别
我可以bash使用或省略function关键字来定义函数。有什么区别吗? #!/bin/bash function foo() { echo "foo" } bar() { echo "bar" } foo bar 调用函数foo和bar成功都没有,我看不出有什么区别。所以我想知道这是否只是为了提高可读性,还是我缺少某些东西... BTW在其他shell中dash(例如/bin/sh,dash在debian / ubuntu中被符号链接)在使用function关键字时失败。
96 bash  shell  function  posix 

2
如何在端口80上启动python SimpleHTTPServer?
我在Ubuntu上使用此命令,但它在端口8080上启动,并且我没有在运行其他服务器,因此我希望它在端口80上启动。我看到了可以设置bash脚本执行类似操作的方法这个,但是没有命令行标志或更简单的方法来指定端口吗? python -m SimpleHTTPServer

5
bash的历史记录存储在哪里?
如果运行history,我可以看到最新执行的命令。 但是,如果我做的tail -f $HISTFILE还是tail -f ~/.bash_history,他们没有得到上市。 文件是否被锁定,是否存在临时位置或类似位置?


7
是否有针对grep,awk和sed的基本教程?[关闭]
我已经有一段时间使用Linux了,并且对大多数常见的命令行实用程序都有相当不错的了解。然而,那些上来,再次相对于编程是grep,awk和sed。 关于我使用grep的唯一一件事就是将内容传送到其中以在日志文件中查找文件,psetc 的输出。我没有使用过awk或根本没有使用sed过。这些实用程序有什么好的教程吗?
95 grep  sed  awk 


7
为什么我们需要创建新流程?
在Unix中,每当我们要创建一个新进程时,便会分叉当前进程,并创建一个与父进程完全相同的新子进程。然后执行exec系统调用,用新流程替换父流程中的所有数据。 为什么我们首先创建父流程的副本,而不直接创建新流程?

4
我怎么知道我正在运行哪个版本的Debian?
在一个教程中,系统提示“如果您正在运行Squeeze,请遵循以下说明...”和“如果您正在运行Wheezy,请遵循以下其他说明...” 运行时uname,我得到以下信息: Linux dragon-debian 3.2.0-4-686-pae #1 SMP Debian 3.2.63-2+deb7u2 i686 GNU/Linux 该信息足以知道我使用的是Squeeze还是Wheezy还是从其他地方获取?
95 debian  version 

2
gpg:密钥服务器接收失败:没有dirmngr
尝试在Debian Stretch服务器中接收密钥时,出现以下错误: sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF Executing: /tmp/apt-key-gpghome.4B7hWtn7Rm/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF gpg: failed to start the dirmngr '/usr/bin/dirmngr': No such file or directory gpg: connecting dirmngr at '/tmp/apt-key-gpghome.4B7hWtn7Rm/S.dirmngr' failed: No such file or directory gpg: keyserver receive failed: No dirmngr
94 debian  apt  gpg 

2
为什么grep默认不忽略二进制文件?
的联机帮助页对标志进行了如下grep描述-I: -I Ignore binary files. This option is equivalent to --binary-file=without-match option. 它还说明了二进制文件: --binary-files=value Controls searching and printing of binary files. Options are binary, the default: search binary files but do not print them; without-match: do not search binary files; and text: treat all files as text. 我想不出要关心二进制文件中的匹配的情况。如果存在这种情况,那么肯定一定是例外而不是常规。为什么grep默认情况下不忽略二进制文件而不是要求设置此标志呢?
94 grep 

2
括号是否真的将命令放在子外壳中?
根据我的阅读,将命令放在括号中应该将其运行在子外壳中,类似于运行脚本。如果是这样,如果不导出x,它将如何看到变量x? x=1 (echo $x)在命令行上运行会导致1 echo $x如预期那样,在脚本中运行不会产生任何结果

4
如何在查找中结合2名条件?
我想搜索不符合2个-name条件的文件。我可以这样做: find /media/d/ -type f -size +50M ! -name "*deb" ! -name "*vmdk" 这将产生适当的结果,但是我可以以某种方式加入这两个条件吗?
94 bash  shell  find 

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.