linux shell编程1

本文详细介绍了Linux Shell编程的基础知识,包括printf的用法、echo与printf的区别、转义字符、彩色输出、变量与环境变量的操作、实战演练中的变量赋值、环境变量查看、颜色码的使用、字符串长度获取、检查是否为超级用户、数学计算以及文件描述符和重定向等。还探讨了数组、别名、获取终端信息、日期与延时操作以及调试脚本的技巧。
摘要由CSDN通过智能技术生成

第一章:

printf用法:

--------------------------

#!/bin/bash

#filename :printf.sh

printf "%-5s %-10s -4s\n" no name mask

printf "%-5s %-10s -4s\n" 1 mary 80.98

printf "%-5s %-10s -4s\n" 2 James 90.388

printf "%-5s %-10s -4s\n" 3 Jeffs 77.4848

 

---------------------------------

输出的方法:

----------------------------

echo hello world!

echo 'hello world!'

echo "hello woeld\!"#转义字符\将“!”转义

printf "hello world!"

----------------------------------------

 

 

补充内容:

1、转义字符

echo, printf 中-e -n等参数的功能

默认情况下,echo会将一个换行符追加到文本的尾部。可以使用-n来忽略结尾的换行符。echo也接受双引号字符串内的转义序列作为参数。如果需要使用转义序列,采用echo -e+转义序列字符串,如:

echo -e "1\t2\t3" --->1 2 3

--------------------------------------------------

2、彩色输出

颜色码:(彩色文本)

重置=0

黑色=30

红色=31

绿色=32

黄色=33

蓝色=34

洋红=35

青色=36

白色=37

如:

echo -e "\e[1;31m This is red text \e[0m"

#\e[1;31将字体颜色设为红色,\e[0m将颜色重置

 

颜色码:(彩色背景)

重置=0

黑色=40

红色=41

绿色=42

黄色=43

蓝色=44

洋红=45

青色=46

白色=47

如:

echo -e "\e[1;42m Green Background \e[0m"

----------------------------------------------------

1.3 变量与环境变量

 

env在终端中查看所有与此终端相关的环境变量对于每个进程,在其运行的环境变量中可以使用以下命令来查看:

cat /proc/$PID/environ

其中,将PID设置成相关进程的进程ID。

 

如,gedit应用程序正在运行获取gedit进程ID:

pgrep gedit ---->1234(一个整数)

cat /proc/1234/environ

----> .......................(环境变量)

格式化的输出:

cat /proc/1234/environ | tr '\0' '\n'

tr 替换‘\0’为‘\n’

------------------------------------------------------

1.3.2实战演练

赋值方式:var=value 如果value不包含任何空白字符(空格等),则不需要用引号饮用,反之必须。。

注:

var=value(赋值操作)

var = value (相等操作)

 

var='value'

echo $var

or echo ${var}

----------------------------------------------------

例:

#!/bin/bash

#filename:variables.sh

fruit=apple

count=5

echo "We have $count ${fruit}(s)"

 

环境变量是未在当前进程定义,而从父进程继承而来的变量。例如:

HTTP_PROXY=http://192.168.0.2:3128

export HTTP_PROXY

export用来设置环境变量。至此以后,当前shell脚本执行的任何程序都会继承这个变量。

可根据自己需要导出特定的变量,默认情况下,很多标准变量可供shell使用。

PATH为其中之一

echo $PATH

---->..........()

 

-----------------------------------------------------

PATH中若要增加一条路径:

export PATH="$PATH:/home/zko/bin"

也可以使用:

PATH="$PATH:/home/zko/bin"

export PATH

一般标准变量:HOME,PWD,USER,UID,SHELL

------------------------------------------------------

1.3.3补充内容

1、获取字符串的长度:

