Android开发日常之shell alias

学无止境,有一技旁身,至少不至于孤陋寡闻。
随着我们工作阅历的提升,除了基本的业务开发,也需要提升我们自身在开发效能方面的一些储备与笔记。

Android开发日常之gradle
Android开发日常之adb
Android开发日常之git
Android开发日常之shell alias

shell终端的别名只是命令的简写,有类似键盘快捷键的效果。如果你经常执行某个长长的命令,可以给它起一个简短的化名。使用alias命令列出所有定义的别名。你可以在~/.bashrc(.zshrc)文件中直接定义别名如alias logRunActivity="adb shell dumpsys activity activities | grep 'Run*'",也可以新创建一个文件如.byterc, 然后在当前shell对应的文件中.bashrc或者.zshrc 中增加source ~/.byterc,重新source配置,使得配置生效,即可使别名全局生效。使用别名可以节省时间、提高工作效率。

查看当前shell

  • 在命令行中执行ps $$ 或者ps -fp $$,在COMMAND列可查看对应的shell,如-zsh
  • 输入一条不存的命令,查看出错的shell提示
    admin@C02D91V5MD6R ~ % omg
    zsh: command not found: omg
    

当然也有其他方式可以查看(不是重点),主要是为了了解当前shell是bash还是zsh

下面在MAC环境采用新建文件形式添加别名,步骤如下:

  1. 新建.byterc 文件
    • 如果已经新建,直接打开
      open ~/.byterc
    • 没有新建,则新建后打开
      新建: touch ~/.byterc
      打开:open ~/.byterc
  2. 在.zshrc中添加source ~/.byterc
  3. 在打开的.byterc文件中定义别名
    alias logRunActivity="adb shell dumpsys activity activities | grep 'Run*'"
    Android同学应该知道作用就是查看当前设备运行的Activity信息
  4. 重新source配置,使得配置生效
    $ source ~/.byterc
    如果不是新建文件,直接使用.bashrc或者.zshrc ,直接source对应的配置即可,如:$ source ~/.zshrc .
  5. 此时在命令行中直接执行logRunActivity 即可。

关于使用alias设置shell命令简单使用:

  1. 列出所有别名
    $ alias

  2. 定义/创建别名
    定义别名的语法:$ alias name=value
    例如使用别名c表示clear命令,清屏。
    $ alias c='clear' // 或写到~/.bashrc文件中,使它全局生效
    $ alias -g c='clear' //全局生效
    然后可以用c来清屏:
    $ c

  3. 移除一个别名
    语法:$ unalias alias_name
    例如,移除上面的清屏别名c:$ unalias c
    如果定义了全局的也需要移除~/bashrc(zshrc))文件中定义的别名。

  4. 关于ls命令的别名:
    带颜色的ls别名:
    alias ls='ls --color=auto'
    alias ll='ls -la'
    显示隐藏文件或目录的命令别名:
    alias l.='ls -d .* --color=auto'

  5. 关于cd命令的别名:
    进入父目录
    alias cd..='cd ..'
    快速返回到父目录

    alias ..='cd ..'
    alias ...='cd ../../'
    alias ....='cd ../../../'
    alias .....='cd ../../../../'
    alias .4='cd ../../../../'
    alias .5='cd ../../../../../'
    
  6. 关于grep命令的别名:
    加入颜色输出,在搜索log文件时很有用

    alias grep='grep --color=auto'
    alias egrep='egrep --color=auto'
    alias fgrep='fgrep --color=auto'
    
  7. 给设备截图并在电脑上打开

    • 截屏
    $ adb shell screencap /sdcard/screen_shot_temp.png
    
    • 拷贝到电脑上
    $ adb  pull /sdcard/screen_shot_temp.png ~/Downloads/
    
    • 打开Downloads
    $ open ~/Downloads -a Finder
    

    合成一个命令如下:

    $ adb shell screencap /sdcard/screen_shot_temp.png && adb  pull /sdcard/screen_shot_temp.png ~/Downloads/ &&  open ~/Downloads -a Finder
    

    使用alias如下:

    $ alias -g ss='adb shell screencap /sdcard/screen_shot_temp.png && adb  pull /sdcard/screen_shot_temp.png ~/Downloads/ &&  open ~/Downloads -a Finder'
    $ ss
    

推荐阅读更多精彩内容