Questions tagged «alias»

别名实际上只不过是键盘快捷键,缩写,避免键入长命令序列的一种手段。这样可以节省大量在命令行中的键入,并且避免了必须记住命令和选项的复杂组合。

5
为bash脚本创建别名
因此,我尝试进行实验并创建了一个aliasin .bashrc。但是,当我测试命令时,我得到: [rkahil@netmon3 ~]$ menu -bash: menu: command not found 这是.bashrc文件中的内容: # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions alias menu='./menuScript.sh' alias vi='vim' 有趣的是,当我创建别名时vi,它起作用了。但是菜单没有。我在UnixStackExchange上查找了以前的帖子,并尝试关注其他帖子,但无济于事。其他人有什么建议吗?
10 bash  alias 

1
您可以在Bash中使用几种不同的方式创建“别名”?
我只知道两种方式:alias foo=bar和function foo() { bar }。 我问的原因是-突然在我的bash会话之一中-我无法运行ln命令,因为bash出错了-bash: /usr/local/.../ln: No such file or directory(其中/usr/local/.../是PATH环境变量中的条目之一)。 但这不是PATH问题,因为如果我运行which ln它,它会输出预期的二进制文件/usr/bin/ln(如果我指定了绝对路径,则可以很好地运行)。 我还检查了ln我的alias和function声明,没有任何内容: $ declare -f | grep ln $ alias | grep ln 该问题仅在一次bash会话中发生。如果我启动一个新的shell,它会再次正常工作,但是我想知道是在bash的这一特定会话中突然导致此问题的原因。 关于什么可能导致此的任何想法?
10 bash  shell  alias 

1
bashrc惰性替换
如何在运行时而不是在执行〜/ .bashrc时(打开终端时)获得~/.bashrc别名来评估$()替换? 我经常运行此命令,以便为其添加别名: svn diff -r $(svn info | grep ^Revision | awk {'print $2'}):HEAD $(svn info | grep ^URL | awk {'print $2'}) | colordiff 但是,当我将其添加~/.bashrc为别名时,我看到评估被硬编码为它们在打开终端时所具有的值: $ alias alias svnbranch='svn diff -r 178184:HEAD svn+ssh://branches/t4252 | colordiff' 如果我在其中打开终端,~则会收到错误消息: svn: E155007: '/home/dotancohen' is not a working copy svn: E155007: '/home/dotancohen' is …
10 bash  shell  quoting  alias  bashrc 

6
使用df和mount时仅显示物理磁盘
当我使用df或时mount,我对物理磁盘分区最感兴趣。如今,这些命令的输出已被临时和虚拟文件系统,cgroups和其他我不感兴趣的事物所淹没。 我在输出中的物理分区始终以“ /” 开头,因此我尝试为df和创建别名mount: alias df1="df | egrep '^/'" alias mount1="mount | egrep '^/'" 这样就可以了mount1(尽管它/以红色显示' '),但是因为df1我有时想将-h选项添加到df而不能这样做df1 -h。我不希望对每个可能要使用的选项组合都没有别名。我是否真的需要研究在bash中定义函数(我不想这样做)?有更好的解决方案df1吗?

2
之后没有新的别名;
到目前为止,我还认为外壳中的分号(以某种方式)与换行符具有相同的含义。所以我很惊讶 alias <name>=<replacement text>; <name> <name>在下一行中已知时未知。csh,tcsh,sh,ksh和bash相同的行为。至少因为csh直接使用别名或脚本是在semccolon之前来源的,这无关紧要-别名在后面不知道,;但在下一个命令行中是已知的。这是错误还是此行为的目的?
9 shell  alias 

2
在运行用户要运行的命令之前,请运行另一个命令
假设我想通过ls这种方式修改工具的原始行为: $ ls Hello World file1 file2 ... 我怎样才能做到这一点? 运行时,ls我想运行另一个命令echo "Hello World!"。 我看到的快速解决方案是使用别名: alias orig_ls="ls" alias ls='echo "Hello World!"' 但是,这不是一个真正的解决方案,因为在我运行orig_ls时它将输出"Hello World!"。

1
创建多个临时别名
我不是root用户,我无权访问已创建所有别名的全局别名文件,但是我想创建一些仅在我登录的会话中保持活动状态的别名。我使用命令alias x='cd /parent/child'创建别名,这使我可以x在控制台上键入内容,并将dir更改为/ Parent / Child。 但是,我想创建多个别名,也不想每次都键入自己创建的每个别名。 我尝试将所有alias ='do this'行放入文件中(授予777权限),希望在运行该文件时,每次登录时都将创建所有这些别名。但是那没有发生。 例如: alias x='cd /parent/child' alias y='cd /a/b/c' alias z='tail -0f some.log' 我也在文件中尝试了此操作,但没有成功: alias x='cd /parent/child';alias y='cd /a/b/c';alias z='tail -0f some.log' 我尝试过的别名都没有出现在全局别名中。(我输入了别名,并在屏幕上看到了输出)。
9 alias 

