系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
-
jcauchy
- 帖子: 22
- 注册时间: 2008-07-18 16:31
#1
帖子
由 jcauchy » 2008-07-22 10:51
我的shell是bash,alias普通用法我是知道的,但是给多个命令别名(多个命令间用分号" ; "隔开),我有一个地方不会,例如:
给mkdir和ls别名为md
alias md='mkdir;ls'
然后使用md aa(创建文件夹aa并显示当前目录下的文件)
结果显示错误:mkdir缺少操作符
其实小弟不懂之处在于如何将alias后的操作符传递到mkdir之后,呵呵~
还有ubuntu里man alias,显示alias没有帮助文档,帮助文档源里有下载吗?谢谢~~
上次由
jcauchy 在 2008-07-22 11:08,总共编辑 1 次。
-
JangMunho
- 帖子: 1347
- 注册时间: 2006-01-18 12:55
- 来自: 也许真的没有人理解
#2
帖子
由 JangMunho » 2008-07-22 10:56
不要自作聪明,我知道你是什么意思,你是不是认为:
md aa会被解析成mkdir aa; ls aa?
这是不可能的,它只能被解析成
mkdir ; ls aa
因此提示缺少操作符,电脑没那么智能。
之所以没有man page是因为它是一个内部命令,就像cd命令,内部命令不可能有man page。
MacBook Pro 15" User
Cocoa Programmer
-
yawsh
- 帖子: 105
- 注册时间: 2006-04-29 10:51
#3
帖子
由 yawsh » 2008-07-22 11:02
你想要实现的功能不是可以用shell脚本吗?
-
jcauchy
- 帖子: 22
- 注册时间: 2008-07-18 16:31
#4
帖子
由 jcauchy » 2008-07-22 11:05
以前我用过别人一个系统,它每次cd到一个目录下就会自动显示该目录下的文件
比如cd /home,它就相当于先cd /home然后ls,我就是不知到他是怎么设置别名的
-
jcauchy
- 帖子: 22
- 注册时间: 2008-07-18 16:31
#5
帖子
由 jcauchy » 2008-07-22 11:06
yawsh 写了:你想要实现的功能不是可以用shell脚本吗?
我希望可以写在.bashrc中
-
JangMunho
- 帖子: 1347
- 注册时间: 2006-01-18 12:55
- 来自: 也许真的没有人理解
#6
帖子
由 JangMunho » 2008-07-22 11:10
jcauchy 写了:以前我用过别人一个系统,它每次cd到一个目录下就会自动显示该目录下的文件
比如cd /home,它就相当于先cd /home然后ls,我就是不知到他是怎么设置别名的
我恐怕不是别名,而是使用一个cd脚本掩盖掉了shell本身的cd。
MacBook Pro 15" User
Cocoa Programmer
-
eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
#7
帖子
由 eexpress » 2008-07-22 11:12
jcauchy 写了:yawsh 写了:你想要实现的功能不是可以用shell脚本吗?
我希望可以写在.bashrc中
直接写脚本到alias就是,一行而已,调用$*等当参数。
● 鸣学
-
JangMunho
- 帖子: 1347
- 注册时间: 2006-01-18 12:55
- 来自: 也许真的没有人理解
#8
帖子
由 JangMunho » 2008-07-22 11:14
eexpress 写了:jcauchy 写了:yawsh 写了:你想要实现的功能不是可以用shell脚本吗?
我希望可以写在.bashrc中
直接写脚本到alias就是,一行而已,调用$*等当参数。
对,不过我觉得他所希望的不是这样,但事实上想要满足他的要求只能这样了。
MacBook Pro 15" User
Cocoa Programmer
-
BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
-
联系:
#9
帖子
由 BigSnake.NET » 2008-07-22 11:19
JangMunho 写了:jcauchy 写了:以前我用过别人一个系统,它每次cd到一个目录下就会自动显示该目录下的文件
比如cd /home,它就相当于先cd /home然后ls,我就是不知到他是怎么设置别名的
我恐怕不是别名,而是使用一个cd脚本掩盖掉了shell本身的cd。
可以覆盖吗?
^_^ ~~~
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
-
JangMunho
- 帖子: 1347
- 注册时间: 2006-01-18 12:55
- 来自: 也许真的没有人理解
#10
帖子
由 JangMunho » 2008-07-22 11:23
BigSnake.NET 写了:JangMunho 写了:jcauchy 写了:以前我用过别人一个系统,它每次cd到一个目录下就会自动显示该目录下的文件
比如cd /home,它就相当于先cd /home然后ls,我就是不知到他是怎么设置别名的
我恐怕不是别名,而是使用一个cd脚本掩盖掉了shell本身的cd。
可以覆盖吗?
不知道,也没打算试验。
我觉得即便是搜索路径中存在一个叫cd的程序,shell也要优先执行它的内部命令,因此能覆盖的可能性不大。
PS:我应该看看bash的源代码就什么都明白了。
MacBook Pro 15" User
Cocoa Programmer
-
BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
-
联系:
#11
帖子
由 BigSnake.NET » 2008-07-22 11:26
代码: 全选
my_cd () { cd "$@" ; ls ; };
alias cd=my_cd
注意只能设定一次, 不然就递归了
^_^ ~~~
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
-
JangMunho
- 帖子: 1347
- 注册时间: 2006-01-18 12:55
- 来自: 也许真的没有人理解
#12
帖子
由 JangMunho » 2008-07-22 11:28
BigSnake.NET 写了:代码: 全选
my_cd () { cd "$@" ; ls ; };
alias cd=my_cd
注意只能设定一次, 不然
就递归了
呵呵,那样就很搞笑了。
MacBook Pro 15" User
Cocoa Programmer
-
eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
#13
帖子
由 eexpress » 2008-07-22 11:32
JangMunho 写了:jcauchy 写了:以前我用过别人一个系统,它每次cd到一个目录下就会自动显示该目录下的文件
比如cd /home,它就相当于先cd /home然后ls,我就是不知到他是怎么设置别名的
我恐怕不是别名,而是使用一个cd脚本掩盖掉了shell本身的cd。
/usr/local/bin下建立一个cd就是。cd $*;ls
$PATH按照次序来执行的。
● 鸣学
-
jcauchy
- 帖子: 22
- 注册时间: 2008-07-18 16:31
#14
帖子
由 jcauchy » 2008-07-22 11:37
我用过那个人电脑后觉得很方便,就把他的.cshrc文件直接拷到我的电脑上了,结果我也可以这样用了,我觉得不是脚本吧,当时我忘记看.cshrc了
现在想这么设置,却不知道怎么设置,那个人是我的师兄,现在已经毕业了
-
BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
-
联系:
#15
帖子
由 BigSnake.NET » 2008-07-22 11:40
eexpress 写了:JangMunho 写了:jcauchy 写了:以前我用过别人一个系统,它每次cd到一个目录下就会自动显示该目录下的文件
比如cd /home,它就相当于先cd /home然后ls,我就是不知到他是怎么设置别名的
我恐怕不是别名,而是使用一个cd脚本掩盖掉了shell本身的cd。
/usr/local/bin下建立一个cd就是。cd $*;ls
$PATH按照次序来执行的。
试过了, 优先执行内部命令
^_^ ~~~
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。