DJ8-2 shell 的命令形式、shell 的变量、shell 的内部命令

这篇具有很好参考价值的文章主要介绍了DJ8-2 shell 的命令形式、shell 的变量、shell 的内部命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

8.3  shell 可识别的命令形式

8.3.1  单条命令

8.3.2  多条命令

8.3.3  复合命令

8.3.4  后台命令

8.4  shell 变量和引用符

8.4.1  环境变量

plus. echo 命令的使用

8.4.2  系统变量

8.4.3  局部变量(用户变量)

8.4.4  单引号、双引号、反撇号和花括号

8.4.5  变量输出命令 export

8.5  shell 的内部命令


8.3  shell 可识别的命令形式

8.3.1  单条命令

这是最常用的命令形式:

$ cat file1

本命令执行完成后出现 shell 提示符,再接收下一条键盘命令。

DJ8-2 shell 的命令形式、shell 的变量、shell 的内部命令

8.3.2  多条命令

采用分号隔开多条命令:

$ pwd; who; date

第一条命令执行完成后,无停顿地再执行第二条命令,如此下去。运行功能和效果与在键盘上逐条输入命令并运行是完全一样的,其主要目的是提高键盘命令输入效率。

DJ8-2 shell 的命令形式、shell 的变量、shell 的内部命令

8.3.3  复合命令

① 管道前后的命令任意组合、同时运行,形成功能更强大灵活的复合命令:

$ ps –e | grep student
  • 查看 student 进程的信息
  • ps:查看服务器的进程信息
  • -e:列出全部的进程
  • grep student:匹配到 student 进程

首先看看我们当前运行的进程有哪些:

DJ8-2 shell 的命令形式、shell 的变量、shell 的内部命令

再来锁定 tty2 进程的信息:

DJ8-2 shell 的命令形式、shell 的变量、shell 的内部命令

② 括号内的命令从左到右按顺序执行,且由一个子 shell 来单独控制运行,相当于一个小的功能程序。方便灵活,运行效率高:

$ (ls; pwd; ps) > run_log
  • ls:列出目录的内容,包括文件和子目录的名称
  • pwd:查看当前工作目录的完整路径

DJ8-2 shell 的命令形式、shell 的变量、shell 的内部命令

8.3.4  后台命令

在普通命令行的行尾加上 & 符号,表示将该命令放到后台执行:

$ ls -lR > file_list &

[1] 7981

注意:-lR 中是小写的 L 和大写的 R,- 是减号

  • ls -lR:将当前目录和子目录下的文件(夹)以树格式输出
  • [1]:当前 shell 的后台作业(进程)序号
  • 7981:当前这个后台进程(ls 进程)的进程号(PID)

shell 启动该后台进程后不再等待该进程结束,立即开始接受新的键盘命令——多进程并发,数量不限,充分利用系统资源。

DJ8-2 shell 的命令形式、shell 的变量、shell 的内部命令

8.4  shell 变量和引用符

① 每个 shell 都可以设置一组变量来限定 shell 及其子程序的功能模式和取值范围。

  • 这些变量中有些是系统设置的,有些是由用户设置的

② 每个 shell 都可以有完全不同的变量设置,由此构成各具特色的运行环境。

③ 系统环境变量放在 /etc/profile 中,用户环境变量放在用户主目录下的 .profile 文件中。用户 shell 启动时,先执行 /etc/profile,再执行用户主目录下的 .profile 。

④ 环境变量可以在 shell 运行时动态修改。

8.4.1  环境变量

常用的 shell 环境变量

1. HOME 变量

HOME 变量用于标识当前用户的主目录,也是用户登录系统后的初始目录。用户自己建立的文件都保存在这个目录以及这个目录的子目录下:

$ HOME=/usr/computer/student

2. PATH 变量

PATH 变量用于标识键盘命令的搜索路径。该变量的值是由若干个用冒号隔开的目录名组成的,shell 收到用户的键盘命令后,就从左至右依次在这些目录中查找命令:

$ PATH=/bin:/usr/bin:$HOME/bin:./

# 将会搜索以下目录
# /bin
# /usr/bin
# $HOME/bin
# 当前目录

3. SHELL 变量

SHELL 变量中保存的是当前用户的初始 shell 的路径名称:

$ SHELL=/bin/sh

4. TERM 变量

TERM 变量用于指定当前用户所用的终端类型:

$ TERM=vt100

5. PS1 变量

PS1 变量用于保存系统中的基本提示符,默认值是 "$":

$ PS1=$

$ PS1=IVE:
IVE:

6. IFS 变量

IFS 变量用于 shell 在解释命令行上的各个选项和参数时,定义什么字符是这些选项和参数之间的间隔。通常为空白符:

$ IFS=

plus. echo 命令的使用

1、echo 的功能

功能:在标准输出上显示 echo 后面的字符串,或变量的值。

注意:当字符串中带空白符或其它控制字符时,用引号将其括起来。

