学习 Shell准没错

news2024/11/22 18:19:27

什么是shell?

目前的计算机操作系统都采用了某型形式的用户界面,借此指定系统需要操作系统的命令。但是在很多操作系统中,命令行界面是内嵌的,是人与计算机交互的唯一方式。操作系统的命令行页面就是为了执行您的命令。

shell是一个程序,它的工作就是为了用户执行其他程序,即系统中允许用户输入命令的部分。

shell有很多吗?

shell不过是在Unix上运行的一个程序,如果你不喜欢标准shell可以自己编写一个。因此shell曾经出现过很多的版本,如:Bourne shell 简称sh; C shell 简称 csh,它们两个是最早的shell。后面又出现了Korn shell 简称ksh和bash shell等。

那么,有这么多版本的shell我该用哪个呢?

bash 提供了 shell 程序员所需要的编程特性和命令行用户喜爱的各种便利。它一开始打算作为 ksh 的替代品,但随着自由软件运动变得愈发重要,Linux 越来越流行,bash 的风头很快就盖过了 ksh。

bash 也因此成了我们已知的所有 Linux 发行版以及 macOS(包括早期的 OS X 版本)的默认 shell。bash 既是一门强大的编程语言,也是一种优秀的用户界面。它让你在获得复杂编程特性的同时,能够保持键盘输入的便捷性。

答案: 学习 bash 准没错

bash shell 简介

bash 是一种shell,也就是命令解释器。bash的主要目的是让用户可以同计算机操作系统交互,以便完成想做的任务。这通常涉及运行程序,因此 shell 会接受你输入的命令,判断要用到的程序,然后执行命令来启动程序。bash 其实就是一种用于执行命令的语言,你输入的命令(如 ls、cd、grep、cat)从某种意义上来说就是 bash 命令。这些命令有些是 bash 内建的,有些是独立的程序。

bash shell 提示符

所有的命令行 shell 都采用某种形式的提示符来告诉用户 shell 已经准备好接受输入了。提示符的具体形式取决于很多因素,其中包括操作系统的类型和版本、shell 的类型和版本、发行版以及其他人所做的配置。

$ :通常表明您是以普通用户身份登陆,如下图:

file

#:通常表明您是root。root用户是系统的管理员,如下图:

file

~:此符号通常表示所在的目录为主目录,如下图:

file

显示当前位置

pwd 是 print working directory(打印工作目录)的缩写,该命令接受两个选项。-L 显示当前的逻辑路径,这也是默认选项。-P 显示当前的物理路径,如果跟随符号链接,结果可能和逻辑路径不同。

file

查找并运行命令

bash 会在环境变量 PATH 中保留一个用于查找命令的目录列表。内建命令 type 会在环境(别名、关键字、函数、内建命令、

$PATH )中搜索匹配其参数的可执行文件并显示匹配结果的类型和位置。该命令有多个选项,其中值得注意的是-a,它会打印出所有的匹配结果,而不是只找出第一个匹配。如下图:

file

which命令与 type 类似,但它只搜索 $PATH。在不同的系统中,which 的形式各异,不过一般有 -a 选项。如下图:

file

获取文件相关信息

你需要文件的更多相关信息,例如类型、属主、是否可执行、有多少硬链接,以及最后一次访问或更改的时间,使用 ls、stat、file 或 find 命令。

ls 命令只显示文件名,-l 选项可以提供每个文件更详细的信息。如下图:

file

ls 的选项很多,可以查询手册页了解其所支持的选项,其中有用的选项包括以下几个。

-a: 不隐藏以 .(点号)开头的文件。

-A:和 -a 相似,但不显示两个常见的目录 . 和 ..,因为每个目录中都有这两项。

-r: 逆序排列。

-R:递归显示子目录。

-S:按照文件大小排序。

内建命令与外部命令

用 type 和 which 命令查看指定命令是否存在,并确定其是内建命令还是外部命令。如下图:

file

