iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Shell 的相关概念和配置方法是什么
  • 949
分享到

Shell 的相关概念和配置方法是什么

2023-06-05 22:06:27 949人浏览 泡泡鱼
摘要

这篇文章将为大家详细讲解有关shell 的相关概念和配置方法是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。使用Linux的过程中少不了使用各种各样的Shell, 而根据启动环境的不同,

这篇文章将为大家详细讲解有关shell 的相关概念和配置方法是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

使用Linux的过程中少不了使用各种各样的Shell, 而根据启动环境的不同,Shell会读取不同的配置文件。 本文便来详细介绍这些不同名字的配置文件在何时会被Shell读取。

Shell 的相关概念和配置方法是什么

什么是 Shell

Shell(Unix Shell)是一种命令行解释器,是Unix操作系统下最传统的人机接口。 在Shell中,用户可以通过输入程序名称来执行某个程序, 最初计算机用户就是通过Shell来让计算机执行任务的。 今天在linuxMac中大量使用的Shell包括CSH,Bash,ZSH等。

第一个Unix Shell是贝尔实验室的Ken Thompson 写的sh,从1971年便开始使用了。 ubuntu、RedHat等Linux发行版中默认的Shell是Bash(Bourne Shell), 作者是贝尔实验室的Stephen Bourne,因此得名。 Harttle在使用的是Z shell,这是一个非常现代的Shell,兼容于Bash。

什么是 Shell 命令

Shell命令就是我们常说的Linux命令,这些命令可以分为两类:

一类是Shell Builtin,这和Shell类型有关。例如Bash中有echo, pwd等。
一类是PATH下的软件,比如/usr/bin下的ls, mkdir等。
Shell编程是一系列Shell(通常指Bash)命令写在一个文件中,以批量地去执行。 这个文件便是Shell脚本,其中包含了要被顺序执行的Shell命令。

这些Shell脚本一般命名为*.sh来表示通过Shell来执行。 Shell脚本第一行通常会包含当前脚本文件的解释器,比如#!/usr/bin/bash 是指用户执行该脚本时,用Bash来解释执行。

什么是 Terminal

Terminal(终端)是指计算机的一台设备或一个软件, 它可以接受键盘输入传送给计算机, 并通过屏幕或打印机来显示计算机传送来的字符输出。 早期的终端就是一台打字机(teletypewritter,TTY), 因此TTY和Terminal是同义词。 至今Linux操作系统都会提供若干个TTY终端(按下Ctrl+Alt+F1即可进入)。

终端一词最初是指电缆末端的那台设备,是从电子学的角度上进行命名的。 在Linux术语中,TTY其实是一个扩展的流设备。

除了系统内核外,Terminal Emulators(终端模拟器)也可以提供Terminal, 这些由终端模拟器提供的Terminal通常称为Pseudo-TTY。 使用终端模拟器来提供Terminal主要是为了方便使用,通常一个终端模拟器可以打开多个终端。 比如X windows系统中常用的Xterm,GNU Screen,ssh, GNome中的Terminal,KDE中的Konsole,Mac下常用的iTerm2等。这些软件都属于Terminal Emulator。

什么是 Console

Console(控制台)通常是指一台设备、一个软件或一个操作系统的Primary Terminal。 Console的叫法是从物理意义上来的,直接连在设备上的那个终端就叫Console。 比如Linux的TTY,Chrome的控制台,交换机的管理终端。

什么是交互式 Shell

Interactive Shell(交互式 Shell)与登录 Shell 都是指 Shell 所处的运行状态, 每个操作系统中可能会运行多个 Shell,这些 Shell 可能会处于下面的任何一种运行状态。

Interactive Shell(交互式Shell)是指可以让用户通过键盘进行交互的Shell。 我们在使用的CLI都是交互式Shell。

Non-interactive Shell(非交互式Shell)是指被自动执行的脚本, 通常不会请求用户输入,输出也一般会存储在日志文件中。 比如用 Cron 定时任务更新壁纸一文中被crontab定时执行的脚本就运行在非交互式Shell中。

