探索PowerShell (三) PowerShell下使用Aliases

不知道各位有没有接触过linux,我才疏学浅,对alias的认识是从linux上来的。Linux常用的Bash命令也是有上百个,虽然一般情况下命令都非常简短,不过很多时候需要大量的却是大量的参数,这样,对很多初学者来说,背命令变成为最头疼的事情,也使得很多Linux初学者望而生畏。因此,在linux下,很常用的就是alias,也就是别名。当然,PowerShell很好的借鉴了这一点。

这一节就来介绍PowerShell下的Aliases。

在PowerShell中,为了习惯于使用,可以使用别名代替命令。例如,Windows老手可以利用像dir、move、type、cls等,当然,为了吸纳更多使用者,PowerShell还提供了对Linux的别名设置,如:ls、pwd、mv、man、cat等。

为PowerShell设置别名的目的,是为了向新用户提供一个能够快速交互的shell。这里的alias,指的是cmdlet的替代名称。例如,"dir”替代的是"Get-ChildItem”。

在这一节,将介绍两种类型的alias:

内置的别名

适用于Windows,Unix和预定义的PowerShell cmdlet的替代名称。

使用以下命令来浏览PowerShell的alias列表:


get-alias <enter>

细心的童鞋可以发现,Get-ChileItem这个cmdlet拥有多个alias,如:dir、ls、gci。我们可以尝试这些命令,结果都是一样的,如下图:

从本质上讲,我们只是运行了四次"get-chileitem"。内置别名的存在,使得我们在shell中工作时更加顺手而高效。不过说实在的,作为用户,我们没有必要多多的关注一个cmdlet都有哪些alias,我们只要用好自己习惯的就行了。

用户自定义的PowerShell的Alias

设置alias的命令

例:为名为'get-service”的cmdlet定义一个alias


Set-Alias gs Get-Service <enter>

相当简单的语法,没有什么可多说的。

使用以上命令为你的cmdlet定义alias确实很容易,不过存在一个问题,就是这个alias只对当前处于会话期的PowerShell有效,也就是说,当你关闭并重新打开PowerShell时,输入这条alias,PowerShell会很无情的告诉你 “The term ‘gs' is not recognized as a cmdlet, function, operable program, or script file. Verify the term and try again.”

那么,当我们创建了一个Alias,并且不想失去它,我们怎么办?

  • 有两种选择:

导入和导出PowerShell的Aliases;

使用PowerShell配置文件来自定义Alias。

方法一:导入和导出PowerShell的Aliases

导出Aliases的一个好处就是,你可以将它带到任何一个你想使用的地方。其命令如下<导出文件名自定义>:


Export-Alias -Path a.txt <enter>

我们可以用notepad.exe看看这个里面都是些什吗东东~~~

好了,有人迫不及待的想试试导入了吧~~~


Import-Alias -Path a.txt <enter>

额~杯具了!!!

看起来很惨的样子……

其实如果一个cmdlet存在alias,那么再次导入就会产生这样的杯具。

所以,我们的导出文件,只需要很简单的定义出自己常用的alias即可(那些系统自带的都统统删除就好啦),如:

好了,就是这样,嘿嘿嘿,是不是很邪恶~~~看看效果吧:

当然,强大的PowerShell不会弱智到让用户每次启动shell时都手动载入aliases一次的。在PowerShell的配置文件中,我们可以进行相关设置。

方法二:使用PowerShell的配置文件

配置文件的位置存储在$Profile变量中,其默认值为:

'My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1″

使用如下命令查看$Profile值:


$Profile

如前所述,PowerShell配置文件是一个扩展名为“.ps1”的文件。所有PowerShell脚本都使用这个扩展名。在此,我将使用记事本对其进行编辑。不过在此之前,还需要检查的PowerShell的执行策略设置。

PowerShell在第一次安装时默认的执行策略是"Restricted",也就是“受限制的”,这意味着PowerShell将不能运行任何脚本和配置文件。

• PowerShell的执行策略分级:

Restricted - 不能运行任何脚本和配置文件

AllSigned - 所有脚本和配置文件必须拥有受信任的发布者的签名

RemoteSigned - 所有脚本和配置文件从可以是互联网上下载,但必须拥有受信任的发布者的签名

Unrestricted - 所有脚本和配置文件都将运行,从互联网上下载的脚本在运行前会有提示。

使用如下cmdlet查看当前所处的策略级别:


Get-ExecutionPolicy <Enter>

修改策略级别为Unrestricted:


Set-ExecutionPolicy Unrestricted <enter>

好的,我们现在来对$Profile进行配置。

• 第1步 验证$Profile是否存在


test-path $Profile <Enter>

false ===> 配置文件不存在(继续步骤2)。
true ===> 不多说了,直接跳过步骤2和3吧。除非你想创建一个新的配置文件,不过这将删除当前的配置文件。

• 第2步 创建一个新的配置文件

