首页 > 系统相关 >学习 Shell准没错

学习 Shell准没错

时间:2022-12-14 14:32:13浏览次数:41  
标签:选项 shell 程序 如下 学习 命令 Shell 没错 bash

什么是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

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

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

转载请注明出处!

标签:选项,shell,程序,如下,学习,命令,Shell,没错,bash
From: https://blog.51cto.com/boxuegu/5936704

相关文章

  • OpenMLDB Meetup No.7 回顾 | OpenMLDB+AutoX:整合自动特征工程,拥抱高效机器学习
    OpenMLDBMeetupNo.7回顾会议内容OpenMLDB社区于2022年10月29日举行了第七期meetup,会议相关视频及资料如下:OpenMLDBPMCcoremember卢冕,以《开源机器学习数据库......
  • 计组学习02——C and Pointers
    计组学习——CandPointers由于已经比较熟悉C了,上课时跳过了许多已经熟知的部分,只记录自己不太熟的地方。UnionsinC定义和struct基本一样unionfoo{inti......
  • crontab执行shell脚本
    shell脚本如下#!/bin/shsource/etc/profile#需要导入环境变量,否则非原生命令执行不成功procs=`ps-ef|greppython|grepaiphoto_data_maintain/bin/aiphoto_d......
  • 1、Markdown学习
    Markdown学习Markdown是一种纯文本格式的标记语言。通过简单的标记语法,它可以使普通文本内容具有一定的格式。优点:1、因为是纯文本,所以只要支持Markdown的地方都能获得......
  • GO语言基础 为什么我要学习Golang以及GO语言入门普及
    作为网络安全初学者,会遇到采用Go语言开发的恶意样本。因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识;另一方面是分享与读者,希望大家一起进......
  • SpringCloud-Nacos学习笔记
    spring-cloud-alibaba版本说明https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8ESpringBoot2.4+和以下版本之间变化较大......
  • 关于shell脚本换行符问题
    背景最近有shell脚本发布报错,moia调度工具返回的内容截取如下/home/agent/xxxx.sh:line7:$'\r':commandnotfound/home/agent/xxxx.sh:line13:$'\r':commandn......
  • 推断统计 | 学习笔记 (全)
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......
  • 设计模式 学习目的 举例:装饰器模式和代理模式
    1.装饰器模式和代理模式  2.学习目的 ......
  • Datawhale组队学习——大话设计模式Task01学习笔记
    闲言碎语有次和学长闲聊提到了设计模式,也推荐了一个B站的视频。然后也一直忙别的事情始终没有好好学习一下。恰逢学期末有时间,datawhale又出了这门新教程,便一起学习下,看看......