2、应用举例

$ echo 12345
12345

$ echo "department computer"
department computer

$ echo "My home directory is: $HOME"
My home directory is: /usr/teacher/david

$ echo –n "Input your choice (y/n) []"
Input your choice (y/n) []

DJ8-2 shell 的命令形式、shell 的变量、shell 的内部命令

  • -e:打开反斜杠转义
  • -E:关闭反斜杠转义(默认)
  • -n:取消自动换行

8.4.2  系统变量

系统变量只能引用不能修改!常用系统变量:

$0         当前shell程序的名字
$1 ~ $9    命令行上的第一到第九个参数
$#         命令行上的参数个数
$*         命令行上的所有参数
$@         分别用双引号引用命令行上的所有参数
$$         当前进程的进程标识号(PID)
$?         上一条命令的退出状态
$!         最后一个后台进程的进程标识号

what is 命令行的参数:

$ ./test.sh arg[0] arg[1]

运行 shell 程序的那行命令后面跟着的内容就是命令行参数。

$ echo aa bb cc dd $$
aa bb cc dd 2391

$ cat file1 file2 > file3 2> errlog

$ echo $?      非0表示命令运行失败,错误信息在errlog文件中

$ echo         空行,即echo输出串尾隐含的换行符

$ echo This   is   a   test.     单词间多个空格
This is a test.

$ echo  "This   is   a   test."  用引号包括时结果如何

DJ8-2 shell 的命令形式、shell 的变量、shell 的内部命令

errlog 内容:

cat: file1: 是一个目录
cat: file2: 是一个目录

8.4.3  局部变量(用户变量)

局部变量是用户根据需要任意创建的。

  • 变量名:由一个字母 + (零个到多个字母、数字或下划线) 组成。
  • 引用变量的值:在变量名前面加上 $ 符号。
$ AA=123                      定义变量AA

$ echo $AA                    引用变量AA的值
123                           变量AA的值

$ B="this is a string"        定义变量B,字符串中有空格时用引号

$ echo $B                     引用变量B的值
this is a string              变量B的值

DJ8-2 shell 的命令形式、shell 的变量、shell 的内部命令

8.4.4  单引号、双引号、反撇号和花括号

1、单引号和双引号

shell 规定:

  • 单引号禁止变量替换,元字符 $ 和 * 等保持其符号本身
  • 双引号允许变量替换,元字符 $ 和 * 等将被变量值替换
$ a="he is a student"

$ echo "She said: $a"
She said: he is a student                echo执行时,替换了变量$a的值

$ b='The value of a is $a'

$ echo $b
The value of a is $a                     echo执行时,未替换了变量$a的值

DJ8-2 shell 的命令形式、shell 的变量、shell 的内部命令

2、反撇号

反撇号在键盘的左上方,将把其中的字符串当作命令执行:

$ a=date

$ echo $a
date                             变量a的值是字符串date

$ b=`date`                       反撇号中的字符串作为命令名

$ echo $b
Sat Feb 1 16:28:19 Beijing 2003  变量b的值是反撇号中命令的执行结果

DJ8-2 shell 的命令形式、shell 的变量、shell 的内部命令

3、花括号

花括号将变量名和后面的字符串区分开:

$ c="There is a teach"

$ echo "$cer reading room"
reading room                     未定义变量cer,其值用空串替代

$ echo "${c}er reading room"
There is a teacher reading room

DJ8-2 shell 的命令形式、shell 的变量、shell 的内部命令

8.4.5  变量输出命令 export

新的 shell 变量定义后或已有的 shell 变量修改值后,如果未经 export 命令输出,则只在当前的 shell 中起作用,对其各个子 shell 不产生任何影响。

经过 export 命令输出的变量才能对当前 shell 的各个子 shell、以及子 shell 的子 shell 起作用。

$ PATH=$PATH:./

$ export PATH

说明:

① export 后面的变量名前不加 $ 符号

② 经 export 输出给子 shell 的变量如果在子 shell 中被修改,则只影响子 shell,不影响父 shell;如果在子 shell 中被 export 输出,则也只影响子 shell 的子 shell

③ export 命令常用在 .profile 文件中

8.5  shell 的内部命令

exit、echo、cd、pwd、time and so on

shell 的内部命令包含在 shell 内部,用户可以像使用普通命令一样使用这些命令。所不同的是这些命令在 shell 内部识别和执行,而不是文件系统中一个单独的可执行的程序。例如:

cd     改变当前工作目录

pwd    显示当前工作目录

time   显示当前shell运行命令所花费的时间

例如:

$ time ls -lR /usr > flist

real   2m 17.32s     该ls进程的总运行时间
user   0m 7.63s      其中用户程序部分的运行时间
sys    0m 6.79s      其中操作系统核心部分运行时间

DJ8-2 shell 的命令形式、shell 的变量、shell 的内部命令文章来源地址https://www.toymoban.com/news/detail-487878.html

