1、安装JDK及配置环境变量。
mkdir /usr/jave #创建java目录
tar -xf jdk-8u60-linux-x64.tar.gz -C /usr/java
vim /etc/profile.d/java.sh
#! /bin/bash
export JAVA_HOME=/usr/jave/jdk1.8.0_60/
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
source /etc//profile.d/java.sh #重新导入配置
java -version #查看Java版本
2、Shell脚本中,$0 $1 $$ $* $?分别代表了什么意思?
$0 脚本执行名称
$1 位置变量
$$ 程序进程号
$* 显示所有的位置变量
$? 检测上一条指令的结果, 0:正确 非0:错误
3、写一个脚本:显示出当前的脚本文件名和当前的系统时间。
#! /bin/bash
echo "当前的系统时间为: `date`"
echo "当前的脚本名为:$0"
4、已知目录/scripts目录,执行batch.sh脚本,实现在/scripts目录下创建一个one.txt,在one.txt文件中增加内容“Hello Shell”。
#! /bin/bash
path=/scripts
ls / | grep scripts &> /dev/null
if [ $? -ne 0 ] ;then
echo "scripts目录不存在"
mkdir /scripts
echo "已自动创建"
fi
cd $path
if [ $UID -ne 0 ] ;then
echo "权限不足"
exit 1
fi
echo "Hello Shell" > $path/one.txt
echo "已成功添加内容"
5、取出/etc/inittab文件的第6行;
#! /bin/bash
[ $UID -ne 0 ] && echo "Permission deried" && exit
read -p "请输入你要查看文件的绝对路径:" path
read -p "请输入你要查看第几行:" R
awk -F: "NR==$R {print}" $path
6、取出当前系统上所有用户的shell,要求,每种shell只显示一次,并且按顺序进行显示; 使用cut、sort结合管道实现
#! /bin/bash
if [ $UID -ne 0 ]; then
echo "Permission deried"
fi
echo "当前服务器的登录shell有:"
cut -d: -f 7 /etc/passwd |sort -u
7、如果/var/log/messages文件的行数大于100,就显示好大的文件
#! /bin/bash
if [ $UID -ne 0 ]; then
echo "Permission denied"
exit 1
fi
sum=`cat /var/log/messages | wc -l`
if [ $sum -le 100 ]; then
echo "文件不大"
else
echo "文件好大"
fi
8、显示/etc目录下所有以pa开头的文件,并统计其个数
#! /bin/bash
if [ $UID -ne 0 ]; then
echo "Permission denied"
fi
read -p "请输入要查找的路径:" path
find $path -maxdepth 1 -name 'pa*' -type f
sum=`find $path -maxdepth 1 -name "pa*" -type f | wc -l`
echo "sum is $sum"
9、如果用户hadoop不存在就添加,否则显示用户已存在
#! /bin/bash
if [ $UID -ne 0 ]; then
echo "Permission deried"
exit 1
fi
id hadoop &> /dev/null
if [ $? -eq 0 ]; then
echo "用户已存在"
exit
else
useradd hadoop
stty -echo
read -p "Please enter the password:" pass
echo $pass | passwd --stdin hadoop &> /dev/null
stty echo
echo Password set successfully
fi
10、编写一个 Shell 程序 test1,程序执行时从键盘读入一个目录名,然后 显示这个目录下所有文件的信息
#! /bin/bash
read -p "输入目录:" path
ls -l $path/
11、编写一个 Shell 程序 test2,从键盘读入 x、y 的值,然后做加法运算,最后输出结果
#! /bin/bash
read -p "Enter the first number:" A
[ -z $A ]&& echo "输入错误:输入为空"&& exit 1
expr $A + 1 &>/dev/null
if [ $? -ne 0 ];then
echo "输入错误,请输入数字"
exit 2
fi
read -p "Enter the second number:" B
[ -z $B ]&& echo "输入错误:输入为空"&& exit 1
expr $B + 1 &>/dev/null
if [ $? -ne 0 ];then
echo "输入错误,请输入数字"
exit 2
else
sum=$[$A+$B]
echo "sum is $sum"
fi