如何在 zsh 中将其设为别名?
svn status | grep "^?" | awk -F " " '{print $2}' | tr "\n" "\0" | xargs -0 svn add
Run Code Online (Sandbox Code Playgroud)
我知道它应该是这样的:
alias sall = "the command"
Run Code Online (Sandbox Code Playgroud)
但是当这条线将 " 与 ' 混合在一起时,我不知道如何处理。
我如何创建一个别名c,cd然后立即ls?
alias c='cd; ls'
Run Code Online (Sandbox Code Playgroud)
是否有某种方法可以插入代表输入的特殊变量?或者是,不就是这样alias运作的所有?
在我的 .bash_profile 中,我为我经常运行的命令创建了别名。
如果我想将多个命令组合在一起,并且它们应该一个接一个地串行运行,该怎么办。
我该怎么做?
我正在为我的 .bashrc 文件添加几个别名,用于我经常使用的一些快捷方式,其中包括:
alias .="cd /;ls"
alias ..="cd ../;ls"
alias cd="cd $1;ls"
alias ls="clear;pwd;ls"
Run Code Online (Sandbox Code Playgroud)
有效的结果是,每当我导航到一个新目录时,窗口都会被清除并在顶部显示新目录及其内容。
除了 cd 别名之外,所有这些别名都有效。我尝试了多种尝试 cd 到新目录并在那里运行 ls 的组合,但似乎我只能列出目录的内容并返回到旧目录,或者成功 cd 到目录但使用生成的列表来自旧目录。
在 bash 中别名 cd (或任何带参数的命令)时,是否需要做一些特殊的事情?我觉得这是一个相对简单的任务,但我只是忽略了一些语法。
在 my 中~/.bashrc,我有几个别名,例如:
alias emacs='/Applications/Aquamacs.app/Contents/MacOS/Aquamacs'
alias octave='/Applications/Octave.app/Contents/Resources/bin/octave'
alias wine='/Applications/Wine.app/Contents/Resources/bin/wine'
alias simion='wine "/Users/hpek/.wine/drive_c/Program Files/SIMION 8.0/simion.exe"'
alias inkscape='wine "/Users/hpek/.wine/drive_c/Program Files/Inkscape/inkscape.exe"'
Run Code Online (Sandbox Code Playgroud)
我不认为这是正确的做法。别名在 bash 脚本中不起作用,并且当通过brew或安装某些东西时apt-get,它不会创建这样的别名。
这样做的正确方法是什么?
我有几个这种格式的文本文件:
name: john
address: bay area
phone: 6505561234
image: /work/myimage.png
name: stark
dob: 5AD
shirt color: red
physical address: Westros
phone model: S2
email id: me@stark.org
phone model: S2
name: tara
dob: 1ad
shirt color: red
physical address: Westros
email id: me@stark.org
Run Code Online (Sandbox Code Playgroud)
可以有多个“人”或“联系人”。假设我想找到所有使用“S2”手机型号的人。
我可以做一个“grep”——那只会返回这个:
phone model: S2
phone model: S2
Run Code Online (Sandbox Code Playgroud)
我可以在 grep 上使用 before/after 上下文 - 但这只是打印出来之前/之后的固定行数。使用 3 的“前一个”上下文,我可能会得到这样的信息:
shirt color: red
physical address: Westros
phone model: S2
---
name: tara
dob: 1ad
phone model: S2
Run Code Online (Sandbox Code Playgroud)
但这不是我想要的。我希望显示整个“记录”。有关如何使用标准 unix 命令执行此操作的任何线索?
如果我的 bashrc 中有这个会发生什么:
alias ls="ls -l"
alias ls="ls -a"
Run Code Online (Sandbox Code Playgroud)
当我输入时,ls它们都会匹配。保留最后一个还是两个都保留?
以下是我找到的SQL语句:
SELECT d.name, count(e.emp_id) num_employees
FROM department d INNER JOIN employee e
ON d.dept_id = e.dept_id
GROUP BY d.name
HAVING count(e.emp_id) > 2;
Run Code Online (Sandbox Code Playgroud)
我想知道什么d.name,e.name或者d.dept_id是什么意思。有什么不同?
我正在尝试写一个别名来做两件事
$alias cde='cd "$@" && echo'
Run Code Online (Sandbox Code Playgroud)
但出于某种原因,当我用
$cde test
test
Run Code Online (Sandbox Code Playgroud)
所发生的只是它回声测试:
看起来我的参数没有传递给第一个语句,而是在整个别名的末尾用完。根据我的理解,$@应该消耗所有参数,以便它永远不会到达回声。有什么办法可以在第一部分而不是第二部分中使用参数?
user@localhost ~ % zsh --version
zsh 5.5.1 (x86_64-redhat-linux-gnu)
me@localhost ~ % lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: Fedora
Description: Fedora release 28 (Twenty Eight)
Release: 28
Codename: TwentyEight
Run Code Online (Sandbox Code Playgroud)
~/.zshrc:
... Details omitted ...
source ~/.aliases
cat ~/.aliases
... Details omitted ...
Run Code Online (Sandbox Code Playgroud)
命令提示符:
user@localhost ~ % zsh
alias ls='exa'
alias grep='rg'
user@localhost ~ %
Run Code Online (Sandbox Code Playgroud)
所以~/.zshrc被执行,但别名没有任何效果。
如果我source ~/.aliases在 shell 中运行,它会起作用。
我已经尝试了几个小时而没有运气。有任何想法吗?
在 bash 中,您可以将空命令别名为某些东西吗?换句话说,是否识别出用户Enter在 shell 提示符下只按下了键?例如,如果你想用一个空白的 shell 条目清除屏幕,你如何Enter为clear命令设置别名?
当我运行时,alias la 'ls -la'我收到错误:ls: alias: no such file or directory
我如何别名la来ls -la?
alias ×12
bash ×6
unix ×3
zsh ×2
bash-alias ×1
bashrc ×1
command-line ×1
mac ×1
macos ×1
mysql ×1
sql ×1
terminal ×1
terminal.app ×1