CentOS 7
Ads

Install PowerShell for Linux
2016/09/27
 
Install Microsoft PowerShell for Linux.
Refer to the details about PowerShell for Linux below.
  ⇒ https://github.com/PowerShell/PowerShell/blob/master/docs/installation/linux.md
[1] Install PowerShell.
[root@dlp ~]#
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/microsoft.repo

[root@dlp ~]#
yum -y install powershell
[2] Basic operation of PowerShell.
# run PowerShell

[root@dlp ~]#
powershell

PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.

PS /root>

# display Cmdlet list (only display 10 lines from the head)
PS /root> (Get-Command)[0..9] 

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Function        Add-NodeKeys                                       0.0        PSDesiredStateConfiguration
Function        AddDscResourceProperty                             0.0        PSDesiredStateConfiguration
Function        AddDscResourcePropertyFromMetadata                 0.0        PSDesiredStateConfiguration
Function        AfterAll                                           3.3.9      Pester
Function        AfterEach                                          3.3.9      Pester
Function        Assert-MockCalled                                  3.3.9      Pester
Function        Assert-VerifiableMocks                             3.3.9      Pester
Function        BeforeAll                                          3.3.9      Pester
Function        BeforeEach                                         3.3.9      Pester
Function        cd..

# display current PATH
PS /root> pwd 

Path
----
/root

# change directory to /home
PS /root> cd /home 

# back to home
PS /home> cd 

# display files under the current direcroty (dir equals Get-ChildItem)
PS /root> dir 

    Directory: /root

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
------           1/8/15   7:52 AM            985 anaconda-ks.cfg

# display files under / 
PS /root> Get-ChildItem / 

    Directory: /

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d----l         12/17/15   7:05 PM                bin
d-r---          9/23/16  11:32 PM                boot
d-----          9/28/16   7:27 PM                dev
.....
.....

# create new file under the current directory
PS /root> New-Item -Path test.txt 

    Directory: /root

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
------          9/28/16   8:52 PM              0 test.txt

PS /root> dir 

    Directory: /root

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
------           1/8/15   7:52 AM            985 anaconda-ks.cfg
------          9/28/16   8:52 PM              0 test.txt

# create new directory under the current directory
PS /root> New-Item -ItemType Directory -Path testdir 

    Directory: /root

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----          9/28/16   8:55 PM                testdir

PS /root> dir 

    Directory: /root

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----          9/28/16   8:55 PM                testdir
------           1/8/15   7:52 AM            985 anaconda-ks.cfg
------          9/28/16   8:52 PM              0 test.txt

# echo texts and redirect it to a file
PS /root> echo "test content" >> test.txt 

# display content of a file
PS /root> Get-Content test.txt 
test content

# move/rename a file
PS /root> Move-Item test.txt test1.txt 
PS /root> dir 

    Directory: /root

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----          9/28/16   8:55 PM                testdir
------           1/8/15   7:52 AM            985 anaconda-ks.cfg
------          9/28/16   8:57 PM             28 test1.txt

# copy a file
PS /root> Copy-Item test1.txt test2.txt 
PS /root> dir 

    Directory: /root

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----          9/28/16   8:55 PM                testdir
------           1/8/15   7:52 AM            985 anaconda-ks.cfg
------          9/28/16   8:57 PM             28 test1.txt
------          9/28/16   8:57 PM             28 test2.txt

# copy a directory recursively
PS /root> Copy-Item testdir testdir2 -Recurse 
PS /root> dir 

    Directory: /root

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----          9/28/16   9:04 PM                testdir
d-----          9/28/16   9:04 PM                testdir2
------           1/8/15   7:52 AM            985 anaconda-ks.cfg
------          9/28/16   8:57 PM             28 test1.txt
------          9/28/16   8:57 PM             28 test2.txt

# remove a file
PS /root> Remove-Item test2.txt 
PS /root> dir 

    Directory: /root

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----          9/28/16   9:04 PM                testdir
d-----          9/28/16   9:04 PM                testdir2
------           1/8/15   7:52 AM            985 anaconda-ks.cfg
------          9/28/16   8:57 PM             28 test1.txt

# remove a directory recursively
PS /root> Remove-Item testdir2 -Recurse 
PS /root> dir 

    Directory: /root


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----          9/28/16   9:04 PM                testdir
------           1/8/15   7:52 AM            985 anaconda-ks.cfg
------          9/28/16   8:57 PM             28 test1.txt

# search files which includes ".txt" in thier name under the current directory
PS /root> Get-ChildItem "*.txt" -Recurse 

    Directory: /root/testdir


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
------          9/28/16   8:57 PM             28 test3.txt

    Directory: /root


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
------          9/28/16   8:57 PM             28 test1.txt

# search a word "test" in a file "test1.txt"
PS /root> Select-String -Pattern "test" test1.txt 

test1.txt:1:test content

# show help about a cmdlet
PS /root> Get-Help Get-Content 

NAME
    Get-Content

SYNOPSIS
    Gets the content of the item at the specified location.


SYNTAX
    Get-Content [-Path] <String[]> [-Credential <PSCredential>] [-Delimiter <System.String>] 
    [-Encoding {Unknown | String | Unicode | Byte
.....
.....

# access to another host with SSH
PS /root> ssh winuser@10.0.0.220 
winuser@10.0.0.220's password:
Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\Users\winuser> dir 
 Volume in drive C has no label.
 Volume Serial Number is D4E4-BE4E

 Directory of C:\Users\winuser

2016/09/28  21:42    <DIR>          .
2016/09/28  21:42    <DIR>          ..
2016/09/28  21:50    <DIR>          .ssh
2016/09/24  01:30    <DIR>          Contacts
2016/09/28  21:37    <DIR>          Desktop
2016/09/24  01:30    <DIR>          Documents
2016/09/24  01:30    <DIR>          Downloads
2016/09/24  01:30    <DIR>          Favorites
2016/09/24  01:30    <DIR>          Links
2016/09/24  01:30    <DIR>          Music
2016/09/25  00:44    <DIR>          OneDrive
2016/09/24  01:30    <DIR>          Pictures
2016/09/24  01:30    <DIR>          Saved Games
2016/09/24  01:30    <DIR>          Searches
2016/09/24  01:30    <DIR>          Videos
               0 File(s)              0 bytes
              15 Dir(s)  172,000,489,472 bytes free
 
Tweet