首页 > 系统相关 >shell基础

shell基础

时间:2024-01-08 21:34:49浏览次数:39  
标签:脚本 字符 shell 变量 基础 命令 sh 执行

如何编写并执行一个Shell脚本文件?

[root@sunday-test shell-script]# cat HelloWorld.sh
#!/usr/bin/bash         //是一个标记,告诉系统执行这个文件需要的解释器
#this line is a comment1 //  “#” 号开头的行代表注释
echo "Hello World"       //指令

要使脚本可执行:
  chmod a+x HelloWorld.sh
  然后,可以通过输入: ./HelloWorld.sh 来执行脚本。

执行脚本的方法有哪几种?其区别是什么?

1、使用bash命令执行  # 把脚本当做bash的调用来处理,所以,脚本不需要有执行权限就可以执行。只能在当前目录下执行脚本,不可以在别的目录下执行。

# bash HelloWord.sh
“.”号和source命令也都可以执行脚本,且不需要可执行权限
# . HelloWord.sh
# source HelloWord.sh
2、给脚本添加可执行权限,然后直接就可以执行了
# chmod a+x HelloWord.sh
# ./HelloWord.sh
Hello Word

列举出5个系统自带的环境变量,并说明他们都代表什么含义?

HISTCMD:  记录下一条命令在history命令中的编号
HISTFILE: 记录history命令记录文件的位置
HISTFILESIZE:  设置HISTFILE文件记录命令的行数
HISTSIZE:  设置命令缓冲区的大小
HOSTNAME:  设置主机名
HOSTTYPE:  展示主机的架构

linux系统内设有预定义变量和位置变量,说出以下都代表什么意义?

$1、$3、$#、$*、$@、$0、$?
$1 表示第一个位置参数
$3 表示第三个位置参数
$# 表示脚本参数的个数总和
$* 表示脚本的所有参数
$@ 表示脚本的所有参数
$0 代表脚本本身名字
$? 脚本或者命令返回值,正常退出的命令和脚本应该返回值为0,任何非0的返回值都表示命令未正确退出或未正常执行

自定义变量的时候,都有哪些需要注意(即变量命名规则)?

shel1中的变量必须以字母或者下划线开头,后面可以跟数字、字母和下划线,长度没有限制,区分大小写。
# 正确的变量命名
firstname
FIRSTNAME
_hellowor
ldbig_data
Fullname
Person01
# 错误的变量命名
51play  #变量不能以数字开头
*badname #变量不能以特殊字符开头
PS1  #变量不能和Shell的预设变量名重名
for #变量不能使用Shell的关键字

变量赋值和取值
定义变量:变量名=变量值
注意点1:变量名和变量值之间用等号紧紧相连,之间没有任何空格
注意点2:当变量值中有空格时必须用引号括起,否则会出现错误,可以是双引号,也可以是单引号

我希望把从键盘输入的值做为—个变量的值,应该如何做?

read [-p "提示信息"] 变量名

如何调用一个变量的值?

echo $变量名称

双引号、单引号、反引号这三种引号有何不同的含义?

双引号中的字符除了“$”、“\”、反引号依然保留其特殊用途外,其余字符都作为普通字符处理。
单引号中的字符都作为普通字符处理

通配符*、?、分别代表什么含义?

*代表任意长度的字符串。例如:a*可以匹配以a开头的任意长度的字符串,但是不包括点号和斜线号。也就是说a*不能匹配abc.txt。
?:用于匹配任一单个字符。
[]︰代表匹配其中的任意一个字符,比如[abc]代表匹配a或则b或则c,[]中可以用“-”表明起止,比如[a-c]等同于[abc]。*和?在[]中则变成了普通字符,没有通配的功效。

如果我想同时创建file1、file2...file10个空文件,应该如何做比较快?

touch file{1..10}

shell中—般有哪四种算术运算方式?推荐使用哪种?

1:使用 expr外部程式
2:使用 $(( ))
3.使用 $[]
4:使用let命令
虽然Bash shell有四种算术运算方法,但并不是每一种都是跨平台的,建议使用expr。

前置自增和后置自增有何不同?

前置自增:先增加后赋值				后置自增:先赋值后增加

linux中的标准输入、标准输出及标准错误输出默认是什么?

标准输入为键盘,    标准输出和错误输出为显示器。


