Shell 教程
linux只用于运行和查看,具体的数据查找和处理通过shell脚本程序进行。不会直接使用linux处理数据。可以定义shell脚本是linux命令的结合
一、定义(简略看)
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
Shell 脚本
Shell 脚本(shell script),是一种为 shell 编写的脚本程序。
业界所说的 shell 通常都是指 shell 脚本,但shell 和 shell script 是两个不同的概念。
二、shell环境(简略看)
Shell 编程跟 JavaScript、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。
Linux 的 Shell 种类众多,常见的有:
Bourne Shell(/usr/bin/sh或/bin/sh)
Bourne Again Shell(/bin/bash)
C Shell(/usr/bin/csh)
K Shell(/usr/bin/ksh)
Shell for Root(/sbin/sh)
三、基本操作
1、创建一个打印一行文字的shell脚本
- 创建一个frog文件
touch frog.sh
vi frog.sh
- 按i编辑内容
#!/bin/sh
a='hellow world'
echo $a
(第一行指定了解释器
第三行打印)
- Esc+shift+zz退出。
- 运行脚本
sh frog.sh
2、启动hive
编辑frog.sh文件,dd清除相关内容,保留第一行指定编辑器。
#!/bin/sh
hive
退出并运行
sh frog.sh
3、查看hive数据库
编辑frog.sh文件,dd清除相关内容,保留第一行指定编辑器。
#!/bin/sh
hive -v -e"
show databases;
";
第三行为hive中的sql语句,展示数据库文件。
这样就可以不进入hive数据库直接运行.sh文件运行sql语句了,批量执行省时省力,实现数据库定时更新。
4、定向保存脚本结果
强制清除当前路径下的文件
rm -rf *
创建.sh文件
vi runshell.sh
#!/bin/sh
hive -v -e"
show databases;
";
运行的结果定向保存到日志文件
sh runshell.sh > runshell.log
查看.log文件
cat runshell.log
5、断连结果保存
脚本程序中所对应的hive数据库如果数据量特别大的情况下,有可能断开连接。
nohup sh runshell.sh >runshell.log 2>&1 &
"2>&1 &"标准错误输出保存到runshell.log中
- 运行
jobs
查看进程号
jobs -l
查看日志:
cat *.log