I've been doing research of analyzing Android application for a semester. Today, when I'm having bath, I guess I get some of the insight of the static program analysis research.
I think the program analysis research at the early stage is just use information get at compiling stage to
In the compiling process, compiler will translate the higher level language to the basic operation that the assembly language could recognize. When we do static analysis, we care about how some specific variable propagate in the whole execution process or which API call was trigger in what kind of context. The so called program behavior is just those kinds of things(Method invocation, variable propagation(including basic computation), reachability or dead code(The impact of certain code snippet to output of program) etc. To be complement) We can almost get any information through 3 structured representation: Control flow graph, Data flow graph, and Call graph.
In the current project I've been doing, we need to also handle the manifest file(A configuration for the components in Android application.) From the pure code perspective, we can regard this manifest file as the input of the program. Because we can get no information from it through the compiling procedure. But from the application perspective, as it's a static configuration file, it is part of the program. The information in it can use for static program analysis.
From this point, we can see that the static program analysis is actually a prediction of all the possible behavior the program could have in the runtime execution. So this behavior prediction can no longer get from the the compiling information alone. Because the runtime behavior is not only rely on the byte code of the program, it also rely on the configuration file of the program. That's where the inference rule comes in in our project.
Another thing worth noticing is that the interaction to the system itself. I still need to figure out how the current static analysis tool analyze the JDK code to get some insight of that.
When talking about access control, we are not only monitoring the program behavior of current program, we are more or less predicting what kind of operation it will execute when different possible program interact with current program interface.
2012年3月21日星期三
2012年3月6日星期二
[zz]如何让alias永久生效
如何让alias永久生效?
alias(中文称为“别名”)允许使用更加简短的名称来重新定义 Linux 中的 Shell 命令,从而简化命令行的输入。如果经常与 CLI 打交道,那么使用 alias 不仅会节省时间,而且也能提高效率,真是一举两得的好事。
* 基本用法: alias 的基本使用方法为:alias 新的命令='原命令 -选项/参数'。举例说明,alias l=‘ls -lsh' 将重新定义 ls 命令,现在只需输入 l 就可以列目录了。
* 获知别名: 直接输入 alias 命令会列出当前系统中所有已经定义的命令别名。
* 删除别名: 要删除一个别名,可以使用 unalias 命令,如 unalias l。
上面的是网上看到的,这个方法只是暂时的,如果重启一次就失效了,如果我们想永久生效一个命令怎么办呢?
打开 .bashrc (应该是ubuntu发行版的,其他发行版也许可以修改.bash_profile)可以看到
……
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
……
方法1 :直接在我们的 环境变量文件中添加 alias xx='xxxxx'
方法2 : .bashrc 中有一句话
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
就是说可以另外新建一个文件用于专门存放自己的alias信息
例
$ cd
$ vi .bash_aliases
在文件中输入自己想设置的命令 alias rm='rm -i' 然后保存推出
$ source .bashrc #让我们的环境生效
方法……----------------------请注意实际在centos5测试 发现应该是.bashrc
小结:
1.很多时候我们只注意了解决问题本身,但是往往忽略了其他的东西,在解决问题的过程中也是一个学习的机会,尤其不要忘了看软件源码之类的注释!突然发现 这个非常重要,就是因为看了注释,我才发现了这个方法,而我本来的目的是想对我自己的环境变量进行设置修改,在解决环境变量的问题同时我又顺带解决了这个 alias的问题,以后得牢记!!!
2.在查找网上的解决方法的时候,经常发现别人有的文件本机没有,例如.bashrc 和 .bash_profile 可能就是不同发行版上的,这个时候可以换个搜索方式,或者自己尝试……
分类: ubuntu
http://www.cnblogs.com/jjyoung/archive/2011/07/15/2107788.html
如果是当前的session
使用过的Linux命令之alias - 设置命令的别名,让 Linux 命令更简练
本文链接:http://codingstandards.iteye.com/blog/1145318 (转载请注明出处)
用途说明
设置命令的别名。在linux系统中如果命令太长又不符合用户的习惯,那么我们可以为它指定一个别名。虽然可以为命令建立“链接”解决长文件名的问题,但 对于带命令行参数的命令,链接就无能为力了。而指定别名则可以解决此类所有问题【1】。常用别名来简化ssh登录【见示例三】,使长命令变短,使常用的长 命令行变短,强制执行命令时询问等。
常用参数
格式:alias
格式:alias -p
显示当前设置的别名。
格式:alias name='command line'
设置别名。
格式:alias name
显示指定的别名设置。
格式:unalias name
取消指定的别名设置。
使用示例
示例一 解决RHEL5/CentOS5下vi不能语法高亮显示的问题
在/etc/profile的末尾添加vi的别名设置
alias vi="vim"
显示二 显示当前的别名设置
[root@jfht ~]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@jfht ~]# alias cp
alias cp='cp -i'
[root@jfht ~]#
示例三 ssh别名
ssh 别名 - alias server_name='ssh -v -l USERNAME IP ADDRESS',更改 server_name、USERNAME 及 IP 地址以适应你的需要。对于经常要使用 ssh 登录远程 shell 的同学来说,这是一个值得收藏的别名。
[root@jfht ~]# alias 180='ssh 192.168.1.180'
[root@jfht ~]# 180
ssh: connect to host 192.168.1.180 port 22: No route to host
[root@jfht ~]# alias 181='ssh 192.168.1.181'
[root@jfht ~]# 181
root@192.168.1.181's password:
[root@jfht ~]#
示例四 常见别名设置集锦
alias l="ls -l"
alias ll="ls -l"
alias lm='ls -al | more'
模拟DOS风格的命令
alias clr=clear
alias cls=clear
alias copy='cp -i'
alias del='rm -i'
alias delete='rm -i'
alias dir='ls -alg'
alias home='cd ~'
alias ls='ls -F'
alias md=mkdir
alias move='mv -i'
alias type=more
alias cd..='cd ..'
alias home='cd /home/dave/public_html'
alias list='ls -la'
alias attrib='chmod'
alias chdir='cd'
alias copy='cp'
alias cp='cp -i'
alias d='dir'
alias del='rm'
alias deltree='rm -r'
alias dir='/bin/ls $LS_OPTIONS --format=vertical'
alias edit='pico'
alias ff='whereis'
alias ls='/bin/ls $LS_OPTIONS'
alias mem='top'
alias move='mv'
alias mv='mv -i'
alias pico='pico -w -z'
alias rm='rm -i'
alias search='grep'
alias v='vdir'
alias vdir='/bin/ls $LS_OPTIONS --format=long'
alias which='type -path'
alias wtf='watch -n 1 w -hs'
alias wth='ps -uxa | more'
问题思考
1. 怎么取消指定别名?
2. 别名在shell脚本中有效吗?
3. 怎样列出所有别名?
4. 怎样取消所有别名?
5. 怎样执行ls命令本身,而不是别名?
相关资料
【1】linux系统下给命令指定别名alias命令用法
【2】10 个实用的 Bash alias
【3】鸟哥的私房菜 命令別名設定: alias, unalias
【4】Computer Hope Linux / Unix alias command
【5】alias command
【6】Linux宝库 alias——别名
【7】Linux安全网 linux alias命令参数及用法详解--linux定义命令别名alias
【8】jiacheo 在linux的alias中使用awk遇到的问题 http://codingstandards.iteye.com/blog/1145318
命 令: alias
功能说明:设置指令的别名。
语 法:alias[别名]=[指令名称]
补充说明:用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。 alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在/etc/profile或自己的~/.bashrc中设定指令的别名。
还有,如果你想给每一位用户都生效的别名,请把alias la='ls -al' 一行加在/etc/bashrc最后面,bashrc是环境变量的配置文件 /etc/bashrc和~/.bashrc 区别就在于一个是设置给全系统一个是设置给单用户使用.
参 数:若不加任何参数,则列出目前所有的别名设置。 资料来自 www.linuxso.com Linux安全网
CentOS5.6自带的alias定义
[root@linuxso.com ~]#alias
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
有的系统里没有ll这个命令,原因就是没有定义ll='ls -l --color=tty'这个别名
利用alias可以把很长的命令变成任意我们喜欢的简短的
设置和修改alias命令别名格式很简单
alias ll='ls -l --color=tty'
如果想永久生效,就把这条写入到 /etc/bashrc里面
alias(中文称为“别名”)允许使用更加简短的名称来重新定义 Linux 中的 Shell 命令,从而简化命令行的输入。如果经常与 CLI 打交道,那么使用 alias 不仅会节省时间,而且也能提高效率,真是一举两得的好事。
* 基本用法: alias 的基本使用方法为:alias 新的命令='原命令 -选项/参数'。举例说明,alias l=‘ls -lsh' 将重新定义 ls 命令,现在只需输入 l 就可以列目录了。
* 获知别名: 直接输入 alias 命令会列出当前系统中所有已经定义的命令别名。
* 删除别名: 要删除一个别名,可以使用 unalias 命令,如 unalias l。
上面的是网上看到的,这个方法只是暂时的,如果重启一次就失效了,如果我们想永久生效一个命令怎么办呢?
打开 .bashrc (应该是ubuntu发行版的,其他发行版也许可以修改.bash_profile)可以看到
……
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
……
方法1 :直接在我们的 环境变量文件中添加 alias xx='xxxxx'
方法2 : .bashrc 中有一句话
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
就是说可以另外新建一个文件用于专门存放自己的alias信息
例
$ cd
$ vi .bash_aliases
在文件中输入自己想设置的命令 alias rm='rm -i' 然后保存推出
$ source .bashrc #让我们的环境生效
方法……----------------------请注意实际在centos5测试 发现应该是.bashrc
小结:
1.很多时候我们只注意了解决问题本身,但是往往忽略了其他的东西,在解决问题的过程中也是一个学习的机会,尤其不要忘了看软件源码之类的注释!突然发现 这个非常重要,就是因为看了注释,我才发现了这个方法,而我本来的目的是想对我自己的环境变量进行设置修改,在解决环境变量的问题同时我又顺带解决了这个 alias的问题,以后得牢记!!!
2.在查找网上的解决方法的时候,经常发现别人有的文件本机没有,例如.bashrc 和 .bash_profile 可能就是不同发行版上的,这个时候可以换个搜索方式,或者自己尝试……
分类: ubuntu
http://www.cnblogs.com/jjyoung/archive/2011/07/15/2107788.html
如果是当前的session
使用过的Linux命令之alias - 设置命令的别名,让 Linux 命令更简练
本文链接:http://codingstandards.iteye.com/blog/1145318 (转载请注明出处)
用途说明
设置命令的别名。在linux系统中如果命令太长又不符合用户的习惯,那么我们可以为它指定一个别名。虽然可以为命令建立“链接”解决长文件名的问题,但 对于带命令行参数的命令,链接就无能为力了。而指定别名则可以解决此类所有问题【1】。常用别名来简化ssh登录【见示例三】,使长命令变短,使常用的长 命令行变短,强制执行命令时询问等。
常用参数
格式:alias
格式:alias -p
显示当前设置的别名。
格式:alias name='command line'
设置别名。
格式:alias name
显示指定的别名设置。
格式:unalias name
取消指定的别名设置。
使用示例
示例一 解决RHEL5/CentOS5下vi不能语法高亮显示的问题
在/etc/profile的末尾添加vi的别名设置
alias vi="vim"
显示二 显示当前的别名设置
[root@jfht ~]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@jfht ~]# alias cp
alias cp='cp -i'
[root@jfht ~]#
示例三 ssh别名
ssh 别名 - alias server_name='ssh -v -l USERNAME IP ADDRESS',更改 server_name、USERNAME 及 IP 地址以适应你的需要。对于经常要使用 ssh 登录远程 shell 的同学来说,这是一个值得收藏的别名。
[root@jfht ~]# alias 180='ssh 192.168.1.180'
[root@jfht ~]# 180
ssh: connect to host 192.168.1.180 port 22: No route to host
[root@jfht ~]# alias 181='ssh 192.168.1.181'
[root@jfht ~]# 181
root@192.168.1.181's password:
[root@jfht ~]#
示例四 常见别名设置集锦
alias l="ls -l"
alias ll="ls -l"
alias lm='ls -al | more'
模拟DOS风格的命令
alias clr=clear
alias cls=clear
alias copy='cp -i'
alias del='rm -i'
alias delete='rm -i'
alias dir='ls -alg'
alias home='cd ~'
alias ls='ls -F'
alias md=mkdir
alias move='mv -i'
alias type=more
alias cd..='cd ..'
alias home='cd /home/dave/public_html'
alias list='ls -la'
alias attrib='chmod'
alias chdir='cd'
alias copy='cp'
alias cp='cp -i'
alias d='dir'
alias del='rm'
alias deltree='rm -r'
alias dir='/bin/ls $LS_OPTIONS --format=vertical'
alias edit='pico'
alias ff='whereis'
alias ls='/bin/ls $LS_OPTIONS'
alias mem='top'
alias move='mv'
alias mv='mv -i'
alias pico='pico -w -z'
alias rm='rm -i'
alias search='grep'
alias v='vdir'
alias vdir='/bin/ls $LS_OPTIONS --format=long'
alias which='type -path'
alias wtf='watch -n 1 w -hs'
alias wth='ps -uxa | more'
问题思考
1. 怎么取消指定别名?
2. 别名在shell脚本中有效吗?
3. 怎样列出所有别名?
4. 怎样取消所有别名?
5. 怎样执行ls命令本身,而不是别名?
相关资料
【1】linux系统下给命令指定别名alias命令用法
【2】10 个实用的 Bash alias
【3】鸟哥的私房菜 命令別名設定: alias, unalias
【4】Computer Hope Linux / Unix alias command
【5】alias command
【6】Linux宝库 alias——别名
【7】Linux安全网 linux alias命令参数及用法详解--linux定义命令别名alias
【8】jiacheo 在linux的alias中使用awk遇到的问题 http://codingstandards.iteye.com/blog/1145318
命 令: alias
功能说明:设置指令的别名。
语 法:alias[别名]=[指令名称]
补充说明:用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。 alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在/etc/profile或自己的~/.bashrc中设定指令的别名。
还有,如果你想给每一位用户都生效的别名,请把alias la='ls -al' 一行加在/etc/bashrc最后面,bashrc是环境变量的配置文件 /etc/bashrc和~/.bashrc 区别就在于一个是设置给全系统一个是设置给单用户使用.
参 数:若不加任何参数,则列出目前所有的别名设置。 资料来自 www.linuxso.com Linux安全网
CentOS5.6自带的alias定义
[root@linuxso.com ~]#alias
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
有的系统里没有ll这个命令,原因就是没有定义ll='ls -l --color=tty'这个别名
利用alias可以把很长的命令变成任意我们喜欢的简短的
设置和修改alias命令别名格式很简单
alias ll='ls -l --color=tty'
如果想永久生效,就把这条写入到 /etc/bashrc里面
订阅:
博文 (Atom)