小编Jef*_*ler的帖子

Yum:如何查看 $releasever、$basearch 和 $YUM0 等变量?

我正在设置一个 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 …

yum scientific-linux repository dnf

86
推荐指数
5
解决办法
13万
查看次数

如何使用列来分隔制表符而不是空格?

我想使用 Unixcolumn命令来格式化一些文本。我有由制表符分隔的字段,但在每个字段中也有空格。column分隔空白(制表符和空格)。如何使列仅使用制表符作为分隔符?

我试图使用以下命令将制表符指定为分隔符:

cat myfile | column -t -s"\t"
Run Code Online (Sandbox Code Playgroud)

command-line text-processing quoting columns

84
推荐指数
4
解决办法
4万
查看次数

如何判断一个包是否通过 yum 安装在 bash 脚本中?

我正在尝试编写一个安装包的脚本,但如果它在稍后的任何时候失败,脚本会回滚它安装的任何内容。当然,如果用户之前已经安装了一个包,我不想从他们下面卸载它。我的脚本如何判断一个包以前是否通过 yum 安装过?

bash yum shell-script package-management

84
推荐指数
3
解决办法
14万
查看次数

是否可以动态安装 gzip 压缩的 dd 图像?

我喜欢在第一次备份系统时创建映像备份。在第一次之后,我使用 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 工作(我不这么认为......但需要验证......)?

command-line backup compression mount dd

83
推荐指数
5
解决办法
9万
查看次数

为什么 Linux 用户名不能以数字开头?

有技术原因吗?这是否是 Linux 或 Unix 早期的产物,如果是,是否有它持续存在的原因?

linux users history

83
推荐指数
3
解决办法
2万
查看次数

使用 /bin/sh 将 stderr 和 stdout 重定向到 /dev/null

我已经试过各种办法都重定向stdoutstderr/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)

没有什么是真正有效的。我只能重定向输出之一,不能同时重定向。

shell io-redirection openbsd

82
推荐指数
1
解决办法
10万
查看次数

尝试添加 GPG 公钥时密钥服务器超时

我正在尝试添加用于使用 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 问题并尝试了所有我能找到的命令,但没有任何效果。以前有人遇到过这个问题吗?

bash ubuntu gpg

80
推荐指数
4
解决办法
17万
查看次数

如何使用用户的 UID 杀死所有用户的进程

我想从 Linux 系统上的 shell 脚本或本机代码中杀死特定用户的所有正在运行的进程。

我是否必须阅读 /proc 目录并查找这些?

有任何想法吗?Linux 中 UID 下的 pid 是否有动态映射?这不是在proc中吗?

如果没有,那么这个列表在哪里维护?我应该从中阅读吗?此外,系统中所有 UID 的静态列表在哪里,以便我可以验证此用户是否存在,然后继续杀死在其下运行的所有进程?

linux c proc

79
推荐指数
3
解决办法
28万
查看次数

sudo 作为另一个用户使用他们的环境

$ 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不存在)

bash sudo environment-variables

79
推荐指数
2
解决办法
32万
查看次数

这些用于关闭 Linux 服务器的命令有什么区别?

阅读“Halt 和 Shutdown 命令有什么区别?” ,我通常知道命令 shutdown 有什么作用,有或没有 -h/-r 选项。

“halt”命令执行系统断电到系统的运行级别 0。

“shutdown”命令在不使用 -h 或 -r 命令的情况下将系统断电至运行级别 1。

命令 "poweroff" 进入运行级别 0 或 1 怎么样?这是这三个命令之间唯一的主要区别吗?

shutdown rhel

78
推荐指数
2
解决办法
3万
查看次数