LV02-01-Linux-03-shell基础

本文主要是Linux——shell基础相关笔记,若笔记中有错误或者不合适的地方,欢迎批评指正😃。

点击查看使用工具及版本
Windows windows11
Ubuntu Ubuntu16.04的64位版本
VMware® Workstation 16 Pro 16.2.3 build-19376536
SecureCRT Version 8.7.2 (x64 build 2214) - 正式版-2020年5月14日
开发板 正点原子 i.MX6ULL Linux阿尔法开发板
uboot NXP官方提供的uboot,NXP提供的版本为uboot-imx-rel_imx_4.1.15_2.1.0_ga(使用的uboot版本为U-Boot 2016.03)
linux内核 linux-4.15(NXP官方提供)
STM32开发板 正点原子战舰V3(STM32F103ZET6)
点击查看本文参考资料
参考方向 参考原文
------
点击查看相关文件下载
--- ---

一、 shell 简介

image-20220125110447047

用户在命令行提示符下键入命令文本,开始与 shell 进行交互。接着, shell 将用户的命令或按键转化成内核所能够理解的指令控制操作系统做出响应,直到控制相关硬件设备。然后, shell 将输出结果通过 shell 提交给用户 。

最初的 UNIX shell 经过多年的发展,由不同的机构、针对不同的目的,开发出许多不同类型的 shell 程序。目前流行的 shell 主要有几种 :

Bourne Shell
(简称sh)
Unix的第一个shell程序,早已成为工业标准。目前几乎所有的Linux系统都支持它。不过Bourne Shell的作业控制功能薄弱,且不支持别名与历史记录等功能。
C Shell
(简称csh)
C shell 是一种交互式命令解释器和一种命令编程语言。它使用类似于 C 编程语言的语法。
Korn Shell
(简称ksh)
KornShell语言由AT&T Bell Laboratories的David G. Korn设计和开发。它是一种交互式命令语言,在实现 UNIX 系统的许多不同计算机和工作站上提供对 UNIX 系统和许多其他系统的访问。KornShell 语言也是一种完整、功能强大的高级编程语言,用于编写应用程序,通常比其他高级语言更容易、更快速。
Bourne Again Shell 能够提供环境变量以配置用户Shell环境,支持历史记录,内置算术功能,支持通配符表达式,将常用命令内置简化。

二、 shell 命令格式

1. 命令提示符

shell 提示符标识了命令行的开始,用户在提示符后面输入一条命令并按 Enter 键,完成向系统提交指令。

1
user_name@host_name:direction Permission

【参数说明】

user_name 用户名,显示当前登录用户的账户
host_name 主机名,显示登录的主机名,例如若远 程登录后,则显示登录的主机名;
direction 目录名,显示当前所处的路径,当在根目录下显示为“/”,当在用户主目录下显示为“~”;
Permission 权限符号,一般用户权限显示为 $ ,若为 root 用户,则显示为 #

例如:

image-20220125112828779

2. 命令格式

1
2
$ Command [-Options] Argument1 Argument2 …
指令 选项 参数1 参数2…

通常一条命令包含三个要素:命令名称、选项、参数。命令名称是必须的,选项和参数都可能是可选项。

【参数说明】

$ Shell提示符,如果当前用户为超级用户,提示符为“#”,其他用户的提示符均为“$”;
Command 命令名称,Shell命令或程序,严格区分大小写
Options 命令选项,用于改变命令执行动作的类型,由“-”引导,可以同时带有多个选项;
Argument 命令参数,指出命令作用的对象或目标,有的命令允许带多个参数。

【注意】

(1)一条命令的三要素之间用空格隔开;

(2)若将多个命令在一行书写,用分号 ; 将各命令隔开;

(3)如果一条命令不能在一行写完,在行尾使用反斜杠 \ 标明该条命令未结束;

(4)命令不带选项或参数,通常意为使用默认选项或参数。

三、shell 中的通配符

通配符 含义 实例
* 匹配任意长度的字符串 用file_*.txt,匹配file_wang.txt、file_lee.txt、file3_liu.txt
? 匹配一个长度的字符 用file_?.txt,匹配file_1.txt、file_2.txt、file_3.txt
[...] 匹配其中指定的一个字符 用file_[otr].txt,匹配file_o.txt、file_r.txt和file_t。txt
[-] 匹配指定的一个字符范围 用file_[a-z].txt,匹配file_a.txt、file_b.txt,直到file_z.txt
[^...] 除了其中指定的字符均可匹配 用file_[^otr].txt,除了file_o.txt、file_t.txt、file_r.txt的其它文件