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

news2024/11/15 21:37:08

目录

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 提示符,再接收下一条键盘命令。

8.3.2  多条命令

采用分号隔开多条命令:

$ pwd; who; date

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

8.3.3  复合命令

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

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

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

再来锁定 tty2 进程的信息:

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

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

8.3.4  后台命令

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

$ ls -lR > file_list &

[1] 7981

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

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

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) []

  • -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."  用引号包括时结果如何

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的值

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的值

2、反撇号

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

$ a=date

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

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

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

3、花括号

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

$ c="There is a teach"

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

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

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      其中操作系统核心部分运行时间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/655865.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

跨境电商领域的ChatGPT使用攻略

今天分享一个电商领域的ChatGPT应用指南! 一、写谷歌广告词 提示词: 现在你是一名谷歌广告的编写人员,你需要为xxx产品写10条谷歌广告标题和谷歌广告描述。要求是: 1.用英文输出你的答案 2.广告的标题和广告描述的字数等要符合谷歌的标准 3.广告要引人入胜&#xf…

OceanBase—01(入门篇——使用docker安装OceanBase以及介绍连接OB的几种方式)

OceanBase—01(入门篇——使用docker安装OceanBase以及介绍连接OB的几种方式) 1. 前言1.1 安装部署参考1.1.1 安装前提1.1.2 参考 1.1 修改数据库用户名密码1.2 总结常见连接命令 2. 安装部署OceanBase2.1 启动 OceanBase 数据库实例2.1.1 默认拉取最新版…

代码审计——XSS详解

为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓ 01 漏洞描述02 审计要点03 漏洞特征04 漏洞案例05 修复方案 01 漏洞描述 跨站脚本攻击(Cross Site Script)是一种将恶意JavaScript代码插入到其他Web用户页面里执行以达到攻击…

没网络的CentOS7的Docker容器安装Java诊断神器Arthas

操作过程 1. 先把jar包下载到本地的windwos2. 打包复制到服务器3. 启动容器设置4.重启容器并使用Arthas 1. 先把jar包下载到本地的windwos 下载地址 下载好后jar,然后CMD执行命令 java -jar arthas-boot.jar 然后随便进入某个jvm进程查看,会见到Conso…

【技术新趋势】面向图像文档的版面智能分析与理解

目录 一、什么是OCR?什么是版面分析理解?二、文档版面分析2.1、版面布局类型2.2、面向文档图像版面分析的实例分割2.3、逻辑结构分析 三、文档版面理解3.1、位置嵌入3.2、表格数据提取 四、智能文档处理技术新解决方案 人类撰写文档是为了记录和保存信息…

Zoho Books助力跨境贸易!深入了解其多币种处理功能

对于跨境行业而言,合作不同的客户以当地货币收取付款是一个不简单的任务。现在,Zoho Books 推出了新的高级多币种处理功能,让多货币付款或收款不再困扰。(注意:此功能在Zoho Books的专业版,高级版&#xff…

使用 ChatGPT 创建 APP 的最佳实践

导读:如果你想用用ChatGPT创建应用程序来赚钱,这是你需要知道的。 本文字数:2900,阅读时长大约:18分钟 如果你想用ChatGPT创建应用程序来赚钱,这是你需要知道的。 我最好先说出坏消息。如果你认为可以两手…

【后端开发】尚硅谷 SpringCloud 学习笔记

文章目录 一、cloud组件二、环境搭建2.1 创建父工程2.2 支付模块构建2.3 消费者模块构建2.3.1 引入RestTemplate2.3.2 远程调用支付模块 三、Eureka3.1 基础知识3.2 单机版Eureka安装3.3 服务注册3.4 Eureka集群3.4.1 Eureka端配置3.4.2 微服务端配置3.4.3 restTemplate负载均衡…

如何让ChatGPT制作XMind思维导图

一、使用ChatGPT辅助生成内容 给大家一个思路,比如我想制作《股神巴菲特给儿女的一生忠告》相关的思维导图,那我们可以在ChatGPT上提问“请使用markdown格式写出股神巴菲特给儿女的一生忠告的思维导图,以代码格式输出”。 生成后&#xff0…

teleport堡垒机的一些问题

teleport文件下载,将teleport服务映射到公网,权限已经分派好了,但无法ssh,这是什么原因呢? 注意teleport助手的版本要跟部署的是一致的,否则会检测不到状态 出现下面的问题,应该还是在防火墙的端…

奇舞周刊第496期:ChatGPT 的工作原理,这篇文章说清楚了!

记得点击文章末尾的“ 阅读原文 ”查看哟~ 下面先一起看下本期周刊 摘要 吧~ 奇舞推荐 ■ ■ ■ ChatGPT 的工作原理,这篇文章说清楚了! ChatGPT 能够自动生成一些读起来表面上甚至像人写的文字的东西,这非常了不起,而且出乎意料。…

DM3E,雷赛步进驱动器

0x6040: 0x6041: 状态流: 0x60608; //设置伺服模式 8CSP,6回零模式,3速度模式6040流: 00初始》06上电》07使能》0F待命(可操作) 快停流: 02快停》0F命令生效 参数保…

Vue全家桶(三):Vuex状态管理(State、Getters、Mutations、Actions)

目录 Vuex1. 理解Vuex1.1 组件之间共享数据的方式1.2 Vuex是什么1.2 什么时候使用Vuex1.3 Vuex的工作原理图 2 使用Vuex2.1 搭建Vuex环境 2.2 Vuex基本使用2.2.1 State2.2.2 Getters2.2.3 Mutations2.2.4 Actions2.2.5 Modules 模块化命名空间 3 求和案例3.1 使用纯vue编写3.2 …

Property ‘code‘ does not exist on type ‘AxiosResponse<any, any>‘ 的解决办法

原文链接 : Property ‘xxx’ does not exist on type ‘AxiosResponse<any, any>’ 的解决办法 vue3 ts 中 调用接口时&#xff1a; const loginOut () > {loginOutApi().then(res > {const { code } resif(code 0){ }})}报了如下错误&#xff1a; Property…

Python基础(3)——PyCharm介绍

Python基础&#xff08;3&#xff09;——PyCharm介绍 文章目录 Python基础&#xff08;3&#xff09;——PyCharm介绍课程目标一. PyCharm的作用二. 下载和安装2.1 下载2.2 安装 三. PyCharm基本使用3.1 新建项目3.2 新建文件并书写代码3.3 运行文件 四. PyCharm的基本设置4.1…

基于Hexo和Butterfly创建个人技术博客,(10) 使用Butterfly的Tags Plugin插件增强博客文章内容和视觉表现力

Butterfly官方网站&#xff0c;请 点击进入 说明&#xff1a; 前面已经提过Hexo自创了Tag Plugin内容标签&#xff0c;Butterflay主题在此基础上又扩展了一些。本文就详细讲解下这些标签带来哪些额外的功能和UI方面的强化&#xff1b; 本章目标&#xff1a; 掌握butterfly扩展…

LightningChart .NET 10.5.1 Crack LightningChart 2023

LightningChart .NET v.10.5.1 已经发布&#xff01; DataCursor 和 3D TransparencyRenderMode 现在可用。 为所有 3D、Polar 和 Smith 系列启用 DataCursor 在早期阶段&#xff0c;LightningChart 提供了不同的工具&#xff0c;需要用户编写额外的代码才能启用数据跟踪功能。…

phpstudy免费下载

phpstudy免费下载 phpstudy是一个可以在本地建站的php环境软件链接: https://pan.baidu.com/s/1vfi-gy3juYBUjGz_Cq2gHg 提取码: 1234链接: http://120.26.240.154:8888/down/5Sx9yB0s0HS3.zip phpstudy是一个可以在本地建站的php环境软件 百度网盘分享 链接: https://pan.ba…

Session和Cookie,你真的弄清了吗?

Session和Cookie Session和Cookie Session和Cookiecookiecookie的生命周期cookie作用域 Sessionsession的生命周期session作用域 cookie和session安全性 为什么需要cookie和session&#xff1f;在web系统发展变迁时&#xff0c;web发展时随着需求的不断增多&#xff0c;交互的存…

Ceph:关于Ceph 集群中池管理的一些笔记

写在前面 准备考试&#xff0c;整理 Ceph 相关笔记博文内容涉及, Ceph 中的 两种 pool 介绍&#xff0c;创建操作管理池理解不足小伙伴帮忙指正 对每个人而言&#xff0c;真正的职责只有一个&#xff1a;找到自我。然后在心中坚守其一生&#xff0c;全心全意&#xff0c;永不停…