标签:脚本,字符,shell,变量,基础,命令,sh,执行
From: https://blog.51cto.com/u_16206331/9150791

相关文章

  • PyTorch 基础篇(1):Pytorch 基础
    Pytorch学习开始入门的材料来自两个地方:第一个是官网教程:WELCOMETOPYTORCHTUTORIALS,特别是官网的六十分钟入门教程DEEPLEARNINGWITHPYTORCH:A60MINUTEBLITZ。第二个是韩国大神YunjeyChoi的Repo:pytorch-tutorial,代码写得干净整洁。目的:我是直接把Yunjey的教程的......
  • Linux shell编程学习笔记38:history命令
    目录0 前言1 history命令的功能、格式和退出状态1.1 history命令的功能1.2 history命令的格式1.3退出状态2 命令应用实例2.1 history:显示命令历史列表2.2history-a:将当前会话的命令行历史追加到历史文件~/.bash_history中2.3history-c:删除所有条目从而清空历史列表2.4 ......
  • 第一章基础
    一、矩形建立1、直接法a=[1,2,3;4,5,6];%相同行是逗号,不同行分号或空格2、拼接法a=[1,2;3,4];b=[5,6;7,8];c=[a;b];%拼接矩阵是竖向相接的12345678c=[a,b];%拼接矩阵是横向相接的12563478总结:要将两个行向量A和B拼接成一个行向量C,可以使用以下语......
  • RNN的应用范围:从基础研究到实用技术
    1.背景介绍随着数据规模的不断增加,传统的机器学习模型已经无法满足需求。随着深度学习技术的发展,卷积神经网络(CNN)和循环神经网络(RNN)等模型逐渐成为主流。在图像处理、自然语言处理等领域取得了显著的成果。本文将从基础研究到实用技术的角度,探讨RNN的应用范围和挑战。1.1深度学习......
  • ssh3 基于http3 的安全shell 实现
    ssh3基于http3的安全shell实现,基于golang开发包含的特性快速会话建立支持基于http的认证,oauth,openid规避端口扫描,可以实现隐藏能力(零信任经常使用的玩法)udp端口转发以及经典的tcp端口转发支持基于quic协议说明前段时间openssh出现了一些安全问题,目前对于安全的......
  • javascript基础学习系列一:标识符
    一般来说,语言中的标识符可以分为两类,一类用于命名语法(以及类型),一类用于命名值(的存储位置)。前者被称为“语法关键字”,后者则被称为“变量”和“常量”。由此引入了一个概念:绑定。从标识符的角度来说,绑定分为语法关键字与语法(语义)逻辑的绑定,以及变量与它所存储值的位置的绑定......
  • 2023-2024-1 20231305 《计算机基础与程序设计》课程总结
    第1周作业https://www.cnblogs.com/zhen-meng/p/17740268.html第2周作业https://www.cnblogs.com/zhen-meng/p/17750180.html第3周作业https://www.cnblogs.com/zhen-meng/p/17765972.html第4周作业https://www.cnblogs.com/zhen-meng/p/17781309.html第5周作业https://www.cn......
  • 20231320 《计算机基础与程序设计》课程总结
    20231320《计算机基础与程序设计》课程总结每周作业链接汇总第0周:自我介绍第1周:第一周学习总结第2周:第二周学习总结第3周:第三周学习总结第4周:第四周学习总结第5周:第五周学习总结第6周:第六周学习总结第7周:第七周学习总结第8周:第八周学习总结第9周:第......
  • # yyds干货盘点 # 盘点一个AI都无法解决的Python基础题目(中篇)
    大家好,我是皮皮。一、前言前几天在Python白银交流群【大侠】问了一个Pandas实战的问题,一起来看看吧。上一篇文章说到,看上去AI给的答案,似乎让【大侠】不满意,遂来白银交流群问问大佬们。这一篇文章,我们一起来看看【瑜亮老师】给的代码。二、实现过程粉丝的原始数据中,还是有些乱的,比方......
  • CAN总线基础详解以及stm32的CAN控制器
    CAN简介CAN(ControllerAreaNetwork),是IOS国际标准化的串行通信协议。为了满足汽车产业的“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需求。CAN总线的发展史:低速CAN(ISO11519)通信速率10~125Kbps,总线长度可达1000米高速CAN(ISO11898)通信速率125Kbps~1Mbps,总......