缘起
20190314 开始复习及学习吧;
张昊编著;
内容
目录 i(9/314)
全书 11 章
chap1 第 1 个 Shell 程序 1(13/334)
1.1、第一道菜
[echo.sh]
#!/bin/sh
cd /tmp
echo “hello world!”
(1)每一行代码是啥意思;(2)如何运行程序?
1.2、如何运行程序
1.2.1 选婿:位于第一行的 #!
匹配解释器。
解释器路径可以用 whereis bash 查。
自删除脚本
#!/bin/rm
# 运行这个脚本时,什么也不会发生,只是删自已
WHATEVER=65
echo “This line will never print!”
exit $WHATEVER #脚本不会在这退出
1.2.2 找茬:程序执行的差异
source echo.sh 时,改变了目录。
1.2.3 shell 的命令种类
(1)内建命令
(2)shell 函数
(3)外部命令
要知道 source 执行的差异,不会创建子进程,直接在父进程中执行。
1.3、Linux Shell 的变量
1.3.1、变量
测试全局变量和局部变量的适用范围
#!/bin/sh
num=123
func1()
{
num=321
echo $num
}
Func2()
{
local num=456 #局部变量
echo $num
}
echo $num
func1
echo $num
func2
echo $num
1.3.2、用 echo 输出变量
echo 掌握各种转义字符
1.3.3、环境变量的相关操作
export 命令
bash 的启动文件 / 登出文件
/etc/profile
/etc/bashrc
$HOME/.bash_profile
$HOME/.bashrc
$HOME/.bash_logout
unset 命令
env 命令
1.3.4、shell 中的一些常用环境变量
1.4、Linux Shell 是解释型语言
1.4.1、编译型语言和解释型语言
1.4.2、Linux Shell 编程的优势
1.5、小结
chap2 shell 编程基础 15(27/334)
2.1、向脚本传递参数
2.1.1、Shell 脚本的参数
Shell 编程中的函数
testfunc()
{
echo “$# parameters”;
echo “$@”;
}
shell 编程中参数引用
0,1,2…
*
@
#
$
!
?
–
在
2.1.2、参数的用途
[ps.sh]
#! /bin/sh
ps -eLf | grep $1
mv 和 mkdir 命令
2.2、I/ O 重定向
2.2.1、标准输入、标准输出与标准错误
cat 命令后面的主要参数
2.2.2、管道与重定向
>、<、>>、|
head 命令
2.2.3、文件描述符
2.2.4、特殊文件的妙用
/dev/null
/dev/zero
/dev/tty
read 命令,我基本没在命令中用过,最多编程中有用
2.3、基本文本检索
grep 相关命令
2.4、Unix/Linux 系统的设计与 shell 编程
2.4.1、一切皆文件
Linux 文件的后缀名
Linux 文件类型
ls 命令
2.4.2、UNIX 编程的基本原则
2.5、小结
chap3 编程的基本元素 39(51/334)
3.1、再识变量
收获
履历
20190314 过了一遍 chap1 和 2,还是有一些知识点不知道的。
shell 中的参数引用就不熟。