编程语言系列(六)--shell语言基础知识点总结

B shell与 C shell的区别 B shell与 C shell的区别 ; B shell的详解和C shell 的详解 立即下载


从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作
Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、Shell for Root(/sbin/sh),等等。不同的Shell语言的语法有所不同,所以不能交换使用。每种Shell都有其特色之处,基本上,掌握其中任何一种就足够了                          
由于易用和免费,Bash(Bourne Again Shell)在日常工作中被广泛使用;同时,Bash也是大多数Linux系统默认的Shell              
在一般情况下,人们并不区分 Bourne Shell和Bourne Again Shell,所以在一般的shell脚本文件开头,

#!/bin/sh 也可以改为#!/bin/bash    ????两者的差别和共同点 ??           
 
shell命令显示的文件类型:如: ps ,ls等显示的情况:
七种文件类型 :d 目录 , l 符号链接,s 套接字文件 ,b 块设备文件,c 字符设备文件,p 命名管道文件,- 普通文件

shell脚本中函数没有必要声明,但函数体的定义必须放在函数被执行语句的前面。


sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),
接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出
sed [options] 'command' file(s) 或者 sed [options] -f scriptfile file(s)

s/re/string  :s命令的使用模式,表示用string替换正则表达式re。
例如 :sed 's/My/You/g' datafile
#命令末端的g表示在行内进行全局替换,也就是说如果某行出现多个My,所有的My都被替换为You。

-i 参数 :直接在原文件上进行操作。如果不加-i参数,源文件不改变
  如:sed -i “s/My/You/” file.c  ,意思是将file.c文件里第一个匹配My替换为you。
my.* 表示my后面跟任意的字符(除换行符外)
^.*my 表示my前面跟任意字符(除换行符外)
  如:sed -i 's/bin\/gldcDaemon.*/bin\/gldcDaemon 2160 2160 1 0/g' init.rtd299xboard.rc
          bin/gldcDaemon 2160 2160 1 0 替换原来的bin/gldcDaemon开头的字符串
      sed -i 's/^.*EURASIA_3D_1080P.*/#EURASIA_3D_1080P=y/g' config.develop.android.jb.rtd299x.tv030.emmc.old


if [ -d /data/local/tmp ]; then        其中-d代表后面跟的是文件/data/local/tmp
   chown 2000:2000 /data/local/tmp
fi

if [ -e /data/realtek/noandroidrun ]; then  ,-e 文件存在  具体的if参数可以参考《shell经典教程》


command 1>./filename.txt 2>&1    执行command命令产生的所以log信息都会输出到文件filename.txt里面。 1代表标准输出stdout,2代表输出的警告或者错误信息stderr
2>&1表示输出的2信息会叠加到信息1中,不会覆盖(其中1系统默认)。如下:
make 1>./info.txt 2>&1  或者 make >./info.txt 2>&1

make >/dev/null 2>&1 这条命令的意思是将标准输出和错误输出全部重定向到/dev/null中,也就是将产生的所有信息丢弃
1. > :代表重定向到哪里,例如:echo “test ” > /home/test.txt
2. /dev/null :代表空设备文件
3. 2> :表示stderr标准错误
4. & :表示等同于的意思,2>&1,表示2的输出重定向等同于1
5. 1 :表示stdout标准输出,系统默认值是1,所以”>/dev/null”等同于 “1>/dev/null”


shell脚本中的命令,一行一行的形式,相当于手动输入一行一行命令
每一行命令直接的变量值不能共享。要一行执行多条命令,可用 分号;分开,或者用&&,||等符号

形式:命令1 && 命令2
&&左边的命令(命令1)返回真(即返回0,成功被执行)后,右边的命令(命令2)才能够被执行


参考教程:shell经典教程  

QT项目实战:如何在正点原子Linux开发板上集成CVR-100UC身份证阅读器(附完整代码) 本文详细介绍了在正点原子Linux开发板上集成CVR-100UC身份证阅读器的完整实战流程。内容涵盖驱动适配、库文件部署、QT项目框架搭建、核心功能封装以及界面集成,并提供了完整的代码示例,帮助开发者快速实现嵌入式环境下的身份证信息读取功能。 阅读详情

相关推荐

保姆级教程:在Ubuntu 20.04上从源码编译Apollo自动驾驶平台(含GPU环境配置)

本文提供了一份详细的Ubuntu 20.04上从源码编译Apollo自动驾驶平台的保姆级教程,包括GPU环境配置、Docker部署和编译构建等关键步骤。通过实战经验和避坑指南,帮助开发者高效完成Apollo平台的编译和验证,适用于自动驾驶技术研究和应用开发。

weixin_30876945的博客 408

登录后退出应用问题分析(jni libdvm )

有个应用再登录的时候突然退出,而应用说再其他平台上都是好的,所以是系统rom的问题.先看看log再说 native_eup( 4929): waitpid:return n=5143 status=00000b7f 10391 I/native_eup( 4929): child is stopped 10392 I/native_eup( 4929): cause by fatal si

