我正在设置一个 yum 存储库,并且需要调试 yum.conf 文件中的一些 URL。我需要知道为什么 Scientific Linux 试图抓取这个 URL,而我期望它抓取另一个 URL:
# yum install package
http://192.168.1.100/pub/scientific/6.1/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: sl. Please verify its path and try again
Run Code Online (Sandbox Code Playgroud)
该的yum.conf(5)手册页提供了有关这些变量的一些信息:
变量
您可以使用许多变量来简化 yum 配置文件的维护。它们在几个选项的值中可用,包括 name、baseurl 和 commands。
$releasever 这将替换为 distroverpkg 中列出的软件包版本的值。这默认为 'redhat-release' 包的版本。
$arch 这将被替换为您在 Python 中由 os.uname()[4] 列出的架构。
$basearch 这将替换为您在 yum 中的基础架构。例如,如果您的 $arch 是 i686,您的 $basearch 将是 i386。
$YUM0-$YUM9 …
我想使用 Unixcolumn命令来格式化一些文本。我有由制表符分隔的字段,但在每个字段中也有空格。column分隔空白(制表符和空格)。如何使列仅使用制表符作为分隔符?
我试图使用以下命令将制表符指定为分隔符:
cat myfile | column -t -s"\t"
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个安装包的脚本,但如果它在稍后的任何时候失败,脚本会回滚它安装的任何内容。当然,如果用户之前已经安装了一个包,我不想从他们下面卸载它。我的脚本如何判断一个包以前是否通过 yum 安装过?
我喜欢在第一次备份系统时创建映像备份。在第一次之后,我使用 rsync 进行增量备份。
我平时的镜像备份如下:
安装并清零空白空间:
dd if=/dev/zero of=temp.dd bs=1M
rm temp.dd
在压缩驱动器的同时卸载并添加驱动器
dd if=/dev/hda conv=sync,noerror bs=64K | gzip -c > /mnt/sda1/hda.ddimg.gz
为了让系统恢复正常,我通常会做一个
gunzip -c /mnt/sda1/hda.img.gz | dd of=/dev/hda conv=sync,noerror bs=64K
这真的很简单,允许我保存“整个驱动器”,但实际上只是节省了已用空间。
这是问题所在。假设我执行了上述操作,但不是在干净的系统上执行,并且没有足够快地进行 rsync 备份,并且我想访问映像上的文件。假设我没有存储空间来实际解压缩图像并将其 dd 到驱动器,但想挂载图像以从中获取单个文件......这可能吗?
通常情况下,人们不会压缩 dd 图像,这将允许您仅使用-o loop...挂载图像,但这不是我的情况...
有什么建议可以即时安装压缩的 img 吗?
是否会使用AVFS来“挂载”gz 文件然后挂载内部 dd.img 工作(我不这么认为......但需要验证......)?
有技术原因吗?这是否是 Linux 或 Unix 早期的产物,如果是,是否有它持续存在的原因?
我已经试过各种办法都重定向stdout并stderr以/dev/null没有任何成功。我几乎一生都在运行 bash,我从来没有遇到过这个问题,但有一次在 BSD 中我被/bin/sh.
我试过的:
if ls ./python* 2> /dev/null; then
echo found Python
fi
Run Code Online (Sandbox Code Playgroud)
...哪个有效;如果 Python 不存在,它将使来自 ls 的错误消息静音。但是,如果python.tgz存在,则会输出如下所示的行:
# ./test.sh
./python-2.7.3p1.tgz
Run Code Online (Sandbox Code Playgroud)
我试过了:
if ls ./python* &> /dev/null; then
echo found Python
fi
Run Code Online (Sandbox Code Playgroud)
和
if ls ./python* 2>1 > /dev/null; then
echo found Python
fi
Run Code Online (Sandbox Code Playgroud)
和
if ls ./python* > /dev/null; then
echo found Python
fi
Run Code Online (Sandbox Code Playgroud)
没有什么是真正有效的。我只能重定向输出之一,不能同时重定向。
我正在尝试添加用于使用 CPG 安装程序的公钥。但是我对此很陌生,但是我发现的每个命令都给了我同样的错误:
gpg --keyserver keyserver.ubuntu.com --recv-keys 94558F59
gpg: requesting key 94558F59 from hkp server keyserver.ubuntu.com
gpg: keyserver timed out
gpg: keyserver receive failed: keyserver error
Run Code Online (Sandbox Code Playgroud)
这怎么可能看起来我在某种封锁背后,这使得无法建立到密钥服务器的连接。我查看了许多 OP 问题并尝试了所有我能找到的命令,但没有任何效果。以前有人遇到过这个问题吗?
我想从 Linux 系统上的 shell 脚本或本机代码中杀死特定用户的所有正在运行的进程。
我是否必须阅读 /proc 目录并查找这些?
有任何想法吗?Linux 中 UID 下的 pid 是否有动态映射?这不是在proc中吗?
如果没有,那么这个列表在哪里维护?我应该从中阅读吗?此外,系统中所有 UID 的静态列表在哪里,以便我可以验证此用户是否存在,然后继续杀死在其下运行的所有进程?
$ whoami
admin
$ sudo -S -u otheruser whoami
otheruser
$ sudo -S -u otheruser /bin/bash -l -c 'echo $HOME'
/home/admin
Run Code Online (Sandbox Code Playgroud)
即使 bash 作为登录 shell 调用,为什么没有$HOME设置为/home/otheruser?
具体来说,/home/otheruser/.bashrc不是来源。此外,/home/otheruser/.profile不是正在采购。- (/home/otheruser/.bash_profile不存在)
阅读“Halt 和 Shutdown 命令有什么区别?” ,我通常知道命令 shutdown 有什么作用,有或没有 -h/-r 选项。
“halt”命令执行系统断电到系统的运行级别 0。
“shutdown”命令在不使用 -h 或 -r 命令的情况下将系统断电至运行级别 1。
命令 "poweroff" 进入运行级别 0 或 1 怎么样?这是这三个命令之间唯一的主要区别吗?