顾名思义,内建命令就是内建在 shell 自身中的命令,外部命令则是由 shell 运行的外部文件。外部文件可以是二进制文件,也可以是shell 脚本。理解内外部命令之间的差异很重要。

  • 当你使用特定 shell 的某个版本时,内建命令总是可用的,但外部程序就未必已经安装在系统中了。
  • 如果你自己的某个程序和内建命令同名,结果会让人很困惑,因为内建命令总是会优先执行。

可以用 enable 命令来关闭或启用内建命令,enable -a 可以列出所有的内建命令及其当前状态。

内建命令的问题在于你无法使用 -h 或 --help 选项获得使用帮助。这时候就用得上内建命令 help 了。help 会显示 shell 内建命令的帮助信息,如下图:

file

将bash安装为默认shell

先确定已经安装了 bash。在命令行中输入 bash --version。如果获得了版本输出,则说明 bash 已经安装好了,如下图:

file

如果没有看到版本号,可能是系统路径中缺少了相应的目录。在一些系统中,chsh -l 或 cat /etc/shells 可以给出一份可用的shell 清单。否则,可以询问系统管理员 bash 的安装位置,或者是否可以安装 bash,如下图:

file

如果已经安装了 bash,可以用 chsh -s 命令修改默认 shell,例如 chsh -s /bin/bash,如下图:

file

本文由传智教育博学谷教研团队发布。

如果本文对您有帮助,欢迎关注点赞;如果您有任何建议也可留言评论私信,您的支持是我坚持创作的动力。

转载请注明出处!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/90060.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

可视化分割体积seg.nrrd(切片为例)