length=${#var}

如:

var=12345678909876543210

echo ${#var} --->20

-------------------------------------------------

2、识别当前的shell:

echo $SHELL ---->/bin/

一、实验目的 1.掌握在Linux系统下利用命令方式实现用户和组的管理; 2.掌握利用Linux-conf进行用户和组的管理; 3.理解文件权限 4.进行系统进程管理。 二、实验内容 1. 用户的管理  创建一个新用户user01,设置其主目录为/home/user01:#adduser –d /home/user01 -m user01  查看/etc/passwd文件的最后一行,看看是如何记录的。  查看文件/etc/shadow文件的最后一行,看看是如何记录的。  给用户user01设置密码:#passwd user01。  再次查看文件/etc/shadow文件的最后一行,看看有什么变化。  使用user01用户登录系统,看能否登录成功。。  锁定用户user01:#passwd -l user01。  查看文件/etc/shadow文件的最后一行,看看有什么变化。  再次使用user01用户登录系统,看能否登录成功。  解除对用户user01的锁定:#passwd -u user01  更改用户user01的帐户名为user02:#usermod –l user02 user01。  查看/etc/passwd文件的最后一行,看看有什么变化。  删除用户user02。userdel. 2. 组的管理  创建一个新组,stuff:#groupadd stuff。  查看/etc/group文件的最后一行,看看是如何设置的。  创建一个新帐户user02,并把他的起始组和附属组都设为stuff:#adduser –g stuff –G stuff user02。  查看/etc/group文件中的最后一行,看看有什么变化。  给组stuff设置组密码:#gpasswd stuff。  在组stuff中删除用户user02:#gpasswd –d user02 stuff。  再次查看/etc/group文件中的最后一行,看看有什么变化。  删除组stuff。groupdel 3. 用Linux-conf创建用户和组  进入X-Window图形界面。  打开控制面板,启动用户和组群管理子程序,在打开的界面中练习用户、组的设置。
前言 10 场景说明 11 基础知识简介 14 Linux 14 Linux产生与发展 14 Linux特点和优势 15 Shell 16 Shell脚本语言与编译型语言的差异 17 Shell分类 18 Shell使用 19 项目一 初识Linux Shell 20 [学习目标] 20 任务1.1 构建开发环境 22 任务1.2 vi/vim编辑器 33 1.2.1 vim使用实例 34 1.2.2 vim按键说明 36 任务1.3 Shell常用命令 41 1.3.1 基础命令 41 1.3.2 文件、目录操作命令 42 1.3.3 系统管理命令 52 1.3.4 关机/重启/退出 53 1.3.5 安装操作命令 53 1.3.6 用户操作命令 54 1.3.7 网络下载命令 55 1.3.8 服务操作命令 57 任务1.4 Shell脚本 58 1.4.1 第一个shell脚本:Hello World 58 1.4.2 脚本介绍 59 1.4.3 shell程序结构 59 1.4.4 shell脚本运行 60 任务1.5 Shell案例:打印有色彩的文本 61 任务1.6 Shell案例:图案打印 62 练习(每题10分,共计100分) 66 项目二 Shell变量 67 [学习目标] 67 任务2.1 Linux环境变量 68 2.1.1 查看环境变量 69 任务2.2 Shell变量 70 2.2.1 定义变量 70 2.2.2 使用变量 70 2.2.3 只读变量 71 2.2.4 删除变量 72 任务2.3 特殊符号 72 任务2.4 Shell案例:显示系统信息: 78 练习(每题12.5分,共计100分) 80 项目三 Shell传递参数 81 [学习目标] 81 任务3.1 Shell传递参数 82 任务3.2 Shell案例:参数比较 85 任务3.3Shell案例:通过参数描述变量 86 练习(前两题每题30分,第三题40分,共计100分) 87 项目四 Shell数组 89 [学习目标] 89 任务4.1 定义数组 90 任务4.2 使用数组 90 任务4.3 Shell案例:数组的使用 92 练习(100分) 95 项目五 Shell运算符 96 [学习目标] 96 任务5.1 Shell基本运算符 97 5.1.1 运算符 97 5.1.2 算术运算符 97 5.1.3 关系运算符 99 5.1.4 布尔运算符 101 5.1.5 逻辑运算符 103 5.1.6 字符串运算符 104 5.1.7 文件测试运算符 106 任务5.2 Shell案例:计算器 109 练习(每题25分,共计100分) 111 项目六 Shell命令输出 112 [学习目标] 112 任务6.1 Shell echo命令 113 任务6.2 Shell printf命令 116 任务6.3 Shell test命令 119 任务6.4 Shell案例:查看系统资源使用情况 122 练习(每题20分,共计100分) 125 项目七 Shell流程控制 126 [学习目标] 126 任务7.1 Shell流程控制 127 7.1.1 if 判断语句 127 7.1.2 for 循环语句 130 7.1.3 while 循环语句 131 7.1.4 until 循环语句 134 7.1.5 case多选语句 135 7.1.6 跳出循环体 137 任务7.2 Shell案例:重复执行命令和简单计算器 139 任务7.3 Shell案例:使用三种循环结构打印九九乘法表 141 练习(前两题每题30分,第三题40分,共计100分) 144 项目八 Shell函数 146 [学习目标] 146 任务8.1 Shell函数 147 8.1.1 Shell中函数的定义 147 8.1.2 函数参数 150 任务8.2 Shell案例 151 8.2.1 指定多个文件的行数 151 8.2.2 当前目录的所有文件 153 练习(每题50分,共计100分) 156 项目九 Shell输入/输出重定向 158 [学习目标] 158 任务9.1 linux文件描述符 159 任务9.2 Shell输入/输出重定向 160 9.2.1 输出重定向 160 9.2.2 输入重定向 163 9.2.3 重定向深入讲解 164 任务9.2 Shell案例:通过重定向测试批量添加ip 166 练习(每题25分,共计100分) 169 项目十 Shell文件包含 171 [学习目标] 171 任务10.1 Shell文件包含 172 任务10.2 Shell案例:查找最大文件 172 练习(每题50分,共计100分) 174 项目十一 Shell文本处理命令 175 [学习目标] 175 任务11.1 学习和使用grep 176 任务11.2 学习和使用sed 179 任务11.3 学习和使用cut 183 任务11.4 学习和使用awk 185 练习(第一题10分,第2-7每题15分,共计100分) 188 项目十二 Shell的调试 189 [学习目标] 189 任务12.1 使用trap命令 190 任务12.2 使用tee命令 192 任务12.3 使用“调试钩子” 193 任务12.4 使用Shell的执行选项 194 练习(每题50分,共计100分) 196 项目十三 Shell综合案例一(lnmp+wordpress) 197 [学习目标] 197 任务13.1 手动安装Linux Nginx Mysql PHP和WordPress 198 13.1.1 准备工作 198 13.1.2 安装Mysql5.6.29 199 13.1.3 安装PHP5.5.12 202 13.1.4 安装Nginx1.10 205 13.1.5 安装WordPress 206 13.1.6 启动网页 207 任务13.2 脚本安装Linux Nginx Mysql PHP 和WordPress 207 13.2.1 初始化安装脚本编写 207 13.2.2 Mysql安装脚本的编写 209 13.2.3 PHP安装脚本的编写 211 13.2.4 Nginx安装脚本的编写 213 13.2.5 WordPress安装脚本的编写 214 13.2.6 验证wordpress 216 练习(每题50分,共计100分) 218 项目十四 shell综合案例二(安装Openstack) 219 [学习目标] 219 任务14.1 手动安装Openstack 220 什么是Openstack 220 14.1.1基本环境准备 222 14.1.2 安装mysql数据库服务 225 14.1.3 安装keystone认证服务 226 14.1.4 安装glance镜像服务 230 14.1.5 安装nova计算服务 233 14.1.6 安装neutron网络服务 238 14.1.7 安装dashboard服务 248 任务14.2 脚本安装openstack 250 14.2.1 基本环境脚本的编写 255 14.2.2 mysql脚本的编写 256 14.2.3 keystone脚本的编写 258 14.2.4 glance脚本的编写 263 14.2.5 nova脚本的编写 266 14.2.6 neutron脚本的编写 270 14.2.7 dashboard脚本的编写 279 14.2.8 验证登录,使用openstack 280 附录Shell编码规范说明 295 1. 什么时候使用shell 295 2.Shell文件和解释器调用 295 3.环境 296 4.注释 296 5.格式 298 6.特性及错误 304 7.命名转换 308 8.调用命令 311
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值