shell学习笔记

简介:

获取列用awk,cut。

获取行用sed。


查看某一行:

1
sed  -n  '1,1p'  test .txt


查看文件a.txt的第190行到196行:

1
sed  -n  '190,196p'  test .txt



前几年学习shell留下来的,可惜的是不全了。


判断网站目录文件或者linux系统重要文件是否被篡改,被黑客攻击。

首先记录文件原dm5

创建10个测试文件

touch{1..10}.log

md5sum/tmp/* >/home/darren/source.log  生成源文件

md5sum –c /home/darren/source.log  检查文件是否被篡改。

 

脚本实现:

#/bin/sh

[ ! –f /home/Darren/source.log ] && md5sum/tmp/*>source.log

md5sum -c /home/darren/source.log | grep -i FAILED >error.log

if [cat error.log | wc –l –ge 1 ] then

 echo “cat error.log”

fi

---------------------------------------------------------------

#!/bin/sh

find /etc/ -type f –name “*” –exec md5sum {} >/home/darren/source.log\;

 

echo –e “\n”避免交互的用法

 

 

 

-z

检测字符串长度是否为0,为0返回 true

-n

检测字符串长度是否为0,不为0返回 true

str

检测字符串是否为空,不为空返回 true

 

打印hosts ip地址对应的域名。

#!/bin/sh

read  -p "please in putip address:" ip

[ -n "`grep "$ip" /etc/hosts`" ] &&echo "the ip address:`grep "$ip"

 /etc/hosts | awk '{print$2}'`"

 

shell颜色定义:

black="\033[30m

red=\033[31m

green=\033[32m

yellow=\033[33m

blue=\033[34m

zi=\033[35m

tianlan=\033[36m

whit=\033[37m

res=\033[0m

列子:echo -e "\033[33m 黄色字 \033[0m"

 

输入名字和颜色,输出名字对应的颜色:            

#!/bin/sh

red="\033[31m"

green="\033[32m"

yellow="\033[33m"

blue="\033[34m"

zi="\033[35m"

res="\033[0m"

if [ $#-ne 2 ];then

   echo "usg red|yellow|green|blue"

#read-p "please input name and color:" name color

fi

case $2in

yellow)

echo -e"$yellow $1 $res"

;;

green)

echo -e"$green $1 $res"

;;

*)

echo -e"$zi $1 $res"

;;

esac

 

函数:

例一:

darren() {

echo “Iam linux engineer!”

}

darren

 

例二:定义一个函数库,然后用另一个脚本执行函数库。

vi /darren/scripts/fucktions.sh

#/bin/sh

darren() {

echo “Iam linux engineer!”

}

------------------------------------------

#/bin/sh

. /darren/scripts/fucktions.sh

darren

 

 

 

jobs查看后台正在运行的程序。

fg 1 
把后台运行的程序在CRT中执行,如果关闭CRT或者断网,则程序执行失败。

bg   
放到后台执行。

 

 

生成随机数密码的方式:

 

echo $RANDOM

$random | md5sum

$random| md5sum | cut -c 10-15

$(date+%N%t)

$random$(date+%N%t) | md5sum     #常用方法

opensslrand -base64 8

 

 

shell非交互式:

echotest:123456 | chpasswd

echo'123456'| passwd --stdin test

 

breakcontinueexit

 

设置脚本开机启动:chkconfig –list

脚本文件开头需要加上以下两行,代表运行级别、85代表开机执行顺序、15代表关机执行顺序。

#chkconfig: - 85 15
# description: description for the service

把脚本名字复制到/etc/init.d/xxx

chmod755 /etc/init.d/xxx

chkconfig–add xxx

chkconfig–list | grep xxx

chkconfigxxx on 或者chkconfig –leve 35 xxx on

 

 

echo –n 不换行

\n 换行

echo –e 执行有特殊含义的命令。

 

锁定文件 chattr +i /etc/passwd

解锁文件 chattr –i /etc/passwd

 

 

 

 

 

数组:

darren=(12 3)      创建数组名

echo${#darren[@]} 查看数组的长度,或echo {#darren[*]}

echo ${darren[0]}   取数组的第一个元素。

echo ${darren[1]}   取数组的第二个元素。 

echo ${darren[2]}   取数组的第三个元素。

echo ${darren[*]}   取整个数组的元素。

echo ${darren[@]}   取整个数组的元素。

 

给数组赋值:

darren[0]=5把第一个元素赋值为5

echo${darren[0]}

unset darren   删除整个数组。

unset darren[0]删除单个数组。

echo${darren[@]:3:2}  3个元素开始取2

echo ${darren[@]/3/5}3换成5

echo ${darren[@]/oldboy/new}oldboy换成new

Darren1=(${darren[@]/oldboy/new})改变数组使生效

定义数组的第二种方式:

darren=([1]=one[2]=two [3]=three)

 

定义数组的第三种方式:

darren[1]=adarren[2]=b darren[3]=c

 

工作中常用方法:

darren=($(ls /tmp))

echo${darren[@]}

 

数组的脚本:

#!/bin/sh

darren=(

darren1

darren2

darren3

darren4

darren5

)

for((i=0 ;i<${#darren[@]};i++))

do

echo $i${darren[$i]}

done

本文转自 王家东哥 51CTO博客,原文链接:http://blog.51cto.com/xiaodongge/1901342

相关文章
|
4月前
|
Shell Linux C++
Linux C/C++ 开发(学习笔记二):Shell脚本编程案例
Linux C/C++ 开发(学习笔记二):Shell脚本编程案例
44 0
|
4月前
|
Java Shell Linux
Shell编程 学习笔记
Shell编程 学习笔记
69 1
|
5月前
|
Shell Linux Perl
shell 学习笔记
shell 学习笔记
51 1
|
Java 大数据 Shell
Azkaban--使用实战--shell、command 调度 | 学习笔记
快速学习 Azkaban--使用实战--shell、command 调度
673 0
Azkaban--使用实战--shell、command 调度 | 学习笔记
|
12月前
|
Shell 开发工具 Perl
shell学习笔记
shell学习笔记
|
SQL Shell PHP
某教程学习笔记(一):19、任意文件上传和sql语句拿shell
某教程学习笔记(一):19、任意文件上传和sql语句拿shell
80 0
某教程学习笔记(一):19、任意文件上传和sql语句拿shell
|
运维 Java Shell
Linux Shell 训练营 Day3|学习笔记
快速学习 Linux Shell 训练营 Day3。
128 0
Linux Shell 训练营 Day3|学习笔记
|
NoSQL JavaScript 前端开发
Shell 链接&amp;Compass 使用 | 学习笔记
快速学习 Shell 链接&amp;Compass 使用
150 0
Shell 链接&amp;Compass 使用 | 学习笔记
|
SQL 大数据 Shell
Shell 命令行--内外部参数 | 学习笔记
快速学习 Shell 命令行--内外部参数
177 0
|
SQL XML 数据可视化
集成 Oozie 服务&amp;调度 Shell 程序 | 学习笔记
快速学习 集成 Oozie 服务&amp;调度 Shell 程序
103 0
集成 Oozie 服务&amp;调度 Shell 程序 | 学习笔记