当前位置: 首页 > 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 _ 缓冲区的细节实现…...

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

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

从‘内华达州离婚率’到‘A/B测试’:用可交换性思想理解分层模型的底层逻辑

从离婚率到A/B测试:用生活案例理解分层模型的底层逻辑 当内华达州的离婚率遇上统计学 1981年,美国内华达州的离婚率高达每千人13.9例,远高于其他州。这个看似简单的社会现象背后,隐藏着一个深刻的统计学问题:如何理解特…...

AI写论文秘籍!4款AI论文生成工具,帮你轻松完成学术大作

2025 - 2026年AI论文写作工具:学术写作的得力助手 在2025年的学术写作智能化潮流中,越来越多的人开始尝试使用AI写论文的工具。不过,许多现有的AI论文写作工具在撰写硕士和博士论文等长篇作品时,常常面临着缺乏理论深度和逻辑严谨…...

VS Code Copilot Next 配置实战手册(企业级自动化工作流搭建全流程)

更多请点击: https://intelliparadigm.com 第一章:VS Code Copilot Next 自动化工作流配置概览 VS Code Copilot Next 是微软与 GitHub 联合推出的下一代智能编程助手,它深度集成于 VS Code 编辑器中,支持上下文感知的代码生成、…...

告别“唯大厂论”:全球财富 500 强实体企业 IT 核心岗位的隐形红利

在当前的留学生家庭中,关于计算机科学(CS)与工程类专业的就业规划,往往笼罩着一种高度趋同的“名企焦虑”。许多家长和学生将目光死死锁定在硅谷的科技巨头或少数几家头部互联网大厂上。为了挤进这些竞争白热化的窄门,…...

python signal

### 聊一聊 Python 的 signal:它到底是什么,能做什么,以及怎么用才不会出乱子 Signal 这个东西,听起来好像很底层,很“系统编程”。确实,它最初是 Unix 世界里的一个概念,就像一个传令兵&#x…...

韩国大学研究团队找到了AI安全防护的“手术刀“

这项由韩国大学(Korea University)与AIGEN Sciences联合开展的研究,发表于2026年ICLR(国际学习表征会议)会议论文集,论文编号为arXiv:2509.25843v2,于2026年4月14日更新。你有没有想过&#xff…...

Go语言变量与数据类型完全指南

概述Go语言以其简洁的类型系统著称,变量声明方式多样,数据类型清晰明了。本文详细介绍Go语言中的变量声明、基本数据类型、类型转换以及可见性规则,帮助读者打下坚实的类型基础。一、变量声明1.1 var 声明标准的变量声明使用 var 关键字&…...

LinkSwift:八大网盘平台直链获取解决方案的技术解析与应用指南

LinkSwift:八大网盘平台直链获取解决方案的技术解析与应用指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘…...

java面试必问25:强引用、软引用、弱引用、虚引用:从Java对象生命周期到内存优化

强引用、软引用、弱引用、虚引用:从 Java 对象生命周期到内存优化,一篇讲透面试官:“Java 有哪几种引用类型?分别有什么特点?” 你:“强引用是永不回收,OOM 也不回收;软引用在内存不…...

golang如何实现多活架构方案_golang多活架构方案实现教程

多活核心是流量调度而非服务启动,需在注册、发现、路由、重试等全链路显式支持region标签与fallback。Golang因轻量稳定适配手写逻辑,读多活写单中心是务实起点,DNS/K8s/grpc默认机制均需绕过,必须通过context传region、自定义res…...