要寫乙個centos系統的初始化指令碼,但是centos6和centos7版本有很多命令都不相同,所以為了讓指令碼在兩個版本之間都可以使用,就需要對centos系統版本進行判斷。
通過查詢各種資料,我發現基本有下面幾種檢視系統版本的方法:
lsb_release -a
[root@centos6 ~]# lsb_release -a
lsb version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
distributor id: centos
description: centos release 6.9 (final)
release: 6.9
codename: final
但是,centos7.3裡沒有lsb_release命令,所以這種方法無法滿足我的需要。
cat /etc/os-release
name="centos linux"
version="7 (core)"
id="centos"
id_like="rhel fedora"
version_id="7"
pretty_name="centos linux 7 (core)"
ansi_color="0;31"
cpe_name="cpe:/o:centos:centos:7"
home_url=""
bug_report_url=""
centos_mantisbt_project="centos-7"
centos_mantisbt_project_version="7"
redhat_support_product="centos"
redhat_support_product_version="7"
但是,centos6裡沒有這個檔案,所以這個方法也不適用。
cat /etc/redhat-release(/etc/centos-release)
[root@centos6 ~]# cat /etc/redhat-release
centos release 6.9 (final)
centos linux release 7.3.1611 (core)
可以看到,這個方法在兩個版本中都可以使用,可以使用sed命令取版本的值
[root@centos6 ~]# cat /etc/redhat-release|sed -r 's/.* ([0-9]+)\..*/\1/'
6[root@centos7 ~]# cat /etc/redhat-release|sed -r 's/.* ([0-9]+)\..*/\1/'
7
rpm -q centos-release
[root@centos6 ~]# rpm -q centos-release
centos-release-6-9.el6.12.3.x86_64
centos-release-7-3.1611.el7.centos.x86_64
如上,這個命令在兩個版本中顯示結果格式一致,所以我們可以使用cut很輕鬆的取系統版本的值。
[root@centos6 ~]# rpm -q centos-release|cut -d- -f3
6[root@centos7 ~]# rpm -q centos-release|cut -d- -f3
7
然後就可以在指令碼中使用這個值判斷系統版本了。 centos6 7通用檢視系統版本
方法一 可以用lsb release a來檢視系統版本 root centos6 lsb release a lsb version base 4.0 amd64 base 4.0 noarch core 4.0 amd64 core 4.0 noarch graphics 4.0 amd64 gr...
Centos 6 7 更改系統語言
linux系統雖然支援中文,但是在許多的軟體不支援中文就會出現亂碼,或者裝系統的時候語言選為了中文,但是在之後的操作中發現命令列不支援中文顯示。對此本文對centos 6 7的系統語言切換進行介紹。檢視系統當前語言環境 master node01 echo lang en us.utf 8 en u...
centos6 7新增系統服務
服務指令碼必須存放在 etc ini.d 目錄下 chkconfig add mongodb chkconfig list mongodb 等級0表示 表示關機 等級1表示 單使用者模式 等級2表示 無網路連線的多使用者命令列模式 等級3表示 有網路連線的多使用者命令列模式 等級4表示 不可用 等級...