~/shellscript/myscript
cd ~ 进入当前非root用户的家目录下 mkdir shellscript && cd shellscript vim myscript
#!/bin/bash
alias cls="clear"
alias flt="cd ~/floodlight/ && java -jar target/floodlight.jar"
alias sshxm="ssh -X mininet@192.168.56.101"
alias vimms="vim ~/shellscript/myscript"
alias catms="cat ~/shellscript/myscript"
alias stass="echo '$mypassword' | sudo -S sslocal -c /etc/shadowsocks.json -d start && exit"
alias stoss="echo '$mypassword' | sudo -S sslocal -c /etc/shadowsocks.json -d stop && exit"
alias staipt="sudo iptables -I OUTPUT -s 127.0.0.1 -p tcp --sport 1080"
alias showipt="sudo iptables -n -v -L -t filter |grep -i 'spt:1080' |awk -F' ' '{print $2}'"
alias stawf="echo '$mypassword' | sudo ap-hotspot start"
alias stowf="echo '$mypassword' | sudo ap-hotspot stop"
alias cman='LANG ="zh_CN.utf8" man'
alias gj="echo '$mypassword' | sudo -S shutdown -h now"
alias cnf="cd ~/floodlight/src/main/resources/ && cp floodlightdefault.properties.noforwarding floodlightdefault.properties && cd ~"
alias cff="cd ~/floodlight/src/main/resources/ && cp floodlightdefault.properties.forwarding floodlightdefault.properties && cd ~"
alias mapi="sudo firefox ~/mininet/doc/html/index.html"
mip="192.168.56.101"
# ubtip="192.168.56.103"
# 使用时,前面加$就可以了
# alias smctcrip="sudo mn --custom ~/topo-2sw-2host.py --topo mytopo --controller=remote,ip=192.168.56.103,port=6653"
# alias smctcrip2="sudo mn --custom ~/topo-2sw-2host.py --topo mytopo --controller=remote,ip=192.168.56.101,port=6653"
# alias fireidx="firefox http://localhost:8080/ui/index.html"
# alias suble="subl && exit"
# alias minie="virtualbox --startvm ~/VirtualBox\ VMs/Mininet_Alpha/Mininet_Alpha.vbox & exit"
chmod u+x myscript sudo vim /etc/bash.bashrc 最后一行加入. /home/coder352/shellscript/myscript 非交互式shell(脚本)默认是不支持alias的,但用source就可以了 这篇文章有详细介绍在shell脚本中使用alias
在Mininet中备份同样的script
ssh mininet@$mip "mkdir shellscript"
scp /home/helloworld/shellscript/myscript mininet@$mip :shellscript/myscript
ssh root@$mip 'echo ". /home/mininet/shellscript/myscript" >> /etc/bash.bashrc'
* ~/shellscript/private
cd ~/shellscript && vim private
#!/bin/bash
mypassword="your_password"
alias asd="xxx"
chmod u+x private sudo vim /etc/bash.bashrc 在myscript那行上面加入. /home/coder352/shellscript/private 并不好用
~/shellscript/bin/sudomn
这里的sudomn不能加到myxcript中,每次引入的时候会报错 cd ~/shellscript/bin && vim sudomn
#!/bin/bash
ip=`cat ~/mytmpip`
sudo mn --custom $1 --topo mytopo --controller=remote,ip=$ip ,port=6653 --link tc,bw=10 ,delay=1 ms
上面这个是Mininet中的,下面这个是Ubuntu中的,名字保持一致,原来在Ubuntu中也有sudomn,后来去掉了
#!/bin/bash
name=`basename $0 `
if [ $name = "sshxm" ]
then
ip=`/sbin/ifconfig -a |grep inet|grep -v 127.0 .0.1 |grep -v 192.168 .56.1 |grep -v inet6|awk '{print $2}' |tr -d "addr:" `
echo $ip >> mytmpip
scp mytmpip mininet@192.168 .56.101 :~/
rm mytmpip
ssh -X mininet@192.168 .56.101
elif [ $name = "scpm" ]
then
scp $1 mininet@192.168 .56.101 :~/
elif [ $name = "qkill" ]
then
ps -e | grep $1 | cut -c 1 -5 | xargs kill
fi
每次使用sshxm时,确保有线和无线只有一个连上了 chmod u+x sudomn ln -s sudomn scpm ln -s sudomn qkill sudo vim /etc/bash.bashrc 最后一行加入export PATH=/home/coder352/shellscript/bin:$PATH 用export命令查看是否设置好 在Mininet的虚拟机环境下有时候配置不了环境变量,可以直接把sudomn扔到/usr/loacl/bin目录下
在Mininet中备份同样的sudomn
ssh mininet@$mip "mkdir shellscript/bin"
scp /home/coder352/shellscript/bin/sudomn mininet@$mip :shellscript/bin/
ssh root@$mip 'echo "export PATH=/home/mininet/shellscript/bin:$PATH" >> /etc/bash.bashrc'
~/shellscript/bin/gult
#!/bin/bash
g++ $1 -o gl -l GL -l GLU -lglut
* ~/shellscript/bin/shutdown
#!/bin/bash
echo 'password' | sudo -S shutdown -h now
备份和恢复
home_backup.sh
cd ~/shellscript && vim home_backup.sh
#!/bin/bash
cd ~
ls -A |grep ^"\." > ~/my_backup/backup.list
for i in `cat ~/my_backup/backup.list`
do
cp -rf $i ~/my_backup/
done
exit 0
home_restore.sh
cd ~/shellscript && vim home_restore.sh
#!/bin/bash
cd ~/my_backup/
for i in `cat ~/my_backup/backup.list`
do
cp -rf $i ~/
done
exit 0
注意