Unix & Linux

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

2
创建变量并通过循环(bash)分配值
有没有一种方法可以创建bash变量并通过循环为它们分配值? 类似于以下内容: #!/bin/bash c=0 for file in $( ls ); do var"$c"="$file"; let c=$c+1; done 编辑:感谢@Costas和@mdpc指出这将是列表的替代方案;这个问题只是理论上的。

2
什么是brandbot?
Centos 7中运行的“ brandbot”服务是什么?它有什么作用?我所能找到的(没有帮助页)是“ Flexible Branding Service”,它是“基本”存储库的一部分。
12 centos  services 

2
如何允许非root用户使用实例控制systemd服务?
我需要允许dba组中的用户控制database@服务。这个相关问题的答案是仅列出systemctl我要允许在sudoers文件中使用的所有“动词” ,但是,这不适用于我的情况,因为我事先不知道系统中可能存在哪些数据库。例如,如果我列出 %dba = /usr/bin/systemctl start database@awsesomeapp %dba = /usr/bin/systemctl start database@anotherawsesomeapp %dba = /usr/bin/systemctl start database@yetanotherawsesomeapp %dba = /usr/bin/systemctl start database@wowyetanotherawsesomeapp # ... other "verbs" omitted for brevity 它不包括将来可能存在的实例,因此dba将无法 $ sudo systemctl start database@omgwowyetanotherawsesomeapp 无论如何,我在包装方面的想法比在特定系统上的想法更多。 请注意,正如对另一个相关问题的惊人回答所示,为此使用sudo glob最终是不安全的: %dba ALL = /usr/bin/systemctl start database@[a-z]* # UNSAFE! 确实允许 $ sudo systemctl …

3
如何仅显示列表的最后一行?
假设我列出了清单,并按其时间属性对文件进行了排序: ls -ltr -rwxrwxrwx 1 bla bla 4096 Feb 01 20:10 foo1 -rwxrwxrwx 1 bla bla 4096 Feb 01 20:12 foo2 . . . -rwxrwxrwx 1 bla bla 4096 Mar 05 13:25 foo1000 我应该在管道链中的ls -ltr之后添加什么,以便仅获得清单的最后一行?我知道有sed和awk,但我不知道如何使用它们,我只知道它们可以做什么。
12 command-line  sed  awk  ls 

7
是否有可以完全加载到RAM中的Linux操作系统?
我的PC中有32 GB的内存。对于Linux操作系统而言,这绰绰有余。是否有一个易于使用的Linux版本(最好是Ubuntu),可以通过光盘或USB磁盘启动并完全在RAM中运行?我知道可以用硬盘引导活动光盘,但是仍然有东西从光盘上丢失,这需要一段时间才能加载。我希望将所有内容加载到RAM中,然后从那里运行,完全易失。我需要创建的所有文件都将保存到USB磁盘中。 我知道http://en.wikipedia.org/wiki/List_of_Linux_distributions_that_run_from_RAM,但是这些都取决于一点点RAM。我更喜欢Ubuntu之类的东西,而不是这些轻量级的版本。
12 ram  ramdisk 

2
将Byobu与tmux一起使用时在Vim中使用Ctrl +箭头键时出现问题
在Vim中,我已将Ctrl + Arrow键设置为跳过单词。在gnome终端中运行Vim时,这工作得很好。 但是,当使用byobu(tmux)时,它表现出奇怪的行为:它将删除光标后的所有内容。 作为参考,以下是我的vim设置: :inoremap <C-Left> <C-\><C-O>b :inoremap <C-Right> <C-\><C-O>w
12 tmux  byobu  vim 

3
tar到管道,但将-v详细输出与STDERR分开
普通的tar命令 tar cvf foo.tar ./foo >foo.out 2>foo.err 具有三个输出IO流 将数据存档到foo.tar 文件名列表到STDOUT(重定向到foo.out) 错误消息到STDERR(重定向到foo.err) 然后,我可以检查foo.err中是否有错误消息,而不必阅读文件名列表。 如果我想对存档数据做一些事情(通过netcat或特殊的压缩程序通过管道传输),则可以使用tar的 -f -选项 tar cvf - ./foo 2>foo.err | squish > foo.tar.S 但是现在我的文件名列表和我的错误消息混在一起了,因为tar的-v输出显然无法转到STDOUT(这是存档数据流的地方),因此tar巧妙地将其写入了STDERR。 使用Korn Shell,有一种方法可以构造一个命令,该命令将存档流传输到另一个命令,但仍然捕获-v输出与任何错误消息。
12 tar  ksh  io 