什么是登录 Shell

Login Shell(登录Shell)是指该Shell被运行时用于用户登录,比如TTY中的Shell就是以登录Shell的状态在运行。

Non-login Shell(非登录Shell)是指在用户已登录情况下启动的那些Shell。 被自动执行的Shell也属于非登录Shell,它们的执行通常与用户登录无关。

Shell 配置文件

Shell配置文件其实是一种特殊的Shell脚本,只不过没有用.sh来命名。 在Shell被启动时会选择性地执行配置文件中的Shell命令, 这些命令一般用于配置当前Shell下的工作环境, 通常包含一些别名(alias),PATH,编辑器(EDITOR)等配置。

Shell 配置文件可以分为系统级别的配置文件和用户级别的配置文件。 任何一种 Shell 都有用户级别的配置文件,以及对应的系统级别的配置文件。

系统级别的配置文件位于/etc下,这些配置会应用于所有用户。例如/etc/profile,/etc/bashrc。
用户级别的配置文件位于用户目录~下,通常会加一个.来隐藏。例如~/.profile,~/.bashrc。
在Shell启动时,会首先执行系统级别的配置文件(如果存在的话),再执行用户级别的配置文件。也就是说~/.bashrc中的配置会覆盖/etc/bashrc中的配置。

登录 Shell 的配置文件

登录 Shell 会读取登录相关的配置文件,一般可分为三类:

.profile 配置登录 Shell 的行为。在作为登录 Shell 启动时读取。.login 登录时的读取。.loGout 登出时读取。
.profile是/bin/sh的配置文件。Bash兼容于sh,因此Bash作为登录Shell时也会读取/etc/profile和~/.profile(其实几乎所有Shell都会这样做)。.login是登录Shell在用户登录后读取的配置文件,csh、tcsh都会读取它。.logout是登录Shell在用户退出时读取的配置文件,csh、tcsh都会读取它。每一种Shell在兼容上述配置文件的同时,也会有一些私有的配置文件。比如Bash:.bash_profile是Bash私有的登录Shell配置文件。.bash_login是Bash作为登录Shell,用户登录后读取的配置文件。.bash_logout是Bash作为登录Shell,用户退出时读取的配置文件。比如 Zsh 的 .zprofile, .zlogout, .zlogin 等等,详见 https://wiki.archlinux.org/index.PHP/zsh

交互式 Shell 的配置文件

有一些配置文件是只会被交互式Shell读取的,包括:.zshrc,.bashrc等。

其中.bashrc只会被交互式的、非登录Bash读取。 因此往往会在.bash_profile中调用~/.bashrc来让Bash作为登录Shell时也读取~/.bashrc:

[[ -r ~/.bashrc ]] && . ~/.bashrc

.zshrc会被任何交互式Z Shell读取,除非设置了-f参数。 C Shell, TCShell启动时却总是会去读取 cshrc, .tcshrc,无论当前Shell是否为交互式的、或者登录Shell。

关于Shell 的相关概念和配置方法是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: Shell 的相关概念和配置方法是什么