smallmao的专栏 2530

别再到处找数据了!用Python+Tushare Pro免费获取A股行情、财务、龙虎榜数据(附完整代码)

本文详细介绍了如何使用Python和Tushare Pro免费获取A股行情、财务数据和龙虎榜数据,并构建本地金融数据仓库。通过完整的代码示例,帮助读者快速掌握金融数据接口的使用方法,提升量化分析效率。Tushare Pro作为免费、稳定的数据源,覆盖全面且API友好,是个人投资者的理想选择。

weixin_30596343的博客 617

工作遇到问题之解决方法

1. 当svn up时遇到“Skipped 'device/realtek/rtd299x_tv013/apps/apps_tclodm/PublicTv' -- Node remains in conflict ” 时,解决方法如下:    svn remove --force device/realtek/rtd299x_tv013/apps/apps_tclodm/PublicTv   

1990

如何搭建pikachu靶场

Pikachu靶场本地搭建指南 下载安装PHPStudy并启动Apache/MySQL服务 获取Pikachu靶场源码并解压到网站根目录 配置数据库连接信息(修改config.inc.php文件) 创建pikachu数据库(用户名/密码设为root) 访问http://localhost/pikachu测试功能 常见问题:数据库连接失败需检查服务状态和配置信息,页面报错需检查PHP版本兼容性。建议使用PHP7.3/7.4版本,在隔离环境中搭建使用。 (150字)

2401_85351702的博客 1276

NFS共享速度慢?麒麟系统性能调优5个关键参数实测对比

本文针对银河麒麟服务器系统上NFS共享速度慢的问题,通过实测对比分析了五个关键调优参数。重点探讨了rsize/wsize传输块大小、TCP/UDP协议选择、sync/async模式权衡等,并结合麒麟系统特性提供了具体的优化建议与配置示例,旨在帮助用户有效提升国产化环境下的文件共享性能。

weixin_29254029的博客 335

41.Shell脚本基本特点及运行方式

变量是程序中保存数据的内存空间,变量名代表内存地址,值可以变化。

40秒之后再笑吧 1038

Go语言爬虫:chromedp 的详细使用

chromedp 是 Go 语言中无头浏览器自动化的终极利器。它能驱动真实的 Chrome 浏览器,处理 JavaScript 渲染、复杂交互和反爬虫机制

数据知道的博客 4493

linux shell 点,主流linux shell的特点

Shell的概念最初是在Unix操作系统中形成和得到广泛应用的。Unix的Shell有很多种类,Linux系统继承了Unix系统中Shell的全部功能,现在默认使用的是bash。Shell具有如下突出特点:(1)把已有命令进行适当组合构成新的命令。(2)提供了文件名扩展字符(通配符,如* 、 ?、 [ ]),使得用单一的字符串可以匹配多个文件名,省去键入一长串文件名的麻烦。(3)可以直接使用She...

weixin_36385240的博客 983

LLC谐振变换器软启动,不只是“慢启动”,还是“智能启动”

LLC谐振变换器的软启动,不只是“慢慢来”,而是要在控制时序、限流、响应速度之间精妙权衡。而数字控制,特别是用查表法或混合信号法,为实现真正的“最佳轨迹”提供了可能。✨小Tips:如果你的系统成本敏感,选择查表法准没错;如果你的设计目标是超高速响应,那就上混合信号的高配方案!

weixin_43199439的博客 691

ardupilot SBUS输入捕获

本节主要记录ardupilot 的sbus 输入捕获功能。ardupilot 默认支持多种无线协议控制输入设备,比如常用的PPM,SBUS,IBUS,DSM,SUMD,SRXL等协议,本节主要讲解ardupilot 如何通过定时器的pwm输入捕获来获取sbus数据。

陌城烟雨 270

shell入门基础知识

、shell基础知识

weixin_39327556的博客 3021

AD22里面封装修改后,同步到PCB图里面

【摘要】本文介绍了Altium Designer 22中同步更新元件封装的三种方法:1)从PCB库直接更新:在PCB库面板右键选择"Update PCB With[封装名]";2)通过原理图标准更新:使用Design->Update PCB Document菜单;3)在PCB编辑器中验证更新:通过Tools->Update From PCB Libraries菜单。所有方法最终都需通过ECO(工程变更订单)确认变更,建议执行前仔细核对变更内容。这些方法适用于AD22及早期版本

whm128的博客 1762

Shell编程语言(一)

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

IT一股清流的博客 9756

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Shell编程语言

