Unix & Linux

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


1
等待bash-builtin以100%的速度消耗CPU
至少在GNU bash版本4.3.42 x86_64和&GNU bash版本4.3.11 x86_64上发生 我用sleep & wait $!一个简单的方法而不是简单的方法sleep来获得sleep信号的可中断性(如SIGUSR1)。但是wait当您运行以下命令时,bash-builtin的行为似乎很奇怪。 1号航站楼: cat <( trap 'echo SIGUSR1' SIGUSR1; echo $BASHPID; while :;do sleep 1 & wait $!; echo test; done )& 2号航站楼: kill -10 /the pid of the subshell, printed by the previous command/ 1号航站楼: ^C (ctrl + C) 然后,我得到了以100%消耗CPU的子外壳。 1号航站楼: pkill …

2
为什么可以省略选项和参数之间的空格?
例如: xargs -n 1 是相同的 xargs -n1 但是,如果您查看手册页,该选项将列为-n max-args,这意味着应该保留该空间。缩写形式-n max-args没有任何意义。 其他许多Linux实用程序也会发生这种情况。 在Linux中这叫什么?是否所有实用程序都支持缩写形式(但切勿在手册页中对其进行文档化)?
16 options 

4
从initramfs挂载根文件系统
这是常见的情况。无论出于何种原因,initramfs(如果需要的话,OpenSUSE)都无法找到根文件系统,因此它将您带入了应急外壳。我完全清楚需要安装什么设备。我的问题: 挂载根文件系统并继续启动顺序的正确步骤是什么? 据推测,这是整个点抢救控制台。但是,似乎没有人记录您如何实际执行此操作。 显然,我可以将根文件系统挂载到某个地方。但是,如何使它成为文件系统树的根呢?现在,在那之后我是否继续正常的启动过程?(我以为只退出外壳就可以了...但是没有。)在继续之前,您到底需要安装什么,以及如何继续?

5
查找文件中任何位置包含多个关键字的文件
我正在寻找一种列出目录中所有文件的方法,该文件包含我要查找的关键字的完整集合,位于文件的任何位置。 因此,关键字不必出现在同一行上。 一种方法是: grep -l one $(grep -l two $(grep -l three *)) 三个关键字只是一个例子,也可以是两个或四个,依此类推。 我能想到的第二种方法是: grep -l one * | xargs grep -l two | xargs grep -l three 在另一个问题中出现的第三个方法是: find . -type f \ -exec grep -q one {} \; -a \ -exec grep -q two {} \; -a …

1
滚动到终端上的最后一个命令?(如OS X终端标记)
Mac OS X终端标记非常有用。 例如,当我键入一个回显大量输出的命令时,以开头很容易Cmd+Up。它会滚动到最后一个命令,并强调它,因为有选项自动标记提示线,并Cmd+Up会滚动到最后关口。 是否有任何具有此功能的终端模拟器?或一些插件,随便什么。您如何快速转到最后一个命令并突出显示它?

4
创建系统可引导映像的正确方法是什么?
如果我可以在安装完系统后立即设置好系统,所需的所有主题,程序和SDK,然后保存该快照,那岂不是很好吗?就像备份一样,除了我可以引导该映像并将其安装在我想安装的任何计算机上? 我很确定这是可能的。实际上,我知道在某种程度上。 https://help.ubuntu.com/community/LiveCDCustomizationFromScratch 但是有更好的方法吗?有人知道我可以使用的魔法吗?我是否可以只保存系统状态,以便在安装一些不受支持的服务器软件并构筑系统时,不需要再花一个小时来设置它?

1
在bash和zsh中推送,popd与cd,cd-
bash与zsh中push / popd的行为之间有区别吗?在zsh cd中,cd-的行为与push / popd(在cd时会自动添加/ pops目录)完全相同,而在bash cd中则不会影响目录堆栈。 如果有人可以给我一个指针,那将是很好。
16 bash  zsh  cd-command  pushd 


