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

linux系统学习(10.shell基础)

目录

一、shell概述

二、shell基本功能

2.echo命令的用法

(1)基础知识

(2)运行结果

3.历史命令与补全

4.别名与快捷键

(1).基本使用

(2)执行的顺序

(3)删除别名

(4)快捷键

5.输入输出重定向

(1)标准输入输出

(2)输出重定向

(3)输入重定向

6.多命令顺序执行与管道符

(1)多命令顺序执行

(2)管道符和grep

7.通配符和其他特殊符号

(1)通配符

(2)其他特殊符号

三、Bash变量

1.用户自定义变量

2.环境变量

(1)相关操作

3.位置参数变量

(1)概述

(2)解释第一条

(3)解释后面三条

4.预定义变量

(1)概述

(2)接受键盘输入

5.数值运算与运算符


一、shell概述

查看电脑上支持的shell

cat /etc/shells

二、shell基本功能

2.echo命令的用法

(1)基础知识

# 红色文字
echo -e "\033[31m这是红色的文字\033[0m"

# 绿色文字
echo -e "\033[32m这是绿色的文字\033[0m"

# 黄色文字 + 蓝色背景
echo -e "\033[33;44m黄色文字,蓝色背景\033[0m"

# 粗体 + 红色
echo -e "\033[1;31m粗体红色文字\033[0m"

# 下划线 + 青色
echo -e "\033[4;36m下划线青色文字\033[0m"

(2)运行结果

3.历史命令与补全

一般来讲本次开机的所有操作只写在缓存中,不会保存到~/.bash_history文件里面,只有下次重新启动本次的数据才从缓存中加载到这个文件。

如果想立马保存到这个文件,需要使用-w命令。

4.别名与快捷键

(1).基本使用

(2)执行的顺序

如果直接按照路径执行命令,那么肯定执行的就是这个路径的命令

第二个界别就是别名。

第三个就是bash自己的命令,比如cd这种,是bash这个命令自己的子命令。那么如果我给一个命令起一个别名叫做cd,那么实际上执行的是那个别名。

第四个就是加入到PATH里面的,比如将python加入到环境变量里面,这个调用的优先级最低。如果其他的有个别名叫做python,那么实际上这个环境变量没有起作用。

为了让别名永久生效,可以加到~/.bashrc里面

(3)删除别名

unalias 别名

(4)快捷键

一个我不知道的就是ctrl+u,删除光标之后的所有东西

5.输入输出重定向

(1)标准输入输出

(2)输出重定向

我们常用标准输出重定向,因为标准错误输出重定向,在程序执行之前,我们也不知道他是否会报错。

下面是更常用的,&>表示无论对错,都输出到一个文件里面。

>>文件1 2>>文件2,表示正确的输入到1文件,错误的输出到2文件

值得一提的是,如果输出到/dev/null,那么会被自动删除,你就这样理解。

(3)输入重定向

6.多命令顺序执行与管道符

(1)多命令顺序执行

(2)管道符和grep

这个grep默认关键字就是颜色显示了,alias中配置了已经。

7.通配符和其他特殊符号

(1)通配符

这个通配符与正则不同的是,这个?表示匹配一个任意字符,python的正则表示匹配0个或者1个。

通配符可以和任何命令一起使用,他可以和ls一起。

(2)其他特殊符号

三、Bash变量

第一、bash中所有的变量默认字符串类型,如果要进行数值运算,需要指定变量的类型是数值类型。

第二、变量用等号连接,等号左右不可以有空格

第三、变量的值不可以用空格,如果要有,需要用引号包起来。

第四、更改变量的值,下面是操作

第五、如果把命令的结果给变量,需要用$()包着命令,注意这个变量里面存的是结果,而不是命令。

第六、变量的查看与删除

1.用户自定义变量

上面那样直接创建一个变量,A=B的这种就是创建一个用户变量。

2.环境变量

环境变量在当前shell以及他的子shell都有效,用户变量只有在当前shell有效,如果想要全局有效,需要写入到配置文件。

什么叫做一个shell的子shell呢,就是在一个shell里面,输入bash,之后这个shell就变成上一个shell的子shell了,之后使用exit可以推出子shell。

(1)相关操作

3.位置参数变量

(1)概述

(2)解释第一条

#!/bin/bashecho $0
echo $1
echo $2
echo $3

(3)解释后面三条

#!/bin/bashecho $#
echo $*
echo $@

4.预定义变量

(1)概述

当然也可以写道脚本里面。$$就是当前脚本的进程号了,$?就表示脚本中上一句是否执行成功。

(2)接受键盘输入

#!/bin/bashread -t 30 -p "Please input :" choecho  $cho

5.数值运算与运算符

暂时记住就行了,我也不知道为什么是这个样子。

http://www.dtcms.com/a/605245.html

相关文章:

  • 融合之力:金仓数据库“五个一体化“如何重塑国产数据库生态
  • 山西省第十九届职业院校技能大赛 网络建设与运维赛项 1. 系统安装答案解析
  • 做网站哪个服务商便宜菏泽网站设计培训
  • SLAM中的非线性优-3D图优化之轴角在Opencv-PNP中的应用(二)
  • Step-Audio-EditX
  • Notepad++编译C语言 | 如何高效配置和使用Notepad++进行C语言开发
  • Hadoop学习_week1
  • 靠谱的时序数据库哪家技术强
  • VR水污染体验系统——VR 里的碧水守护
  • 重构企业运维智慧:低代码 ITSM 知识管理平台的创新与实践
  • 从C++开始的编程生活(13)——list和浅谈stack、queue
  • m序列原理及在5G的应用
  • 焦作建设网站的公司怎么让百度快速收录网站
  • API创建指定版本k8s集群
  • K8S NFS PVC PV 挂载点路径问题
  • 【CANN】开启AI开发新纪元,释放极致计算效率
  • ui展示 网站百度热门排行榜
  • Java并发编程基石:深入理解JMM(Java内存模型)与Happens-Before规则
  • 一个基于现代 C++23 Modules 的传统文化算法库,使用纯模块化设计实现(包含大六壬、六爻、紫薇斗数、八字、奇门遁甲)
  • 注释网站开发全国大型教育集团网站建设
  • PyQt5 + Qt Designer配置指令
  • setprop debug.hwui.profile visual_bars有什么作用
  • Vue3——Transition和TransitionGroup的区别以及最佳实践
  • PostIn从初级到进阶(2) - 对接口进行快捷调试
  • 河南建设网站公司简介河北项目建设备案网站
  • JAVA国际版打车APP打车顺风车滴滴车跑腿APP源码Android+IOS+H5
  • Swift 初阶 —— Sendable 协议 data races
  • RK3568平台开发系列讲解:RK VOP 显示控制器
  • 《R for Data Science (2e)》免费中文翻译 (第12章) --- Logical vectors(2)
  • Python同步vs异步性能对比实验-2