你给 Shell 配置了哪些 alias?

2019-09-04 23:14:11 +08:00
 wuhuaji

刚写的一篇博文,记录我积累的一些 alias,自觉日积月累还是能省下不少时间。

分享到这里,我定义的部分通用 alias :

alias pg='ps aux | grep $1'
//查找进程,通过 ps aux | grep xxx,来查找进程应该是个非常高频的操作,自定义了一个`pg`来代替,非常省事。eg: pg nginx

alias untar='tar -zxvf' #解压 tar

alias msq='mysql -uroot -pPASSPWORD'
#本地有一个 MySQL 测试用,而命令行中是进 MySQL 也是比较高频的操作,直接配一个 msq 操作

alias sshxxx='ssh wuhuaji@xxx.xxx.xxx.xxx'
#登录远程机器,通过设置别名,拷贝密钥之后登录机器就是敲几个字的事

alias mem="telnet 127.0.0.1 11211"
#公司在用 memcached,配置 mem 直接连接 memcached

alias python='python3'
#避免每次写敲 python 运行的是 Python 2

# git 的一些快捷操作
alias gs='git status'
alias ga='git add'
alias gc='git commit'
alias gp='git push'
alias gpo='git push origin master'
alias gpd='git push origin dev'
alias gpu='git pull upstream master'

#前端开发
alias nrs='npm run serve'
alias nrb='npm run build'

# 也写一点 laravel
alias art="php artisan"
alias phpunit='./vendor/bin/phpunit'
alias tinker='php artisan tinker'
alias migrate="php artisan migrate"

V 友们定义了哪些高效的 alias,分享一下 :)

4293 次点击
所在节点    问与答
35 条回复
ranleng
2019-09-05 08:22:13 +08:00
alias please='sudo'
wuhuaji
2019-09-05 08:22:25 +08:00
@mcfog 部分认同你的观点:)有时候并不是 alias 最佳方案,但在发现更好的办法之前(我发这篇帖子就学到不少用法),用 alias 显然是能省一些时间的。

pkill 这个命令不错,学到了
MuscleOf2016
2019-09-05 08:27:42 +08:00
alias please='sudo'
linvaux
2019-09-05 08:52:28 +08:00
alias c='clear'
alias ll='la -lF'
Sainnhepark
2019-09-05 09:05:33 +08:00
export FuzzyFinder=fzf

# 查找历史目录,用 fzf 来进行筛选,然后进入这个目录
alias cdh='pushd +$( dirs -v | "$FuzzyFinder" | grep -o "[[:digit:]]") > /dev/null'

# 列出历史目录,用 fzf 进行筛选,然后打印
alias cdh-ls='dirs -vl | "$FuzzyFinder"'

# 列出历史目录,用 fzf 进行筛选,然后清楚它
alias cdh-clean='popd +$( dirs -v | "$FuzzyFinder" | grep -o "[[:digit:]]") > /dev/null'

# 清除所有历史目录
alias cdh-clean-all='dirs -c'

# 进入 git 根目录
alias cdr='cd $(git rev-parse --show-toplevel)'

然后还写了几个函数用 fzf 来管理进程和 job,不过不是 alias。
lululau
2019-09-05 09:22:03 +08:00
➜ ~
➜ alias | wc -l
711

➜ ~
CatCode
2019-09-05 09:26:46 +08:00
alias ll='ls -Fhl --time-style="+%Y-%m-%d %a %H:%M:%S"'
alias rm='rm -I'
alias cp='cp -i'
alias mv='mv -i'
drush
2019-09-05 09:28:28 +08:00
alias msq='mysql -uroot -pPASSPWORD'
#本地有一个 MySQL 测试用,而命令行中是进 MySQL 也是比较高频的操作,直接配一个 msq 操作


这个配个 .my.cnf 更方便啦
amwyyyy
2019-09-05 11:11:06 +08:00
用得不多
alias ll='ls -la'
alias grep='grep --color'
yhxx
2019-09-05 11:22:01 +08:00
alias 成都='cd'
JimmyTinsley
2019-09-05 14:13:28 +08:00
@yhxx #30 alias 菜单='cd'
gIrl1990
2019-09-06 16:51:46 +08:00
alias 需要写在哪个文件里才能让 `各种骚操作` 方式打开 bash 都能使用?
wuhuaji
2019-09-06 16:57:17 +08:00
@gIrl1990 什么是各种骚操作方式打开?一般来说看你使用的 shell,配在 shell 的 rc 文件中就行。
你提到 bash ,那就是 ~/.bashrc。也可以全局配 :)
Kobayashi
2019-09-06 17:46:51 +08:00
@gIrl1990 你说的应该是 Bash 初始化文件问题。主要问题在于 ~/.bashrc 在 non-login 且 interactive 下才被使用。大多 Linux 都会在 .bash_profile 做判断,使 .bashrc 仅满足 interactive 就会被调用。

# Run ~/.bashrc if this is an interactive shell.
if [[ -n $PS1 ]]; then
source "${HOME}/.bashrc"
fi


参考:

https://github.com/pyenv/pyenv/wiki/Unix-shell-initialization#shell-init-files
Kobayashi
2019-09-06 18:02:08 +08:00
alias 变量并非是必须,有历史命令提示能够解决大部分问题。参考 zsh-autosuggestions 插件。另外 history-search-multi-word 可以直接对历史命令尽心搜索,zsh-history-substring-search,fzf 也能做到类似的效果。ZSH 新手直接傻瓜化使用框架 oh-my-zsh 或者 prezto 即可。

Fish 也是一种解决方案,上面 2 种历史搜索的功能已经被内置。不过个人并不推荐,主要原因并不是 Fish 语法与 Bash 不兼容(毕竟只是只是用来做交互式 Shell,不需要了解语法),而是生态。ZSH 的框架、插件管理器、插件绝对可以碾压任何其他 Shell。

https://github.com/unixorn/awesome-zsh-plugins

https://gist.github.com/laggardkernel/4a4c4986ccdcaf47b91e8227f9868ded

另外,ssh 补全 host 可以通过补全完成,ZSH 参考 prezto/modules/completions。Bash 的也可以借助命令补全。不过 fzf 补全 host 效果更好。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/598036

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX