0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

shell命令格式和特殊字符

CHANBAEK 来源:嵌入式攻城狮 作者: 安迪西 2023-04-18 15:04 次阅读

1. shell简介

shell可直译为“贝壳”,贝壳是动物作为外在保护的一种工具。 可以理解为:Linux中的 shell就是 Linux内核的一个外层保护工具,并负责完成用户与内核之间的交互。

命令是用户向系统内核发出控制请求,与交互的文本流。 而 shell是一个命令行解释器,将用户命令解析为操作系统所能理解的指令,实现用户与操作系统的交互。 当需要重复执行若干命令,可以将这些命令集合起来,加入一定的控制语句,编辑成为 shell脚本文件,交给 shell批量执行。

图片

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

  • Bourne Shell(sh):由 AT&T的 Steve Bourne开发,是第一个流行的 shell,是 UNIX上的标准 shell。 不过 sh的作业控制功能薄弱,且不支持别名与历史记录等功能
  • C Shell(csh):sh之后另一个广为流传的 shell,由柏克莱大学的 Bill Joy设计,语法有点类似 C语言,其内部命令有52个,较为庞大。 但目前使用的不多
  • Korn Shell(ksh):由AT&T 的David Korn开发,语法与 sh相同,同时具备 csh的易用特点。 许多安装脚本都使用 ksh,有42条内部命令,但与 bash 相比有一定的限制性
  • Bourne Again Shell(bash):由 GNU组织开发,保持了对 sh的兼容性,是各种Linux发行版默认配置的shell。 能够提供环境变量以配置用户 shell环境,支持历史记录,内置算数功能,支持通配符表达式,将常用命令内置简化

2. shell命令格式

2.1 shell命令提示符

shell提示符标识了命令行的开始。 用户在提示符后面输入一条命令并按 Enter键,完成向系统提交命令。 通常 shell命令提示符采用以下格式:

username@hostname:direction$
用户名     主机名     目录名
  • username:用户名,显示当前登录用户的账户名(执行命令 whoami)
  • hostname:主机名,显示登录的主机名(执行命令 hostname)
  • direction:目录名,显示当前所处的路径,根目录下显示为“/”,主目录下显示为“~“(执行命令 pwd)

2.2 shell命令格式

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

$ Command [-Options] Argument1 Argument2...
    指令      选项      参数1     参数2 ...
  • :shell提示符,若为超级用户,提示符为“#”,其他用户的提示符均为“”
  • Command:命令名称,shell命令或程序,严格区分大小写
  • Options:命令选项,用于改变命令执行类型,由“-”引导,可同时带多个选项
  • Argument:命令参数,指出命令作用的对象或目标,允许带多个参数

一条命令的三要数之间用空格隔开; 若将多个命令在一行书写,用分号(;)将各命令隔开; 如果一条命令不能在一行写完,在行尾使用反斜杠()表明该条命令未结束。

2.3 shell命令初体验

使用shell命令,关闭或重启系统

sudo shutdown -h now	#系统立即关机
sudo shutdown -r now	#系统立即重启
sudo reboot now			 #系统立即重启
sudo shutdown -h +45 "That is all!" #系统45分钟后关机
sudo shutdown -r +60	               #系统60分钟后重启

3. shell中的特殊字符

3.1 shell中的通配符

当需要用命令处理一组文件,例如 file.txt、file2.txt、file3.txt…,用户不必一一输入文件名,可使用 shell通配符。 shell命令的通配符含义如下表

图片

3.2 shell中的管道

管道可以把一系列命令链接起来,意味着第一个命令的输出将作为第二个命令的输入,通过管道传递给第二个命令,第二个命令的输出又将作为第三个命令的输入,以此类推。 就像通过使用“|” 符连成一个管道。

ls /use/bin | wc -w
1249

以上操作中,借助管道“|”,将 ls的输出直接作为 wc命令的输入。 使用管道可以巧妙的将一些命令联合使用,得到单个命令所无法实现的效果。 例如使用以上的命令组合,得到的是/usr/bin目录下文件的个数。

3.3 输入输出重定向

输入输出重定向是改变 shell命令或程序默认的标准输入输出目标,重新定向到新的目标。 linux中默认的标准输入定义为键盘,标准输出定义为终端窗口。 用户可以为当前操作改变输入或输出,迫使某个特定命令的输入或输出来源为外部文件

图片

cat命令功能为在标准输出上显示文件。 下面通过一个实例,可以更好地理解重定向的功能:

an@ubuntu:~/di$ cat   #使用标准输入/出设备
hello world!     #用户使用标准输入设备键盘,键入字符串,并按Enter键
hello world!     #系统在标准输出显示器上,显示用户刚刚输入的字符串
an@ubuntu:~/di$ cat > file1.txt #输出重定向,将输出定向到文件file1.txt
hello world!     #用户使用标准输入设备键盘,键入字符串,并按Enter键
                 #用户输入的字符串被保存在file1.txt文件中
an@ubuntu:~/di$ cat < file1.txt #输入重定向,将cat的输入指定为file1.txt
hello world!     #系统在标准输出显示器上,显示cat命令从文件中读出的字符串

3.4 命令置换