1
rm可以递归删除空目录吗?
在旧版本的Unix中,rm如果目录为空,该命令将删除目录。从rm的Research Unix第八版手册页:“如果条目是目录,则只有在为空时才将其删除。” 我喜欢这种行为,所以在我的名字中有了这个别名/etc/profile:alias rm='rm -d'我正在使用GNU coreutils版本的rm,其中-d告诉rm您继续删除目录(如果它们为空)。 到目前为止,一切都很好。该别名使我可以rm像过去一样使用。但是,我想更进一步。我想要rm即使目录包含其他目录,也可以删除目录,只要目录是唯一目录即可。只要目录中没有任何文件,只是空的(一旦您到达底部)目录,目录结构就可以了,我想rm将它们全部删除。 是否可以将其写为别名,而该别名仍然可以用作常规rm文件并删除传递给它的任何文件?
9 directory  rm  alias 

2
Bash:在变量中使用别名
我正在编写一个bash脚本,该脚本将每个参数作为命令运行。这适用于my中的命令PATH,但不适用于别名。我可以直接在脚本中调用别名,但是不能调用已作为参数传递的别名。 问题(我认为)是别名在变量之前扩展。有没有办法从变量运行别名? 示例脚本: #!/bin/bash # File: runall shopt -s expand_aliases source ~/.aliases while (( "$#" )); do $1 shift done runall "echo test"可行,但runall "myalias"给runall: line 8: myalias: command not found
9 bash  alias 

4
如何为特定文件或目录设置别名?
我经常使用几个文件。例如某些配置文件或日志文件。假设Apache日志文件。我经常想要tail或grep它。而不是写: tail -50 /var/log/apache2/error_log 我更喜欢写 tail -50 apachelog 因此,它apachelog充当该文件名的别名。但是,如果我在自己的别名中定义别名bashrc,则它必须是一个完整的命令;它(显然)不能是文件名的别名,以便您以后可以引用它。有没有办法做到这一点? 注意:我要运行的文件种类繁多,命令种类繁多,因此为所有这些不同选项创建函数或别名不是我的首选解决方案。
9 bash  alias 

3
zsh中的别名和bash中的别名之间的区别
我到处搜寻,但找不到任何结论。zsh中的alias命令和bash中的alias命令之间有区别吗?如果不是,这是否意味着我可以在两个shell之间共享一组别名,并期望它们能够按预期工作?
9 bash  zsh  alias 

2
bash别名即使使用shopt expand_aliases也不会扩展
我想在bash -c构造内运行别名。 该bash手册说: 如果外壳不是交互式的,则别名不会扩展,除非expand_aliases使用以下命令设置外壳选项shopt 在此示例中,为什么hi在expand_aliases显式设置时找不到别名? % bash -O expand_aliases -c "alias hi='echo hello'; alias; shopt expand_aliases; hi" alias hi='echo hello' expand_aliases on bash: hi: command not found 我在跑步GNU bash, version 5.0.0(1)-release (x86_64-pc-linux-gnu)。 上下文:我希望能够以空闲优先级运行别名,例如包含以下内容的脚本: #!/bin/bash exec chrt -i 0 nice -n 19 ionice -c 3 bash -c ". ~/.config/bash/aliases; shopt -s …
8 bash  alias 

6
为什么strace忽略我的rm别名?
我alias有一套rm命令。如果我运行alias命令,这就是我得到的输出。 alias rm='rm -i' 现在,当我运行rm命令时,它可以按预期运行。 rm ramesh rm: remove regular empty file `ramesh'? y 现在,我正在学习执行命令时正在调用的系统调用。为此,我strace从这里了解了命令,该命令列出了我在执行某些命令时正在调用的文件。命令如下。 strace -ff -e trace=file rm ramesh 2>&1 该命令工作正常,只是它会忽略为该rm命令准备的别名。它删除文件而不会提示用户。 那么,是否strace忽略这样的别名?如果是这样,为什么呢? 编辑: 不知道,这是否有帮助,但type -a rm输出为: rm is aliased to `rm -i' rm is /bin/rm 那么,是否考虑/bin/rm这种情况,这就是为什么在删除之前不提示用户的原因?
8 alias  strace 

6
如何在不要求覆盖的情况下复制或移动文件?
我尝试过的 root@host [/home1]# cp -f hello /home3 cp: omitting directory `hello' root@host [/home1]# cp -rf hello /home3 cp: overwrite `/home3/hello/.buildpath'? y cp: overwrite `/home3/hello/.bash_logout'? y cp: overwrite `/home3/hello/.project'? ^C 他们总是问我是否要覆盖。使用mv也不起作用。所以我该怎么做? 我尝试过的其他方法: root@host [/home1]# cp -rf hello /home3 cp: overwrite `/home3/hello/.buildpath'? y cp: overwrite `/home3/hello/.bash_logout'? y cp: overwrite `/home3/hello/.project'? ^C root@host …
8 shell  alias  cp 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.