您的位置:首页 > 运维架构 > Shell

Linux-shell脚本学习-1

2014-08-29 10:06 344 查看
cd -:回到上一次目录

cd ..:回到上一级目录

wc -l filename:统计文件行数

wc -w filename:统计文件单词数

wc -c filename:统计文件字符数

#管道(|)将一个命令的输出作为另一个命令的输入

grep 'a' test1.sh|wc -l :搜索文件test1.sh中含有a字符的行并输出行数

#重定向:将命令的结果输出到文件,而不是标准输出(屏幕)

>写入文件并覆盖旧文件

>>追加到文件尾部,保留旧文件内容

head -30000000 test.txt |tail -8000000 > a2200-3000

压缩和解压缩文件

#下面是以gzip格式压缩

tar -zcvf /home/lytest/test.tar.gz test2.sh test3.sh test2.sh

#解压缩

1)进入文件解压缩的目录

2)tar -zxvf test.tar.gz

远程创建目录文件夹

ssh bigdata007 mkdir -p /home/zjw/jdk1.7/jdk1.7.0_51

#条件语句

if ....; then

  ....

elif ....; then

  ....

else

  ....

fi

操作实例:

#!/bin/sh

if [ "$SHELL" = "/bin/bash" ]; then

 echo "your login shell is the bash (bourne again shell)"

else

 echo "your login shell is not bash but $SHELL"

fi

变量$SHELL包含了登录shell的名称,我们和/bin/bash进行了比较。

快捷操作符

熟悉C语言的朋友可能会很喜欢下面的表达式:

[ -f "/etc/shadow" ] && echo "This computer uses shadow passwors"

这里 && 就是一个快捷操作符,如果左边的表达式为真则执行右边的语句

您也可以认为是逻辑运算中的与操作。上例中表示如果/etc/shadow文件存在

则打印” This computer uses shadow passwors”。同样或操作(||)在shell编程中也是可用的。

#for后面必须是两对括号

#!/bin/bash

echo "Input a number n:"

read n :将键盘输入的值赋给n

s=0

for((i=1;i<n+1;i=i+1))

do

let s=$s+$i :赋值前面用let

done

echo "1+2+...+n=$s"

#shell脚本调试

最简单的方法是在怀疑有错误的地方echo输出变量值等信息

sh -n scriptname :输出脚本中的语法错误信息

sh -x scriptname :执行该脚本并显示所有变量的值

exit :退出调试

#运行shell脚本

sh xxx.sh 或者./xxx.sh

如果直接./xxx.sh不行的话,先运行chmod 777 xxx.sh

#输入一个数,求每位数和

#!/bin/bash

#qiu mei yi wei shu zi he

echo -n "Input a number n:" :参数-n的作用是不换行,echo默认是换行

read n

sum=0

len=$(echo $n|wc -c)

let len=$len-1 :赋值是前面加let,如果不加let的话,应是双括号,否则出错,该行可以替换为:len=$(($len-1))注意:len=$($len-1)运行出



for ((i=1;i<=$len;i++))

do

let sum=$sum+$(echo $n|cut -c $i) :同理len的赋值

done

echo "Sum of $n is $sum"

#转义字符反斜杠

echo "\"/home/lytest/test1.sh\""

运行结果:"/home/lytest/test1.sh"

#用mv命令改名

mv /home/zjw/spark/hadoop2 /home/zjw/spark/hadoop2-bak

#这样可以把hadoop2文件夹内的内容备份到-bak文件夹下

#查看文件夹大小

du -s /home/lytest/test //显示KB单位

du -sh /home/lytest/test //显示G/M单位
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: