shell 06(shell内置命令)

news2024/11/16 12:01:18

一、内置命令介绍

shell 内置命令,就是由 Bash shell 自身提供的命令,而不是文件系统中的可执行文件

使用type 来确定一个命令是否是内置命令:

type 命令

 通常来说,内置命令会比外部命令执行得更快:

  • 执行外部命令时不但会触发磁盘 I/0,还需要 fork 出一个单独的进程来执行,执行完成后再退出。
  • 执行内置命令 相当于调用当前 Shell 进程的一个函数
  • 执行内置命令 是在当前Shell环境进程内,减少了上下文切换。

1.1 alias设置命令别名

  • alisa 用于给命令创建别名 
  • 若该命令且不带任何参数,则显示当前 Shell 进程中的所有别名列表

 好处: 可以将经常操作比较复杂的命令进行设置别名,通过别名的操作提高工作效率

alias 别名="命令"

这里使用单引号或双引号都可以

删除指定的别名

unalias 别名


删除当前Shell环境中所有的别名

unalias -a

注意: 以上2种方式删除都是临时删除当前Shell的别名,如果想永久删除必须去配置文件中手动删除

举例:

alias pslist="ps -aux"  查看所有进程 

alias wn1="watch -n 1 nvidia-smi"   1s刷新一次nvidia-smi界面

1.2 echo输出字符串

  • echo 是一个 shell 内置命令,用于在终端输出字符串,并在最后默认加上换行符

默认输出换行语法

echo 字符串

输出不换行语法

echo -n  字符串

  • 用于echo输出字符串非结尾处的换行,但是默认echo无法解析/n 转义字符

echo -e "hello \nworld"  # -e 可解析转义字符

\c清除echo结尾换行 

1.3 read读取控制台输入

read 是 Shell 内置命令,用于从标准输入中读取数据并赋值给变量。

  • 如果没有进行重定向,默认就是从终端控制台读取用户输入的数据;
  • 如果进行了重定向,那么可以从文件中读取数据。

read [-options] [varl var2 ..]
  • options 表示选项,如下表所示;
  • var 表示用来存储数据的变量,可以有一个,也可以有多个
  • options 和var 都是可选的,如果没有提供变量名,那么读取的数据将存放到环境变量 REPLY 变量中
  • $REPLY保存read最后一个读入命令的数据options支持的参数

案例:读取多个字符

#!/bin/bash 
#打印每一个变量的值
#使用read命令读取数据,要有提示信息"请输入姓名,年龄,爱好:”将数据赋值给多个变量

read -p “请输入姓名,年龄,爱好:” name age hobby

echo "姓名:${name}"
echo "年龄:${age}"
echo "爱好:${hobby}"

案例:读取一个字符

#!/bin/bash
# 使用read命令读取数据,要有提示信息 "您确定要删除数据吗?(请输入y/n):" 并且设置读取一个字符
read -n 1 -p "您确定要删除数据吗?(请输入y/n):" char

# 打印这个字符输出
printf "\n"
echo "您输入的字符: ${char}"

案例:限制时间输入

#!/bin/bash

# 使用read命令读取数据,要有提示信息"请输入密码(20秒内):" 并且设置限制时间20秒

read -t 20 -sp  "请输入密码(20秒内 ):" pwd1
echo
read -t 20 -sp "请再次输入密码(20秒内):" pwd2
echo 

# 校验密码与再次输入的密码是否一致

if [ $pwd1 == $pwd2 ]
then
         echo"密码与确认密码一致,验证通过"
else
         echo  "密码与确认密码不一致,验证失败"
 fi

s 静默模式 

1.4 exit退出

exit 用于退出当前Shell环境进程结束运行,并且可以返回一个状态码.一般使用 $? 可以获取退出状态码

正确退出

exit 

错误退出

exit 非0数字  #配合$?用于业务处理

1.5 declare设置变量

  • declare命令用于声明 shell 变量。
  • 可用来声明变量并设置变量的属性,也可用来显示shell函数。
  • 若不加上任何参数,则会显示全部的shell变量与函数(与执行set指令的效果相同)。

1.declare设置变量的属性[重要]

declare -i age=20  #设置整形变量

declare +i age #取消限制

declare -r age #只读变量

2.查看全部Shell变量与函数

declare  查看全部Shell变量与函数

declare -f 查询所有函数的定义
declcare -F 查询所有函数的名称列表


3.实现关联数组变量

 关联数组也称为“键值对 (key-value)”数组,键(key) 也即字符形式的数组下标,值(value) 也即元素值

declare -A 关联数组变量名=([字符串key1]=值1 [字符串key2]=值2 ...)
  • declare也可以用于定义普通索引数组,-a 参数创建普通或索引数组 -A 创建关联数组
  • declare -a 关联数组变量名=(值1 值2 ...)
  • declare -a 关联数组变量名=([0]=值1 [1]=值2 ...)

获取key值:

${关联数组变量名[key]}

${关联数组变量名[*]}

${关联数组变量名[@]}

1.6 test

shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试功能与[]一样

1.6.1 整数比较

if test 数字1 options 数字2
then
...
fi

 

1.6.2 字符串比较

 

test "a" == "b"; echo $?
test "a" \> "b"; echo $?

1.6.3 文件比较

 

test -e /home/w/pty.txt; echo $?
test -r /home/w/pty.txt; echo $?

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

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

相关文章

vue中form、table和input标签过长

form标签过长 效果&#xff1a; 代码&#xff1a; <el-form-item v-for"(item,index) in ticketEditTable1" :label"item.fieldNameCn" :propitem.fieldName :key"item.fieldNameCn" overflow"":rules"form[item.fieldName…

组队buff,citywalk,同学走起

本文关键词 组队、旅游、打比赛、动心 南京、成都、西安、北京、烟火气 梧桐杯、大数据、创新、得行 ...... 这里是第三届中国移动“梧桐杯”大数据创新大赛&#xff0c; 只接受在校大学生报名。 这里是五阶赛程三阶有奖的比赛&#xff0c; 百万奖金池&#xff0c;下饺子…

神通数据库v7.0试用版安装步骤

网上找了下神通数据库的安装教程&#xff0c;发现都已经过时&#xff0c;或者安装受阻&#xff0c;于是直接从官网下载后尝试亲自安装了一遍适用版&#xff0c;在CentOS7(64bit)环境具体操作步骤如下&#xff1a; 1、安装 wget工具 yum install -y wget 2、安装rar解压工具 …

ChatGPT多开分销版系统,完整版手把手详细教程,保姆级教程

教程方法在文末&#xff5e; 课程目录 一、课前准备 1.认识系统.mp4 2.获取本次应用的三种渠道.mp4 二、微信服务号的申请&#xff08;有就直接跳过&#xff09; 03.流程详解.mp4 04.服务号的注册.mp4 05.认证流程.mp4 06.微信支付申请与关联.mp4 三、对接千梦众筹系统…

flutter 雷达图

