Bash编程入门
admin
2023-07-29 10:00:12
0

一、编程语言分类

二、shell编程特性

三、bash配置文件profile&bashrc

四、面向对象和面向过程

一、编程语言分类:

1.编程语言分类:根据运行方式

编译运行:源代码-->编译器(编译)-->程序文件

运行速度快,但是拍错效率低

C语言:通过调用函数库,或者类库来完成

解释运行;源代码-->运行时启动解释器,由解释器边解释边运行

完全借助于外部的程序来完成

2.根据其编程过程功能的实现是调用库还是调用外部的程序文件:

shell脚本编程

利用系统上的命令及编程组件进行编程

完整编程:

利用库和编程组件进行编程

编程:过程式编程语言,面向对象的编程语言

程序=指令+数据

过程式:以指令为中心来组织代码,数据是服务于代码

//一步一步来,一个时间顺序

顺序执行

选择执行

循环执行

代表:C,bash,

对象式:以数据为中心来组织代码,围绕数据来组织指令

//根据不同的功能来实现

类:(class):实例化对象,method

    代表:java,C++,Python //C++和Python同时支持面向对象和过程

二、shell脚本编程:特性

过程式编程、解释执行依赖于外部程序文件运行

如何写shell脚本:

脚本文件的第一行:顶格:给出shebang,解释器路径,用于指明解释当前脚本的解释器程序文件

常见的解释器:

#!/bin/bash

#!/usr/bin/python

#!/usr/bin/perl

文本编辑器:

行编辑工具:sed

全屏编辑工具:vim,vi,nano

运行脚本:

1.赋予执行权限呢,并直接执行此程序

chmod +x a.sh

./a.sh

2.使用解释器运行

bash a.sh

注意:脚本中的空白行会被解释器忽略

 脚本中,除了shebang,余下的所有以#开头的行,都会被视为注释行

  //shell脚本是通过运行一个子shell进程中执行的

三、bash的配置文件

两类:

profile类:为交互式登录的shell进程提供配置

bashrc类:为非交互式登录的shell进程提供配置

登录类型:

交互式登录shell进程:

直接通过某终端输入账号和密码后登录打开的shell进程

使用su命令,su - USERNAME,或者使用su -l USERNAME执行的登录切换

非交互式的登录:

su USERNAME执行的登录切换

在图形界面下打开的终端:

运行脚本

profile类://登录的时候执行

全局:对所有用户都生效

/etc/profile

/etc/profile.d/*.sh

局部的:对单个用户生效

~/.bash_profile

功用:

1.用于定义环境变量

2.运行命令或者脚本

bashrc类://运行命令的时候使用

全局:对所有用户生效

/etc/bashrc

局部的:对单个用户生效

~/.bashrc

功用:

1.定义本地变量

2.定义命令别名

注意:仅仅管理员可以修改全局配置文件


交互式登录shell进程:

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

//假如冲突的话,后读取的生效

非交互式的登录shell进程:

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

命令行中定义的特性:例如变量和别名仅对当前shell进程的生命周期;

配置文件定义的特性,只对随后重新启动的shell进程有效

让通过配置文件定义的特性立即生效;

(1)通过命令行重复定义一次

(2)让shell进程重读配置文件

#source /PATH/FROM/CONF_FILE

. /PATH/FROM/CONF_FILE

~]#.  .bashrc //第一个 . 是引用,第二个是文件名


四、面向对象和面向过程

    面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 
    面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
    例如五子棋,面向过程的设计思路就是首先分析问题的步骤:
1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用分别的函数来实现,问题就解决了。
    
    而面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为 
1、黑白双方,这两方的行为是一模一样的,
2、棋盘系统,负责绘制画面,
3、规则系统,负责判定诸如犯规、输赢等。
    第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的i变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。

附件一:bashrc和profile的区别

bashrc是shell的环境配置文件

profile是登录系统用的配置文件

     让所有用户登录时都显示信息

vim /etc/profile.d/welcome.sh

echo "hello welcome"


相关内容

热门资讯

赖清德当众吃狗粮,郭正亮:他是... 赖清德昨天(3日)出席台北宠物用品展开幕典礼,顺便替家中两只宠物狗采购用品,期间有业者声称自家肉干无...
美大使:好失望,你们在中国肯定... 【文/观察者网 冯雪】据路透社7月3日报道,美国新任驻新西兰及多个太平洋岛国大使表示,确保获取库克群...
投资4000万游乐园被拆,原为... ▲游乐园已经变成一片废墟今年5月,贵州省毕节市七星关区政府项目公司被一游乐园投资方告上法庭。红星新闻...
欧洲人快热到裸奔了 最近有关欧洲气温的话题热度,都快赶上世界杯了,全球都在争论不休。无他。这个夏天,欧洲已经热疯了。法国...
免砸砖漏水维修电话 免砸砖漏水维修电话西安漏水维修电话【4000800692】,壁挂灶维修,地暖清洗,公司注册资本为30...
平板电脑变砖怎么办 当平板电脑变成砖头后,会发生如下情形:无法开机、黑屏、进入不了系统等问题。这时候,需要像一名修建筑工...
抛光砖和抛釉砖哪个更好,抛光砖... 抛光砖和抛釉砖是常见的瓷砖装饰材料,本文比较了它们的优缺点,并介绍了抛光砖的防滑处理方法。 抛...
抹灰的施工步骤及工艺是什么 1、基层清理方面的问题很重要,清理干净之后才可以进行抹灰。2、抹灰实际操作的过程中,从上到下的顺序非...
较详细的毛坯房装修流程(图文解... 毛坯房装修需要经过前期准备、水电改造和防水工程、装修装饰等多个步骤,需要仔细斟酌。同时,可以通过选择...
特朗普再遭“背刺”,又一前盟友... 美国《时代》周刊7月4日报道称,美国保守派评论员、前特朗普盟友塔克·卡尔森在与总统特朗普关系出现裂痕...