到了这里,关于DJ8-2 shell 的命令形式、shell 的变量、shell 的内部命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Shell 命令集合 磁盘管理 】Linux 列出目录中的文件和子目录 ls命令使用教程

    Shell 命令专栏:Linux Shell 命令全解析 ls命令是Linux系统中常用的一个命令,用于列出目录中的文件和子目录。它的作用是显示当前工作目录中的文件和目录列表。 当我们在终端输入ls命令时,系统会将当前目录中的文件和子目录的名称以及相关信息显示出来。这些信息包括文

    2024年02月08日
    浏览(109)
  • 【Linux | Shell命令】Linux 环境变量

    Linux 系统中,很多程序和脚本通过环境变量来获取系统信息、存储临时数据和配置信息,了解去哪里设置相应的环境变量很重要。 本文总结了Linux 环境变量:它们存储在哪里、如何使用,以及如何创建自己的环境变量,最后会以数组变量的用法作结。 环境变量允许在内存中

    2024年02月12日
    浏览(56)
  • 【Shell 命令集合 磁盘管理 】Linux 创建目录 mkdir 命令使用指南

    Shell 命令专栏:Linux Shell 命令全解析 mkdir命令是Linux系统中的一个用于创建目录的命令。它的作用是在指定的路径下创建一个新的目录。 使用mkdir命令可以方便地创建一个空的目录,该目录可以用于存储文件或其他目录。通过指定路径参数,可以在当前工作目录或其他指定目

    2024年02月08日
    浏览(62)
  • 【Linux】Linux环境变量的理解 --- 命令行参数、shell子进程、环境变量、本地变量…

    加油布鲁斯,你能行的! 1. 我们平常所用的Linux指令其实也是可执行程序,和我们自己写的二进制程序没什么两样,那么为什么在执行自己的程序的时候需要加上./,而执行这些系统提供的指令(可执行程序),不需要加上./呢? 2. 要执行一个程序或者指令,必须先找到这个

    2024年01月16日
    浏览(54)
  • 【Shell 命令集合 系统设置 】⭐⭐⭐Linux 设置环境变量setenv命令 使用指南

    Shell 命令专栏:Linux Shell 命令全解析 setenv命令是用于在Linux系统中设置环境变量的命令。环境变量是一种在操作系统中存储的键值对,用于存储系统配置信息、用户偏好设置以及程序运行所需的路径等信息。通过设置环境变量,可以方便地在不同的程序之间共享数据。 seten

    2024年02月08日
    浏览(55)
  • 【Shell 命令集合 系统设置 】⭐⭐⭐Linux 置环境变量 export命令 使用指南

    Shell 命令专栏:Linux Shell 命令全解析 export命令是Linux中的一个内建命令,用于设置环境变量。环境变量是在操作系统中用于存储各种配置信息的一种机制。通过设置环境变量,可以影响系统的行为和程序的运行。 使用export命令,可以将一个变量从当前shell传递到子shell或其他

    2024年02月05日
    浏览(69)
  • shell脚本ssh远程执行命令给变量赋值的问题

    从A机器通过SSH方式到B机器,并执行相关的命令。命令中包含变量及变量的赋值。 代码如下,意思是,ssh到192.111.111.27这台机器,cd到 / 根目录下,并执行ls命令,如果ls出来的结果不为空,则执行echo命令。可以肯定的是 / 根目录下是有内容的。 可以看到当执行到 echo 命令的时

    2024年02月12日
    浏览(48)
  • Linux shell编程学习笔记6:查看和设置变量的常用命令

    上节我们介绍了变量的变量命名规则、变量类型、使用变量时要注意的事项,今天我们学习一下查看和设置变量的一些常用命令,包括变量的提升,有些命令在之前的实例中已经使用过了。 语法格式:echo [参数] [输出内容] 常用参数: -e:支持反斜线控制的字符转换(具体参

    2024年02月07日
    浏览(42)
  • 如何在 Linux 中将目录添加到 PATH 变量,方便执行自定义命令

    在 Linux 系统中,PATH 变量是一个非常重要的环境变量,用于指定系统在执行命令时搜索可执行文件的路径。默认情况下,系统会在预定义的一组目录中查找可执行文件。但是,有时候我们可能需要将自定义的目录添加到 PATH 变量中,以便系统能够找到我们自己创建的可执行文

    2024年02月07日
    浏览(48)
  • 【看表情包学Linux】插叙:实现简易的 Shell | 通过内建命令实现路径切换 | 再次理解环境变量

       🤣  爆笑 教程  👉 《看表情包学Linux》👈   猛戳订阅     🔥 💭 写在前面: 本章是个 \\\"插叙\\\",前几章我们学了程序替换,现在我们可以尝试动手做一个 \\\"会创建,会终止,会等待,会程序替换\\\" 的简易 shell 了。通过本章的内容,可以进一步巩固进程替换,学习内建

    2024年02月22日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包