注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Tsecer的回音岛

Tsecer的博客

 
 
 

日志

 
 

linux下创建快捷方式  

2013-10-12 23:13:32|  分类: linux知识 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
一、windows下创建快捷方式
windows下比较多的是使用图形界面创建快捷方式,在一个快捷方式图标右键的“快捷方式”标签中包含了两个比较重要的输入框,一个是“目标”,一个是“起始位置”,不知道英文版系统的这两个单词是如何表示的,感觉中文版的这两个翻译有些古怪。通俗的说,第一个目标就是 需要执行的命令以及可选的参数,如果命令之后有参数。之后加上参数;而起始位置则是程序的初始当前工作目录。可以做一个简单的测试,创建快捷方式的目标为
C:\WINDOWS\system32\cmd.exe /c "dir > test.txt"
起始位置为
e:\
双击该快捷方式之后可以在e盘根目录下看到e盘目录下文件列表。由于windows下命令行工具并不多,所以通常有比较少的需求会来修改这两个选项。通常都是直接创建一个桌面快捷方式就可以了。
二、linux下实现方式
1、alias
这种方式比较常见,它的优点是可以为每个shell(不单单是每个用户)创建自定义的快捷方式,这种快捷方式有shell保存,随着shell的结束而结束,在shell启动时读取配置文件中预定义的alias定义,例如最为常见的ll命令,为了让which也可以识别alias,我们使用的which本身也是一个alias
[root@Harry newplacement]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
2、软连接
这种方式使用起来比较顺手,不过真正可执行文件的软连接见到的不多,通常会在一个系统中有大量可执行文件,并且之间有相互耦合的情况下才会出现,或者一些工具别名之间的兼容,例如sh到bash的连接,cc到gcc的连接,更为常见的是一些动态库的连接。
3、shell脚本
软连接的方法比较顺手,缺点是不能在软连接命令中添加参数,这一点看linux下的符号链接功能相对单一一些。这个时候就需要使用Linux下比较常用的脚本功能,创建一个简单的shell脚本,在shell中写一行简单的命令即可:
      1 #!/bin/sh
      2 ls -l
这种方式的优点就是可定制非常强,别说想在一个程序的基础上加个参数,就是在里面关机都行。
4、可执行文件自多态
主要是今天看bzip2功能时用到了一个bzcat,再一看,这个可执行文件就赤果果的通过符号链接指向了bzip2,而bzip2的man手册写的明明白白,这个程序是用来进行压缩的,此时如何还能进行直接解压缩
[root@Harry newplacement]# ll `which bzcat`
lrwxrwxrwx. 1 root root 5 2011-03-12 16:59 /usr/bin/bzcat -> bzip2
后来就想到了busybox,它是把这种技巧应用的极限的一个工程,所有的可执行文件都是通过软连接指向busybox这个实体可执行文件,busybox本身根据自己被调用的方式,也就是argv[0]的字符串名称来决定自己到底要实现什么功能。因为bzip2可执行程序本身已经包含了解压缩的代码和选项,自己根据调用方式多态一下毫无压力。
由于bzip2的源码比较通用小巧,所以可以看一下bzip的实现,当然,工具使用的压缩算法是比较强大和巧妙的,感觉和rsync一样,科学家发明各种巧妙思路,然后随手写个实现或者志愿者代笔,然后大家点了个赞,之后就这么没心没肺的用着。
通过bzcat命令行选项,也可以看到这种实现思路
[root@Harry newplacement]# bzcat --help

   If invoked as `bzip2', default action is to compress.
              as `bunzip2',  default action is to decompress.
              as `bzcat', default action is to decompress to stdout.
可以通过这个命令看下系统中有多少不同名但是可执行文件相同的可执行程序
(cd /bin ;md5sum *;cd /usr/bin/; md5sum *) | sort |uniq -u | uniq -Dw32
ebd08b5e4e9d7ce9598bacadf0162ebf  filterdiff
ebd08b5e4e9d7ce9598bacadf0162ebf  grepdiff
ebd08b5e4e9d7ce9598bacadf0162ebf  lsdiff
ec251f1b8017f5b685a772e3ae5fcd91  cdrecord
其中最忙的程序应该是这个了
f0bb44a13aa36ceb104a3f8e9703bd01  authconfig
f0bb44a13aa36ceb104a3f8e9703bd01  authconfig-gtk
f0bb44a13aa36ceb104a3f8e9703bd01  authconfig-tui
f0bb44a13aa36ceb104a3f8e9703bd01  consolehelper
f0bb44a13aa36ceb104a3f8e9703bd01  eject
f0bb44a13aa36ceb104a3f8e9703bd01  halt
f0bb44a13aa36ceb104a3f8e9703bd01  poweroff
f0bb44a13aa36ceb104a3f8e9703bd01  preupgrade
f0bb44a13aa36ceb104a3f8e9703bd01  preupgrade-cli
f0bb44a13aa36ceb104a3f8e9703bd01  reboot
f0bb44a13aa36ceb104a3f8e9703bd01  selinux-polgengui
f0bb44a13aa36ceb104a3f8e9703bd01  setup
f0bb44a13aa36ceb104a3f8e9703bd01  system-config-authentication
f0bb44a13aa36ceb104a3f8e9703bd01  system-config-boot
f0bb44a13aa36ceb104a3f8e9703bd01  system-config-date
f0bb44a13aa36ceb104a3f8e9703bd01  system-config-keyboard
f0bb44a13aa36ceb104a3f8e9703bd01  system-config-language
f0bb44a13aa36ceb104a3f8e9703bd01  system-config-lvm
f0bb44a13aa36ceb104a3f8e9703bd01  system-config-network
f0bb44a13aa36ceb104a3f8e9703bd01  system-config-network-cmd
f0bb44a13aa36ceb104a3f8e9703bd01  system-config-selinux
f0bb44a13aa36ceb104a3f8e9703bd01  system-config-users
  评论这张
 
阅读(477)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017