shell基础 一 编程与编程语言 Shell是一门编程语言,作为学习shell的开始,需要事先搞明白:编程的目的是什么?什么是编程语言?什么是编程? ​ 编程的目的: #计算机的发明,是为了用机器取代/解放人力,而编程的目的则是将人类的思想流程按照某种能够被计算机识别的表达方式传递给计算机,从而达到让计算机能够像人脑/电脑一样自动执行的效果。 ​ 什么是编程语言? #上面提及的能够被计算机所识别的表达方式即编程语言,语言是沟通的介质,而编程语言是程序员与计算机沟通的介质。在编程的世界

weixin_46837396的博客 420

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

编程语言与shell脚本

编程语言是指计算机能理解的语言,人类通过使用计算机语言可以给计算机批量下达任务,让其按照人类的思想去完成工作。程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言文件,运行时不需要重新翻译,直接使用编译的结果就行了。//脚本第一行, #!3、//以下内容是对脚本的基本信息的描述,大家可以根据实际情况尽可能的写详细一些,方便后续使用者。重复化、复杂化的工作,通过把工作的命令写成脚本,以后仅仅需要执行脚本就能完成这些工作。来吧,光说不练嘴把式,我们来看看如何书写一个脚本呢,写好一个脚本有哪些规范呢?

weixin_42421584的博客 980

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【Shell 脚本速成】01、编程语言与 Shell 脚本介绍

Shell 介绍!!!

GG Bond 的博客 957

编程语言shell

一: 基础知识。

一起学习吧 2050

死磕shell系列-shell介绍

一、什么是shell 在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件程序(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接受用户输入的命令行(命令名+参数),然后调用相应的应用程序在内核中执行。 shell之Linux系统关系图 同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控.

liangkk的博客 1943

六、Linux的Shell脚本编程

第六章:shell编程 1.1 shell的概念介绍 1.1.1 命令解释器 Shell是命令解释器(command interpreter),是Unix操作系统的用户接口,程序从用户接口得到输入信息,shell将用户程序及其输入翻译成操作系统内核(kernel)能够识别的指令,并且操作系统内核执行完将返回的输出通过shell再呈现给用户,下图所示用户、shell和操作系统的关系: 一个系统可以存在多个shell,可以通过cat /etc/shells命令查看系统中安装的shell。 .

程序猿的博客 9798

Shell知识点总结

第1章 Shell概述 Shell是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核 Shell还是一个功能强大的编程语言,易编写、易调试、灵活性强 Shell是一个基于Linux内核和应用程序之间的一个解析器 第2章 Shell解析器 Linux提供的Shell解析器有(cat /etc/shells):/bin/sh、/bin/bash、/bin/nologin、/bin/da...

serendipity 698

Shell 编程知识点集锦

可以使用 & 把一个程序的执行放入后台,但是当脚本运行到最后是不会等待这个进程的返回结果的,所以会直接结束脚本运行,该进程也会成为一个孤儿。解决方法是在脚本最后放“wait”。系统默认值是1,所以">/dev/null"等同于"1>/dev/null"。2>&1 接着,标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信喜到终端,说白了就是不显示任何信息。

Doublelv 的博客专栏。 2904

关于shell脚本的知识点总结

文章目录shell编程一、初识shellshell 定义shell的分类和切换使用场景shell 特性回顾bash 初始化二、shell 脚本规范三、变量的类型练习1练习2四、脚本运行创建bash脚本(shell脚本)bash脚本执行子shellbash 脚本测试五、变量置换命令替换变量替换变量替换-匹配截取basename & dirname六、shell编程-流程控制shell编程-条件结构shell分支if语句作业1shell 分支case语句七、shell编程-循环结构shell循环-fo.

彬彬的博客 1723

Linux Shell系列教程之(六)Shell数组

本文是Linux Shell系列教程的第(六)篇,更多shell教程请看:Linux Shell系列教程 Shell在编程方面非常强大,其数组功能也非常的完善,今天就为大家介绍下Shell数组的用法。 Shell支持一维数组(不支持多维数组),并且没有限定数组的大小。 类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值...

djaksj8721的博客 235

【自学笔记】Mac OS语言基础知识点总览-持续更新

提示:这里对文章进行总结:例如:以上就是今天要讲的内容,自学记录Mac OS语言基础知识点总览。

2301_78806917的博客 757

【Shell 系列教程】Shell printf 命令( 六)

printf 使用引用文本或空格分隔的参数,外面可以在 printf 中使用格式化字符串,还可以制定字符串的宽度、左右对齐方式等。%-10s 指一个宽度为 10 个字符(- 表示左对齐,没有则表示右对齐),任何字符都会被显示在 10 个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。%s %c %d %f 都是格式替代符,%s 输出一个字符串,%d 整型输出,%c 输出一个字符,%f 输出实数,以小数形式输出。%-4.2f 指格式化为小数,其中 .2 指保留2位小数。

DreamSun的博客 1091
上一篇: 编程语言系列(五)--python语言基础知识点总结
下一篇: 工作笔记之-svn 常用技巧及命令总结
杨毅
博客等级 码龄14年 26粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值