alias xxx=echo && xxx ok不起作用,因为别名在之后不可用&&。但一行代码最适合我的任务。
如何定义别名并在 bash 的同一行中使用?
bash 别名不喜欢引号
dpkg-query -W -f '${Installed-Size;8}kb ${Package} ${Version} ${Status}\n' | sort -n | column -t | grep -Pv "(lib*)" | fzf
Run Code Online (Sandbox Code Playgroud) 考虑下面的 Bash 别名,我很快就想到了这个,但我没有时间进一步挖掘:
alias su='sudo -s'
Run Code Online (Sandbox Code Playgroud)
请注意,我正在运行 Bash,但我希望该解决方案是可移植的,因为我可能会在某个时候将其发布到 GitHub 上进行共享。
人们可能遇到的问题是在已经 root 的情况下运行它(该别名)。
演示:
$ su
[sudo] password for vlastimil:
# su
# su
#
exit
#
exit
#
exit
$
Run Code Online (Sandbox Code Playgroud)
有没有办法避免嵌套的 shell 会话?
重要提示:我为我的用户和根用户使用相同的别名文件,而不是分开的。该解决方案必须是可移植的 (POSIX)。
是否可以创建一个名为new_bash允许我执行以下操作的命令?
new_bash alias test="ls"
new bash alias new_command="ls"
new_bash test
file1
new_bash new_command
file1
Run Code Online (Sandbox Code Playgroud) 普通的 grep
wolf@linux:~$ egrep 4.4.4.4 data.csv
A,4.4.4.4,4.4.4.5,4.4.4.6,3.3.3.3,3.3.3.4
wolf@linux:~$
Run Code Online (Sandbox Code Playgroud)
因为我有很多数据要 grep,所以我把它放在别名上。
wolf@linux:~$ alias z="egrep $1 data.csv"
wolf@linux:~$
Run Code Online (Sandbox Code Playgroud)
但它不起作用
wolf@linux:~$ z 4.4.4.4
grep: 4.4.4.4: No such file or directory
wolf@linux:~$
Run Code Online (Sandbox Code Playgroud)
事实证明,$1别名中缺少这一点。
wolf@linux:~$ alias z
alias z='egrep data.csv'
wolf@linux:~$
Run Code Online (Sandbox Code Playgroud)
这背后的原因是什么?
我正在尝试创建一个 superkill 别名来杀死所有匹配 grep 匹配的进程。我想做:
superkill ruby
Run Code Online (Sandbox Code Playgroud)
并让它杀死所有匹配“ruby”的进程
在我的 .bashrc 中,我添加了这个
alias superkill="ps ax | grep $1 | cut -f1 -d' ' | xargs kill"
Run Code Online (Sandbox Code Playgroud)
但是,当我运行它时,我得到
superkill something
usage: grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C[num]]
[-e pattern] [-f file] [--binary-files=value] [--color=when]
...
Run Code Online (Sandbox Code Playgroud)
有人能指出我正确的方向吗?
谢谢,凯文
这与副本不同。我在问一个具体问题。重复项是一个概括性的高级问题。阅读副本后我无法提出解决方案。
pkill -f不起作用。如果你这样做
ps -A|grep ruby
Run Code Online (Sandbox Code Playgroud)
进而
pkill -f ruby
Run Code Online (Sandbox Code Playgroud)
进而
ps -A|grep ruby
Run Code Online (Sandbox Code Playgroud)
您将看到 ruby 进程仍然存在。但如果你这样做
kill -9 xxx
Run Code Online (Sandbox Code Playgroud)
其中 xxx 是 PID,这确实有效。我正在寻找的是别名kill -9 来匹配grep 的东西。
更新 - 这让我想起了我对 SO 的失望,每个人都太快地投票或举报(我认为举报没有什么价值)。这是另一个示例,其中所有建议的答案都不起作用:
kevin@kpi-2:~/Documents/code/kpi-veh$ sudo …Run Code Online (Sandbox Code Playgroud) Is any alias equivalent to a function, in the sense that each appearance of the alias can be replaced with the function's name, and the function name in each call to the function can be replaced with the alias?
If I am correct, an arbitrary alias is defined in the following form:
alias myalias=blahblah
Run Code Online (Sandbox Code Playgroud)
Is the alias defined in the above form always equivalent to a function defined as
myfun () { blahblah $@ }
Run Code Online (Sandbox Code Playgroud)
?
If not, what function …