命令替换是将一个命令的输出作为另一个命令的参数。 命令格式如下所示:

command1  `command2`

其中,命令 command2的输出将作为命令 command1的参数。 需要注意,命令置换的单引号为ESC键下方的“`”键

linux@ubuntu:~$ ls  `pwd`
Desktop  Examples  linux  andyxi

pwd命令用于显示当前目录的绝对路径。 在上面的命令行中,使用命令置换符,将 pwd的运行结果作为 ls命令的参数。 最终,命令执行结果是显示当前目录的文件内容。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内核
    +关注

    关注

    3

    文章

    1363

    浏览量

    40228
  • 操作系统
    +关注

    关注

    37

    文章

    6738

    浏览量

    123190
  • C语言
    +关注

    关注

    180

    文章

    7598

    浏览量

    136188
  • 命令
    +关注

    关注

    5

    文章

    678

    浏览量

    21984
  • Shell
    +关注

    关注

    1

    文章

    363

    浏览量

    23294
收藏 人收藏

    评论

    相关推荐

    Linux Shell系列教程之Shell printf命令详解

      一、Shell printf命令语法  printf format-string [arguments...]  format-string为描述格式规格的字符串,用来描述输出的排
    发表于 09-03 13:47

    linux shell命令/unix shell命令教程

    linux shell命令/unix shell命令教程:为了防止未授权用户访问你的文件,可以在文件和目录上设置权限位。还可以设定文件在创建时所具有的缺省权限:这些只是整个系统安全问题
    发表于 12-06 13:08 61次下载
    linux <b class='flag-5'>shell</b><b class='flag-5'>命令</b>/unix <b class='flag-5'>shell</b><b class='flag-5'>命令</b>教程

    unix的shell命令是什么

    Unix shell,通常被称作“命令行”,为Unix和类Unix操作系统提供了传统的用户界面。用户通过输入shell所执行的命令,引导计算机的操作。在微软Windows操作系统平台,
    发表于 11-14 14:43 4577次阅读
    unix的<b class='flag-5'>shell</b><b class='flag-5'>命令</b>是什么

    inux shell通配符、元字符、转义符最全使用攻略

    加入”*” 都是作用在命令名直接。可以看到shell字符,基本是作用在命令上面,用作多命令分割(或者参数分割)。因此看到与通配符有相同的
    的头像 发表于 02-15 14:10 3074次阅读
    inux <b class='flag-5'>shell</b>通配符、元<b class='flag-5'>字符</b>、转义符最全使用攻略

    Shell内建命令:trap命令

    1.命令简介 trap 命令Shell 内建命令,用于指定在接收到信号后将要采取的动作。常见的用途是在脚本程序被中断时完成清理工作。 2.命令
    的头像 发表于 02-09 18:19 5994次阅读
    <b class='flag-5'>Shell</b>内建<b class='flag-5'>命令</b>:trap<b class='flag-5'>命令</b>

    Shell内建命令:exit命令

    1.简介 exit 命令Shell 内建命令,用于退出当前 Shell 进程。 2.命令格式
    的头像 发表于 02-02 10:45 3911次阅读

    Linux系统命令shell脚本实践指南

    Linux系统命令shell脚本实践指南资料下载。
    发表于 06-01 14:47 28次下载

    Shell命令行解释器简介

    Shell 是一个命令行解释器,Shell 为用户提供了与设备进行命令行交互的方式,用户通过串口、以太网、无线等方式将命令传输给具有
    的头像 发表于 08-19 17:20 3178次阅读

    Linux命令行与shell脚本编写

    Linux命令行与shell脚本编写
    发表于 01-11 16:50 4次下载

    shell脚本基础知识

    shell脚本是一个文件,里面存放的是特定格式的指令,系统可以使用脚本解析器翻译或解析指令并执行(无需编译),shell脚本的本质是shell命令
    的头像 发表于 04-17 15:00 1059次阅读

    shell脚本本身自带的命令详解

    除了以文件形式保存在/usr/bin下面的命令shell脚本中还可以使用shell本身自带的命令,即内置命令
    的头像 发表于 05-23 09:32 994次阅读
    <b class='flag-5'>shell</b>脚本本身自带的<b class='flag-5'>命令</b>详解

    shell脚本基本命令

    Shell脚本是一种可执行文件,它包含了一组用某种特定语言编写的命令,这些命令可以被解释器(如bash)执行。以下是一些常见的shell脚本基本命令
    的头像 发表于 11-08 10:08 2051次阅读

    shell命令和linux命令一样吗

    Shell命令和Linux命令并不完全一样。 首先,Shell是一种命令行解释器,它是用来解释和执行用户输入的
    的头像 发表于 11-08 10:51 2754次阅读

    linux命令shell编程有什么联系

    Linux命令Shell编程之间存在密切的联系。 首先,Shell是Linux命令行下的解释器,它提供了一个用户界面,使用户能够与Linux内核进行交互。
    的头像 发表于 11-08 10:53 888次阅读

    linux命令行与shell编程实战

    Linux命令行与Shell编程实战主要涉及以下内容: Linux命令行基础:学习Linux命令行的基本操作,如文件管理、进程管理、网络配置等。熟悉使用
    的头像 发表于 11-08 10:57 735次阅读