转至:http://www.cnblogs.com/ceachy/archive/2013/02/05/PowerShell_Interacting_Environment.html

在开始关于脚本、对象和远程处理等复杂的功能之前,一直想再写一篇关于交互式运行环境的文章。因为我觉得这很重要,但是有什么是不重要呢?:)所以,说到底可能是个人喜好吧,我就是特别喜欢这种立等可取的交互方式。

  如何高效地使用PowerShell的交互式运行环境呢?所谓“高效”,既跟使用这个工具的熟练程度有关,也跟使用这个工具的习惯有关。习惯有无意中养成的,也有主动养成的。如果你恰好玩PowerShell不久,那么就从现在开始主动养成一些好习惯吧。

多用Tab键

  在运行环境中,Tab键有补全内容的作用。除了可以像Cmd那样补全子目录和子文件,还可以补全PowerShell的Cmdlet、函数以及参数等等。这个确实很好用,比如说运行脚本文件必须在脚本名称前加上“.\ ”,否则你即使打全了脚本文件名,也照样执行不了;而你打出脚本文件名的前几个字母,按Tab键后,脚本就会补全成可以执行的样子。是不是很帅?但是有两点需要注意:

  1、你打出的(文件、命令等的)前几个字母应该具有区分性的,否则的话可能会遍历所有匹配的文件、文件夹和命令;

  2、宁肯少打,不要打错,否则就啥也找不到了;

常用Alias

  使用Alias是提高工作效率的另一个有效方式。这里主要有两方面的原因:

  1、Alias一般都是熟悉的命令方式,不管是寻找合适的命令,还是把合适的命令打出来,都会比较顺手;

  2、Cmdlet因为结构的问题,一般都比较长,而且dash(横杠)不在字母区域,敲击这个键也会降低工作效率,而Alias一般就是两三个字母,既短又好敲,刚好弥补了Cmdlet的缺陷。

  此外,这里有一个不得不提的原则:以交互式工作时,尽量多使用Alias;写脚本的时候,要尽量少用,甚至不用Alias。这是因为,以交互方式运行命令完成工作时,所输入的命令以及期望的结果只与使用者有关,一般不需要跟别人共享,当然以效率为上;而脚本一般会被使用较长时间,并且会多人被维护,可读性相比效率更加重要。

将战场从Cmd转移到PowerShell

  想要接触PowerShell的人,一般就是使用Cmd命令行比较多的人。工具用得久了,自然亲切,不愿放下。但要跟上时代,充分受益于当下的成果就要用于离开舒服的区域,尝试新事物。拿到这里来说,就是要将自己的主要工作环境从Cmd命令行转移到PowerShell上来。

  一般来说,使用PowerShell不比Cmd命令行复杂。比如说,你在要看一下现正在使用的机器上的IP。你以前可能是先按Windows键+R键,然后输入cmd,回车,ipconfig,回车就可以了,整个下来只有几秒钟的时间。现在呢?只是把cmd换成powershel,也很快。但有时会稍微麻烦一些。比如说,以前在命令行里输入dir /ad来查看所有子文件夹,现在要输入dir | ? {$_.mode –like “d*”}。输入稍微多了些,但这是熟悉这个工具的毕竟之路。最不济,如果你很着急执行一个命令,但是powershell命令一时半会儿想不起来,那么就在PowerShell中输入“cmd /c 命令”,例如查找当前目录下隐藏文件的命令:cmd /c dir /ah。总之,要多玩PowerShell,玩多了才能熟,熟才能生巧。

结语

  交互式运行环境是PowerShell的基础和根本。它使着顺手了,你才会走得更远,想的更多。

