Linux Bash Shell 快速上手 - 下篇

ESHELL WinCE映像文件下载和调试工具eshell 立即下载

这篇是Bashe Shell快速上手的下半篇,上篇可以参考

Linux Bash Shell 快速上手 - 上篇

一.运算符

Shell 和其他编程语言一样,支持多种运算符,包括:

  • 算数运算符
  • 关系运算符
  • 布尔运算符
  • 字符串运算符
  • 文件测试运算符
1.1、算数运算符

原生bash不支持数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,其中 expr 是最常用的一种方式。

使用方式:expr a + b,注意是使用`将其包含起来,``表示这是一个Linux命令。

假设a=10,b=20,可以使用expr构建以下关系运算:

运算符 说明 举例
+ 加法 `expr $a + $b` 结果为 30。
- 减法 `expr $a - $b` 结果为 -10。
* 乘法 `expr $a \* $b` 结果为  200。
/ 除法 `expr $b / $a` 结果为 2。
% 取余 `expr $b % $a` 结果为 0。
= 赋值 a=$b 将把变量 b 的值赋给 a。
== 相等。用于比较两个数字,相同则返回 true。 [ $a == $b ] 返回 false。
!= 不相等。用于比较两个数字,不相同则返回 true。 [ $a != $b ] 返回 true。
  • expr.sh
#!/bin/bash
# 使用expr做数学运算
read -p "请输入a的值:" a
read -p "请输入b的值:" b

echo "a + b = `expr $a + $b`"
echo "a - b = `expr $a - $b`"
echo "a * b = `expr $a \* $b`"
echo "a / b = `expr $a / $b`"
echo "a % b = `expr $a % $b`"
echo "a == b ? `expr [$a == $b]`"
echo "a != b ? `expr [$a != $b]`"

输出:

请输入a的值:10
请输入b的值:20
a + b = 30
a - b = -10
a * b = 200
a / b = 0
a % b = 10
a == b ? 0
a != b ? 1
1.2、关系运算符

关系运算符只支持数字,不支持字符串,除非字符串的值是数字。
下表列出了常用的关系运算符,假定变量 a 为 10,变量 b 为 20:

运算符 说明 举例
-eq 检测两个数是否相等,相等返回 true。 [ $a -eq $b ] 返回 false。
-ne 检测两个数是否不相等,不相等返回 true。 [ $a -ne $b ] 返回 true。
-gt 检测左边的数是否大于右边的,如果是,则返回 true。 [ $a -gt $b ] 返回 false。
-lt 检测左边的数是否小于右边的,如果是,则返回 true。 [ $a -lt $b ] 返回 true。
-ge 检测左边的数是否大于等于右边的,如果是,则返回 true。 [ $a -ge $b ] 返回 false。
-le 检测左边的数是否小于等于右边的,如果是,则返回 true。 [ $a -le $b ] 返回 true。
1.3、布尔运算符

下表列出了常用的布尔运算符,假定变量 a 为 10,变量 b 为 20:

运算符 说明 举例
! 非运算,表达式为 true 则返回 false,否则返回 true。 [ ! false ] 返回 true。
-o 或运算,有一个表达式为 true 则返回 true。 [ $a -lt 20 -o $b -gt 100 ] 返回 true。
-a 与运算,两个表达式都为 true 才返回 true。 [ $a -lt 20 -a $b -gt 100 ] 返回 false。
1.4、逻辑运算符

假定变量 a 为 10,变量 b 为 20:

注意,对于逻辑运算符来说,必须使用[[]]来代替[],这样才能够使得逻辑运算符被解析

运算符 说明 举例
&& 逻辑的 AND [[ $a -lt 100 && $b -gt 100 ]] 返回 false
|| 逻辑的 OR [[ $a -lt 100 || $b -gt 100 ]] 返回 true
1.5、字符串运算符

假定变量 a 为 “abc”,变量 b 为 “efg”:

运算符 说明 举例
= 检测两个字符串是否相等,相等返回 true。 [ $a = $b ] 返回 false。
!= 检测两个字符串是否相等,不相等返回 true。 [ $a != $b ] 返回 true。
-z 检测字符串长度是否为0,为0返回 true。 [ -z $a ] 返回 false。
-n 检测字符串长度是否不为 0,不为 0 返回 true。 [ -n "$a" ] 返回 true。
$ 检测字符串是否为空,不为空返回 true。 [ $a ] 返回 true。
1.6、文件测试运算符

文件测试运算符用于检测Linux/Unix中文件的各种属性是否符合要求:

假设file的属性为以下所示:

-rw-r--r-- 1 root root   0 Apr 15 12:25 file
操作符 说明 举例
-b file 检测文件是否是块设备文件,如果是,则返回 true。 [ -b $file ] 返回 false。
-c file 检测文件是否是字符设备文件,如果是,则返回 true。 [ -c $file ] 返回 false。
-d file 检测文件是否是目录,如果是,则返回 true。 [ -d $file ] 返回 true。
-f file 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。 [ -f $file ] 返回 true。
-g file 检测文件是否设置了 SGID 位,如果是,则返回 true。 [ -g $file ] 返回 false。
-k file 检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。 [ -k $file ] 返回 false。
-p file 检测文件是否是有名管道,如果是,则返回 true。 [ -p $file ] 返回 false。
-u file 检测文件是否设置了 SUID 位,如果是,则返回 true。 [ -u $file ] 返回 false。
-r file 检测文件是否可读,如果是,则返回 true。 [ -r $file ] 返回 true。
-w file 检测文件是否可写,如果是,则返回 true。 [ -w $file ] 返回 false。
-x file 检测文件是否可执行,如果是,则返回 true。 [ -x $file ] 返回 false。
-s file 检测文件是否为空(文件大小是否大于0),不为空返回 true。 [ -s $file ] 返回 false。
-e file 检测文件(包括目录)是否存在,如果是,则返回 true。 [ -e $file ] 返回 true。
-S file 检测文件是否为Socket文件,如果是,则返回 true。 [ -S $file ] 返回 false。
-L file 检测文件是否存在并且是一个符号链接,如果是,则返回 true。 [ -L $file ] 返回 false。

二.echo、printf、read与重定向

2.1、echo

echo用于打印数据内容,一般的使用形式为:

echo "content"
  1. 使用转意
echo -e "This is Content \n" # \n转意为换行
  1. 变量包含
content="HelloWorld"
echo "内容为:$content" # 第一种方式,双引号内的变量可以被解析
echo '内容为:'$content # 第二种方式,单引号内的变量全部被视作字符串,不可在其中解析变量
  1. 结果重定向
echo "内容重定向">my_content   
  1. 输出命令结果
echo "当前时间:`date`"
  • echo.sh
#!/bin/bash
# echo使用总结
echo "content"
echo -e "This is Content \n"
content="HelloWorld"
echo "内容为:$content" # 第一种方式,双引号内的变量可以被解析
echo '内容为:'$content # 第二种方式,单引号内的变量全部被视作字符串,不可在其中
解析变量
echo "内容重定向">my_content
echo "当前时间:`date`"
2.2、printf

printf和echo一样,都是Bash Shell中内置的输出命令,但是printf可以具备更强大的格式化功能。但是printf自带转意,并且不自带换行。

使用格式:

printf format content
  1. 格式化输出
printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg  
printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234 
printf "%-10s %-8s %-4.2f\n" 杨过 男 48.6543 
printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876 

注意:

  • %s、%c、%d、%f都是格式替代符,分别代表字符串、字符、整数、小数
  • %-10s指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。
  • %-4.2f表示格式化为4位小数,其中.2指保留2位小数。
  1. printf的转义序列
序列说明
\a警告字符,通常为ASCII的BEL字符
\b后退
\c抑制(不显示)输出结果中任何结尾的换行字符(只在%b格式指示符控制下的参数字符串中有效),而且,任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符,都被忽略
\f换页(formfeed)
\n 换行
\r回车(Carriage return)
\t水平制表符
\v垂直制表符
\\一个字面上的反斜杠字符
\ddd 表示1到3位数八进制值的字符。仅在格式字符串中有效
\0ddd表示1到3位的八进制值字符
2.3、read

read命令用以获取到外部输入,并且为程序中的变量赋值。

简单使用

echo "输入n的值"
read n
echo $n
  1. 带提示输入
read -p "输入a的大小:" a # -p表示提示信息
echo $a
  1. 带超时输入
read -t 5 -p "5秒内输入b的大小,不然会超时退出程序:" b # -t 5表示等待5s
echo $b
  1. 带限制输入
while true 
do
read -n1 -p "确定退出程序吗?[Y/N]:" ans  # -n1表示接收到1个字符的输入就结束读取
case $ans in 
    Y|y) echo "退出程序"
         exit 0
         ;;
    N|n) echo "继续执行程序"
         ;;
      *) echo "输入不合法"
         exit 0
         ;;
esac
done
  1. 秘文输入
read -s -p "输入密码:" password # -s 表示输入的是密码,输入的过程会隐藏
echo "密码为:$password"
  1. 数组输入
echo "输入数据到数组中,以空格分开:"
read -a array # -a标明输入参数为数组
echo "数组长度:${#array[*]}"
echo "数组数据:${array[*]}"
  1. 常用参数说明
  • -a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符。
  • -d 后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志。
  • -p 后面跟提示信息,即在输入前打印提示信息。
  • -e 在输入的时候可以使用命令补全功能。
  • -n 后跟一个数字,定义输入文本的长度,很实用。
  • -r 屏蔽\,如果没有该选项,则\作为一个转义字符,有的话 \就是个正常的字符了。
  • -s 安静模式,在输入字符时不再屏幕上显示,例如login时输入密码。
  • -t 后面跟秒数,定义输入字符的等待时间。
  • -u 后面跟fd,从文件描述符中读入,该文件描述符可以是exec新开启的。
2.4、重定向

在Bash Shell中,重定向可以将脚本产生的结果输出到特定的文件中,也可以从特定的文件中将数据输入到脚本中,这个过程被称为重定向过程。

重要的重定向标识符:

命令 说明
command > file 将输出重定向到 file。
command < file 将输入重定向到 file。
command >> file 将输出以追加的方式重定向到 file。
n > file 将文件描述符为 n 的文件重定向到 file。
n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。
n >& m 将输出文件 m 和 n 合并。
n <& m 将输入文件 m 和 n 合并。
<< tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入。

文件描述符n通常可为:0、 通常是标准输入(STDIN);1、 标准输出(STDOUT);2、标准错误输出(STDERR)

三.test命令

test命令可以将条件框给优化掉,使得代码看起来更加简洁,譬如:

if [ $a -eq $b ]

可以使用test来代替,结果是完全等价的:

if test $a -eq $b

具体的逻辑判断方式上文已经提到过了,这里就不再赘述。

四.函数与文件包含

4.1、函数

Bash Shell和其他编程语言一样,也含有函数这个概念,函数可以将我们所需的代码集合封装起来,对外提供服务:

基本使用:

# 定义一个函数并调用
func(){
    echo "`date` - 函数调用"    
}

func

函数返回值在调用该函数后通过 $? 来获得。
注意:所有函数在使用前必须定义。这意味着必须将函数放在脚本开始部分,直至shell解释器首次发现它时,才可以使用。调用函数仅使用其函数名即可。

  1. 带返回值的函数调用
# 带返回值的函数
func(){
    read -p "输入a的值:" a
    read -p "输入b的值:" b
    # 求累计值
    return `expr $a + $b`
}

func
# 调用函数后的第一个$?将获取到返回值
res=$?
echo "输入的两数之和为:$res"

调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数, 2 表示第二个参数 . . . 当要获取到第 10 个及其之后的参数时,需要使用 2表示第二个参数...当要获取到第10个及其之后的参数时,需要使用 2表示第二个参数...当要获取到第10个及其之后的参数时,需要使用{10}来获取,而不能直接使用$10来获取:
2. 带参数的函数调用

# 调用含有参数的函数
# 声明一个数组储存函数计算结果
res=()
func(){
    a=$1
    b=$2
    res[0]=`expr $a + $b`
    res[1]=`expr $a \* $b`
}

func 1 2
echo "计算结果:${res[*]}"
4.2、文件包含

Bash Shell为了重用代码而提出了文件包含的技术,使用文件包含技术可以很方便地重用基本变量以及函数,避免代码的冗余。使用source或.即可引用以sh结尾的Bash Shell脚本进行包含。

  • base.sh
#!/bin/bash
# 基本sh文件
message="这是一个基本文件"
func(){
    read -p "请输入a:" a
    read -p "请输入b:" b
    return `expr $a + $b`
}
  • base2.sh
#!/bin/bash
# 包含base.sh
source ./base.sh

echo $message

func
echo "计算结果:$?"

输出:

root@iZbp12kno11kc9e34bktfaZ:~/shell_learn# sh base2.sh
这是一个基本文件
请输入a:1
请输入b:2
计算结果:3

五.特殊符号总结

这篇文章总结了Bash Shell中的常见特殊符号,譬如$(())、[[]]等等,可以参考下:
https://blog.youkuaiyun.com/x1269778817/article/details/46535729

Mixly/Arduino实战:WS2812点阵动态显示自定义图案与汉字 本文手把手教你使用Mixly和Arduino驱动WS2812点阵屏,实现自定义图案与汉字的动态显示。内容涵盖硬件连接、取模软件设置、高效数据处理技巧(巧用Excel)、Mixly图形化编程及Arduino代码解析,并深入探讨动态显示与滚动汉字原理,最后提供常见问题排查与性能优化心得,助你从零开始轻松玩转智能硬件。 阅读详情

相关推荐

ORACLE 12C RAC 启动报错,错误代码 ORA-27300,ORA-27301,ORA-27302

非一体机,12.2 无任何补丁,2套X86服务器,1节点集群异常(数据库正常,还有会话),2节点正常工作,负载不高,硬件、空间均未检查到异常,多路径存在掉线的情况,但通过Mulitpath -ll 看又是正常的,2根私有网络,其中一根不同,sysctl中配置的稀疏模式。5、再次加成crs alert ohas等集群日志,以及根据现象和错误再次到后台sr中查找可用信息,发现有一个类似问题,12.2 RAC 无任何补丁,报同样错误,解决方案为重启两套服务器。查询MOS文档以及后台文档,排除上面指出的问题。

weixin_42344665的博客 1465

eshell操作

eshell在windows上是个很好的工具,因为windows通常没有linux环境。eshell可以起到一个弥补作用,虽然不是全部功能。但是eshell也有一些和shell不一样的地方,这里总结下和shell不太一样的地方:清除bufferclear新版的emacs提供了clear函数,输入后直接清除buffer内容,不用写成lisp函数方式(clear)。光标移动shell中上下方向键都可以

Dean Chen的专栏 5034

麒麟v10(ky10.x86_64)升级——openssl-3.2.2、openssh-9.8p1

执行命令: make -j 4 && make install 这里要等待一段时间,等待编译完成。执行命令: ./configure --prefix=/usr/local/src/zlilb。执行命令: ./config --prefix=/usr/local/src/openssl。执行命令: make -j 4 && make test && make install。执行命令: make -j 4 && make install。执行命令: /etc/init.d/sshd restart。

X_yufei的博客 7429

Eshell

eshell 并不是一个真正的 shell,它只能在 emacs 上运行。尽管和 bash、zsh 相比,它的功能很有限,但对大多数人来说已经足够了。此外,由于 eshell 是 由 elisp 编写的,所以它还有其他 shell 所没有的一些特点,比如更强的扩展性和可以使用 e

Learn the hard way 3993

编译CycloneDDS和CycloneDDS-CXX踩过的坑——CMake Error at CMakeLists.txt:227 (find_package):

最近编译CycloneDDS和CycloneDDS-CXX踩了两个坑,花了不少时间。做个简单的记录,免得以后又踩到。注意:CycloneDDS-CXX编译依赖CycloneDDS,因此必须先编译CycloneDDS需要严格按照步骤进行,否则要入坑步骤如下,1先编译CycloneDDS以上步骤完成CycloneDDS的编译和安装,生成的bin include lib等位于install目录下面。

usstmiracle的博客 1900

Qt QWebEngine实战:手把手教你将Vue3/React前端项目嵌入C++桌面程序

本文详细介绍了如何利用Qt的QWebEngine模块将Vue3/React前端项目无缝嵌入C++桌面程序,实现现代前端框架与原生C++的深度整合。通过环境准备、项目架构设计、前端适配、Qt端集成、双向通信建立及性能优化等步骤,开发者可以高效构建兼具Web灵活性和本地系统能力的混合应用。

weixin_28736355的博客 390

Emacs中的shell--Eshell使用笔记

1 什么是Eshell? Eshell是Emacs完全用Elisp实现的类UNIX shell. 由于它完全是由Elisp实现的,因此它具有与Emacs相同的可移植性,而且它可以很自然的与Elisp代码相结合. 事实上,你完全可以在Eshell下运行lisp代码2 Eshell与普通shell有什么不同?Eshell支持输出重定向但不支持输入重定向Eshell没有job c...

weixin_34387468的博客 1408

【实用运维脚本】Windows 批量 TCP 端口检测(tcping 一键巡检)

摘要:本文介绍一款高效的Windows批量TCP端口检测脚本,适配tcpingv0.39工具,实现多服务器一键巡检。脚本具有进度可视化、双日志输出、自动容错等优势,支持注释行过滤和UTF-8编码。 使用仅需三步: 1)下载tcping工具 2)编辑目标列表 3)运行脚本即可自动检测并生成带编号的检测报告。 该方案解决了手动检测效率低、易遗漏的问题,特别适合日常运维中的端口连通性检查,实测稳定可靠,开箱即用。

蕲士|D365 & 服务器运维,心有东坡,行稳致远。 803

Emacs eshell的好处

一直在Linux下用shell,现在来谈谈eshell.eshell是完全用elisp编写的shell,所以和shell不一样。shell会创建子进程比如bash. 因此eshell的语法和bash/sh并不完全一样。当然大多数都差不多。eshell有几个优点1. 在windows操作系统下,有了eshell,可以方便的运行Linux风格的命令,不需要再安装别的东西. 当然各个平台行为一致也是优点

Dean Chen的专栏 8662

汽车IVI中控开发入门及进阶(47):CarPlay开发

车载信息娱乐(IVI)系统已经从仅仅播放音乐的设备发展成为现代车辆的核心部件。除了播放音乐,IVI系统还为驾驶员提供导航、通信、空调、电源配置、油耗性能、剩余行驶里程、节能建议和许多其他功能。​驾驶座逐渐变成了你家和工作场所之外的额外生活空间。2014年,苹果推出了Apple CarPlay,这是一款汽车界面,允许驾驶员使用iPhone应用程序和其他IVI功能,如苹果地图、Siri、苹果音乐、iMessage,并拨打电话。

码农17年的博客 1129

如何用libwebsocket库在stm32F407上实现websocket客户端?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1135

linux bash e,邪恶的 eshell

对于一个经常“被跨平台”的人来说,Windows 下没有一个好用的shell,不能不说是一个遗憾。虽然说 bash zsh 都有 windows的版本,但几乎一无是处……此处暂省略1000字,且不说应有尽没的功能,光是那速度就让人抓狂,动不动装死,让人想撞死,还不如 eshell来的机灵……等等,eshell 不就是天生跨平台的 shell 么?当然,要用 eshell 必需要有 emacs,因为...

weixin_34657323的博客 316

Android 12.0 kenel中修改rom系统内部存储的大小

在12.0的系统rom产品开发定制中,在对一些产品开发中的配置需求方面,由于在产品后续订单中,有些产品是出口的,但是硬件方面已经定板,时间比较仓促,所以 就需要软件方面在rom内部存储的大小方面作假,修改rom真实的大小容量,所以就需要在kenel驱动部分来修改这部分的值最好了,接下来分析下计算rom容量的 相关代码,然后做出相关的修改,来实现功能

安卓兼职framework和app工程师的博客 1678

Linux Bash Shell 快速上手 - 上篇

文章目录一.什么是Shell二.变量定义三.if语句四.循环操作五.数组 一.什么是Shell Shell的中文意识为“壳”,这层壳套在kernel(内核)之外,是用户与Linux 操作系统之间交互的一个命令解释器,是用户与Linux操作系统之间的桥梁。 Linux Shell 种类非常多, 常见的有: Bourne Shell ( /usr/bin/sh 或/bin/sh )、 Bourne ...

BoringError的博客 678

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Linux 当中 Shell 编程(超级详细快速入门上手到熟悉)

Shell被翻译为“壳”。在Linux内核外面包了一个壳。Shell是一种用于与操作系统进行交互的命令行解释器。它是一种脚本语言,可以通过编写一系列的命令和脚本来执行操作系统的功能和任务。我们在终端中编写的命令都是Shell命令。例如:ls、grep…等。Shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 Shell 来启动、挂起、停止甚至是编写一些程序。看一个示意图。

weixin_61635597的博客 2761

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Bash反弹shell

机器名称机器IP攻击机器实验靶机Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语 言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动 态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本 的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。python反弹shell介绍python2s.connect(("攻击机器IP",端口));机器名称。

qq_64177395的博客 1460

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Linux Shell Script脚本(bash)一篇快速上手入门

基本语法号前后不能有空格,在shell中无需指定变量类型。有空格的情况可以使用引号,例如。属于局部变量,子shell不可见。导出变量自定义的变量默认局部变量,但是可以通过export语句导出为全局变量。修改变量修改变量值只对变量所在的shell及子shell生效,也就是说子shell的修改不会对父shell造成影响。语法#action;] }注意必须先声明函数和,才能调用。因为shell是逐行运行。函数返回值通过。

两份雪糕的博客 1661

Bash vs Zsh:Linux Shell终极选择指南

还在纠结Linux默认shell?3分钟带你搞懂Bash/Zsh选型,读完即掌握: ✅ 5项核心指标横向对比 ✅ 3类用户场景化选择建议 ✅ 基于项目工具的无缝切换教程 ## 一、核心差异速览 | 特性 | Bash(Bourne Again Shell) | Zsh(Z Shell) | |-------------|-----------------------...

gitblog_00154的博客 1200

Linux下Bash Shell编程

Bash Shell Programming in Linux Linux下Bash Shell编程   Bash what? 进阶的内容是什么? Okay, I grant that this page mightrepresent a leap from the familiar to the alien without much warning. Here aresome expl

大数据之路-infotrim.cn 2905

python,shell,linux,bash概念的不同和对比联系

Linux是操作系统内核,Shell是与其交互的命令解释器,Bash是最常用的一种 Shell,Python是功能更强、可跨领域使用的通用编程语言。Shell 适合轻量级系统任务Python 适合更复杂、跨平台、高可维护性的自动化开发。

chao_789的博客 1094

Linux基础(十四)——BASH

在 Linux 中,Bash(Bourne Again Shell)是一种 Unix Shell,也是 Linux 系统的默认命令行解释器。Bash 是 GNU 项目开发的自由软件,旨在兼容传统的 Bourne Shell(/bin/sh),同时加入了更多高级功能和增强特性。Bash 提供了一个交互式环境,用户可以在其中执行命令、脚本和管理系统。硬件、核心与shell的关系:内核就是一套软件,为了内核的安全不能直接修改操作内核,所以shell就是内核与应用程序之间的桥梁。Fle。

qq_46146657的博客 4107

Linux之Shell脚本快速入门

快速上手

2401_86155536的博客 1156

linux -ksh,Linux Shell - bash & ksh

我知道shell有好多种.例如:TCSH SHELL . BASH SHELL 等.请问共有几种shell,他们都有什么区别?我的系统是RH9,用的是什么shell/谢谢!目前流行的Shell有ash, bash, ksh, csh, zsh等,你可以用下面的命令来查看你。bash(Bourne Again shell)是Linux中最常见的。常见的还有:csh(语法与C语言相近),pdksh(是...

weixin_29002595的博客 1367

【Linux】Shell基础-Bash基本功能

Shell基础(一)

watermelon_c的博客 1811

linux shell 脚本教程

查找字符串:用于查找字符的位置,输出结果为字符在字符串中所占的数据位置,如果查找多个字符,那哪个字母先出现就计算哪个,如下查找it中i和t两个字符,t先出现,输出为1。你可以直接在终端中使用此命令,但在本测试中,你将通过 shell 脚本运行此命令。如果你想从任何地方运行你的 bash 脚本,就像它是一个常规的 Linux 命令,需要将你的 shell 脚本的位置添加到 PATH 变量中。环境变量:所有的程序,包括shell启动的程序,都能访问环境变量,必要的时候shell脚本也可以定义环境变量。

9457

linux的shell简介bash的基本功能

1.shell是什么 1. Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至时编写一些程序。Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令 2.Shell分类 Bourne Shell:主文

zhaojianyin 5770
上一篇: Linux Bash Shell 快速上手 - 上篇
下一篇: 深入理解远程过程调用
BoringRong
BoringRong 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 2万+粉丝 386原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BoringRong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值