1
仅在上一条命令在Fish中成功执行时才运行命令(例如bash中的&&)
使用Bash时,我经常做一些事情,例如,cd /study && ls -la 我理解双&号告诉终端不要执行该命令的第二部分,除非第一部分没有错误地完成。 我的问题是,刚移到Fish外壳并尝试了相同的命令,我收到一条错误消息,指出我无法使用,&&并指示我使用一个&我认为不是我想要的任务的后台任务。 谁能告诉我在Fish Shell中运行我的旧Bash命令的正确语法?
16 fish 


4
NFS服务器和防火墙
我还没有找到一个灌篮文件,所以让我们开始吧。 在CentOS 7.1主机上,我经历了linuxconfig HOW-TO,包括firewall-cmd条目,并且我有一个可导出的文件系统。 [root@<server> ~]# firewall-cmd --list-all internal (default, active) interfaces: enp5s0 sources: 192.168.10.0/24 services: dhcpv6-client ipp-client mdns ssh ports: 2049/tcp masquerade: no forward-ports: rich rules: [root@<server> ~]# showmount -e localhost Export list for localhost: /export/home/<user> *.localdomain 但是,如果我showmount来自客户,我仍然会遇到问题。 [root@<client> ~]# showmount -e <server>.localdomain clnt_create: RPC: Port mapper failure - …

2
使用sed删除直到第一次出现结肠
我的sed命令是 sed '/(.*:)/d' <<< 'abcd:bcde:cdeaf' 它必须返回 bcde:cdeaf (即)必须删除该行中第一个冒号之前的所有字符以及冒号本身。 但这并没有删除任何内容。 我的困惑主要是由于 1)是否需要在sed regex-es内部转义用于模式匹配的括号? 2)在任何情况下(转义/不转义),它均不起作用。我试过了, sed -E '/\\(.*:\\)/d' <<< 'abcd:bcde'
16 sed 

2
如何使用Linux作为网关?
注意:如果客户端设备(computer B在此示例中)要通过网关计算机获得Internet,则可能仍需要配置名称服务器解析。这里没有解释(网关不一定服务于互联网)。 我试图了解网络路由的基础知识。 因此,我正在尝试使用LAN(我现在不需要Internet,仅需要LAN通信)。 我知道网络配置问题是一件相当复杂的事情,但是我只是想使一台计算机(例如A)充当另一台计算机(例如B)(都运行Ubuntu Linux)的网关。 我只需要B就能到达路由器,那才是A可以到达的。 就是这种情况: Router for computer A --> 192.168.0.1 Computer A - eth0 --> 192.168.0.2 Computer A - eth1 --> 192.168.1.1 Computer B - eth0 --> 192.168.1.2 计算机A与路由器的连接良好。 计算机A和B连接罚款(平,SSH ...等)之间。 计算机B 无法到达计算机A 的路由器。 我在想,只要将B计算机A添加为默认网关并在A上激活IP转发,就可以使B能够到达A的路由器: luis@ComputerB:~$ sudo route add default gw 192.168.1.1 luis@ComputerB:~$ sudo routel target …

4
如何停止特定用户在auth.log中的sudo PAM消息?
我正在使用Zabbix监视环境,并每60秒zabbix_agentd以用户身份执行zabbix一个自定义脚本;它用于sudo以方式运行此脚本root。 在/var/log/auth.log我看到的每60秒: Aug 11 17:40:32 my-server sudo: pam_unix(sudo:session): session opened for user root by (uid=0) Aug 11 17:40:32 my-server sudo: pam_unix(sudo:session): session closed for user root 我想阻止此消息淹没我的日志。我在/etc/pam.d/sudo文件之前添加了以下行session required pam_unix.so: session [success=1 default=ignore] pam_succeed_if.so service in sudo quiet uid = 0 消息消失了。 但是问题是,当有人使用sudoas 执行脚本时,我以此方式抑制了每条PAM消息root。 我只想停止对用户zabbix(而不是所有其他用户)的消息。sudo知道zabbix用户想要使用root特权执行脚本,并且有什么办法告诉PAM吗?使用时,如何告诉PAM不要为特定用户登录sudo? 注意:我尝试过滤syslog中的消息。尽管这有效,但是它具有与上述相同的问题,即它太乱了,因为日志消息没有指出哪个用户正在成为root用户。

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.