uname -muname -m在 Red Hat Enterprise Linux Server 5.4 (Tikanga) 机器上给出 i686 和i686 i386 输出。我需要在那台机器上安装 Oracle 数据库 10g 第 2 版。那么,如何确定内核架构是 32 位还是 64 位?
在教程中,系统会提示我“如果您正在运行 Squeeze,请按照这些说明...”和“如果您正在运行 Wheezy,请按照这些其他说明...”
当我运行时uname,我得到以下信息:
Linux dragon-debian 3.2.0-4-686-pae #1 SMP Debian 3.2.63-2+deb7u2 i686 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
这些信息是否足以知道我使用的是Squeeze还是Wheezy,还是从其他地方获得的?
我们办公室有一些新硬件,它们运行自己定制的 Linux 操作系统。
我如何确定它基于哪个发行版?
假设我登录到远程系统,我怎么知道它正在运行什么?在大多数现代 Linux(Linux?)上,您有以下lsb_release命令:
$ lsb_release -ic
Distributor ID: LinuxMint
Codename: debian
Run Code Online (Sandbox Code Playgroud)
据我所知,它提供的信息与/etc/lsb-release. 如果该文件不存在怎么办?我似乎记得该lsb_release命令相对较新,所以如果我必须获得旧系统的操作系统怎么办?
在任何情况下,lsb代表Linux Standard Base所以我假设它不会在非 Linux Unices 上工作。据我所知,无法从中获取此信息,uname那么如何在不使用 的系统上获取此信息lsb_release?
当我cat /proc/version在终端中运行命令时,我得到以下输出:
Linux version 2.6.18-348.1.1.0.1.el5 (mockbuild@ca-build56.us.oracle.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-54)) #1 SMP Tue Jan 22 16:39:05 PST 2013
Run Code Online (Sandbox Code Playgroud)
如果我运行lsb_release -a命令,我可以看到以下信息:
LSB Version: :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64 :graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-ia32:prin ting-4.0-noarch
Distributor ID: EnterpriseEnterpriseServer
Description: Enterprise Linux Enterprise Linux Server release 5.9 (Carthage)
Release: 5.9
Codename: Carthage
Run Code Online (Sandbox Code Playgroud)
根据 的输出 cat /proc/version,我可以看到我使用的是 RedHat 4.1.2。虽然根据 的输出lsb_release -a,我正在使用Linux Server release 5.9. 哪一个是正确的?
如果是,它的年龄是多少?因为,我没有得到这个版本的 MySQL 5.6 安装程序。MySQL 5.6 仅适用Red Hat Enterprise Linux 5 / Oracle Linux 5 …
我想知道每个 Linux 系统中都有哪些标准命令。
例如,如果你有一个 debian/ubuntu/redhat/suse/arch/slackware 等,你总会找到类似的命令:
cd、mkdir、ls、echo、grep、sed、awk、ping 等。
我知道提到的一些命令是 shell 内置的,但其他命令不是,但它们仍然存在(根据我目前的知识和经验)。
另一方面,像 gawk、parted、traceroute 和其他非常著名的命令等命令在不同的 Linux 发行版中没有默认安装。
我进行了不同的网络搜索,但我还没有找到直接的答案。
目的是我想创建一个 shell 脚本,如果脚本中使用的命令在系统中可用,它应该进行一些完整性检查。如果没有,它应该提示用户安装所需的二进制文件。
有没有办法(从脚本)来识别默认的系统包管理器?
澄清一下,我想要做的是运行一个给定的命令,在 Debian 或其任何衍生产品上它会返回类似“apt”的东西,在 openSUSE 上它会返回“zypp”,在 Fedora 等上它会返回“yum”,在 Arch Linux 上它会返回“pacman”等。
我知道我可以用下面的方法来做到这一点,我只是想知道是否有一种更强大的方法,只要有同名的可执行文件就不会中断。
which apt >/dev/null 2>&1
if [ $? -eq 0 ]
then
echo "apt"
fi
# etc...
Run Code Online (Sandbox Code Playgroud) 我看到了这篇关于找出安装了什么发行版的所有不同方法的帖子,所以我正在尝试编写一个脚本来尝试所有这些方法。可能的命令包括:
$ cat /etc/lsb-release
$ cat /etc/issue
$ dmesg | head -1
$ cat /proc/version
$ cat /etc/slackware-version
$ cat/etc/debian-verion
Run Code Online (Sandbox Code Playgroud)
我试着写这样的东西(我通常说西班牙语,所以它是西班牙语):
function Nombre_SO()
{
DistroName="Linux"
if [ $DistroName = Linux ] ;
then
# Debian
debian=`cat /etc/debian_version | cut -d " " -f01 | tr '[:upper:]' '[:lower:]'`
if [ "$debian" = "debian" || "squeeze/sid" || "lenny" ];
then
DistroName="debian"
else
echo "Esto no es debian"
fi
# Slackware
slackware=`cat /etc/slackware-version | cut -d " " -f01` …Run Code Online (Sandbox Code Playgroud) 当我cat /etc/os-release得到以下信息时:
PRETTY_NAME="Kali GNU/Linux Rolling"
NAME="Kali GNU/Linux"
ID=kali
VERSION="2018.1"
VERSION_ID="2018.1"
ID_LIKE=debian
ANSI_COLOR="1;31"
HOME_URL="http://www.kali.org/"
SUPPORT_URL="http://forums.kali.org/"
BUG_REPORT_URL="http://bugs.kali.org/"
Run Code Online (Sandbox Code Playgroud)
我将如何kali从ID=bash 中抓取?我将如何2018.1从VERSION=bash 中抓取?
可能的重复:
Bash:获取分发名称和版本号
给定(root)通过命令行(通过 ssh)访问 Linux 机器的权限,我如何确定系统上实际运行的是哪个发行版?