diff --git a/Day31-35/31-35.玩转Linux操作系统.md b/Day31-35/31-35.玩转Linux操作系统.md index 2e319f0..c519043 100644 --- a/Day31-35/31-35.玩转Linux操作系统.md +++ b/Day31-35/31-35.玩转Linux操作系统.md @@ -26,20 +26,12 @@ 3. 1969年:MULTICS项目失败,Ken Tompson赋闲在家,为了玩“Space Travel”游戏用汇编语言在当时已经被淘汰的PDP-7上开发了Unics。 - ![](./res/ken_young.jpg) - - ![](./res/pdp-7.png) - > 注:很难想象,Unix这么伟大的系统,居然是一个赋闲在家的程序员(关键是老婆回娘家还带上了孩子)在一台被淘汰的设备上为了玩游戏开发出来的。 4. 1970年~1971年:Ken Tompson和Dennis Ritchie用B语言在PDP-11上重写了Unics,并在Brian Kernighan的建议下将其更名为Unix。 - ![](./res/dmr.png) - ![](./res/ken-and-dennis-pdp-11.png) - ![](./res/pdp-11.jpg) - 5. 1972年~1973年:Dennis Ritchie发明了C语言来取代可移植性较差的B语言,并开启了用C语言重写Unix的工作。 6. 1974年:Unix推出了里程碑意义的第5版,几乎完全用C语言来实现。 @@ -1768,6 +1760,93 @@ build environment: key semid owner perms nsems ``` +### Shell编程 + +之前我们提到过,Shell是一个连接用户和操作系统的应用程序,它提供了人机交互的界面(接口),用户通过这个界面访问操作系统内核的服务。Shell脚本是一种为Shell编写的脚本程序,我们可以通过Shell脚本来进行系统管理,同时也可以通过它进行文件操作。总之,编写Shell脚本对于使用Linux系统的人来说,应该是一项标配技能。 + +互联网上有大量关于Shell脚本的相关知识,我不打算再此对Shell脚本做一个全面系统的讲解,我们通过下面的代码来感性的认识下Shell脚本就行了。 + +例子1:输入两个整数m和n,计算从m到n的整数求和的结果。 + +```Shell +#!/usr/bin/bash +printf 'm = ' +read m +printf 'n = ' +read n +a=$m +sum=0 +while [ $a -le $n ] +do + sum=$[ sum + a ] + a=$[ a + 1 ] +done +echo '结果: '$sum +``` + +例子2:自动创建文件夹和指定数量的文件。 + +```Shell +#!/usr/bin/bash +printf '输入文件名: ' +read file +printf '输入文件数量(<1000): ' +read num +if [ $num -ge 1000 ] +then + echo '文件数量不能超过1000' +else + if [ -e $dir -a -d $dir ] + then + rm -rf $dir + else + if [ -e $dir -a -f $dir ] + then + rm -f $dir + fi + fi + mkdir -p $dir + index=1 + while [ $index -le $num ] + do + if [ $index -lt 10 ] + then + pre='00' + elif [ $index -lt 100 ] + then + pre='0' + else + pre='' + fi + touch $dir'/'$file'_'$pre$index + index=$[ index + 1 ] + done +fi +``` + +例子3:自动安装指定版本的Redis。 + +```Shell +#!/usr/bin/bash +install_redis() { + if ! which redis-server > /dev/null + then + cd /root + wget $1$2'.tar.gz' >> install.log + gunzip /root/$2'.tar.gz' + tar -xf /root/$2'.tar' + cd /root/$2 + make >> install.log + make install >> install.log + echo '安装完成' + else + echo '已经安装过Redis' + fi +} + +install_redis 'http://download.redis.io/releases/' $1 +``` + ### 相关资源 1. Linux命令行常用快捷键 diff --git a/Day36-40/36-38.关系型数据库MySQL.md b/Day36-40/36-38.关系型数据库MySQL.md index 9d53f6c..2e71e21 100644 --- a/Day36-40/36-38.关系型数据库MySQL.md +++ b/Day36-40/36-38.关系型数据库MySQL.md @@ -16,7 +16,10 @@ - 编程语言:结构化查询语言(SQL)。 -4. E-R图。 +4. E-R图 / 概念模型图。 + + ![](./res/concept-model-graph.png) + - 实体 - 矩形框 - 属性 - 椭圆框 - 关系 - 菱形框 @@ -165,9 +168,10 @@ ? longblob; ``` - ### SQL详解 +#### 基本操作 + 1. DDL ```SQL @@ -419,6 +423,12 @@ revoke insert, delete, update on school.* from 'hellokitty'@'%'; ``` +#### 视图 + +#### 索引 + +#### 过程 + ### 相关知识 #### 范式理论 - 设计二维表的指导思想 @@ -430,15 +440,22 @@ #### 数据完整性 1. 实体完整性 - 每个实体都是独一无二的 + - 主键(primary key) / 唯一约束 / 唯一索引(unique) 2. 引用完整性(参照完整性)- 关系中不允许引用不存在的实体 + - 外键(foreign key) 3. 域完整性 - 数据是有效的 - 数据类型及长度 + - 非空约束(not null) + - 默认值约束(default) + - 检查约束(check) + > 说明:在MySQL数据库中,检查约束并不起作用。 + #### 数据一致性 1. 事务:一系列对数据库进行读/写的操作。 diff --git a/Day36-40/res/concept-model-graph.png b/Day36-40/res/concept-model-graph.png new file mode 100644 index 0000000..2b93a21 Binary files /dev/null and b/Day36-40/res/concept-model-graph.png differ diff --git a/玩转PyCharm.md b/玩转PyCharm.md index 1446863..cf74f5d 100644 --- a/玩转PyCharm.md +++ b/玩转PyCharm.md @@ -1,6 +1,6 @@ ## 玩转PyCharm -PyCharm是由JetBrains公司开发的提供给Python专业的开发者的一个集成开发环境,它最大的优点是能够大大提升Python开发者的工作效率,为开发者集成了很多用起来非常顺手的功能,包括代码调试、高亮语法、代码跳转、智能提示、自动补全、单元测试、版本控制等等。此外,PyCharm还提供了对一些高级功能的支持,包括支持基于Django框架的Web开发、。 +PyCharm是由JetBrains公司开发的提供给Python专业的开发者的一个集成开发环境,它最大的优点是能够大大提升Python开发者的工作效率,为开发者集成了很多用起来非常顺手的功能,包括代码调试、高亮语法、代码跳转、智能提示、自动补全、单元测试、版本控制等等。此外,PyCharm还提供了对一些高级功能的支持,包括支持基于Django框架的Web开发。 ### PyCharm的安装