如何检测当前系统的 shell 版本

Linux 下升级gcc版本(gcc-7.3.0) 本文描述如何通过编译源码,来升级gcc编译版本,由于CentOs默认gcc编译版本太低不能满足需求。我通过自己的安装升级经验总结了一个shell脚本,整体时间大约在一个小时左右。 cd /usr/src/ vim upgradeGcc.sh 在upgradeGcc.sh中输入下面的内容 #!/bin/bash #在非root账户下,使用sudo命令 #获取源码 #或者手动下载,在... 阅读详情

当 Unix/Linux 系统启动时,操作系统的内核部分被装入内存,其余部分仍在硬盘上,只有当用户请求执行时才会被加载到内存中。Unix/Linux 系统完成启动后,由内核中的 init 进程激活 getty 进程,getty 进程在相应的终端上显示“login: ”提示,等待用户登录。当用户输入用户名时,getty 进程读取用户输入并启动 login 进程,由 login 进程完成整个登陆过程。用户完成登录后,login 进程根据启动配置文件,启动与该登录用户相对应的“默认 shell ”。此时,shell 进程被启动,用户可以通过 shell 终端与系统内核进行交互。


各种各样的 shell

和 Unix/Linux 中的其它程序一样,shell 也仅仅是一个程序,在 Unix/Linux 系统中并没有特权。这也是为什么 Unix/Linux 系统中出现各种各样 shell 的原因。
1、Bourne shell(sh)。大多数 Unix 系统的默认安装 shell。
2、Korn shell(ksh)。
3、C shell(csh)。
4、TENEX/TOPS C shell(tcsh)。
5、Bourne Again shell(bash)。大多数 Linux 系统的默认安装 shell。

切换 shell

大多数的 Unix/Linux 系统都提供了多个 shell。当系统启动时,由启动配置文件确定启动(默认的) shell,用以用户与系统进行交互。
在 Red Hat 9 中,可以通过以下任何一种命令,确定登录用户的默认 shell。
cat /etc/passwd #M1
echo $SHELL #M2
在决定要切换 shell 之前,必须知道系统中安装了哪些 shell。在 Red Hat 9 中,可以通过以下命令,确定系统中已经安装的各种 shell 程序。
cat /etc/shells
在我的 Red Hat 9 系统中,得到了如下的结果:
/bin/sh
/bin/bash
/sbin/nologin
/bin/bash2
/bin/ash
/bin/bsh
/bin/tcsh
/bin/csh
可以看出来,这其实是一个 shell 程序文件的列表。一般来说,/bin 和 /sbin 目录都在环境变量 PATH 中。为了切换为我们喜欢的 shell 种类,(我们已经知道,shell 也仅仅是一种与系统进行交互的程序),我们只需要在命令提示符下输入 shell 在 /bin 和 /sbin 目录中的相应名称即可。

我在使用哪个 shell

Unix/Linux 系统极少被重新启动,多个对 shell 有不同爱好的管理员可能操纵过计算机,我们姑且假设他们都使用相同的管理帐号。于是,这就产生了一个问题,我的终端上究竟运行着什么样的 shell?
针对这个问题,我在 Google 上搜寻了一下,有各种各样的答案。有一个回答是
echo $SHELL
我觉得这是不对的,SHELL 是环境变量,在整个会话中都不回改变,它表示的是登录用户的“默认 shell ”。还有人说用
cat /etc/passwd
这样得到的结果也是登录用户的“默认 shell ”,很显然也不能解决上述问题。
在 Red Hat 9 系统上,我用下述方法解决这个问题:
首先,使用命令
echo $$
获得当前 shell 进程的 PID。我在测试中,得到的结果是 10650。
然后,使用命令
ps -A | grep 10650
获取进程列表,并进行筛选。得到这样的测试结果:
10650 pts/0 00:00:00 csh
于是得到的结论是,测试中使用的 shell 是 csh。

