【转】PowerShell入门(四):如何高效地使用交互式运行环境?
转至: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入门(四):如何高效地使用交互式运行环境?的更多相关文章
- Linux入门(三)搭建服务器linux运行环境LAMP/LNMP
本文内容主要根据慕课网教学视频整理,原链接http://www.imooc.com/learn/170 我用的linux系统是ubuntu 12.04 LTS 虚拟机是VMware Workstat ...
- 【转】PowerShell入门(十):使用配置文件
转至:http://www.cnblogs.com/ceachy/archive/2013/03/01/PowerShell_Profile.html 在命令行中定义别名.变量和函数,只是将它们添加在 ...
- powershell入门教程-v0.3版
powershell入门教程-v0.3版 来源 https://www.itsvse.com/thread-3650-1-1.html 参考 http://www.cnblogs.com/piapia ...
- 【转】PowerShell入门(十二):编写PowerShell管理单元和二进制模块
转至:http://www.cnblogs.com/ceachy/archive/2013/03/13/PowerShell_SnapIn.html PowerShell一开始就提出利用管理单元来实现 ...
- 【转】PowerShell入门(十一):编写脚本模块
转至:http://www.cnblogs.com/ceachy/archive/2013/03/08/PowerShell_Script_Module.html 现在通过编写模块就可以在PowerS ...
- 【原创】NIO框架入门(四):Android与MINA2、Netty4的跨平台UDP双向通信实战
概述 本文演示的是一个Android客户端程序,通过UDP协议与两个典型的NIO框架服务端,实现跨平台双向通信的完整Demo. 当前由于NIO框架的流行,使得开发大并发.高性能的互联网服务端成为可能. ...
- 【转】PowerShell入门(三):如何快速地掌握PowerShell?
转至:http://www.cnblogs.com/ceachy/archive/2013/02/01/HowToLearnPowerShell.html 如何快速地掌握PowerShell呢?总的来 ...
- python学习笔记--Django入门四 管理站点--二
接上一节 python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...
- Swift语法基础入门四(构造函数, 懒加载)
Swift语法基础入门四(构造函数, 懒加载) 存储属性 具备存储功能, 和OC中普通属性一样 // Swfit要求我们在创建对象时必须给所有的属性初始化 // 如果没办法保证在构造方法中初始化属性, ...
随机推荐
- 使用数据泵导入(impdp)和导出(expdp)
数据泵技术是Oracle Database 10g 中的新技术,它比原来导入/导出(imp,exp)技术快15-45倍.速度的提高源于使用了并行技术来读写导出转储文件. expdp使用 使用EXPDP ...
- 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 一下,查看系统里是否有该 ...
- CSS3+HTML5实现块阴影与文字阴影
CSS 3 + HTML 5 是未来的 Web,它们都还没有正式到来,虽然不少浏览器已经开始对它们提供部分支持.本教程分5节介绍了 5 个 CSS3 技巧,可以帮你实现未来的 Web,不过,这些技术不 ...
- HTML 插入视频
HTML 5 video 视频标签全属性详解 现在如果要在页面中使用video标签,需要考虑三种情况,支持Ogg Theora或者VP8(如果这玩意儿没出事的话)的(Opera.Mozilla.C ...
- unity3d插件Daikon Forge GUI 中文教程5-高级控件listbox和progress bar的使用
3.3.listbox列表框 Atlas 图集: 下面应用到的精灵都是在这里的. ListBox中的内容: 背景精灵 图片的主颜色 Padding边距 Scrollbar 滚动条对象的预制体或者对象, ...
- DBHelper.java(数据库连接类)
package com.vcredit.ddcash.batch.util; import java.sql.Connection;import java.sql.DriverManager;impo ...
- php使用p3p实现cookies跨域设置 实现单点登录,全站登录
P3P Header is present: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC ...
- C# 拷贝数组的几种方法
已知数组如下: int[] array = { 1, 5, 9, 3, 7, 2, 8 ,6, 4}; (1).引用复制,易引起错误,不推荐 int[] copy = array; (2).遍历拷贝 ...
- 验证一个字符串是否由数字组成(Java)
public class StringDemo{ public static void main(String args[]){ String str ="12343264sd6223&qu ...
- jquery中.attr('value')和.val()的区别
.val() 能够取到 针对text,hidden可输入的文本框的value值. 而 .attr('value') 可以取到html元素中所设置的属性 value的值,不能获取动态的如input ty ...