目录 步骤 拓展:CT值/HU值 步骤 不能直接可视化的原因: seg.nrrd保存的是标签类别值,如下图标签类别值是[1,6],没有标记的部分值为0 1.将seg.nrrd保存为nrrd格式,并读取 2.将数组*int(255/标签类别数…

物流行业对接BMW EDI项目案例分析

宝马集团的悠久历史始于1916年,总部位于德国慕尼黑。是德国最成功的汽车和摩托车制造商之一,也是德国规模最大的制造工业公司之一。 项目背景 物流行业C公司作为BMW的承运商,需要将物流信息与BMW通过EDI进行对接。C公司接收BMW发送过来的IF…

【Web安全】认证与会话管理

目录 1. 认证与授权 2. 密码 3. 多因素认证 4. Session与认证 5. Session Fixation攻击 6. Session 保持攻击 7. 单点登录SSO 1. 认证与授权 认证的目的是为了认出用户是谁,而授权的目的是为了决定用户能够做什么。 认证实际上是一个验证凭证的过程。 …

通达信交易接口代码的执行过程分享

股票软件一般都提供了接口,可以参考里面的公式,编写自己的公式,这样就可以得到相应的数据了。无论使用哪种语言,建议先了解文档,然后再阅读各编程语言的用户手册。 通达信交易接口代码的执行过程分享: //…

非零基础自学Golang 第7章 函数 7.4 可变参数

非零基础自学Golang 文章目录非零基础自学Golang第7章 函数7.4 可变参数7.4.1 可变参数函数的使用7.4.2 可变参数与内置函数7.4.3 可变参数的传递第7章 函数 7.4 可变参数 Go语言支持可变参数的特性,即函数声明时可以没有固定数量的参数。 可变参数的函数格式如下…

相关分析和回归分析

相关与回归分析就是了解变量之间相关关系的统计方法 一.相关分析 具有相关关系的变量之间,如果不区分原因和结果,我们称之为相关分析 相关分析是看两个因素之间的相关性,不需要确定哪个是自变量,哪个是因变量,两个因…

CAS:2236573-39-8|水溶CY7-amine|花菁染料CY7标记氨基

CAS:2236573-39-8|水溶CY7-amine|花菁染料CY7标记氨基 中文名:氰基Cy5-氨基 CAS:1650635-41-8 分子式:C43H60Cl2N4O 分子量:719.87 外观:绿色粉末 纯度:≥95% 保存条件 :避光,干燥&#…

【linux】容器

一、虚拟化分类 虚拟化资源提供者 硬件平台虚拟化操作系统虚拟化 虚拟化实现方式 Type I 半虚拟化Type II 硬件辅助全虚拟化Type III 软件全虚拟化操作系统虚拟化 回顾硬件平台虚拟化与操作系统虚拟化区别 主机虚拟化与容器虚拟化的优缺点 主机虚拟化 应用程序运行环境强隔…

Java+Servlet电商购物系统(含源码+论文+答辩PPT等)

项目功能简介: 本项目含代码详细讲解视频,手把手带同学们敲代码从0到1完成项目 该项目采用技术MyBatis、Tomcat服务器、MySQL数据库 项目含有源码、配套开发软件、软件安装教程、项目发布教程。 项目涉及的技术: 1、前端:JSP、css、Javascrip…

Java类型转换

java是一门强类型语言,当不同类型之间的变量相互赋值时,会有严格的校验。当类型不一致时,就会发生类型的转换。java中类型转换分为两类:自动类型转换和强制类型转换。 造型(casting)的含义是把一种类型的值赋给另一种类型的变量。…

可视化项目管理,项目进度管理必备工具

一个项目能不能成功,其实在开始时就决定了,计划是否完善,任务是否明确决定着项目能否顺利进行。 同时,在项目进行过程中,也要监控项目的进度以确保每项工作都能按进度进行,必须不断掌握计划的实施情况。 …

计算机毕业设计django基于python教学互动系统

项目介绍 在各学校的教学过程中,教学互动管理是一项非常重要的事情。随着计算机多媒体技术的发展和网络的普及,“基于网络的学习模式”正悄无声息的改变着传统的教室学习模式,“基于网络的教学互动平台”的研究和设计也成为教育技术领域的热点课题。采用当前流行的B/S模式以及3…

人工智能学习:倒立摆强化学习控制-Policy Gradient(11)

相对于DQN输出采取动作的Q值,Policy Gradient网络输出采取动作的概率,根据概率来判断需要采取的动作,并在训练过程不断修正网络,使输出的概率更好的符合最优的采取动作的策略。关于Policy Gradient方法的详细原理,可以…

[附源码]计算机毕业设计的汽车租赁系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis MavenVue等等组成,B/S模式…

配置虚拟主机

配置虚拟主机 虚拟主机在一台Web 服务器上,可以为多个独立的IP地址、域名或端口号提供不同的Web 站点。对于访问量不大的站点来说,这样做可以降低单个站点的运营成本。 子任务1 配置基于IP地址的虚拟主机 基于IP地址的虚拟主机的配置需要在服务器上…

详解STM32启动文件

本文对STM32启动文件startup_stm32f10x_hd.s的代码进行讲解,此文件的代码在任何一个STM32F10x工程中都可以找到。 启动文件使用的ARM汇编指令汇总 Stack——栈 Stack_Size EQU 0x00000400 AREA STACK, NOINIT, READWRITE, ALIGNStack_Mem SPACE Stack_Size__initi…

nodejs安装及环境配置

node.js下载 地址:https://nodejs.org/en/download/ 如果要下载指定的版本,可以点击下面的链接。 开始安装 双击msi,开始安装node.js。 点击【Next】按钮 勾选复选框,点击【Next】按钮 修改好目录后,点击【Nex…

大三学生HTML期末作业,网页制作作业——HTML+CSS+JavaScript饮品饮料茶(7页)

🎀 精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

vuex配置项(核心概念),vuex的触发流程

1.vuex中有哪些配置项(核心概念)作用是什么 state作用: 负责存储数据 getters作用:state计算属性(有缓存) mutaions作用:负责同步更新state数据 mutaions是唯一可以修改state数据的方式 actions作用:负责…

当AI学会创作,是否应该感到担忧?

当AI学会创作,是否应该感到担忧?0. 前言1. 人工智能与 AIGC1.1 人工智能简介1.2 人工智能与 AIGC1.3 步入 AIGC 时代2. 文本生成模型3. 代码生成模型4. 图像生成模型小结与展望0. 前言 近来,随着 Open AI 发布的新一代 AI 聊天机器人 ChatGP…