Linux 复习四
第四章 shell程序设计I-入门
一、shell脚本的基本概念
shell脚本(script)是一个可执行的纯文本文件,有多个shell命令组成。
命令的执行时从上而下、从左而右的分析和执行
命令、参数间的多个空白都会被忽略
空白行以及[tab]键所致的空白也会被忽略
读取到第一个[enter]符号即开始执行命令
如果脚本中需要换行则需用\[enter]转义
#是注释,任何加在#符号后的命令及文本全部被视为注释
#!用于指定本shell script使用的shell名称
shell脚本一般以.sh为后缀名
二、shell脚本的执行方法
1.直接命令行执行
必须拥有shell脚本文件的可读和可执行权限(rx)
路径要正确:a.绝对路径 /home/dmtsai/myscript.sh
b.相对路径 ./myscript.sh
c.通过变量PATH 将myscript.sh放在PATH指定的目录下
2.以bash进程执行
只要拥有shell脚本文件的可读权限(r)
# bash myscript.sh
或# sh myscript.sh
type:查看命令的类型 -t:会显示可能的三种情况:file---外部命令、alias-----命令的别名、builtin-----内置的命令功能
-a:将系统PATH定义的路径中所有含xxx名称的命令都列出来
echo、unset:变量的显示与设置
env、export:环境变量的相关操作
read:变量的输入
declare/typeset:数组与声明
三、脚本中变量的使用
1.变量的显示与设置
使用echo命令显示变量的值:
# echo $变量名
# echo ${变量名}
设置变量:# 变量名=变量值
取消变量:# unset 变量名
2.环境变量功能
env:查看环境变量
set:查看所有变量:包括环境变量和自定义变量(主要区别:作用域不用)
环境变量在整个bash运行过程中有效,自定义变量只在当前进程中有效
export:将自定义变量转化为环境变量
# export 变量名
3.从键盘读取变量值
read:从键盘读取变量值,和用户交互,在shell script中经常使用
# read [-pt] 变量名 -p:后面接提示语句
-t:后面接等待的秒数
4.声明变量类型
使用declare或typeset能声明变量的类型
# declare [-aixr] 变量名 -i:声明为整型
-x:声明为环境变量
四、数据流重定向和管道
1.数据流重定向
标准输入(stdin):代码为0,符号为<或<<
标准输出(stdout):代码为1,符号为>或>>
标准错误输出(stderr):代码为2,符号为2>或2>>
将数据从指定的流输入或输出,就称为数据重定向
标准输出流stdout默认情况下将数据输出到device
使用>将数据输出重定向到文件
>默认为覆盖文件内容,如果要追加则用>>
2>:已覆盖的方式将错误信息输出到指定文件或设备上
/dev/null:将错误信息忽略,及输出到黑洞
<:标准输入流默认从键盘输入
<<:用于设定结束输入的关键字
2.管道
管道命令的界定符号为“|”
管道命令仅会处理stdout,对stderr会忽略
管道命令必须要能够接收来自前一个命令的数据作为stdin
选取命令cut、grep
cut:将同一行的数据进行分解 -d:后面接分隔字符,与-f一起使用
-c:以字符的单位取出固定字符区间
-f:依据-d将一段信息分隔,-f指定取哪一段
cut是从一行中取出部分信息,grep是按条件取出某行
排序命令:sort、wc、uniq
sort:用于对输入内容进行排序
uniq:用于取出结果中的重复行
wc:用于统计字、字符、行 -l:仅列出行
3.双向重定向
tee:能将数据流同时输出到文件与屏幕 -a:以追加的方式将内容输出到文件
printf:文件的格式化输出命令
第五章 shell程序设计II-进阶
一、shell脚本的经典案例
二、结构化控制语句的使用
if-then语句
1.if [表达式]; then
语句
fi
2.if [表达式]; then
语句
else
语句
fi
3.if [表达式]; then
语句
elif
语句
else
语句
fi
case。。。esac语句
1.case $变量名 in
“变量值”)
语句
;;
“变量值”)
语句
;;
*)
语句
;;
esac
while循环
1.while [ 条件表达式 ]
do
语句
done
2.until [ 条件表达式 ]
do
语句
done
for循环
1.for 变量名 in value1 value2 value3
do
语句
done
2.for ((初始值;终止条件;执行步长))
do
语句
done
三、函数的使用
function 函数名()
{
程序段
}
#调用函数语法为:
函数名
四、脚本的调试
sh:支持对脚本的语法检查和调试
# sh [-nvx] scripts.sh
Linux 复习四的更多相关文章
- Linux下四款常见远程工具比较
摘要:Linux远程可不像Windows下那么方便,主要是连接的速度.显示的画质不能令人满意(延迟.撕裂).本文只是说一下我用过的四款远程工具.Anydesk官网:https://anydesk.co ...
- 学习linux/unix编程方法的建议,学习Linux的四个步骤(转)
解答:学习Linux的四个步骤假设你是计算机科班出身,计算机系的基本课程如数据结构.操作系统.体系结构.编译原理.计算机网络你全修过我想大概可以分为4个阶段,水平从低到高从安装使用=>linux ...
- linux复习
linux的特点 - 免费的/开源 - 支持多线程/多用户 - 安全性好 - 对内存和文件管理优越 关机命令 ...
- Linux 复习重点目录
Linux安全复习 一.Linux基本命令 1.文件管理命令 lvm 2.用户管理命令 3.网络管理命令 4.权限管理 普通权限和特殊权限 权限命令修改 5.服务命令 6.软件安装管理命令 yum安装 ...
- Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍
一.http_load程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把 ...
- Linux第四次学习笔记
程序的机器级表示 寻址方式的演变 DOS → 8086 → IA32 Inter处理器系列俗称x86,其演变过程(根据其所需要的晶体管数量来说明): 8086 → 80286 → i386 → i48 ...
- linux第四次读书笔记
第四章:进程调度 一.多任务 1.非抢占式多任务 进程会一直执行直到自己主动停止运行(这一步骤称为让步) 2.抢占式多任务 Linux/Unix使用的是抢占式的方式:强制的挂起进程的动作就叫做抢占.进 ...
- 【实践报告】Linux实践四
Linux内核分析 实践四——ELF文件格式分析 一.概述 1.ELF全称Executable and Linkable Format,可执行连接格式,ELF格式的文件用于存储Linux程序.ELF文 ...
- linux第四章笔记
第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间.进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统. 最大限度利用处理器时间的原则:只要有可以执行 ...
随机推荐
- ASP.NET给前端动态添加修改 CSS样式JS 标题 关键字(转载)
原文地址:http://www.cnblogs.com/xbhp/p/6392225.html 有很多网站读者能换自己喜欢的样式,还有一些网站想多站点共享后端代码而只动前段样式,可以采用动态替换CSS ...
- Ubuntu服务器WDCP可视化界面搭建注意
title: Ubuntu服务器WDCP可视化界面搭建注意 前两天心血来潮,研究了下服务器搭建与部署. 领了个免费体验3天的vps服务器进行了实操. 在安装WDCP的时候遇到了些问题,网上大部分对问题 ...
- centos 重装docker
docker应该是root用户来使用,因为他连接了底层!!!以下操作默认是root用户来操作的 停止所有正在运行的容器: docker stop $(docker ps -a -q) 删除所有的容器c ...
- Java多线程(五)停止线程 interrupt
调用interrupt方法仅仅是在当前线程中打了一个停止的标记,并不是真正停止线程. this.interrupted() :测试当前线程是否已经中断,执行后具有将状态标志清除为false的功能 is ...
- Linux C编程 GCC的使用
本篇文章面向一些会linux文件操作与vim基本命令,编程大佬请移步勿喷. gcc是默认安装的,但是其还缺少常用的头文件和库文件,所以还需要build-essential这个包,可以在联网状态下使用如 ...
- 如何在Ubuntu上安装Wine 2.6
Wine(Wine不是模拟器)是一种开源兼容层软件应用程序,可以让Linux和Unix用户通过Winelib软件库在他们的系统上运行Windows软件. sudo add-apt-repository ...
- linux学习之路7 linux下获取帮助
help 帮助 ls -h或者ls - -help man 最常用的帮助命令 man (+数字 )+命令 (数字代表文档帮助类型) man -k 关键字 可以用来查询包含该关键字的文档 info 与m ...
- RabbitMQ二:AMQP协议
参考这个:http://kb.cnblogs.com/page/73759/ 参考这个:http://www.cnblogs.com/charlesblc/p/6286875.html 写的挺好 Ra ...
- 总结MySQL中SQL语法的使用
--where子句操作符: where子句操作符 = 等于 <> 不等于(标准语法) != 不等于(非标准语法,可移植性差) < 小于 <= 小于等于 > 大于 > ...
- 修改 进程占用资源限制ulimit(限制服务器的链接数目)
ulimit用于限制shell启动进程所占用的资源.其中ulimit -n用于限制进程能够打开的文件描述符的最大数目.因为任何设备在linux下都是文件,通信的接口也有专门的接口文件负责,所以linu ...