本文链接: https://www.lsjlt.com/news/244879.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Shell 的相关概念和配置方法是什么
    这篇文章将为大家详细讲解有关Shell 的相关概念和配置方法是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。使用Linux的过程中少不了使用各种各样的Shell, 而根据启动环境的不同,...
    99+
    2023-06-05
  • Springcloud Gateway相关配置方法是什么
    这篇“Springcloud Gateway相关配置方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Spr...
    99+
    2023-07-05
  • .NET Framework Lambda表达式的相关概念是什么
    这篇文章将为大家详细讲解有关.NET Framework Lambda表达式的相关概念是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。.NET Framework应用程序为我们提供了多种...
    99+
    2023-06-17
  • .NET Framework隐式类型变量的相关概念是什么
    本篇文章给大家分享的是有关.NET Framework隐式类型变量的相关概念是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。.NET Framework中有一种新的特性,叫...
    99+
    2023-06-17
  • ThinkPHP封装方法的概念和使用方法是什么
    今天小编给大家分享一下ThinkPHP封装方法的概念和使用方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。什么是封装...
    99+
    2023-07-05
  • VB.NET扩展方法的概念是什么
    今天就跟大家聊聊有关VB.NET扩展方法的概念是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。VB.NET编程语言的出现,在开发领域中起了很大的作用。它从出现至今,已经发展了各种...
    99+
    2023-06-17
  • Linux安装Golang及相关环境配置的方法是什么
    这篇“Linux安装Golang及相关环境配置的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux安装Gol...
    99+
    2023-07-05
  • C#中静态方法的概念是什么
    这期内容当中小编将会给大家带来有关C#中静态方法的概念是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。C#静态方法是一种特殊的成员方法,它不属于类的某一个具体的实例。非静态方法可以访问类中的任何成员,...
    99+
    2023-06-17
  • Java中Term Vector的概念和使用方法是什么
    本篇内容主要讲解“Java中Term Vector的概念和使用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中Term Vector的概念和使用方法是什么”吧!term vec...
    99+
    2023-06-03
  • Spring Bean的定义概念和使用方法是什么
    本篇内容介绍了“Spring Bean的定义概念和使用方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!定义Spring b...
    99+
    2023-07-06
  • java构造方法重载的概念是什么
    在Java中,构造方法重载是指在同一个类中可以定义多个具有相同名称但参数列表不同的构造方法。 构造方法是一种特殊的方法,用于创建和初...
    99+
    2023-10-24
    java
  • PHP中时间戳的概念和转化方法是什么
    本篇内容主要讲解“PHP中时间戳的概念和转化方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP中时间戳的概念和转化方法是什么”吧!一、时间戳的概念在计算机世界中,时间戳是一种表示日期...
    99+
    2023-07-05
  • gateway网关路由配置的方法是什么
    gateway网关路由配置可以通过以下几种方法进行:1. 配置文件:可以在gateway的配置文件中定义路由规则。通常使用YAML或...
    99+
    2023-09-18
    gateway
  • 安装openSUSE Leap 42.1后的相关配置是什么
    今天就跟大家聊聊有关安装openSUSE Leap 42.1后的相关配置是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。openSUSE是由Novell 发起的开源的项目,其目的...
    99+
    2023-06-28
  • C#中委托的概念与使用方法是什么
    本篇内容主要讲解“C#中委托的概念与使用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#中委托的概念与使用方法是什么”吧!委托的概念委托这个名字取的神乎其神的,但实质是函数式编程,把...
    99+
    2023-07-05
  • JavaScript中Promise的基本概念及使用方法是什么
    本篇内容主要讲解“JavaScript中Promise的基本概念及使用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript中Promis...
    99+
    2022-10-19
  • eclipse配置jdk和jre的方法是什么
    在Eclipse中配置JDK和JRE的方法是:1. 打开Eclipse,在菜单栏中选择“Window”(窗口)-> “Prefere...
    99+
    2023-09-21
    eclipse jdk jre
  • wamp安装和配置的方法是什么
    要安装和配置WAMP服务器,您可以按照以下步骤进行操作:1. 下载WAMP服务器:访问WAMP官方网站(https://www.wa...
    99+
    2023-08-11
    wamp
  • vps配置的方法是什么
    VPS(虚拟专用服务器)的配置方法通常包括以下步骤:1. 选择合适的VPS提供商:根据自己的需求和预算选择一个可靠的VPS提供商。2...
    99+
    2023-09-16
    vps
  • Tomcat的配置方法是什么
    Tomcat的配置方法有两种:命令行配置和图形界面配置。1. 命令行配置:a. 打开Tomcat的安装目录。b. 进入conf文件夹...
    99+
    2023-09-11
    Tomcat
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作