转至: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. 使用数据泵导入(impdp)和导出(expdp)

    数据泵技术是Oracle Database 10g 中的新技术,它比原来导入/导出(imp,exp)技术快15-45倍.速度的提高源于使用了并行技术来读写导出转储文件. expdp使用 使用EXPDP ...

  2. error while loading shared libraries: libXXX.so.x: cannot open shared object file: No such file or directory .

    转载:http://www.eefocus.com/pengwr/blog/2012-02/235057_baf52.html 此时你可以locate libXXX.so.x 一下,查看系统里是否有该 ...

  3. CSS3+HTML5实现块阴影与文字阴影

    CSS 3 + HTML 5 是未来的 Web,它们都还没有正式到来,虽然不少浏览器已经开始对它们提供部分支持.本教程分5节介绍了 5 个 CSS3 技巧,可以帮你实现未来的 Web,不过,这些技术不 ...

  4. HTML 插入视频

    HTML 5 video 视频标签全属性详解   现在如果要在页面中使用video标签,需要考虑三种情况,支持Ogg Theora或者VP8(如果这玩意儿没出事的话)的(Opera.Mozilla.C ...

  5. unity3d插件Daikon Forge GUI 中文教程5-高级控件listbox和progress bar的使用

    3.3.listbox列表框 Atlas 图集: 下面应用到的精灵都是在这里的. ListBox中的内容: 背景精灵 图片的主颜色 Padding边距 Scrollbar 滚动条对象的预制体或者对象, ...

  6. DBHelper.java(数据库连接类)

    package com.vcredit.ddcash.batch.util; import java.sql.Connection;import java.sql.DriverManager;impo ...

  7. php使用p3p实现cookies跨域设置 实现单点登录,全站登录

    P3P Header is present: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC ...

  8. C# 拷贝数组的几种方法

    已知数组如下: int[] array = { 1, 5, 9, 3, 7, 2, 8 ,6, 4}; (1).引用复制,易引起错误,不推荐 int[] copy = array; (2).遍历拷贝 ...

  9. 验证一个字符串是否由数字组成(Java)

    public class StringDemo{ public static void main(String args[]){ String str ="12343264sd6223&qu ...

  10. jquery中.attr('value')和.val()的区别

    .val() 能够取到 针对text,hidden可输入的文本框的value值. 而 .attr('value') 可以取到html元素中所设置的属性 value的值,不能获取动态的如input ty ...