当前位置: 首页 > news >正文

Linux实验三:shell程序设计: shell基础

实验目的:

进一步巩固shell程序设计语言基本语法,加深对所学知识理解。

实验要求

1. 四种变量的使用

2. 配置环境变量

3. 元字符和正则表达式

4. 引号

1. 本地变量

$ var1="hello Linux" //定义本地变量var1

$ read var2          //定义本地变量vae2

$ echo $var1  $var2  //显示本地变量的值

2. 环境变量

$ env //显示系统的环境变量

$ echo $PATH  //显示搜索路径变量PATH

$ MYNAME="zhangs"  //定义本地变量MYNAME

$ export MYNAME //将本地变量MYNAME输出为环境变量

下面观察环境变量与本地变量作用范围的区别

$ echo  $var1   $MYNAME  //显示本地变量和环境变量

$ bash //创建子进程bash

$ echo $var1  $MYNAME //显示本地变量和环境变量

$ exit //退出子进程bash

$ echo $var1  $MYNAME

通过修改环境变量PS1可修改提示符

$ PS1=$   //将提示符变为$

3. 位置变量

使用编辑器vi编辑下列shell脚本

#!/bin/bash

echo $0 $1 $2 $3

将上述两行脚本保存为文件locat.sh

$ chmod +x locat.sh //增加执行权限

$ ./locat.sh  you me he

观察显示结果,理解位置变量的定义

4. 预定义变量

用编辑器vi编辑以下shell脚本

#!/bin/bash

echo  $#

echo  $*

将上述三行保存为文件predef.sh

$chmod +x predef.sh //增加执行权限

$ ./predef.sh Linux Unix Windows

观察运行结果,理解预定义变量的含义

5. 配置环境变量

可通过用户主目录下的配置文件,改变系统的启动参数,例如:可通过修改.bash_profile修改环境变量PATH,具体操作如下:

$ cd ~  //进入用户的主目录

$ vi .bash_profile //编辑配置文件

若文件中有下列行:

PATH= $PATH;$HOME/bin

则在PATH路径中增加当前路径,修改后外:

PATH= $PATH;$HOME/bin:.

$ exit //退出

用该用户的账号重新登录系统

执行当前目录下的locat.sh脚本无需制定当前路径,例如:

$ locat.sh  myname is zhangs

///-------------------------------------------------------------------

logout退出当前用户,乌班图在当前用户的主目录下修改环境变量

似乎没有bash_profile文件。

///-------------------------------------------------------------------

6.元字符与正则表达式

$ cd ~  //进入用户主目录

# ls -l  / >list  //以详细方式列出根目录下的所有文件信息,重定向至list文件

$ grep ^d  list     // 查询所有目录

$ ls *.sh  //列出所有后缀名为.sh的shell脚本文件

6. 反引号、单引号和双引号

$ abc="pwd"

$ echo '$abc'  //只显示单引号内的字符串

$ echo "$abc"  //显示变量的值

$ echo `"$abc"`  //"和`的综合使用

$ echo "`pwd`"  //为"内的`作出解释

$ echo *

$ echo "*"    //屏蔽元字符的特定含义

注:双引号的命令替换是:将双引号内一对反引号中的命令替换为该命令运行的结果。

相关文章:

Linux实验三:shell程序设计: shell基础

实验目的: 进一步巩固shell程序设计语言基本语法,加深对所学知识理解。 实验要求 1. 四种变量的使用 2. 配置环境变量 3. 元字符和正则表达式 4. 引号 1. 本地变量 $ var1"hello Linux" //定义本地变量var1 $ read var2 //定义本地变量vae…...

webpack环境变量的设置

现在虽然vite比较流行,但对于用node写后端来说,webpack倒是成了一个很好的打包工具,可以很好的保护后端的代码。所以这块的学习还是不能停下来,接下来我们来针对不同的环境做不同的设置写好笔记。 引用场景主要是针对服务器的各种…...

基于51单片机音乐盒设计( proteus仿真+程序+原理图+PCB+报告+讲解视频)

音乐盒 主要功能:仿真原理图PCB图程序设计:设计报告实物图资料清单(提供资料清单所有文件):资料下载链接: 基于51单片机音乐盒仿真设计( proteus仿真程序原理图PCB报告讲解视频) 仿真图proteus …...

技术分享| anyRTC之RTN网络

