Linux学习笔记之shell编程基础

编程语言: 机器语言、汇编语言 、高级语言

静态语言:编译性语言 ,特点: 强类型(变量在使用前,必须先声明,甚至还需要初始化);事先转换成可执行文件。包含语言如: C 、C++、JAVA、C#

动态语言:解释性语言 ,特点: 弱类型(变量用时声明,甚至不区分类型);边解释边执行。包含语言如: ASP、ASP.NET 、PHP 、SHELL 、Python 、PERL

编程能力:

面向过程 :Shell、C

面向对象:Python 、Perl 、JAVA 、C++

Bash :变量 类型

环境变量 :shell 及其子shell ,作为域为当前shell进程及其子进程

查看当前shell 中环境变量的方式:

1、#printenv

2、#env

3、#export

查看当前Shell 中变量

#set  VRNAME

撤销变量:

#unset   VRNAME

本地变量 (叫局部变量):

例:VRNAME=VALUE

#echo "There are song
${ANIMAIL}s"

位置变量:

例:$1, $2

shift  :轮换、轮替

特殊变量(系统变量  )

$? :上一个命令的执行状态返回值

$#:参数的个数

$*:参数的列表

[email protected]:参数的列表

程序执行,可能有两类返回值

程序执行结构

程序代码返回代码:

0:正确执行

1-255 :错误执行  1、2、127 为系统预留

输出重定向

> :输出重定向 ,覆盖输出

>>:追加输出

2>:重定向错误输出

2>>:追加错误输出

&>:重定向标准输出或错误输出至同一文件

脚本:命令的堆叠  ,按照实际需要,结合命令流程控制机制实现的源程序

格式:

#!/bin/bash

#注释行

语句

Bash 中如何实现条件判断

整数测试:

-eq :测试2个整数是否想等  比如 $A -eq $B

-ne  :测试2个整数是否不等,不等为真,相等为假

-gt :测试1个数是否大于另一个数

-lt:测试一个数是否小于另一个数

-ge :大于或等于

-le  :小于或等于

字符测试:

== :相等,两边需要有空格    示例:[ $A ==  $B ] 或 [ $A  =  $B ]

!= : 是否不等

>:大于

< :小于

-n string:测试指定字符串是否为空,空位真,不空为假

-z String :测试指定字符串是否不空,不空位真,空位假

小数保留位数: bc  scale=2   ,示例:echo "scale=2;111/22" | bc  或者 bc <<< "scale=2;111/22"

echo "scale=2;$1$2$3 " | bc

文件测试:

-e FILE :测试文件是否存在

-f FILE :测试是否为普通文件

-d FILE :测试指定路径是否为目录

-r:文件是否可读

-w:文件是否可写

-x:文件是否可执行

条件测试的表达式 L

[ expression ]

[[ expression ]]2

expression

命令间的逻辑关系:

逻辑与 :  
&&  :如果前面为真,则执行后面的命令

逻辑或:   ||  :如果前面条件为假,则执行后面的命令

组合条件测试:

-a :逻辑与

-o:逻辑或关系

!:非关系

bash
的配置文件

全局配置