New-Item -Path $Profile -ItemType file -Force <enter> 

第3步 再次验证是否成功创建新的配置文件

重复步骤1吧。结果应该为"true”。

好了,在记事本中打开配置文件:


notepad $Profile <enter>

OK!我们现在拥有了一个空白的配置文件,其实可以称之为一个空白脚本。

其文件名为:

“Microsoft.PowerShell_profile.ps1″

现在开始配置吧:

好了,现在可以关闭notepad和Powershell了。重新打开PowerShell试试看。

完美!


另外需要说明几点,更改PowerShell策略级别时,需要使用管理员权限的,否则……


好了,这一节就到这里。说实话,那几个策略级别的单词真不好记,不过幸好不常用~~~

(0)

相关推荐

  • nginx,apache的alias和认证功能

    从年前电脑换成linux系统后就没写东西,最近有点懒,在这里讲述下nginx alias 功能,不是server alias . 首先看下看下apache 别名 怎么配置的: 复制代码 代码如下: <VirtualHost *:80> DocumentRoot /www/jb51.net/www 这是虚拟主机的根目录吧,但是phpMYadmin 不在这个目录下,想访问. ServerName www.jb51.net ServerAlias jb51.net Alias /sdb "

  • PowerShell中使用Get-Alias命令获取cmdlet别名例子

    PowerShell中为了与原来的cmd命令保持兼容,特别为很多cmdlet设置了别名.这些别名跟cmd命令是同名的,但它代表着一个PowerShell中的cmdlet.比如dir这个cmd命令,它用于列出一个目录下的子文件夹和文件,在PowerShell有一个Get-ChildItem的cmdlet,它的作用也是列出一个目录下的子文件夹和文件,于是微软就给Get-ChildItem设置了一别名叫dir. 在PowerShell中,使用Get-Alias这个cmdlet,可以列出所有的别名,以及

  • Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析

    本文实例讲述了Yii2中设置与获取别名的函数(setAlias和getAlias)用法.分享给大家供大家参考,具体如下: 首先说说什么是别名. 在Yii中有很多的路径,在开发的过程当前我们也会使用一些路径.一般来说都需要使用绝对路径,但绝对路径都很长. 所以,为了方便的使用路径,可以在Yi中i给每个路径起个名称,这个名称就是别名. 别名的格式: 别名必须以"@"字符开头,别名中还可以包含"/".如("@www"为根别名,"@www/te

  • PHP(FastCGI)在Nginx的alias下出现404错误的解决方法

    本文讲述了PHP(FastCGI)在Nginx的alias下出现404错误的解决方法.分享给大家供大家参考,具体如下: 在Nginx的官方wiki中如下描述 The alias directive cannot be used inside a regex-specified location. If you need to do this you must use a combination of rewrite and root. 在实际使用中alias下面的php返回404,而html确可

  • 修改Android签名证书keystore的密码、别名alias以及别名密码

    Eclipse ADT的Custom debug keystore自定义调试证书的时候,Android应用开发接入各种SDK时会发现,有很多SDK是需要靠package name和keystore的指纹hash来识别的(百度地图SDK.又或是微信sdk.新浪微博的sdk),这样如果使用默认自动生成的debug keystore的话就会给开发调试工作带来一些麻烦.因为在生成这些开放平台需要带签名的apk生成的签名信息,再去申请到最后的秘钥.这时可以通过修改正式的release keystore,生

  • Nginx中的root&alias文件路径及索引目录配置详解

    root&alias文件路径配置 nginx指定文件路径有两种方式root和alias,这两者的用法区别,使用方法总结了下,方便大家在应用过程中,快速响应.root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上. [root] 语法:root path 默认值:root html 配置段:http.server.location.if [alias] 语法:alias path 配置段:location 实例: loca

  • JavaWeb开发中alias拦截器的使用方法

    在SSH项目中,有时需要由一个Action跳转到另一个Action.有两种方式可以实现Action之间的跳转,一种是chain,另一种是redirectAction,这两种方式之间的区别是chain是在服务器上跳转,可以实现不同Action之间的数据共享:而redirectAction是在客户端进行跳转. 使用chain在不同的Action之间传递参数值,这个功能可以通过alias拦截器来实现. 1. 指定Filter类 在web.xml中设置下面的拦截器: <filter> <filt

  • 探索PowerShell (三) PowerShell下使用Aliases

    不知道各位有没有接触过linux,我才疏学浅,对alias的认识是从linux上来的.Linux常用的Bash命令也是有上百个,虽然一般情况下命令都非常简短,不过很多时候需要大量的却是大量的参数,这样,对很多初学者来说,背命令变成为最头疼的事情,也使得很多Linux初学者望而生畏.因此,在linux下,很常用的就是alias,也就是别名.当然,PowerShell很好的借鉴了这一点. 这一节就来介绍PowerShell下的Aliases. 在PowerShell中,为了习惯于使用,可以使用别名代

  • Ajax实现无刷新三联动下拉框

    <HTML> <HEAD> <title>Ajax实现无刷新三联动下拉框</title> <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR"> <meta content="C#" name="CODE_LANGUAGE"> <meta content="Jav

  • 探索PowerShell (四) PowerShell的对象、格式与参数

    今天贴博文晚了,感谢各位能继续关注! 本节将要给大家介绍一下PowerShell下的对象,基本格式以及参数.依然属于PowerShell的基础. PowerShell中的对象 在本教程开篇我们说过,PowerShell是基于面向对象化的,不像传统的shell那样基于文本.这其中最主要的原因就是因为Win平台在管理操作上主要以面向对象为主,因此为了符合系统特点和我们的操作习惯,PowerShell也继承了这一特色.因此,不像传统的shell,在PowerShell中,我们可以随意地与对象进行互动,

  • 探索PowerShell (二) PowerShell的基本操作

    PowerShell控制台 打开PowerShell,显示如下界面: 命令提示符前缀为: PS C:\Users\MaRui> PS的意思为正在运行PowerShell中,而C:则是我的主目录驱动器号,不同机器会有所不同. 最最最基本的操作与cmd.dos.sh等相同. cmdlet命令 虽然有超过一百条新的PowerShell命令需要去学习,但是,与大多数命令行界面一样,PowerShell命令已经被标准化.它使用"动词-名词"的命名形式作为一个cmdlet命令.该标准大大降低

  • 探索PowerShell(五) PowerShell基础知识

    在PowerShell中,我们可以轻松的与数据.对象进行交互,为了简化我们访问外部数据,PowerShell允许我们像操作驱动器.文件一样对数据.对象等进行操作. 使用这条命令,查看我们已有的Providers: get-psprovider 实际上,每一个Provider就是一个动态链接库(.dll),在PowerShell中也可以被称之为"管理单元",在管理单元中,有详细的代码实现我们的各种操作.PowerShell甚至允许我们自己编写Provider:http://msdn.mi

  • 探索PowerShell(七) PowerShell变量

    变量 在程序设计中,变量是最基本的概念,它是我们表示数据的在存储时的代号.在PowerShell中,变量通常供我们在脚本中使用,它可以是数字.字符.字符串,甚至是对象.当然,和任何shell一样,它也有自己的特定的变量,如:$_ .$Args.$Error.$Home.$PSHome等. 在PowerShell中,所有的变量以"$"开头,用"="来给变量赋值.例如: $StrUser = "MR″ <enter> 或者使用"set-v

  • vue省市区三联动下拉选择组件的实现

    我们曾经经常会遇到需要选择省市区的需求,我们可能是找一个插件来实现,但是有了vue之后,我们自己完全可以简单的实现这个效果,并封装为独立的.vue组件,便于日后使用 我们今天来实现一个 利用vuejs开发的 省市区三联动的组件  CitySelect.vue组件 首先来看一下最终的效果(没有写太多的样式...) 组件所需要的省市区的JSON数据(已经封装为commonjs模块了):    provinces.js 这个数据中有这样几个字段: code: 当前省市区的编码 sheng: 当前所在的

  • PowerShell的基本使用方法

    目录 什么是powershell 1.   如何启动PowerShell 2.   如何运行程序.脚本和已有的软件 3.   运行PowerShell命令 4.   如何查找指定命令以及命令详情 5.   如何在外部调用PowerShell脚本 6.   如何获知最后执行命令的状态 7.   如何计算命令执行时间 8.   了解命令的别名 9.   如何操作使用管理控制台历史命令 10. 如何重定向输出 11. 如何记录PowerShell会话全文 12. 如何显示对象属性为列表或表格 13.

  • PowerShell 语音计算器实现代码

    带中文发音功能的计算器程序,支持鼠标和小键盘输入,支持多种数值转人民币 大写,如:123.4--->壹佰贰拾叁点肆圆. [程序界面抓图] 版本号 1.51 下载:/201710/tools/voice_calc_jb51.rar [本程序定位] 本程序定位为:语音+简单+常用+方便的+免费软件. 所以本程序并不打算提供语音开关功能.假如不需要语音功能,建议使用微软自带的计算器. [开发初衷] 带有语音的计算器软件大都收费或者是破解版,而我这个首先不收费, 其次开源,也就是说绝无后门,你还可以di

  • 详谈Ubuntu PowerShell(小白入门必看教程)

    早在去年八月份PowerShell就开始开源跨平台了,但是一直没有去尝试,叫做PowerShell Core. 这里打算简单介绍一下如何安装和简单使用,为还不知道PowerShell Core on Ubuntu的同学们提供一点小小的入门帮助,谢谢大家支持~ PowerShell Core是由Microsoft开发的运行在.Net Core上的开源跨平台的任务自动化和配置管理系统. 1.在Ubuntu 16.04上安装PowerShell Core a)导入公共存储库GPG秘钥 curl htt

随机推荐