百胜吗 --enablerepo
选项仅在当前命令期间启用存储库?
例如,如果enabled
在设置/etc/yum.repos.d/remi.repo
文件设置为0
(禁用),我跑:
yum --enablerepo remi,remi-php55 install php
Run Code Online (Sandbox Code Playgroud)
指定的存储库(remi
和remi-php55
)是否仅在install
命令期间启用?
有没有办法enabled
使用yum
而不是.repo
直接编辑文件来保留设置?
;;
在这个包含嵌套case
的bash 脚本中,我是否有足够的(或者可能太多)终止符?
case "$1" in
OK)
# Nothing needs done
echo -n "OK:1" ;;
CRITICAL)
case "$2" in
SOFT)
case "$3" in
1|2)
soft_reset_pool.sh ;;
esac ;;
HARD)
case "$3" in
1|2)
hard_reset_pool.sh ;;
3|4)
hard_reset_service ;;
esac ;;
esac ;;
esac
Run Code Online (Sandbox Code Playgroud)
我已经好几年没有生气了。
我使用RegEx Buddy来设计和调试我的正则表达式。RegEx Buddy 允许我在许多不同的正则表达式引擎类型(.NET、Java、Perl、GNU BRE、GNU ERE、POSIX、BRE、POSIX ERE 等)之间进行选择。
bash 使用什么正则表达式引擎(例如 inif
和case
statements)?我正在运行 Centos 5.5 32 位和 bash 3.2.25(1):
[kevin@mon01 scratch]$ bash --version
GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
Run Code Online (Sandbox Code Playgroud)
我猜它会是 GNU BRE 还是 GNU ERE?
我安装了 Redhat 6 x86_64。我正在使用网络连接屏幕来设置静态 IP 地址,如下所示(我希望我家中的两台 PC 能够互相看到:一台 Redhat PC 和一台 Mac)
192.168.0.5 255.255.255.0 192.168.0.1
当我运行时,ifconfig
它只显示lo
和virbr0
信息。我不知道这些项目是什么(我对网络设置不太了解)。
当我尝试ifconfig -a
它显示eth0
,lo
,sit0
和virbr0
。信息 eth0
如下:
链接封装:以太网 HWaddr 90:2B:34:74:05:30 广播多播 MTU:1500 公制:1 RX 数据包:192 错误:0 丢弃:0 溢出:0 帧:0 TX 数据包:6 错误:0 丢弃:0 溢出:0 帧:0 碰撞:0 txqueuelen:1000 RX 字节 53811 (52.5 KiB) TX 字节:468 (468.0 b) 中断:29 基地址:0xc000
有人能帮我指出我的设置是否有问题或如何解决这个问题吗?
我有一个与 nagios 一起使用的 bash 脚本,它通过电子邮件发送通知。它的关键部分如下所示:
# $1 (FROM) | $2 (TO) | $3 (SUBJECT) | $4 (BODY)
/usr/bin/printf "%b" "$4" | /bin/mail -s "$3" "$2" -- -f $1
Run Code Online (Sandbox Code Playgroud)
我知道我可以sendmail
直接使用该命令(像这样),但这意味着重新编写一些脚本来处理构建包括所有标题在内的整个消息。
有什么方法可以使用 指定其他 SMTP 标头/bin/mail
,在我自己的情况下,我试图添加Importance: high
标头?
我正在运行 exim 4.63 作为我的 MTA 和 CentOS 5.6 x64。
我在我的 Vostro 1700 笔记本电脑上运行 CentOS 5.7 x86,它有一个英特尔 Pro 无线 WiFi 网卡(英特尔 Pro 无线 3945 [iwl3945])。
我对无线连接 ( wlan0
) 的管理方式以及配置的存储位置有些困惑。
我最初是wlan0
通过 Gnome 的无线设备配置应用程序 ( System -> Network
) 进行配置的:
我配置了一个静态 IP 地址,如果172.16.3.22
等等:
然后我配置了无线设置来设置我的 SSID 等:
完成后,我重新启动了界面:
ifdown wlan0
ifup wlan0
Run Code Online (Sandbox Code Playgroud)
到目前为止ifconfig
一切顺利,并报告界面已启动。
但是,当我尝试 ping 网络上的任何内容时,ping 都失败了。就在那时我注意到无线配置页面没有询问我正在运行的无线安全类型(WPA2-PSK) - 唯一的选项是无、开放系统(开放)或共享密钥(受限)所以看起来我没有对我的 WiFi AP 进行身份验证。
然后我在System -> Preferences -> More Preferences
. 使用这个工具,我必须添加一个新连接,它允许我配置我的无线 NIC 并指定安全类型:
我还配置了一个不同的 IP 地址 172.16.3.23,主要是出于好奇,看看这个 GUI 是否配置了与之前对话相同的设置并将这些值保存在/etc/sysconfig/network-scripts/ifcfg-wlan0
. 然而,这似乎是一个与我熟悉的完全不同的配置系统,因为它ifcfg-wlan0
似乎不用于保存上述配置。
长话短说,我也有一个谷歌,发现我还需要启动 NetworkManager …
在我的一个 bash 脚本中,我需要获取冒号分隔字符串的最后一部分。例如,我需要289283
从以下值中获取数值:
OK: DriveC-ReadBytesPerSec: 289283
Run Code Online (Sandbox Code Playgroud)
经过一些试验和错误,我得出了以下结论:
READRESULT="OK: DriveC-ReadBytesPerSec: 289283"
echo ${READRESULT#*:*:*}
Run Code Online (Sandbox Code Playgroud)
哪个输出289283
.
问题是,虽然它完成了工作,但我不完全理解为什么${READRESULT#*:*:*}
会产生正确的结果。
谁能解释这个通配表达式是如何工作的?
如何$2
使用 awk 对文件的特定列(例如)执行字母数字验证?
例如我试过:
awk -F, '{if ($10==(/[0-9a-zA-Z]/)) count+=1;} END {print count}' final.csv
Run Code Online (Sandbox Code Playgroud)
我没有收到任何错误或结果。
在使用 SysV init 运行级别的系统上,例如Centos 5,当操作系统启动时,它会直接进入 中定义的运行级别/etc/inittab
吗?
如果我使用init
命令更改我的运行级别,是否执行当前运行级别的终止脚本,然后执行新运行级别的启动脚本?
例如,如果我处于运行级别 3 并进入init 1
,是否会执行 kill 脚本/etc/rc.d/rc3.d
,然后在进入运行级别 1 时会运行启动脚本/etc/rc.d/rc1.d
?
我有一堆 DOS 格式的 PHP 脚本(vi
显示[noeol] [dos]
在状态行中),但正如预期的那样,它们不可用。
我跑过dos2unix
它们来修复行尾:
dos2unix index.php
Run Code Online (Sandbox Code Playgroud)
但是当我打开文件时,vi
我仍然[noeol]
在状态行上看到。
在 vi 的十六进制编辑器模式 ( :%!xxd
) 中检查它们时,我没有看到任何跳出我的东西。
在原始文件中,行尾如下所示: 0x0D 0x0A
如果在运行后dos2unix
它们看起来像:0x0A
我还检查以确保文件的最后一行有一个正确的行尾,并且也在那里 ( 0x0A
)。
还有什么可能导致这种情况,我应该担心吗?
我正在运行 CentOS 5.6 x64。
如果我做:
ssh-keygen -N password123\$ -f bobskeys
Run Code Online (Sandbox Code Playgroud)
是\
转义$
字符还是成为密码的一部分?
或者更确切地说,bash
在ssh-keygen
获取密码值之前会进行任何转义吗?
我需要逃避这个$
角色吗?
我正在运行 Centos 5.5 x64 和 bash 3.2.25
bash ×4
centos ×4
awk ×1
dhcp ×1
email ×1
init-script ×1
mail-command ×1
networking ×1
rhel ×1
runlevel ×1
sysvinit ×1
wifi ×1
wildcards ×1
yum ×1