在bash我做了以下。此if表达式将评估trueRedhat 版本是 7.5 还是 7.6。
if [[ ` cat /etc/redhat-release | awk '{print $7}' ` == "7.5" ]] || [[ ` cat /etc/redhat-release | awk '{print $7}' ` == "7.6" ]]
then
.
.
.
Run Code Online (Sandbox Code Playgroud)
我们可以用正则表达式以更优雅的方式做到这一点吗?
这是内容/etc/redhat-release:
cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.6 (Maipo)
Run Code Online (Sandbox Code Playgroud) 我有一个未知的(假设不uname -a返回任何内容)Linux 发行版,我有 root 访问权限。
我如何通过查看文件结构来验证它是否基于 Debian?
Skype 网站提供 Linux 版本的下载,有 DEB 和 RPM 两个版本。我不知道哪一款适合我的电脑。
可能的重复:
如何在简单的 shell 脚本中获取分发名称和版本号?
给定一个 shell,如何识别在远程服务器上运行的 Unix/Linux 变体?
我通常uname用来确定正在运行的操作系统,但我在多台机器上有帐户,我不知道正在运行的特定发行版。
当uname返回Linux 时,我尝试过uname -a,但只看到以下内容:
Linux host123 3.0.58-0.6.6-pae blah blah blah i686 i686 i386 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
我的猜测是这是一个 SUSE 发行版,但是有没有更好的方法来了解安装了哪个发行版,类似于unameAIX、Darwin 等的正常显示方式……?
我的操作系统是从 debian 8.5.0 amd64 安装的。
安装后执行命令。
cat /etc/issue
Debian GNU/Linux 8 \n \l
Run Code Online (Sandbox Code Playgroud)
这里没有 8.5。
cat /proc/version
Linux version 3.16.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian 3.16.43-2+deb8u2 (2017-06-26)
Run Code Online (Sandbox Code Playgroud)
这里也没有 8.5。
deb8u2 是否意味着 debian 8.5?
我没有主机,dpkg所以我需要安装它。
我按照这里和这里的说明进行操作。
在这两个答案中,他们都写道我需要下载文件:
wget http://security.ubuntu.com/ubuntu/pool/main/d/dpkg/dpkg_1.17.5ubuntu5.2_i386.deb
or
wget http://security.ubuntu.com/ubuntu/pool/main/d/dpkg/dpkg_1.17.5ubuntu5.2_amd64.deb
Run Code Online (Sandbox Code Playgroud)
并tar像这样使用:
tar x dpkg*.deb data.tar.gz
tar xfvz data.tar.gz ./usr/bin/dpkg
cp ./usr/bin/dpkg /usr/bin/
Run Code Online (Sandbox Code Playgroud)
但是运行后tar x dpkg*.deb data.tar.gz失败了:
[root@webtl1 ~]# tar x dpkg*.deb data.tar
tar: Refusing to read archive contents from terminal (missing -f option?)
tar: Error is not recoverable: exiting now
Run Code Online (Sandbox Code Playgroud)
我点击了这个链接:
https : //askubuntu.com/questions/143107/how-to-extract-archives-to-file-system-in-terminal
并尝试使用tar xvzf dpkg*.deb data.tar.gz 但它也失败了:
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: …Run Code Online (Sandbox Code Playgroud)