/etc/profile  ,/etc/profile.d/*.sh ,/etc/bashrc

个人配置

~/.bash_profile ,~/.bashrc

profile类的文件

设定环境变量

登录运行命令或脚本

bash 类的文件

设定本地变量

定义命令别名

登录式shell 如何读取配置文件

/etc/profile --->
/etc/profile.d/*.sh ---> ~/.bash_profile -->~/.bashrc -->/etc/bashrc

非登录式shell

~/.bashrc
-->/etc/bashrc-->/etc/profile.d/*.sh

脚本在执行时会启动一个子shell进程

命令行钟启动的脚本会继承当前shell 环境变量

系统自动执行的脚本(非命令行启动)就需要自我定义要的环境变量

时间: 2025-01-02 14:53:53

Linux学习笔记之shell编程基础的相关文章

Linux学习笔记(17) Shell编程之基础

1. 正则表达式 (1) 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配.grep.awk.sed等命令可以支持正则表达式:通配符用来匹配符合条件的文件名,通配符是完全匹配.ls.find.cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了. (2) 基础正则表达式 元字符 作用 * 前一个字符匹配0次或任意多次 . 匹配除了换行符外任意一个字符 ^ 匹配行首,如:^hello会匹配以hello开头的行 $ 匹配行尾,如:hello$会匹配以hello结尾的

Linux学习8之Shell编程--基础正则表达式

1. 正则表达式与通配符 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配的.grep.awk.sed等命令可以支持正则表达式. 通配符是用来匹配符合条件的文件名,通配符是完全匹配的.ls.find.cp等这些命令不支持正则表达式,所有只能使用Shell自己的通配符来进行匹配. 2. 基础正则表达式 原文地址:https://www.cnblogs.com/anchun7080/p/10311257.html

Linux学习篇之shell编程基础

设置环境变量: ① export 变量名=变量值   #设置环境变量 ② 变量名=变量值    #设置环境变量 export 变量名 set   #显示当前shell所有变量 env   #查看环境变量 unset 变量名  #删除变量 常用环境变量: PATH变量:系统查找命令的路径 echo $PATH    #查看PATH的值 PATH="$PATH":/root/sh   #将/root/sh目录加到PATH变量中(临时生效) PS1变量:命令提示符变量 当前语系查询: loc

Linux学习笔记(18) Shell编程之流程控制

1. if语句 (1) 单分支if条件语句 格式为: # 注意条件判断式两端的空格if [ 条件判断式 ];then 程序员 fi 或者 if[ 条件判断式 ] then 程序 fi 例:判断分区使用率 #!/bin/bash #获取根分区的使用率 rate=$(df -h | grep "/dev/sda5" | awk '{print $5}' | cut -d "%" -f 1) if [ $rate -ge 10 ] then echo "/dev

Linux程序设计学习笔记----Socket网络编程基础之TCP/IP协议簇

转载请注明出处: ,谢谢! 内容提要 本节主要学习网络通信基础,主要涉及的内容是: TCP/IP协议簇基础:两个模型 IPv4协议基础:IP地址分类与表示,子网掩码等 IP地址转换:点分十进制\二进制 TCP/IP协议簇基础 OSI模型 我们知道计算机网络之中,有各种各样的设备,那么如何实现这些设备的通信呢? 显然是通过标准的通讯协议,但是,整个网络连接的过程相当复杂,包括硬件.软件数据封包与应用程序的互相链接等等,如果想要写一支将联网全部功能都串连在一块的程序,那么当某个小环节出现问题时,整只

java学习笔记14--多线程编程基础1

本文地址:http://www.cnblogs.com/archimedes/p/java-study-note14.html,转载请注明源地址. 多线程编程基础 多进程 一个独立程序的每一次运行称为一个进程,例如:用字处理软件编辑文稿时,同时打开mp3播放程序听音乐,这两个独立的程序在同时运行,称为两个进程 进程要占用相当一部分处理器时间和内存资源 进程具有独立的内存空间 通信很不方便,编程模型比较复杂 多线程 一个程序中多段代码同时并发执行,称为多线程,线程比进程开销小,协作和数据交换容易

Linux学习笔记(二)-Shell教程

1. Shell教程 1. Shell教程 Shell是一个用c语言编写的程序,是用户使用Linux的桥梁.Linux既是一种命令语言,又是一种程序设计语言. Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务.. shell脚本:Shell脚本是一种为了Shell编写的脚本程序. shell环境:Shell编程跟Java,Php编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以. 来自为知笔记(Wiz)

Linux学习之路-Shell编程

Shell的编程 Bash是用得最广泛的shell,是大多数Linux 系统的缺省 shell.Bourne Again shell (bash), 正如它的名字所暗示的,是Bourne shell 的扩展.bash 与Bourne shell 完全向后兼容,并且在 Bourne shell 的基础上增加和增强了很多特性.bash 也包含了很多 C 和 Korn shell 里的优点.bash 有很灵活和强大的编程接口,同时又有很友好的用户界面. 下面具体来介绍bash. Bash语法基本介绍

Linux(五)shell编程基础

一.Linux shell简介 1.shell概述 Shell 是用户与内核进行交互操作的一种接口,目前最流行的 Shell 称为 bash Shell          Shell 是一门编程语言<解释型的编程语言>,即 shell 脚本<就是在用 linux 的 shell 命令编程>,          Shell 是一种脚本语言,那么,就必须有解释器来执行这些脚本.          Unix/Linux 上常见的 Shell 脚本解释器有 bash.sh.csh.ksh