一、linux&shell
1、linux常用高级命令
(1) 查看内存:top
(2) 查看磁盘存储情况:df -h
(3) 查看磁盘IO读写:iotop
(4) 直接查看比较高的磁盘读写程序:iotop -o
(5) 查看端口号占用情况:netstat -tunlp | grep 端口号
(6) 查看报告系统运行市场及平均负载:uptime
(7) 查看进程:ps aux ;ps -ef
ps -ef和ps aux,这两者的输出结果差别不大,但展示风格不同。
aux是BSD风格,显示的项目有:USER , PID , %CPU , %MEM , VSZ , RSS , TTY , STAT , START , TIME , COMMAND。
而-ef是System V风格,显示的项目有:UID , PID , PPID , C , STIME , TTY , TIME , CMD。
2、脚本
(1) 启动、停止脚本
#!/bin/bash
case $1 in
"start")
for i in hadoop102 hadoop103 hadoop104
do
ssh $i "绝对路径"
done
;;
"stop")
for i in hadoop102 hadoop103 hadoop104
do
ssh $i "绝对路径"
done
;;
esac
(2) 分发、同步脚本
#!/bin/bash
pcount=$#
if((pcount == 0));then
echo no args;
exit;
fi
#希望将myscp /root/test1/a.txt
pname=$1
#fname a.txt
fname=`basename $pname`
echo "$fname"
#获取上级目录绝对路径
#pdir /root/test1
pdir=`cd -P $(dirname $pname);pwd`
user=`whoami`
for((host=12;host<=13;host++));do
echo "scp -r $pdir/$fname $user@hadoop$host:$pdir"
scp -r $pdir/$fname $user@hadoop$host:$pdir
done
(3) 数仓层级内部导入
ods->dwd->dws->ads
(4) 数仓与MySQL之间的导入导出
sqoop、datax
3、shell常用工具
awk、sed、cut、sort
4、shell中单引号和双引号的区别
(1) 单引号:'$time' 单引号内的变量不会被解析,直接输出$time
(2) 双引号:'$time' 会取出双引号内变量的值
(3) 嵌套时:" '$time' " 能取出变量的值
' " $time " ' 不能取出变量的值