cmder:懒癌必备!从此告别记事本记命令的日子(代码片段)

编程黑板报 编程黑板报     2023-04-20     357

关键词:

前言

平时开发中遇到这样那样的命令需要记下来,一般做法是这样。

  1. 新建记事本
  2. 将需要记下的关键命令保存。
  3. 每次需要使用时,粘贴复制即可。

好像没什么毛病!直到遇到了 Cmder。。。

当看到同事分析问题时在 Cmder 里命令快捷键刷刷一顿操作,觉得挺厉害滴。感觉这同事技术好牛,快捷键用这么好。后来才知道是 Cmder 用的溜,给人感觉很厉害。从某种意义上说,Cmder 简直是技术人装逼必备神器。

本文不打算讲解 Cmder 的安装和配置过程。可自行查阅,不清楚也可留言。这里重点说说 Cmder 最吸引功能: 自定义命令别名

讲解自定义命令别名之前,先简单介绍下 Cmder。

什么是 Cmder

一句话概括:作者出于 windows 上好的命令行终端太少而创建的 Cmder。

Cmder 是 windows 上一款命令行终端工具。

Cmder 特色:

  • 可设置命令别名
  • 丰富的颜色主题(Solarized、Twilight、Ubuntu、xterm、Monokai,甚至接受自定)、可定制字体
  • 支持 tab 分页、同屏多端口(支持水平分割、垂直分割)
  • 支持自定 terminal,无论是 CMD、PowerShell、bash 都可以,还可以注入环境变量
  • 集成了 git
  • 完全便携可通过 U 盘或者云端携带。保持你的设置别名和历史记录,再也不会看丑陋的 windows 提示符了。

Cmder 特色总结:设置命令别名,配置好看主题,支持多开,自定义终端环境,集成 git 和方便携带。

自定义命令别名

别名定义

很长的命令可以用很简单几个字母表示。如下,只要在 Cmder 中敲 gl 就可代替后面一连串命令。

gl=git log --oneline --all --graph --decorate  $*

命令范围

也许大多数人概念中,既然 Cmder 是 windows 平台工具,那么支持命令当然是 windows 平台相关命令。

其实 Cmder 可表示命令范围很广,任何添加到系统环境变量中的工具,其相关命令都可执行

如下图中,windows 系统环境变量中配置了 svn 和 jdk 。则 java 和 svn 相关命令默认都可以在 Cmder 命令行中可执行。

若目标工具未配置在系统环境变量中则不能直接在 Cmder 中默认使用,需在 Cmder 中手动转到相关目录下执行。

一般开发类软件比如 python、java、git 环境配置时都需要添加到系统环境变量中。

如何添加别名

步骤一: Cmder 安装目录下打开此文件

步骤二:按如下格式添加 ① 表示自定义别名 ② 表示需配置的原始命令。

步骤三:保存修改,关闭 Cmder 客户端后再打开即可生效自定义别名命令。

效果展示

Git 场景

列举两个相关场景

一次性提交给多人评审代码

gpushr = git push origin HEAD:refs/for/master%r=alice@example.com,r=bob@example.com

这样在 Cmder 中直接敲 gpushr 就行了,当然这个 gpushr 是我自己取的,您可以选择自己的别名,一个字母都行。

常规命令快捷键

gl=git log --oneline --all --graph --decorate  $*
gp=git pull
gs=git status
gdb=git branch -D $*

效果如下:

关于命令行中的 $*

表示当前位置是一个变量,由外部传入。

如下操作含义:

  1. 查看当前目录下分支
  2. 创建 test 分支(当然此操作也可以别名控制)
  3. 列出所有分支名称
  4. 上次指定分支 test

这里 gdb=git branch -D $* 而test 通过 $*传入命令中 最终 gdb test = git branch -D test。

就问你 6 不 6。

这些自定义命令只有你自己知道,别人看不懂,学会之后人家眼里尽是你的牛逼。

如何运行脚本

有人说我得了懒癌。每次切换到 python 脚本目录再运行很麻烦。想在 Cmder 中用别名运行一个 python 脚本,

可以的,你想得到,Cmder 就可以帮你做到。

举个例子:

熟悉安卓开发同学都知道,每次 logcat 打印进程信息,其他进程日志会扰乱当前调试进程,只想看到当前进程日志,怎么办呢?可以如下操作:

步骤一:可在 Cmder 安装目录下新建 script 文件夹放入目标 python 脚本

其中 logcatPkg_27.py 可以帮你过滤其他进程日志,只聚焦当前进程日志。

步骤二: 命令中通过%CMDER_ROOT%\\script 指定到目标脚本。

如:执行 logcatPkg_27.py 脚本并在$* 处传入关注进程包名即可。

