6

学习 Shell准没错_博学谷狂野架构师的技术博客_51CTO博客

 1 year ago
source link: https://blog.51cto.com/boxuegu/5936704
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

学习 Shell准没错

精选 原创

博学谷狂野架构师 2022-12-14 14:27:23 博主文章分类:技术干货 ©著作权

文章标签 后端 java 文章分类 Java 编程语言 阅读数162

什么是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 的类型和版本、发行版以及其他人所做的配置。

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

学习 Shell准没错_java

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

学习 Shell准没错_后端_02

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

学习 Shell准没错_shell_03

显示当前位置

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

学习 Shell准没错_java_04

查找并运行命令

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

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

学习 Shell准没错_shell_05

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

学习 Shell准没错_后端_06

获取文件相关信息

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

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

学习 Shell准没错_shell_07

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

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

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

-r: 逆序排列。

**-R:**递归显示子目录。

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

内建命令与外部命令

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

学习 Shell准没错_后端_08

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

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

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

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

学习 Shell准没错_java_09

将bash安装为默认shell

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

学习 Shell准没错_后端_10

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

学习 Shell准没错_后端_11

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

学习 Shell准没错_后端_12

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

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

转载请注明出处!

  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK