mirror of https://github.com/fengyuhetao/shell.git
2016-05-18
parent
994371b765
commit
b3f56ab59f
|
@ -0,0 +1 @@
|
||||||
|
#!/bin/bash
|
|
@ -0,0 +1 @@
|
||||||
|
#!/bin/bash
|
|
@ -0,0 +1 @@
|
||||||
|
#!/bin/bash
|
|
@ -0,0 +1 @@
|
||||||
|
#!/bin/bash
|
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
for (( i=1; i<=4; i++ ))
|
||||||
|
do
|
||||||
|
touch $i.sh
|
||||||
|
chmod 764 $i.sh
|
||||||
|
echo "#!/bin/bash" > $i.sh
|
||||||
|
done
|
|
@ -0,0 +1,5 @@
|
||||||
|
This is the header line
|
||||||
|
This is the first data line
|
||||||
|
This is the data line
|
||||||
|
This is the second data line
|
||||||
|
line This is the last line
|
|
@ -0,0 +1,19 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
BEGIN {
|
||||||
|
print "The latest list of users and shells"
|
||||||
|
print "Userid Shell"
|
||||||
|
print "------ -----"
|
||||||
|
FS=":"
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
print $1 " " $7
|
||||||
|
}
|
||||||
|
|
||||||
|
END {
|
||||||
|
print "This concludes the listing"
|
||||||
|
}
|
||||||
|
|
||||||
|
#执行gawk命令截取/etc/passwd输出
|
||||||
|
#gawk -f gawk.sh /etc/passwd
|
|
@ -0,0 +1,2 @@
|
||||||
|
{ print $1 "'s home directory is " $6 }
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#向文件写入
|
||||||
|
sed '1,2w test1' test1
|
||||||
|
|
||||||
|
echo -e "next\n"
|
||||||
|
|
||||||
|
#从文件读取
|
||||||
|
sed '3r ./test' ./test
|
||||||
|
|
||||||
|
echo -e "next\n"
|
||||||
|
|
||||||
|
#从文件读取,并插入字符流
|
||||||
|
sed '/lazy/r test' test
|
||||||
|
|
||||||
|
#向数据流末尾添加数据
|
||||||
|
sed '$r test' test
|
||||||
|
|
||||||
|
echo -e "next1\n"
|
||||||
|
|
||||||
|
sed '/lazy/ {
|
||||||
|
r test
|
||||||
|
d
|
||||||
|
}' test
|
|
@ -0,0 +1,104 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#sed编辑器基础
|
||||||
|
|
||||||
|
#替换标记
|
||||||
|
sed 's/lazy/ht/' ./test
|
||||||
|
|
||||||
|
echo -e "next\n"
|
||||||
|
|
||||||
|
#可用的替换标记
|
||||||
|
#1.数字 表明新闻本将替换第几处模式匹配的地方
|
||||||
|
sed 's/lazy/ht/2' ./test
|
||||||
|
#2.g 表明新文件将会替换所有已有文本出现的地方
|
||||||
|
sed 's/lazy/ht/g' ./test
|
||||||
|
#3.p 表明原来行的内容要打印出来,替换后的
|
||||||
|
sed 's/lazy/ht/p' ./test
|
||||||
|
#4.w file 将替换的结果写到文件中
|
||||||
|
sed 's/lazy/ht/w test1' ./test
|
||||||
|
|
||||||
|
echo -e "next\n"
|
||||||
|
|
||||||
|
#替换字符
|
||||||
|
sed 's/\/bin\/bash/\/bin\/csh/' /etc/passwd
|
||||||
|
#或者
|
||||||
|
sed 's!/bin/bash!/bin/csh!' /etc/passwd
|
||||||
|
|
||||||
|
echo -e "next\n"
|
||||||
|
|
||||||
|
#使用地址
|
||||||
|
#1.数字方式的行寻址
|
||||||
|
sed '2s/lazy/cat/' ./test
|
||||||
|
sed '2,3s/lazy/cat/' ./test
|
||||||
|
sed '2,$s/lazy/cat/' ./test
|
||||||
|
#2.使用文本模式过滤器
|
||||||
|
sed '/tiandi/s/bash/csh/' /etc/passwd
|
||||||
|
|
||||||
|
echo -e "next\n"
|
||||||
|
|
||||||
|
#组合命令
|
||||||
|
sed '2{
|
||||||
|
s/fox/elephant/
|
||||||
|
s/dog/cat/
|
||||||
|
}' test
|
||||||
|
sed '2,${
|
||||||
|
s/fox/elephant/
|
||||||
|
s/dog/cat/
|
||||||
|
}' test
|
||||||
|
|
||||||
|
echo -e "next\n"
|
||||||
|
|
||||||
|
#删除行
|
||||||
|
sed '3d' ./test
|
||||||
|
sed '2,$d' ./test
|
||||||
|
sed '/number 1/d' ./test
|
||||||
|
#删除两个文本模式来删除某个范围的行,第一个开启删除功能,第二个关闭删除功能
|
||||||
|
sed '/1/,/3/d' ./test
|
||||||
|
|
||||||
|
echo -e "next\n"
|
||||||
|
|
||||||
|
#插入和附加文本
|
||||||
|
sed '3i\
|
||||||
|
This is an appended line.' ./test
|
||||||
|
|
||||||
|
sed '$a\
|
||||||
|
This is a new line of text.' ./test
|
||||||
|
|
||||||
|
#修改行
|
||||||
|
sed '3c\
|
||||||
|
This a changed line of text.' ./test
|
||||||
|
sed '/number 1/c\
|
||||||
|
This a changed line of text.' ./test
|
||||||
|
#替换两行文本
|
||||||
|
#sed '2,3c\
|
||||||
|
#This a changed line of text.' ./test
|
||||||
|
|
||||||
|
#转换命令,处理单个字符
|
||||||
|
#sed 'y/123/789/' ./test
|
||||||
|
|
||||||
|
echo -e "next\n"
|
||||||
|
|
||||||
|
#回顾打印
|
||||||
|
# p 打印文本行
|
||||||
|
# -n 禁止其他行,只打印包含匹配文本模式的行
|
||||||
|
sed -n '/number 3/p' ./test
|
||||||
|
|
||||||
|
#查看修改之前的行和修改之后的行
|
||||||
|
#sed -n '/3/{
|
||||||
|
#p
|
||||||
|
#s/line/test/p
|
||||||
|
#}' ./test
|
||||||
|
|
||||||
|
echo -e "next\n"
|
||||||
|
|
||||||
|
# 打印行号
|
||||||
|
sed '=' ./test
|
||||||
|
|
||||||
|
#打印指定的行和行号
|
||||||
|
#sed -n '/lazy/{
|
||||||
|
#=
|
||||||
|
#p
|
||||||
|
#}' ./test
|
||||||
|
|
||||||
|
#列出行 打印数据流中的文本和不可打印的ASCII字符,任何不可打印的字符都用它们的八进制值前加一个反斜线或标准C风格的命名法,比如用\t来代表制表符
|
||||||
|
sed -n 'l' ./test
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
dialog --title text --msgbox "This is a test" 10 20
|
|
@ -0,0 +1,36 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# using select in the menu
|
||||||
|
|
||||||
|
function diskspace {
|
||||||
|
clear
|
||||||
|
df -k
|
||||||
|
}
|
||||||
|
|
||||||
|
function whoseon {
|
||||||
|
clear
|
||||||
|
who
|
||||||
|
}
|
||||||
|
|
||||||
|
function menusage {
|
||||||
|
clear
|
||||||
|
cat /proc/meminfo
|
||||||
|
}
|
||||||
|
|
||||||
|
PS3="Enter option:"
|
||||||
|
select option in "Display disk space" "Display logged on users" "Display memory usage" "Exit program"
|
||||||
|
do
|
||||||
|
case $option in
|
||||||
|
"Exit program")
|
||||||
|
break;;
|
||||||
|
"Display disk space")
|
||||||
|
diskspace;;
|
||||||
|
"Display logged on users")
|
||||||
|
whoseon;;
|
||||||
|
"Display memory usage")
|
||||||
|
menusage;;
|
||||||
|
*)
|
||||||
|
clear
|
||||||
|
echo "Sorry, wrong selection";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
clear
|
|
@ -0,0 +1,49 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
function menu {
|
||||||
|
clear
|
||||||
|
echo
|
||||||
|
echo -e "\t\tSys Admin Menu\n"
|
||||||
|
echo -e "\t1. Display disk space"
|
||||||
|
echo -e "\t2. Display logged on users"
|
||||||
|
echo -e "\t3. Display memory usage"
|
||||||
|
echo -e "\t0. Exit program\n\n"
|
||||||
|
echo -en "\t\tEnter option:"
|
||||||
|
read -n 1 option
|
||||||
|
}
|
||||||
|
|
||||||
|
function diskspace {
|
||||||
|
clear
|
||||||
|
df -k
|
||||||
|
}
|
||||||
|
|
||||||
|
function whoseon {
|
||||||
|
clear
|
||||||
|
who
|
||||||
|
}
|
||||||
|
|
||||||
|
function menusage {
|
||||||
|
clear
|
||||||
|
cat /proc/meminfo
|
||||||
|
}
|
||||||
|
|
||||||
|
while [ 1 ]
|
||||||
|
do
|
||||||
|
menu
|
||||||
|
case $option in
|
||||||
|
0)
|
||||||
|
break;;
|
||||||
|
1)
|
||||||
|
diskspace;;
|
||||||
|
2)
|
||||||
|
whoseon;;
|
||||||
|
3)
|
||||||
|
menusage;;
|
||||||
|
*)
|
||||||
|
clear
|
||||||
|
echo "Sorry, wrong selection";;
|
||||||
|
esac
|
||||||
|
echo -en "\n\n\t\tHit any key to continue"
|
||||||
|
read -n 1 line
|
||||||
|
done
|
||||||
|
clear
|
|
@ -0,0 +1,47 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# using dialog to create a menu
|
||||||
|
|
||||||
|
temp=`mktemp -t test.XXXXXX`
|
||||||
|
temp2=`mktemp -t test2.XXXXXX`
|
||||||
|
|
||||||
|
function diskspace {
|
||||||
|
df -k > $temp
|
||||||
|
dialog --textbox $temp 20 60
|
||||||
|
}
|
||||||
|
|
||||||
|
function whoseon {
|
||||||
|
who > $temp
|
||||||
|
dialog --textbox $temp 20 50
|
||||||
|
}
|
||||||
|
|
||||||
|
function menusage {
|
||||||
|
cat /proc/meminfo > $temp
|
||||||
|
dialog --textbox $temp 20 50
|
||||||
|
}
|
||||||
|
|
||||||
|
while [ 1 ]
|
||||||
|
do
|
||||||
|
dialog --menu "Sys Admin Menu" 20 30 10 1 "Display disk space" 2 "Display users" 3 "Display memory usage" 0 "Exit" 2> $temp2
|
||||||
|
if [ $? -eq 1 ]
|
||||||
|
then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
selection=`cat $temp2`
|
||||||
|
|
||||||
|
case $selection in
|
||||||
|
1)
|
||||||
|
diskspace;;
|
||||||
|
2)
|
||||||
|
whoseon;;
|
||||||
|
3)
|
||||||
|
menusage;;
|
||||||
|
0)
|
||||||
|
break;;
|
||||||
|
*)
|
||||||
|
dialog --msgbox "Sorry,invalid selection" 10 30
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
rm -f $temp 2> /dev/null
|
||||||
|
rm -f $temp2 2> /dev/null
|
|
@ -0,0 +1,18 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# count number of files in your PATH
|
||||||
|
|
||||||
|
mypath=`echo $PATH | sed 's/:/ /g'`
|
||||||
|
count=0
|
||||||
|
for directory in $mypath
|
||||||
|
do
|
||||||
|
check=`ls $directory`
|
||||||
|
echo $check
|
||||||
|
for item in $check
|
||||||
|
do
|
||||||
|
count=$[ $count + 1 ]
|
||||||
|
done
|
||||||
|
echo "$directory - $count"
|
||||||
|
count=0
|
||||||
|
done
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#验证邮件
|
||||||
|
|
||||||
|
gawk --re-interval '/^([a-zA-Z0-9_\-\.\+]+)@([a-zA-Z0-9_\-\+]+)\.([a-zA-Z]{2,5})/{print $0}'
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue