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

bash 复制代码
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)解释第一条

bash 复制代码
#!/bin/bash

echo $0
echo $1
echo $2
echo $3

(3)解释后面三条

bash 复制代码
#!/bin/bash

echo $#
echo $*
echo $@

4.预定义变量

(1)概述

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

(2)接受键盘输入

bash 复制代码
#!/bin/bash

read -t 30 -p "Please input :" cho

echo  $cho

5.数值运算与运算符

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

相关推荐
小时候的阳光2 小时前
Docker版Percona Xtrabackup全量压缩脚本
运维·docker·容器
生信大表哥3 小时前
单细胞测序分析(五)降维聚类&数据整合
linux·python·聚类·数信院生信服务器
“αβ”3 小时前
MySQL表的操作
linux·网络·数据库·c++·网络协议·mysql·https
盐焗西兰花3 小时前
鸿蒙学习实战之路 - 图片预览功能实现
学习·华为·harmonyos
神秘的土鸡4 小时前
openEuler 25.09 企业级 MySQL主从复制部署与性能优化实战提升50%
linux·数据库·mysql·性能优化·openeuler
Xudde.4 小时前
friendly2靶机渗透
笔记·学习·安全·web安全·php
知识分享小能手4 小时前
CentOS Stream 9入门学习教程,从入门到精通, CentOS Stream 9 命令行基础 —语法知识点与实战详解(4)
linux·学习·centos
码界奇点4 小时前
Java Web学习 第15篇jQuery从入门到精通的万字深度解析
java·前端·学习·jquery
4***17544 小时前
Nginx auth_request详解
运维·nginx·xcode
梦想的旅途24 小时前
企业群运营自动化:RPA技术高效赋能
运维·自动化·rpa