2
GNU Linux(Arch Linux)上的SIGINFO丢失
我正在开发一个应用程序,我希望它可以根据需要将一些运行时统计信息打印到控制台。kill我立刻想到了信号。 阅读Wiki上的Unix信号SIGINFO似乎是一种可行的方法,因为: 它旨在为这些目的 如果未实现信号处理程序,则不终止进程(与SIGUSRx- 相反,请参见此处) 但是,通过检查的输出kill -l,看来我的服务器没有实现此信号。 我的问题是: 为什么SIGINFO我的系统不见了?所有GNU Linux系统上都不存在吗? 是否有一种简单的方法(即没有内核/ glibc重新编译)来启用此信号?如果没有,那么困难的方法是什么? 我可以为目标使用什么替代信号,如果目标过程未处理,则不会产生任何副作用?(由于我在glibc的手册上找不到任何其他合适的信号,因此我已经假设没有) Linux metainfo: Linux whatever 3.18.2-2-ARCH #1 SMP PREEMPT Fri Jan 9 07:37:51 CET 2015 x86_64 GNU/Linux 更新:我仍在寻找有关为何有条件将此信号从BSD以外的其他系统中排除的更多信息(请参阅下面的评论)。该信号似乎对许多目的都非常有用,因此我很难相信这只是个一时兴起的事情-那么该信号在Linux上的真正表现是什么呢?
12 linux  signals  glibc 



1
根外壳看到pip但sudo pip“未找到命令”
我已经通过make和安装了python 2.7.8 make install,然后通过get-pip进行了pip。我必须注意,我在通过代理设置的代理后面工作 http_proxy ftp_proxy https_proxy 在 我的用户的 ~/.zshrc 根的 /root/.basrc 现在我可以跑步了 pip 在我的用户帐户上 在root帐户上 但是我无法使用sudo通过用户的外壳程序运行它 sudo pip sudo: pip: command not found 怎么了

3
有没有一种方法可以让我的bash脚本在任何命令错误时自动运行?
我正在编写一个需要执行一系列命令的shell脚本,每个命令都取决于每个先前的命令。如果有任何命令失败,则整个脚本将失败,我将调用退出函数。我可以检查每个命令的退出代码,但是我想知道是否存在可以启用的模式或一种使bash自动执行此操作的方法。 例如,使用以下命令: cd foo || myfunc rm a || myfunc cd bar || myfunc rm b || myfunc 有没有一种方法可以在执行这些命令之前以某种方式向外壳发出信号,如果它们中的任何一个失败,它应该调用myfunc,这样我可以编写一些更简洁的代码,例如: cd foo rm a cd bar rm b

3
Zip存档文件数量有限
我可以使用什么命令来创建zip文件数限制的?我有一个包含5000个文件的文件夹(没有子文件夹),所以我想要一个可以将该数字相除并创建10个单独的zip档案的命令,每个档案不超过500个文件。 我也不希望将生成的10个zip文件相互连接,以便我可以单独打开它们,而无需同时打开所有10个文件。
12 files  zip 

1
命令pkill -USR1 -n -x dd到底是什么意思?
我dd用来将磁盘映像网络传输到BeagleBone上的sd卡上。 pkill -USR1 -n -x dd在此BeagleBone的ssh连接中使用时,会为我提供传输过程的状态更新,这很棒。我很好奇它实际上是如何工作的,所以我将来可以有效地使用它。 阅读后,man pkill它仍然没有完全解释如何pkill -USR1 -n -x dd为我提供这一非常有用的状态更新。
12 kill  dd  signals 

5
找到一些文本后如何阅读某些行?
找到一些文本后如何阅读一定数量的行? 例如。: 在以下位置找到“ Unix”后,请阅读下两行: Test 1 Test 2 Test 3 Test 4 UNIX Test 5 Test 6 Test 7 Test 8 Test 9 结果可以是: Test 5 Test 6 注意:最后一个示例中的“ Unix”是一个参数,因此,它可以是任何其他文本。 我拥有的: 我仍然没有主意,只需要一点灯。考虑创建另一个脚本来做到这一点。
12 bash  shell 

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.