1. MySql数据库
1.1 使用MySql
连接到服务器:mysql -u root -p
![](https://i-blog.csdnimg.cn/blog_migrate/bf08b6b6f4d0d54fbeb8e8d3d29d4287.png)
mysql命令
mysql程序使用2种不同类型的命令:特殊的mysql命令和标准SQL语句。
mysql命令提示符中可以使用命令的完整形式或简形式,如status(或\s)
![](https://i-blog.csdnimg.cn/blog_migrate/d75c89aa465b87c245c42a5f0362a800.png)
mysql程序实现了MySQL服务器支持的所有标准SQL(Structured Query Language,结构化查询语言)命令。
![](https://i-blog.csdnimg.cn/blog_migrate/fe4534a8aecb01b1cfbe52e6b5ff91bf.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ea4f4b550b0ba9805e4af7ef312edb91.png)
创建数据库
![](https://i-blog.csdnimg.cn/blog_migrate/82810f16600d2348edf818cc9ca09c22.png)
创建用户账户
GRANT SELECT, INSERT, DELETE, UPDATE ONtest.* TO test IDENTIFIED by 'test';
该条语句允许用户查询数据库数据、插入新的数据记录以及删除和更新已有数据记录,若用户不存在,grant命令会创建,identified by 部分为新用户账户设定默认密码。
创建数据表
![](https://i-blog.csdnimg.cn/blog_migrate/dd0689becd7880401fd2f72b57560d50.png)
empid数据字段指定了数据约束,数据约束会限制输入什么类型数据可以创建一个幼小的记录
![](https://i-blog.csdnimg.cn/blog_migrate/f4509be2f2f87fc6c92571fa63688163.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5366f3ffd9832820eaf28cd70872efb2.png)
插入和删除数据
INSERT语句格式:
INSERT INTO table VALUES (...);
![](https://i-blog.csdnimg.cn/blog_migrate/a55dae4ae1bb60c5e267712f2aa05cdf.png)
DELETE语句格式:
DELETE FROM table;
该命令会删除该表中的所有记录,想要删除其中的指定数据行,必须用where子句。
![](https://i-blog.csdnimg.cn/blog_migrate/a53cc4ddbd44bce57df0014f60247120.png)
查询数据
SELECT语句格式:
SELECT datafields FROM table;
datafields参数是一个用逗号分开的数据字段名称列表,指明了希望查询返回的字段。默认情况下,SELECT语句会返回指定表中的所有记录。
常用的命令修饰符如下:
WHERE:显示符合特定条件的数据行子集。
ORDER BY:以指定顺序显示数据行。
LIMIT:只显示数据行的一个子集。
![](https://i-blog.csdnimg.cn/blog_migrate/506b2970d0ec35c702f336e007eb647f.png)
1.2 在脚本中使用数据库
登录到服务器
mysql程序使用$HOME/.my.cnf文件来读取特定的启动命令和设置,其中一项设置就是用户启动的mysql会话的默认密码。
向服务器发送命令
在和服务器建立连接后,就可以向数据库发送命令进行交互,有以下两种方法:
发送单个命令并退出;
发送多个命令。
发送单个命令示例如下,要使用-e选项。
![](https://i-blog.csdnimg.cn/blog_migrate/67edb07ea100a35a489c48fdf55f7b53.png)
若要发送多条SQL命令,可以使用文件重定向。下面的例子中shell会将EOF分隔符之间的多行内容重定向给mysql命令,mysql会执行这些命令。
![](https://i-blog.csdnimg.cn/blog_migrate/9f30f5b2f331dcbe58c4dce5190d7897.png)
格式化数据
提取数据库数据的第一步是将mysql命令的输出重定向到一个环境变量中,下面的例子中用到了2个参数,-B指定了mysql程序工作在批处理模块运行,-s用于禁止输出列标题和格式化符号。
![](https://i-blog.csdnimg.cn/blog_migrate/3883b9fd06b163e711442b793214d7f2.png)
mysql程序还支持另外一种叫作可扩展标记语言(Extensive Markup Language,XML)的流行格式。这种语言使用和HTML类似的标签来标识数据名和值。对于mysql程序可以使用-X命令行选项来输出。
![](https://i-blog.csdnimg.cn/blog_migrate/fbbd55f53bcebf54c36a8ca45c719142.png)
2. 使用Web
Lynx使用标准键盘按键浏览网页,链接会在Web页面上以高亮文本的形式出现,使用向右方向键可以跟随一个链接到下一个Web页面。Lynx程序还提供了一个功能,允许你将Web页面的文本内容转储到STDOUT中。
安装Lynx
sudo apt install lynx
lynx命令行
Web页面由3种类型的数据组成
HTTP头部
Cookie
3) HTML内容
Lynx程序支持三种不同的格式来查看Web页面实际的HTML内容:
在终端会话中利用curses图形库显示文本图形;
文本文件,文件内容是从Web页面中转储的原始数据;
3) 文本文件,文件内容是从Web页面中转储的原始HTML源码。
lynx命令的基本格式:lynxoptions URL,其中URL是你要连接的HTTP或HTTPS地址,options则是一个或多个选项。
Lynx配置文件
lynx配置文件默认情况下,位于/usr/local/lib/lynx.cfg,有许多Linux发行版将其改放到了/etc目录下(/etc/lynx.cfg)(Ubuntu 发行版将lynx.cfg放到了/etc/lynx-curl目录中)。
配置文件中条目的格式为:
PARAMETER:value
其中PARAMETER是参数的全名(通常都是用大写字母),value是跟参数关联的值。
注意:不能在命令行上设置的配置参数是代理服务器。
3. 使用电子邮件
用来从shell脚本中发送电子邮件的主要工具是Mailx程序。不仅可以用它交互地读取和发 送消息,还可以用命令行参数指定如何发送消息。
Mailx程序发送消息的命令行的格式为:
mail [-eIinv] [-a header] [-b addr] [-caddr] [-s subj] to-addr
mail命令行参数:
-a:指定额外的SMTP头部行
-b:给消息增加一个BCC:收件人
-c:给消息增加一个CC:收件人
-e:如果消息为空,不要发送消息
-i:忽略TTY中断信号
-I:强制Mailx以交互模式运行
-n:不要读取/etc/mail.rc启动文件
-s:指定一个主题行
-v:在终端上显示投递细节