centos7 shell脚本系统检测 #!/bin/bash # 界面输出区 optimize() { echo " ----系统优化选择项目---- 1.网络信息获取 2.CPU信息获取 3.内存信息获取 4.系统基本信息 5.网络测试 0.退出监测 " } # 函数命令区-order ip_get(){ echo "--网卡列表--" cat /proc/net/dev | sed -n '3,$p' | awk -F ':' {'print $1'} |sed s/[[:space:]]//g|grep -v lo 阅读详情

相关推荐

Shell 脚本-07-检测是否为 root 用户

Shell 脚本-07-检测是否为 root 用户 脚本需求: ​ 检测本机当前用户是否为超级管理员,如果是管理员,则使用 yum 安装 httpd,如果不是,则提示您非管理员 脚本内容: #! /bin/bash # USER 变量为系统内置的当前用户的变量 if [ $USER == "root" ];then echo '当前用户为 $USER , 正在为您安装 httpd 服务,请您耐心等候…………' yum -y install httpd > /dev/

RunzIyy的博客 2096

使用shell 检测操作系统版本信息

思路: 使用/etc/os-release中的信息, 同时调用uname -?得到内核信息

robinfoxnan的专栏 2787

检查linux操作系统的shell脚本

检查linux操作系统的shell脚本,检查操作系统安装是否符合安装应用软件的要求

查看当前使用的shell

转自: https://www.cnblogs.com/zfc2201/articles/6032292.html 查看当前发行版可以使用的shell [jack@localhost ~]$ cat /etc/shells /bin/sh /bin/bash /sbin/nologin 查看当前使用的shell 一、最常用的查看shell的命令,但不能实时反映当前shell [

harryhare的专栏 2430

脚本判断操作系统类型

该脚本可以判定类unix操作系统的名称

HTML5期末大作业:关于家乡介绍的HTML网页设计——郑州美景HTML+CSS(5页) 学生DW家乡介绍网页设计作业成品 web课程设计网页规划与设计

HTML5期末大作业:我的家乡——郑州美景HTML+CSS(5页) 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 明星、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他 等网页设计题目, A+水平作业, 可满足大学生网页大作业网页设计需求, 喜

qq_365392777 1万+

centos 6.8 配置csh的shell和环境变量

1、查看shell 查看系统中安装的所有版本的shell:cat   /etc/shells 查看当前用户使用的shell:echo $SHELL 2、修改用户shell 可以在/etc/passwd里面直接修改用户shell 也可以 在新建用户的时候指定shell版本:useradd username -s /bin/csh 3、配置环境变量 bash的shell默认用户下面的配...

weixin_33895475的博客 2152

别再手动调参数了!用3ds Max的tyDiffusion插件,5分钟搞定AI动态纹理生成

本文介绍了3ds Max的tyDiffusion插件如何通过AI技术快速生成动态纹理,大幅提升3D美术师的工作效率。从火焰、水流到布料飘动,tyDiffusion能在5分钟内完成传统手工需要数小时的任务,且效果更自然。文章详细解析了插件的核心功能、实战配置及进阶应用,帮助用户轻松实现AI动态纹理生成。

weixin_30919429的博客 666

常用 Shell命令

常用 Shell命令 1、目录信息查看命令 ls 命令主要用于显示指定目录下的内容,列出指定目录下包含的所有的文件以及子目录, 它的主要参数有: -a 显示所有的文件以及子目录,包括以“.”开头的隐藏文件。 -l 显示文件的详细信息,比如文件的形态、权限、所有者、大小等信息。 -t 将文件按照创建时间排序列出。 -A 和-a 一样,但是不列出“.”(当前目录)和“…”(父目录)。 -R 递归列出所有文件,包括子目录中的文件。 2、目录切换命令 cd cd  /    //进入到根目录“/”下

weixin_44348260的博客 1529

Flutter加载本地HTML的优雅解决方案:轻松实现富文本展示

