shell基础篇:Bash特性和shell变量

shell基础篇


一、Bash特性

bash基础特性

● bash是一 个命令处理器,运行在文本窗口中,并能执行用户直接输入的命令

● bash还能从文件中读取linxu命令,称之为脚本

● bash支持通配符、 管道、命令替换、条件判断等逻辑控制语句

关于历史记录的简单用法

bash有诸多⽅便的功能,有助于运维⼈员提升⼯作效率

history #命令,查看历史命令记录,注意【包含⽂件中和内存中的历史记录】

最多能看到1000行

~/.bash_history里存放用户执行的历史命令

我们可以vim ~/.bash_history查看一下

echo $HISTFILE可以看到文件的地址

history #命令 以及参数

-c: 清空内存中命令历史;

-r:从⽂件中恢复历史命令

数字 :显示最近n条命令 history 10

这时候我们history,发现历史被清空了

但是~/.bash_history里的历史还是存在的,所以我们可以用

history -r ~/.bash_history

进行恢复

调用历史记录命令

!历史id,快速执行历史命令

!!可以用来执行上次的命令,或者用上方向键来执行上次命令

bash特性汇总

  • ⽂件路径tab键补全
  • 命令补全
  • 快捷键ctrl + a,e,u,k,l
  • 通配符
  • 命令历史
  • 命令别名
  • 命令⾏展开

二、shell变量

变量含义

变量是暂时存储数据的地⽅,是⼀种数据标记(房间号,标记了客⼈所在的位置),数据存储在内容空间,通过调⽤正确的变量名字,即可取出对应的值。

shell变量名规则

名称定义要做到⻅名知意,切按照规则来,切不得引⽤保留关键字(help检查保留字)

  • 只能包含数字、字⺟、下划线
  • 不能以数字开头
  • 不能⽤标点符号
  • 变量名严格区分⼤⼩写

例:

有效的变量名:

NAME_CHAOGE

_chaoge

chaoge1

chaogE1

Chao2_ge

⽆效的变量名:

?chaoge

chao*ge

chao+ge

定义shell变量

单引号变量,不能识别特殊语法

双引号变量,能识别特殊符号

变量定义与赋值,注意变量与值之间不得有空格

powershell 复制代码
name="wang"
变量名
变量类型,bash默认把所有变量都认为是字符串

bash变量是弱类型,⽆需事先声明类型,是将声明和赋值同时进⾏

变量替换/引⽤

powershell 复制代码
echo $name #可以省略花括号

变量的作⽤域

本地变量,只针对当前的shell进程

powershell 复制代码
pstree  #检查进程树
  • 环境变量,也称为全局变量,针对当前shell以及其任意⼦进程,环境变量也分⾃定义 、内置两种环境变量
  • 局部变量,针对在 shell函数 或是 shell脚本 中定义

⾃定义变量

powershell 复制代码
变量赋值: varName=value
变量引⽤: ${varName} 、 $varName
单引号,识别为普通字符串
相关推荐
回敲代码的猴子7 分钟前
2月8日上机
开发语言·c++·算法
rongyili8824 分钟前
Dify 外部知识库集成 Milvus 实战指南
开发语言·python·milvus
xuhe238 分钟前
Claude Code配合Astro + GitHub Pages:为 sharelatex-ce 打造现代化的开源项目宣传页
linux·git·docker·github·浏览器·overleaf
charlie11451419143 分钟前
RK3568跑Arch Linux全路程指南(以正点原子的RK3568开发板为例子)
linux·嵌入式·rootfs·教程·环境配置·嵌入式linux·工程实践
IT猿手1 小时前
MOEA/D(基于分解的多目标进化算法)求解46个多目标函数及一个工程应用,包含四种评价指标,MATLAB代码
开发语言·算法·matlab·多目标算法
野犬寒鸦1 小时前
从零起步学习并发编程 || 第九章:Future 类详解及CompletableFuture 类在项目实战中的应用
java·开发语言·jvm·数据库·后端·学习
爆米花byh1 小时前
在RockyLinux9环境的Doris单机版安装
linux·数据库·database
南 阳1 小时前
Python从入门到精通day34
开发语言·python
前路不黑暗@1 小时前
Java项目:Java脚手架项目的统一模块的封装(四)
java·开发语言·spring boot·笔记·学习·spring cloud·maven
消失的旧时光-19432 小时前
第二十四课:从 Java 后端到系统架构——后端能力体系的最终总结
java·开发语言·系统架构