如何使用 Bash 计算字符串中子字符串的出现次数?
例子:
我想知道这个子字符串有多少次:
Bluetooth
Soft blocked: no
Hard blocked: no
Run Code Online (Sandbox Code Playgroud)
...出现在这个字符串中...
0: asus-wlan: Wireless LAN
Soft blocked: no
Hard blocked: no
1: asus-bluetooth: Bluetooth
Soft blocked: no
Hard blocked: no
2: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
113: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
Run Code Online (Sandbox Code Playgroud)
注意我:我已经尝试了几种使用 sed、grep、awk 的方法......当我们有带有空格和多行的字符串时,似乎没有任何效果。
注意 II:我是 Linux 用户,我正在尝试一种解决方案,该解决方案不涉及安装 Linux 发行版中常见的应用程序/工具之外的应用程序/工具。
重要的:
我想要类似于下面的假设示例。在这种情况下,我们使用两个Shell 变量 (Bash)。
例子:
STRING="0: asus-wlan: Wireless LAN
Soft blocked: no
Hard blocked: no
1: …
Run Code Online (Sandbox Code Playgroud) 当我通过下面的命令激活笔记本的 HDMI 输出(连接到NVIDIA Optimus芯片)上的显示器时,笔记本开始变得非常热,主要是当我在这台显示器上运行视频(例如流网络)时。到目前为止一切顺利,但高温使我的 Linux 崩溃。
怎么解决这个高温问题?
注意:当我使用 NVIDIA 图形加速芯片 (primusrun) 时,我没有温度问题。
intel-virtual-output
xrandr -q &>/dev/null
xrandr --newmode "1392x892_60.00" 102.00 1392 1472 1616 1840 892 895 905 926 -hsync +vsync
xrandr --addmode VIRTUAL2 1392x892_60.00
xrandr --output VIRTUAL2 --mode 1392x892_60.00 --right-of LVDS1
Run Code Online (Sandbox Code Playgroud)
我的 NVIDIA 驱动程序安装过程: https : //forum.manjaro.org/t/optirun-cannot-access-secondary-gpu-error-xorg-ee-nouveau-0-drm-failed-to-set-drm-interface-版本/15651/2
一些参考: https : //wiki.archlinux.org/index.php/bumblebee#Outputs_wired_to_the_Intel_chip
编辑:
这是我在 Linux 中遇到的最难的问题。因此,我为有效的解决方案提供了“100”的小名声。
提示:目前我使用 Manjaro,但我已经使用了 Linux Mint,因此我能够在不使用“intel-virtual-output”命令的情况下使 HDMI 工作,因为它足以连接 HDMI 电缆。
使用 Linux Mint 我没有温度问题。我很确定 Linux Mint 没有使用官方的 NVidia 驱动程序(“Nouveau”?)。
我正在尝试使用dnsmasq将路由推送到小型本地网络上的客户端。
但是我的客户端(服务器 #1、#2 和 #3)不能使用这些路由。dnsmasq 服务正在运行,我不知道可能出了什么问题。
这是我的“/etc/dnsmasq.conf”文件的内容:
domain-needed
bogus-priv
no-resolv
no-poll
server=/localnet/192.168.56.254
server=8.8.3.3
server=8.8.8.8
server=208.67.220.220
local=/brlightinternet.local/
interface=vboxnet0
listen-address=192.168.56.254
no-hosts
expand-hosts
domain=brlightinternet.local
dhcp-range=192.168.56.3,192.168.56.253,12h
dhcp-option=option:router,192.168.56.254
# pushing routes
dhcp-option=121,10.0.4.0/24,10.0.6.4,10.8.0.0/24,10.0.6.4,10.0.6.0/24,10.8.0.1
dhcp-option=249,10.0.4.0/24,10.0.6.4,10.8.0.0/24,10.0.6.4,10.0.6.0/24,10.8.0.1
dhcp-option=vendor:MSFT,2,1i
cache-size=150
Run Code Online (Sandbox Code Playgroud)
重要提示: “192.168.56.254”不是运行 dnsmasq 的服务器的 IP。它的 IP 是“192.168.56.1”。据我了解,我们可以为 dnsmasq 分配不同的 IP。
这是每个客户端(服务器 #1、#2 和 #3)上的网络配置(“/etc/sysconfig/network-scripts/ifcfg-enp0s17”)...
BOOTPROTO=static
DEVICE=enp0s17
DNS1=192.168.56.254
GATEWAY=192.168.56.254
IPADDR=192.168.56.120
IPV6INIT=NO
NETMASK=255.255.255.0
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
USERCTL=NO
ZONE=public
Run Code Online (Sandbox Code Playgroud)
......只有ips改变......
Server #1 -> IPADDR=192.168.56.122
Server #2 -> IPADDR=192.168.56.120
Server #3 -> IPADDR=192.168.56.121
Run Code Online (Sandbox Code Playgroud)
有关每个服务器的 LAN 的信息...
服务器 #1
[root@localhost ~]# ip a …
Run Code Online (Sandbox Code Playgroud) 是否可以使用单个 DHCP 服务器将完全不同范围的 ip 推送到不同 LAN 中的不同网络接口?
例子:
我有服务器 #1 和 #2。
服务器 #1:一个 DHCP 服务器,带有一个名为“enpA”的网络接口,它连接到 LAN A。
服务器 #2:一个 DHCP 客户端,具有一个名为“enpA”的网络接口,它也连接到 LAN A。它有一个名为“enpB”的网络接口,它连接到 LAN B。
局域网 A: 192.168.56.0/24
局域网 B: 10.0.2.0/24
我希望 LAN A 服务器(服务器 #1)将 ip 推送到连接到 LAN B 的“enpB”(服务器 #2)接口。也就是说,是否可以通过 LAN A 中连接的单个 DHCP 服务器来执行此操作?
如果是,我应该对像 isc KEA 这样的 DHCP 服务器使用什么策略?
好吧朋友们!这次我真的很感激一些帮助!=|
我正在使用VirtualBox虚拟器,并且我试图让我的来宾计算机仅使用“仅主机”网络接口(VirtualBox)访问互联网。
根据https://www.virtualbox.org/manual/ch06.html中的官方文档,使用“仅主机”网络接口我有以下“网络模式”(访问)...
VM <-> Host | YES
VM1 <-> VM2 | YES
VM -> Internet | NO
Run Code Online (Sandbox Code Playgroud)
但是,互联网上有很多文档告知您可以在主机上使用以下“技巧”/“解决方法”(示例)从访客计算机访问互联网(仅使用“仅主机”接口) ...
sudo iptables -A FORWARD -o <HOST_INTERFACE_WITH_INTERNET> -i vboxnet0 -s 192.168.56.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A POSTROUTING -t nat -j MASQUERADE
sudo sysctl -w net.ipv4.ip_forward=1
Run Code Online (Sandbox Code Playgroud)
我测试了很多很多的例子。iptables.service
在我的主机上运行正常。我究竟做错了什么?
我的主机是 Linux Manjaro(基于 Linux Arch)。
多谢!
以下是一些有关我提到的“技巧”/“解决方法”信息的来源......
http://archlinux.org.ru/forum/topic/2219/ http://nerdbynature.de/s9y/2015/06/09/VirtualBox-switching-to-Host-only-networking https://askubuntu.com …
如何使用多行模式在 bash 中进行字符串替换?
为了说明,我提供了一个伪代码:
TARGET_STR=' $N = "magic_quotes_gpc = <b>"._("On")."</b>";
$D = _("Increase your server security by setting magic_quotes_gpc to 'on'. PHP will escape all quotes in strings in this case.");
$S = _("Search for 'magic_quotes_gpc' in your php.ini and set it to 'On'.");
$R = ini_get('magic_quotes_gpc');
$M = TRUE;
$this->config_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );'
REPLACE_STR=' /* NOTE: "Magic_quotes_gpc" is no longer required. …
Run Code Online (Sandbox Code Playgroud)