通过以上步骤,我们实现了Flutter加载本地HTML的完整流程,并简单介绍了如何通过WebView与HTML页面进行交互。HTML文件作为一种灵活、易维护的富文本展示方式,能有效提升Flutter应用的内容呈现能力。这种方法在展示新闻、资讯或帮助文档等内容时非常有用,能够让开发者灵活调整内容的样式和排版。希望这篇文章能对你在Flutter开发中的HTML加载有所帮助!

四楼没电梯的专栏 3640

PostgreSQL中idle in transaction状态的5个隐藏危害及实战解决方案

本文深入剖析了PostgreSQL中`idle in transaction`连接状态的五大隐藏危害,包括内存与锁泄漏、VACUUM受阻导致表膨胀、事务ID加速消耗、连接池资源耗尽以及增加故障排查复杂度。文章提供了基于`pg_stat_activity`视图的监控方法、识别高危事务的SQL脚本,并给出了从数据库参数调优(如设置`idle_in_transaction_session_timeout`)到应用层编码规范与连接池配置的完整实战解决方案。

zzz56的博客 234

Shell脚本学习指南

Linux Shell编程指南

zxw1473474655的博客 2838

2023最新版kali安装教程

2023最新版kali安装教程 打开kali官网(https://www.kali.org/),下载kali镜像

qq_46346209的博客 2万+

shell

定义: 命令语言解释器,翻译命令给内核,内核转交给CPU执行 用户/内核间的接口程序 无论GUI/CLI,一切输入先由shell解释再传给内核 bash shell shell的版本有sh、bash、csh、ksh等 其中bash是Linux世界使用最广泛的shell,也是很多Linux发行版的默认shell 获取当前系统可用shell [root@localhost ~]...

qq_39643868的博客 385

【全部更新】2025金地杯E题山西省大学生数学建模思路代码文章教学:高速铁路牵引供电系统能耗优化

问题四将列车的运行速度与发车时间同时作为优化变量,建立联合优化模型,目标是在考虑电价机制和调度均衡性的前提下,使牵引供电系统一天内的总电费支出最小。问题三在考虑分时电价机制的基础上,基于遗传算法优化列车速度组合,使牵引供电系统一天内的总电费支出最小。然而,在实际运营中,不同时段的电价差异显著,合理安排列车的运行时间与运行速度,可有效降低系统的总电费支出。本研究聚焦于高速铁路牵引供电系统的能耗与电费优化问题,针对列车运行速度、发车时间与分时电价的综合影响,提出一系列数学模型,以实现系统能耗与电费的最小化。

xb459149247的博客 5289

Matplotlib字体警告终结者:为什么总提示DejaVu Sans?5种场景解决方案大全

本文深入解析Matplotlib中常见的DejaVu Sans字体警告问题,并提供5种典型场景的完整解决方案。从理解字体系统的三层架构和缓存机制,到解决中文显示、远程服务器部署、TeX渲染、缓存优化及生产环境配置等实际问题,帮助开发者彻底摆脱字体警告困扰,实现稳定可靠的数据可视化。

view3的博客 500

判断Centos版本模板

由于centos8里把下载器yum替换成了dnf,有些7里正常执行的脚本到8无法执行,所以写了一个判断,执行对应的版本命令。 #!/bin/sh # 检测linu版本号 release=`cat /etc/redhat-release|sed -r 's/.* ([0-9]+)\..*/\1/'` if [ $release -lt 8 ] then echo "Centos版本为7" else echo "Centos版本为8" fi 截图显示 ...

hzcm1984的博客 585

【2025华为OD机考真题】- 简易内存池(B卷-200分)(C版)

🔔本文收录于「最新最全华为OD机试真题(C版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度分析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录中,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!专栏所写题库均精心搜集于互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验所撰,欢迎订阅。    💗订阅福利:一次订阅,可永久免费阅读,提供在线答疑解惑,后续题库更新皆可阅

**My Coding Family** 960

linux平台名称,在Unix/Linux平台上找到os名称和版本的最佳方式

这适用于所有Linux环境。#!/bin/shcat /etc/*-release在Ubuntu中:$ cat /etc/*-releaseDISTRIB_ID=UbuntuDISTRIB_RELEASE=10.04DISTRIB_CODENAME=lucidDISTRIB_DESCRIPTION="Ubuntu 10.04.4 LTS"或12.04:$ cat /etc/*-releaseDIS...

weixin_32531655的博客 419

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

shell 日常命令

shell 日常巡检 #!/bin/bash function system(){ echo “#########################系统信息#########################” OS_TYPE=uname OS_VER=cat /etc/redhat-release OS_KER=uname -a|awk '{print $3}' OS_TIME=date +%F_%...

xiaowoniuwzx的博客 201

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

openage 交互式数据浏览器:用 Python 交互 Shell 深入探索原始游戏媒体档案

本指南介绍 openage 资产转换工具(convert script)提供的**交互式媒体浏览模式**:通过一条命令进入 Python 交互式 REPL,直接浏览、检索并导出原版《帝国时代》系列游戏的媒体资源(SLP、SMX、DRS 档案等)。读完本文,你将掌握 `--interactive` 模式的启动方式、其从游戏版本检测到档案挂载的底层工作流程,以及 `data` 路径变量、`save`

gitblog_00234的博客 431

shell脚本检测python版本并进行对比

目地 针对不同的py版本执行不同的python代码。 一种方法是写一个python脚本根据sys来判断,另一种是用shell脚本,前者比较简单,后者对我来说比较新鲜。就你懂的 正文 #!/bin/bash # FileName: run.sh PY_VERSION=`python -V 2>&1|awk '{print $2}'|awk -F '.' '{print $1}'` if (( $PY_VERSION == 3 )) then echo "Your Python Ver

Kearney 3005

1.Linux 系统检测 Shell 脚本

解释:适合用于系统监控、日常巡检、问题排查等场景。 : 输出提示信息,告诉用户接下来要显示什么内容。 : 作用:打印当前有效用户ID对应的用户名。 对比:它比 或 更简洁,专门用于获取当前执行脚本的用户。 场景:在自动化脚本中,确认执行身份至关重要(例如,某些操作需要 root 权限)。 5. 系统版本检测 : : concatenate,用于读取文件内容并打印到标准输出。 :这是一个特定于 RedHat 系 Linux 发行版的文件(如 CentOS, RHEL, Fedora)。文件

wwwxxxhhhoooggg的博客 524

netdata:shell脚本获取当前操作系统(linux)的信息

检测内核 #!/usr/bin/env sh # ------------------------------------------------------------------------------------------------- # detect the kernel KERNEL_NAME="$(uname -s)" KERNEL_VERSION="$(uname -r)" ARCHITECTURE="$(uname -m)" echo "NETDATA_SYSTEM_KERNEL

OceanStar的博客 1535

Fastfetch终极指南:如何快速检测Shell类型、版本与系统配置

Fastfetch是一款基于C语言开发的高性能系统信息获取工具,它能快速检测Shell类型、版本以及完整的系统配置信息。作为neofetch的替代方案,Fastfetch在保持美观显示的同时,显著提升了执行速度,支持Linux、Android、FreeBSD、macOS和Windows 7+等多个操作系统。🚀 ## 什么是Fastfetch? Fastfetch是一个专门为系统管理员和开发者

gitblog_00108的博客 391

解决 Fish Shell 主题安装失败:从版本检测到完美修复的实战指南

你是否遇到过这样的情况:兴致勃勃下载了一款精美的 Fish Shell(友好交互 shell)主题,却在安装时遭遇报错?90% 的概率是版本兼容性问题在作祟。本文将带你从版本检测到主题修复,5分钟内让终端焕然一新。 ## 问题诊断:版本过旧的3个典型症状 当你执行 `fish_config theme choose ` 或手动安装主题时,若出现以下情况,基本可以判定为版本问题: -...

gitblog_00139的博客 496
上一篇: Linux的目录结构及其用途
下一篇: secureCRT自动断开的解决方法
Has_it
博客等级 码龄19年 3粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值