码迷,mamicode.com
首页 > 系统相关 > 详细

linux编写可运行的shell脚本并在其他目录创建ln连接与设置开机启动

时间:2017-10-28 12:41:29      阅读:319      评论:0      收藏:0      [点我收藏+]

标签:2tb   wim   nba   xms   gty   提取   dhs   ng2   sam   

完整的ln命令参考:http://www.runoob.com/linux/linux-comm-ln.html

 ln :创建连接文件

        - 默认创建的是硬连接,好比复制 ,但是两个文件会同步

            命令:ln ./java/android/aa.txt  aaa

         - s :创建的是软连接变为指向(类似于windows的快捷方式)

 

 

软链接:

    1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
    2.软链接可以 跨文件系统 ,硬链接不可以
    3.软链接可以对一个不存在的文件名进行链接
    4.软链接可以对目录进行链接

硬链接:

    1.硬链接,以文件副本的形式存在。但不占用实际空间。
    2.不允许给目录创建硬链接
    3.硬链接只有在同一个文件系统中才能创建

 

 

 

 

       技术分享

 

例如:

 

可运行文件:   qq.sh

num=3
#!/bin/bash
case $num in
1)
    echo "num=1";;
2)
    echo "num=2";;
3)
    echo "num=3";;
4)
    echo "num=4";;
*)
    echo "defaul";;
esac

 

赋予可运行权限:

chmod +x qq.sh

 

 

1.  创建一个目录ww,并在ww目录创建一个可运行文件qq.sh的硬连接并运行:

[rwwwt@iz2ze46xi6pjjj ~]# mkdir ww
[rwwwt@iz2ze46xi6pjjj ~]# cd ww
[rwwwt@iz2ze46xi6pjjj ww]# ls
[rwwwt@iz2ze46xi6pjjj ww]# ln ../qq.sh  qq
[rwwwt@iz2ze46xi6pjjj ww]# ls
qq
[rwwwt@iz2ze46xi6pjjj69ailg9lz ww]# ./qq
num=3

 

2.创建一个软连接并运行

创建软连接     ln  -s ../qq.sh  qq.sh.link
运行软连接   ./qq.sh.link
[rwwwt@iz2ze46xi6pjjj ~]# mkdir ww
[rwwwt@iz2ze46xi6pjjj ~]# cd ww
[rwwwt@iz2ze46xi6pjjj ww]# ls
[rwwwt@iz2ze46xi6pjjj ww]# ln  -s ../qq.sh  qq.sh.link
[rwwwt@iz2ze46xi6pjjj ww]# ls -l
total 0
lrwxrwxrwx 1 root root 8 Oct 28 10:41 qq.sh.link -> ../qq.sh
[rwwwt@iz2ze46xi6pjjj ww]# ./qq.sh.link
num=3
[rwwwt@iz2ze46xi6pjjj ww]#

 

 

3. 将上面qq.sh进行改造后可提取输入参数:

  bash shell可根据参数位置获取参数。通过 $1 到 $9 获取第1到第9个的命令行参数。$0为shell名。如果参数超过9个,那么就只能通过${}来获取了, 例如获取第10个参数,那么可以写为${10}。

  参考:http://www.cnblogs.com/qlqwjy/p/7746009.html

num=$1
#!/bin/bash
case $num in
1)
    echo "num=1";;
2)
    echo "num=2";;
3)
    echo "num=3";;
4)
    echo "num=4";;
*)
    echo "defaul";;
esac

 

运行原来的qq.sh

[rwwwt@iz2ze46xi6pjjj ww]# ./qq.sh  4
num=4

 

运行软连接

[rwwwt@iz2ze46xi6pjjj ww]# ./qq.sh.link  2
num=2

 

------------------------------------------linux通过ln与chkconfig设置开机启动-------------------------

第一步:我们在/etc/init.d下新建一个文件test(需要在root权限下操作)

[rwwwt@iz2ze46xi6pjjj ww]# vim /etc/init.d/test

 

复制上面qq.sh内容:

num=$1
#!/bin/bash
case $num in
1)
    echo "num=1";;
2)
    echo "num=2";;
3)
    echo "num=3";;
4)
    echo "num=4";;
*)
    echo "defaul";;
esac

 

第二步:保存退出之后,给其增加可执行权限

[rwwwt@iz2ze46xi6pjjj ww]# chmod +x  /etc/init.d/test

 

第三步:挂载(创建一个软连接)

 将 这个shell文件的link连到/etc/rc2.d/目录下。linux的/etc/rcX.d/目录中的数字代表开机启动时不同的run level,也就是启动的顺序,Ubuntu9.10下有0-5六个level,不能随便连到其他目录下,可能在那个目录中的程序启动时Tomcat所需 要的一些库尚未被加载,用ln命令将tomcat的链接链过去:sudo ln -s /etc/init.d/tomcat /etc/rc2.d/S16Tomcat。rcX.d目录下的命名规则是很有讲究的,更具不同需要可能是S开头,也可能是K开头,之后的数字代表他们的 启动顺序,详细看各自目录下的Readme文件。

 

[rwwwt@iz2ze46xi6pjjj ww]# ln -s /etc/init.d/test /etc/rc2.d/S17Test 

 

 

 

第四步:设置脚本开机自启动

把这个脚本设置成系统启动时自动执行,系统关闭时自动停止,使用如下命令:

 

[rwwwt@iz2ze46xi6pjjj ww]# chkconfig --add test

 

linux编写可运行的shell脚本并在其他目录创建ln连接与设置开机启动

标签:2tb   wim   nba   xms   gty   提取   dhs   ng2   sam   

原文地址:http://www.cnblogs.com/qlqwjy/p/7746184.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!