RTN(Real-time Network)中文名:实时音视频传输网络。 RTN是最近几年由各大RTC的云厂商提出的一个全新架构的音视频实时传输网络概念。类似于直播的CDN网络,RTN是对音视频的实时性又强烈要求的场景而设计的,原理上全球端到端的时延通过RTN网络…...

基于GPRS的汽车碰撞自动报警系统(论文+源码)

1. 系统设计 本次基于GPRS的汽车碰撞自动报警系统的设计中,其主要的目标功能如下:1、实时检测当前的GPS精度和纬度坐标;2.当发生碰撞后系统自动将当前的信息通过GPRS数据发送到远端数据进行报警;3、系统在碰撞后一方面进行本地报警…...

qgis添加wms服务

例如添加geoserver的wms服务 左右浏览器-WMS/WMTS-右键-新建连接 URL添加geoserver的wms地址 http://{ip}:{port}/geoserver/{workspace}/wms 展开wms目录,双击相应图层即可打开...

【DQN】基于pytorch的强化学习算法Demo

目录 简介代码 简介 DQN(Deep Q-Network)是一种基于深度神经网络的强化学习算法,于2013年由DeepMind提出。它的目标是解决具有离散动作空间的强化学习问题,并在多个任务中取得了令人瞩目的表现。 DQN的核心思想是使用深度神经网…...

【C++】泛型编程 ⑭ ( 类模板示例 - 数组类模板 | 容器思想 | 自定义类可拷贝 - 深拷贝与浅拷贝 | 自定义类可打印 - 左移运算符重载 )

文章目录 一、容器思想1、自定义类可拷贝 - 深拷贝与浅拷贝2、自定义类可拷贝 - 代码示例3、自定义类可打印 - 左移运算符重载 二、代码示例1、Array.h 头文件2、Array.cpp 代码文件3、Test.cpp 主函数代码文件4、执行结果 一、容器思想 1、自定义类可拷贝 - 深拷贝与浅拷贝 上…...

砖家测评:腾讯云标准型S5服务器和s6性能差异和租用价格

腾讯云服务器CVM标准型S5和S6有什么区别?都是标准型云服务器,标准型S5是次新一代云服务器规格,标准型S6是最新一代的云服务器,S6实例的CPU处理器主频性能要高于S5实例,同CPU内存配置下的标准型S6实例要比S5实例性能更好…...

Linux常用命令——blkid命令

在线Linux命令查询工具 blkid 查看块设备的文件系统类型、LABEL、UUID等信息 补充说明 在Linux下可以使用blkid命令对查询设备上所采用文件系统类型进行查询。blkid主要用来对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID等信息进行…...

ES 万条以外分页检索功能实现及注意事项

背景 以 ES 存储日志,且需要对日志进行分页检索,当数据量过大时,就面临 ES 万条以外的数据检索问题,如何利用滚动检索实现这个需求呢?本文介绍 ES 分页检索万条以外的数据实现方法及注意事项。 需求分析 用 ES 存储数…...

【MySQL】mysql中不推荐使用uuid或者雪花id作为主键的原因以及差异化对比

文章目录 前言什么是UUID?什么是雪花ID?什么是MySql自增ID?优缺点对比UUID:优点1.全球唯一性2.无需数据库支持 缺点1.存储空间大2.索引效率低3.查询效率低 雪花ID:优点1.分布式环境下唯一性 缺点1.依赖于机器时钟2.存储空间较大3.查询效率低 MYSQL自增:优点1.简单…...

【Unity细节】Default clip could not be found in attached animations list.(动画机报错)

👨‍💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 😶‍🌫️收录于专栏:unity细节和bug 😶‍🌫️优质专栏 ⭐【…...

VsCode连接远程Linux编译环境的便捷处理

1.免输登录密码 免输命令的正确方法是使用公钥和私鈅在研发设备,和linux服务器上校验身份。公钥和私钥可在windows系统上生成。公钥要发送到linux服务器。私钥需要通知给本地的ssh客户端程序,相关的操作如下: 生成 SSH Key: 打开…...

【UE】用样条线实现测距功能(下)

目录 效果 步骤 一、实现多次测距功能 二、通过控件蓝图来进行测距 在上一篇(【UE】用样条线实现测距功能(上))文章基础上继续实现多次测距和清除功能。 效果 步骤 一、实现多次测距功能 打开蓝图“BP_Spline”&#xff0c…...

矩阵知识补充