通过CustomPainter自定义雷达图 效果如下 主要代码 import package:flutter/material.dart; import dart:math; import dash_painter.dart; import model/charts_model.dart;class RadarChart extends StatelessWidget {final List<ChartModel> list;final double maxV…

微短剧赛道风口下的一站式点播解决方案

微短剧行业正风生水起。 一种全新的剧集模式正迅速崛起&#xff0c;并引起广泛关注。 从线下电影院的“巨幕”到PC端“网络大电影”&#xff0c;从“长视频”再到如今移动端1-3分钟的“微短剧”&#xff0c;影视行业在过去几年经历了一场深刻又显著的变化。 微短剧&#xff0…

【2023中国算力大会】《关于促进全国一体化算力网络国家枢纽节点宁夏枢纽建设若干政策的意见》解读

为加快人工智能的发展&#xff0c;丰富算力基础设施&#xff0c;推进算力赋能应用&#xff0c;强化绿电保障支持&#xff0c;构建算力产业体系&#xff0c;打造西部地区算力经济发展新高地。 对数据中心重大基础设施建设&#xff0c;每年安排专项债券资金给予支持&#xff0c;…

硬盘格式化恢复?仅仅4招,简单恢复数据!

“硬盘格式化之后还有恢复的可能性吗&#xff1f;不小心格式化硬盘之后真的超级后悔&#xff0c;现在想恢复里面的数据完全不知道应该怎么做&#xff01;真的很绝望&#xff01;帮帮我吧&#xff01; 硬盘作为计算机的主要存储设备&#xff0c;存储着大量的个人和工作数据。然而…

聊聊开关和CPU之间故事

我们本篇文章来看看计算机在硬件层面究竟是怎么表示二进制的&#xff0c;CPU究竟是怎么实现的&#xff1f;通过本文的学习&#xff0c;我们也可以反过来明白为什么计算机会采用二进制了。 开关 我们在生活中&#xff0c;处处都是开关&#xff0c;比如控制灯的开关 我们可以发…

Delphi 中 interface 如何使用 (chatGPT回答)?

目录 1. 定义接口&#xff1a;可以使用interface关键字来定义一个接口。例如&#xff1a; 2. 实现接口&#xff1a;类可以实现一个或多个接口。要实现接口&#xff0c;需要在类声明中使用implements关键字&#xff0c;并提供对应接口的方法的实现。例如&#xff1a; 3. 使用…

前端基础(props emit slot 父子组件间通信)

前言&#xff1a;如何实现组件的灵活使用&#xff0c;今天学习组件封装用到的props、slot和emit。 目录 props 子组件 父组件 示例代码 slot 示例代码 作用域插槽 emit 示例代码 props 需要实现在其他组件中使用同一个子组件。 子组件 子组件&#xff08;所谓子组件…

gpt-3.5-turbo-0613微调信用卡分期对话

1、数据准备&#xff1a;jsonl格式。样本&#xff1a;至少10个。d_train.jsonl {"messages": [{"role": "system", "content": "您是一位经验丰富的信用卡账单分期产品的销售助手。当前分期产品产品的特点是允许客户延期2个月开…

大数据项目实战(安装准备)

一&#xff0c;搭建大数据集群环境 1.1安装准备 1.1.1虚拟机安装与克隆 1.虚拟机的安装和设置以及启动虚拟机并安装操作系统&#xff08;以下仅供参考&#xff09; 安装一台虚拟机主机名为&#xff1a;hadoop01的虚拟机备用 VMware虚拟机安装Linux教程(超详细)_vmware安装…

呈现数据的精妙之道:选择合适的可视化方法

在当今数据时代&#xff0c;数据可视化已成为理解和传达信息的重要手段。然而&#xff0c;选择适合的数据可视化方法对于有效地呈现数据至关重要。不同的数据和目标需要不同的可视化方法&#xff0c;下面我们将探讨如何选择最佳的数据可视化方法来呈现数据。 1. 理解数据类型&a…

Putty连接登录Linux centos7

一、下载Putty 下载网址 https://www.putty.org/ 安装完成后会有两个重要的软件 Putty是用于连接Linux的客户端 PuTTYgen是通过客户端下载的service.ppk生成本地登录要用到的key 二、运行putty 双击putty.exe可以打开程序&#xff08;程序小&#xff0c;学习linux可以把该…

HarmonyOS开发:超详细了解项目的工程结构

前言 系列文章目录&#xff1a; HarmonyOS开发第一步&#xff0c;熟知开发工具DevEco Studio 当我们熟练的掌握了DevEco Studio之后&#xff0c;就可以创建项目进行练习了&#xff0c;和市场上大多数IDE一样&#xff0c;DevEco Studio也给我们提供了很多的实例模板&#xff0c…

0821|C++day1 初步认识C++

一、思维导图 二、知识点回顾 【1】QT软件的使用 1&#xff09;创建文件 创建文件时&#xff0c;文件的路径一定是全英文 2&#xff09;修改编码 工具--->选项--->行为--->默认编码&#xff1a;system 【2】C和C的区别 C又叫C plus plus&#xff0c;C是对C的扩充&…

videojs 实现自定义组件(视频画质/清晰度切换) React

前言 最近使用videojs作为视频处理第三方库&#xff0c;用来对接m3u8视频类型。这里总结一下自定义组件遇到的问题及实现&#xff0c;目前看了许多文章也不全&#xff0c;官方文档写的也不是很详细&#xff0c;自己摸索了一段时间陆陆续续完成了&#xff0c;这是实现后的效果.…

几何对象操作(一)

几何对象是构成要素的必要条件 import numpy as npdef getgtypes():return point, linestring, polygon, multipoint, multilinestring, multipolygondef showgeoms(geoms, name"tmp", gtypeNone):# 快速显示一串几何对象,gtype 如果是默认的则根据geoms生成相应的类…

《中国综合算力指数》发布,我国算力规模居全球第二,中创积极响应东数西算政策

算力通俗地说就是计算能力&#xff0c;是数据中心处理数据并输出结果的能力。2023中国算力大会于近期在宁夏银川开幕。工业和信息化部负责人在会上透露&#xff0c;我国算力产业已初具规模。 截至目前&#xff0c;全国在用数据中心机架总规模超过760万标准机架&#xff0c;算力…