【转】PowerShell入门(四):如何高效地使用交互式运行环境?的更多相关文章

  1. Linux入门(三)搭建服务器linux运行环境LAMP/LNMP

    本文内容主要根据慕课网教学视频整理,原链接http://www.imooc.com/learn/170 我用的linux系统是ubuntu 12.04 LTS  虚拟机是VMware Workstat ...

  2. 【转】PowerShell入门(十):使用配置文件

    转至:http://www.cnblogs.com/ceachy/archive/2013/03/01/PowerShell_Profile.html 在命令行中定义别名.变量和函数,只是将它们添加在 ...

  3. powershell入门教程-v0.3版

    powershell入门教程-v0.3版 来源 https://www.itsvse.com/thread-3650-1-1.html 参考 http://www.cnblogs.com/piapia ...

  4. 【转】PowerShell入门(十二):编写PowerShell管理单元和二进制模块

    转至:http://www.cnblogs.com/ceachy/archive/2013/03/13/PowerShell_SnapIn.html PowerShell一开始就提出利用管理单元来实现 ...

  5. 【转】PowerShell入门(十一):编写脚本模块

    转至:http://www.cnblogs.com/ceachy/archive/2013/03/08/PowerShell_Script_Module.html 现在通过编写模块就可以在PowerS ...

  6. 【原创】NIO框架入门(四):Android与MINA2、Netty4的跨平台UDP双向通信实战

    概述 本文演示的是一个Android客户端程序,通过UDP协议与两个典型的NIO框架服务端,实现跨平台双向通信的完整Demo. 当前由于NIO框架的流行,使得开发大并发.高性能的互联网服务端成为可能. ...

  7. 【转】PowerShell入门(三):如何快速地掌握PowerShell?

    转至:http://www.cnblogs.com/ceachy/archive/2013/02/01/HowToLearnPowerShell.html 如何快速地掌握PowerShell呢?总的来 ...

  8. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

  9. Swift语法基础入门四(构造函数, 懒加载)

    Swift语法基础入门四(构造函数, 懒加载) 存储属性 具备存储功能, 和OC中普通属性一样 // Swfit要求我们在创建对象时必须给所有的属性初始化 // 如果没办法保证在构造方法中初始化属性, ...

随机推荐

  1. petapoco定制,比较SQL事务,存储过程,分布式事务(MSDTC)的区别和场景

    使用分布式事务时 就锁死了,而且是只锁编辑的行 使用.netSQL事务一定要执行了一个CUD的SQL才会锁死,而且也是锁行,但是也锁读的行 .netSQL事务要在这里才锁死 结论,对于产品要求细粒度的 ...

  2. Lanterns

    Lanterns 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=86640#problem/B 题目: Description ...

  3. 黑马程序员----java基础笔记上(毕向东)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 笔记一共记录了毕向东的java基础的25天课程,分上.中.下 本片为上篇,涵盖前10天课程 1. ...

  4. css形状大全

    转至:http://blog.sina.com.cn/s/blog_4abb9bba0101acsx.html

  5. hdu Virtual Friends

    这题是一个很简单额并查集的题目,首先第一步是要用map将字符串映射为整型,这样方便后面的处理,然后就是用一个rank[]数组来记录每个朋友圈的人数.之后就是简单的并查集操作了. 这里给出一组测试案例: ...

  6. hdu Sudoku Killer

    简单的dfs,主要就是每个?处填的值是否满足条件的判断.这道题感觉考察的是输出格式的控制. #include"iostream" #include"stdio.h&quo ...

  7. background-size扫盲

    contain,按比例调整背景图片,使得其图片宽高比自适应整个元素的背景区域的宽高比,因此假如指定的图片尺寸过大,而背景区域的整体宽高不能恰好包含背景图片的话,那么其背景某些区域可能会有空白. cov ...

  8. Rocky4.2下安装达梦(DM)6数据库

    1.准备操作系统 1.1 系统登录界面 1.2 操作系统版本信息 jdbh:~ # uname -ra Linux jdbh -x86_64 # SMP Fri Dec :: CST x86_64 G ...

  9. Android课程---寄存器与存储器的区别

    存储器在CPU外,一般指硬盘,U盘等可以在切断电源后保存资料的设备,容量一般比较大,缺点是读写速度都很慢,普通的机械硬盘读写速度一般是50MB/S左右.内存和寄存器就是为了解决存储器读写速度慢而产生的 ...

  10. Math-基本功能

    <script type="text/javascript"> /* *演示Math对象.该对象中的方法都是静态的.不需要new,直接Math调用即可 */ var n ...