logcatp=python "%CMDER_ROOT%\\script\\logcatPkg_27.py" $*

logcatPkg_27.py 代码如下:

#!/usr/bin/env python
#coding:utf-8
#This script is aimed to grep logs by application(User should input a packageName and then we look up for the process ids then separate logs by process ids).

import os
import sys

packageName=str(sys.argv[1])

def getDeviceId():
    devices = []
    command = "adb devices -l | sed \'1d\'| awk \'print $1\'"
    result = os.popen(command)
    deviceId = result.readline().strip()
    if deviceId != "":
        devices.append(deviceId)

    while (deviceId != ""):
        deviceId = result.readline().strip()
        if deviceId != "":
            devices.append(deviceId)
    return devices;

def printPakcageLog(device, packageName):
    # print device, packageName
    print("Got device: "+device)
    command = "adb -s %s shell ps | grep %s | awk \'print $2\'"%(device, packageName)
    # print command
    p = os.popen(command)
    ##for some applications,there are multiple processes,so we should get all the process id
    pid = p.readline().strip()
    filters = pid
    while(pid != ""):
        pid = p.readline().strip()
        if (pid != \'\'):
            filters = filters +  "|" + pid
            #print \'command = %s;filters=%s\'%(command, filters)
    if (filters != \'\') :
        cmd = \'adb -s %s logcat -v time | grep --color=always -E "%s" \'%(device, filters)
        os.system(cmd)

devices = getDeviceId();
devicesNum = len(devices);

if devicesNum < 1:
    print("Device not found.")
elif devicesNum == 1:
    device = devices[0]
    printPakcageLog(device, packageName)
else:
    print("Please chose a dvice, input the index of the device:")
    for i in xrange(0, devicesNum):
        print(str(i) + "\\t" + devices[i])
    index = raw_input("")
    printPakcageLog(devices[int(index)], packageName)

步骤三:执行自定义 python 命令即可

如图中,指定一个包名参数,python 脚本就会找到对应包名的 uid ,然后打印所有相关进程信息。

Cmder 别名优势

有杠精会说,git 那个别名多此一举了,本身.gitconfig 里就支持别名操作,难道不知道?如下

$ cat .gitconfig
[alias]
    co = checkout
    ci = commit
    br = branch
    st = status
[user]
    name = Your Name
    email = your@email.com

需要说明的是,这种别名每次使用时都需要带上 git,才能真正执行,比如上述中执行 co 需要写成 git co 才可执行。

与 Cmder 对比很容易看成 Cmder 别名优势:

  1. 让别名更简洁,
  2. 支持通过$*传入自定义变量更加灵活,
  3. 支持其他工具的自定义命令。

总结

本文介绍了 Cmder 命令行终端工具的特点和使用方法,重点讲解了如何自定义命令别名。通过 Git 别名配置和脚本别名配置,展示了 Cmder 别名的强大之处。最后,通过与 Git 别名对比,进一步展示了 Cmder 的优势。Cmder 自定义别名可以让命令更简洁、更灵活,提高开发效率。

❤️本文由公众号编程黑板报 原创,关注我,获取我的最新文章~❤️

“懒癌”患者必备的pdf转word工具

每个月你是不是总有那么二十九天不想上班;上班时懒得思考问题,太费脑筋;放假时就懒得下楼,懒得逛街。能坐着绝不站着,能躺着绝不坐着;手伸不到的地方,都是到不了的远方;聊天能发表情,绝不打字;胖友圈能点赞... 查看详情

信息收集从此告别手动模式,500个学生信息统计也不怕!

...汇总、教学计划安排等一系列的信息统计资料。信息收集从此告别手动模式,500个学生信息统计也不怕!统计班级通讯录信息时,从电子表格到打印出以「斤」论的纸质表格,再到分发给学生,加上不断的督促,最终还要逐个检... 查看详情

一文让你从此告别http乱码response篇

#circle{background-color:#8fcbec;border:3px}概述  开发Web项目的过程中,经常遇到浏览器中显示的内容乱码,或者服务器获取浏览器请求参数时乱码的问题,很多同学基本都是在遇到乱码的时候去网上一顿搜索,然后看哪篇文章比较靠... 查看详情

python爬虫教程:爬取付费电影,告别费钱的日子

今天小编再发一篇爬取电影的文章。不是小编懒,是小编真的不知道写什么了,见谅。如果小编Get到新的技能,一定发。是不是有好多的小伙伴跟好久好久以前的小编一样,看一个电影充个会员,这个没关系,最主要的是,充一... 查看详情

热门技术eventbus3.0,让事件订阅更简单,从此告别组件消息传递烦恼~

一、写在前面  还在为时间接收而烦恼吗?还在为各种组件间的消息传递烦恼吗?EventBus3.0,专注于android的发布、订阅事件总线,让各组件间的消息传递更简单!完美替代Intent,Handler,BroadCast,接口等传统方案。这么优雅的功能... 查看详情

记一次性能优化实战经历@告别2016

...是用2016底的一次SQLServer数据库性能调优经历来做了结,告别2016!不废话,上菜!  内容摘要:一、性能问题描述二、监测分析三、等待类型分析四、优化方案五、优化效果 一、性能问题描述应用端反应系统查询缓慢... 查看详情

最爱的小工具,谁用谁知道!(代码片段)

...等四.ssh工具MobaXterm、putty五.文本工具Notepad++超级好用的记事本Typore超级好用的markdown工具eDiary非常好用的电子记事本六.HTTP工具postman 查看详情

cmder命令行工具在windows系统中的配置(代码片段)

一、Cmder简介Cmder:一款用于Windows系统中,可增强传统cmd命令行工具的控制台模拟器(类似于Linux系统中的终端控制窗口)特点:无需安装,解压即用可使用较多Linux命令,如:vi、vim、ls、pwd、grep、unzip、bash、perl、ssh可在窗口内... 查看详情

cmder--windows下代替原生的cmd命令行工具

Cmder是Windows下的命令行工具,用来代替Windows自带的cmd 官网:http://cmder.net/ 这里下载Full版本https://github.com/cmderdev/cmder/releases/tag/v1.3.6 下载解压打开即可使用 如何将Cmder添加到右键菜单中先配置系统环境变量 &nbs... 查看详情

cmder

...:https://www.cnblogs.com/zqzjs/p/6188605.html目录cmder安装包修改命令提示符λ为$添加至环境变量添加至右键菜单多窗口新开shell窗口添加ll等命令常用快捷键 cmdercmder是一个增强型命令行工具,不仅可以使用windows下的所有命令,... 查看详情

cmder

...下,Windows下也是有不少利器的。之前就有在Windows下效率必备软件一文中对此做了下记载;其虽没oh-my-zsh那么逆天的存在,却也甚是好用,至少要比Windows原生Cmd好出了天际。因为好用,所以 查看详情

cmder--windows下命令行利器

...blogs.com/zqzjs/archive/2016/12/19/6188605.htmlcmdercmder是一个增强型命令行工具,不仅可以使用windows下的所有命令,更爽的是可以使用linux的命令,shell命令。安装包安装包链接下载后,直接解压即用。修改命令提示符λ为$进入解压后的cmder... 查看详情

cmder安装

Cmder用来执行命令行程序,替代Windows系统默认的cmd。具体开发过程中可能会频繁使用命令行,建议安装并注册到右键菜单。【1】下载官网下载《Cmder》便携包,解压缩,即可使用。【2】右键添加(1)管理员权限执行命令:Cmder.e... 查看详情

cmder配置使用

...der到右键菜单 用管理员权限运行控制台,输入下面的命令:Cmder.exe/REGISTERALL3、修改命令提示符号1.3以后的版本,修改文件 ${CMDER_HOME}vendorclink.luaifenv==nilt 查看详情

cmder使用简介(代码片段)

简介cmder是一个增强型命令行工具,不仅可以使用windows下的所有命令,更爽的是可以使用linux的命令,shell命令。下载官网地址:http://cmder.net/ 下载的时候,会有两个版本,分别是mini与full版;唯一的差别在于有没有内建msysgit... 查看详情

命令行神器cmder(代码片段)

下载地址:http://cmder.net/修改命令提示符λ为$进入解压后的cmder的目录,进入vendor,打开clink.lua文件。修改localcmder_prompt="\x1b[1;32;40mcwdgithgsvn\n\x1b[1;39;40mlamb\x1b[0m"为localcmder_prompt="\x1b[1;32;40mcwdgithg 查看详情

dict字典的用法(代码片段)

...ks="倚天屠龙记":"id":1,"price":100,"好吗好的":"id":2,"price":200,"告别薇安":"id":3,"price":300,"穆斯林的葬礼":"id":4,"price":400foriinbooks:print(i)结果:倚天屠龙记好吗好的告别薇安穆斯林的葬礼代码2:books="倚天屠龙记":"id":1,"price":100,"好吗好的"... 查看详情

acm退役记&&回忆录

...报名的),附上小图一张!嗯,我退役了,真的退役了,从此告别了ACM的生涯,虽然有很多遗憾,虽然有很多不舍,虽然有很多很多不情愿,但是,,,还是没能阻止这一天的到来,可能你们会认为我退役的有点早,可能你们也... 查看详情