正交矩阵 定义: 正交矩阵是一种满足 A T A E A^{T}AE ATAE的方阵 正交矩阵具有以下几个重要性质: A的逆等于A的转置,即 A − 1 A T A^{-1}A^{T} A−1AT**A的行列式的绝对值等于1,即 ∣ d e t ( A ) ∣ 1 |det(A)|1 ∣det(A)∣…...

机器学习之数据清洗和预处理

目录 Box_Cox Box_Cox Box-Cox变换是一种用于数据预处理和清洗的方法,旨在使数据更符合统计模型的假设,特别是对于线性回归模型。这种变换通过调整数据的尺度和形状,使其更加正态分布。 Box-Cox变换的定义是: y ( λ ) { y λ − 1 λ , i…...

【SpringBoot系列】SpringBoot日志配置

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

庖丁解牛:NIO核心概念与机制详解 06 _ 连网和异步 I/O

文章目录 Pre概述异步 I/OSelectors打开一个 ServerSocketChannel选择键内部循环监听新连接接受新的连接删除处理过的 SelectionKey传入的 I/O回到主循环 Pre 庖丁解牛:NIO核心概念与机制详解 01 庖丁解牛:NIO核心概念与机制详解 02 _ 缓冲区的细节实现…...

域控操作五:统一熄屏睡眠时间

直接看图路径,我只设置了熄屏,如果要睡眠就下面那个启用设置时间...

别再瞎分区了!RedHat 8.6虚拟机安装保姆级磁盘规划指南(附内存/swap/boot黄金比例)

RedHat 8.6虚拟机磁盘分区终极实践手册:从原理到避坑指南 在虚拟化环境中部署RedHat Enterprise Linux 8.6时,磁盘分区方案往往成为决定系统长期稳定性的关键因素。不同于物理服务器,虚拟机环境对存储配置有着独特的弹性需求,既需…...

PyTorch Lightning深度学习工程化实战指南

1. 课程定位与核心价值 这个Python深度学习迷你课程的设计初衷,是帮助具备基础Python编程能力的学习者,在最短时间内掌握深度学习核心技术的工程化应用能力。不同于传统学院派教学,我们采用"问题驱动案例实战"的模式,重…...

HTML(5) 代码规范

HTML(5) 代码规范 引言 HTML(HyperText Markup Language)是构建网页和互联网应用程序的基础。随着HTML5的推出,Web开发进入了一个新的时代。HTML5不仅增强了Web应用的功能,还引入了一系列新的规范和特性。本文旨在提供一个全面且实用的HTML5代码规范指南,帮助开发者编写…...

金属铸件缺陷检测数据集VOC+YOLO格式774张5类别

注意数据集大约一半是原图剩余为增强图片数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):774标注数量(xml文件个数):774标注数量(…...

高效QMC音频解密方案:qmc-decoder完整技术指南与跨平台实践

高效QMC音频解密方案:qmc-decoder完整技术指南与跨平台实践 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 在数字音乐管理领域,QQ音乐QMC加密格式长…...

如何用5大智能功能彻底解放双手:MAA明日方舟自动化助手终极指南

如何用5大智能功能彻底解放双手:MAA明日方舟自动化助手终极指南 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: ht…...

魔兽世界API开发终极指南:3分钟掌握wow_api完整使用技巧

魔兽世界API开发终极指南:3分钟掌握wow_api完整使用技巧 【免费下载链接】wow_api Documents of wow API -- 魔兽世界API资料以及宏工具 项目地址: https://gitcode.com/gh_mirrors/wo/wow_api wow_api是一个专为《魔兽世界》开发者和玩家设计的开源工具集&a…...

线条小人动画制作 -开源项目自荐

一、核心问题及解决方案(按踩坑频率排序) 问题 1:误删他人持有锁——最基础也最易犯的漏洞 成因:释放锁时未做身份校验,直接执行 DEL 命令删除键。典型场景:服务 A 持有锁后,业务逻辑耗时超过锁…...

Go语言的runtime.GC垃圾回收器算法演进与未来发展方向

Go语言自2009年诞生以来,其垃圾回收(GC)机制一直是性能优化的核心。从最初的标记-清除算法到如今的三色并发标记,runtime.GC的演进不仅提升了性能,更体现了Go团队对高并发场景的深刻理解。本文将探讨GC算法的演进历程&…...

打破语言壁垒:3分钟掌握Translumo终极屏幕翻译神器

打破语言壁垒:3分钟掌握Translumo终极屏幕翻译神器 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo 你是否曾因…...