Ubuntu 26.04

PowerShell : Install2026/06/19

 

Install Microsoft PowerShell for Linux.
Refer to the details about PowerShell for Linux below.
  ⇒ https://github.com/PowerShell/PowerShell

[1]

Install Snap, refer to here.

[2] Install Microsoft PowerShell from Snap.
root@dlp:~#
snap install powershell --classic

powershell 7.6.3 from Canonical✓ installed
[3] This is the Basic usage of PowerShell.
# run PowerShell

root@dlp:~#
pwsh

PowerShell 7.6.3

PS /root>

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

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           Get-PSResource ->                                  1.2.0      Microsoft.PowerShell.PSResourceGet
Function        cd..
Function        cd\
Function        cd~
Function        Clear-Host
Function        Compress-Archive                                   1.2.5      Microsoft.PowerShell.Archive
Function        exec
Function        Expand-Archive                                     1.2.5      Microsoft.PowerShell.Archive
Function        Find-Command                                       2.2.5      PowerShellGet
Function        Find-DSCResource                                   2.2.5      PowerShellGet

# display the 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 directory (dir equals Get-ChildItem)
PS /root> dir | ft -AutoSize -Wrap 

    Directory: /root

UnixMode   User Group    LastWriteTime     Size Name
--------   ---- -----    -------------     ---- ----
drwx------ root root  06/19/2026 01:09     4096 snap
-rw-r--r-- root root  03/30/2026 20:15 10319484 usermin-current.deb
-rw-r--r-- root root  05/11/2026 03:16 27680572 webmin-current.deb

# display files under /
PS /root> Get-ChildItem / | ft -AutoSize -Wrap 

    Directory: /

UnixMode   User Group    LastWriteTime       Size Name
--------   ---- -----    -------------       ---- ----
lrwxrwxrwx root root  04/20/2026 08:46          7 bin -> usr/bin
drwxr-xr-x root root  05/06/2026 02:52       4096 boot
dr-xr-xr-x root root  04/20/2026 18:23       4096 cdrom
drwxr-xr-x root root  06/19/2026 00:40       3980 dev
drwxr-xr-x root root  06/19/2026 00:53       4096 etc
drwxr-xr-x root root  05/06/2026 02:45       4096 home
.....
.....

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

    Directory: /root

UnixMode         User Group         LastWriteTime         Size Name
--------         ---- -----         -------------         ---- ----
-rw-r--r--       root root       06/19/2026 01:11            0 test.txt

PS /root> dir | ft -AutoSize -Wrap 

    Directory: /root

UnixMode   User Group    LastWriteTime     Size Name
--------   ---- -----    -------------     ---- ----
drwx------ root root  06/19/2026 01:09     4096 snap
-rw-r--r-- root root  06/19/2026 01:11        0 test.txt
-rw-r--r-- root root  03/30/2026 20:15 10319484 usermin-current.deb
-rw-r--r-- root root  05/11/2026 03:16 27680572 webmin-current.deb

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

    Directory: /root

UnixMode         User Group         LastWriteTime         Size Name
--------         ---- -----         -------------         ---- ----
drwxr-xr-x       root root       06/19/2026 01:12         4096 testdir

PS /root> dir | ft -AutoSize -Wrap 

    Directory: /root

UnixMode   User Group    LastWriteTime     Size Name
--------   ---- -----    -------------     ---- ----
drwx------ root root  06/19/2026 01:09     4096 snap
drwxr-xr-x root root  06/19/2026 01:12     4096 testdir
-rw-r--r-- root root  06/19/2026 01:11        0 test.txt
-rw-r--r-- root root  03/30/2026 20:15 10319484 usermin-current.deb
-rw-r--r-- root root  05/11/2026 03:16 27680572 webmin-current.deb

# [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 | ft -AutoSize -Wrap 

    Directory: /root

UnixMode   User Group    LastWriteTime     Size Name
--------   ---- -----    -------------     ---- ----
drwx------ root root  06/19/2026 01:09     4096 snap
drwxr-xr-x root root  06/19/2026 01:12     4096 testdir
-rw-r--r-- root root  06/19/2026 01:12       13 test1.txt
-rw-r--r-- root root  03/30/2026 20:15 10319484 usermin-current.deb
-rw-r--r-- root root  05/11/2026 03:16 27680572 webmin-current.deb

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

    Directory: /root

UnixMode         User Group         LastWriteTime         Size Name
--------         ---- -----         -------------         ---- ----
drwx------       root root        10/6/2025 10:01         4096 snap
drwxr-xr-x       root root        10/6/2025 10:04         4096 testdir
-rw-r--r--       root root        10/6/2025 10:06           13 test1.txt
-rw-r--r--       root root        10/6/2025 10:06           13 test2.txt
-rw-r--r--       root root        10/6/2025 03:07      9866242 usermin-current.deb
-rw-r--r--       root root        10/5/2025 10:02     27252630 webmin-current.deb

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

    Directory: /root

UnixMode   User Group    LastWriteTime     Size Name
--------   ---- -----    -------------     ---- ----
drwx------ root root  06/19/2026 01:09     4096 snap
drwxr-xr-x root root  06/19/2026 01:12     4096 testdir
drwxr-xr-x root root  06/19/2026 01:14     4096 testdir2
-rw-r--r-- root root  06/19/2026 01:12       13 test1.txt
-rw-r--r-- root root  06/19/2026 01:12       13 test2.txt
-rw-r--r-- root root  03/30/2026 20:15 10319484 usermin-current.deb
-rw-r--r-- root root  05/11/2026 03:16 27680572 webmin-current.deb

# remove a file
PS /root> Remove-Item test2.txt 
PS /root> dir | ft -AutoSize -Wrap 

    Directory: /root

UnixMode   User Group    LastWriteTime     Size Name
--------   ---- -----    -------------     ---- ----
drwx------ root root  06/19/2026 01:09     4096 snap
drwxr-xr-x root root  06/19/2026 01:12     4096 testdir
drwxr-xr-x root root  06/19/2026 01:14     4096 testdir2
-rw-r--r-- root root  06/19/2026 01:12       13 test1.txt
-rw-r--r-- root root  03/30/2026 20:15 10319484 usermin-current.deb
-rw-r--r-- root root  05/11/2026 03:16 27680572 webmin-current.deb

# remove a directory recursively
PS /root> Remove-Item testdir2 -Recurse 
PS /root> dir | ft -AutoSize -Wrap 

    Directory: /root

UnixMode   User Group    LastWriteTime     Size Name
--------   ---- -----    -------------     ---- ----
drwx------ root root  06/19/2026 01:09     4096 snap
drwxr-xr-x root root  06/19/2026 01:12     4096 testdir
-rw-r--r-- root root  06/19/2026 01:12       13 test1.txt
-rw-r--r-- root root  03/30/2026 20:15 10319484 usermin-current.deb
-rw-r--r-- root root  05/11/2026 03:16 27680572 webmin-current.deb

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

    Directory: /root

UnixMode         User Group         LastWriteTime         Size Name
--------         ---- -----         -------------         ---- ----
-rw-r--r--       root root       06/19/2026 01:12           13 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

SYNTAX
    Get-Content [-Path] <string[]> [-ReadCount <long>] [-TotalCount <long>] [-Tail <int>] [-Filter <string>] [-Include
    <string[]>] [-Exclude <string[]>] [-Force] [-Credential <pscredential>] [-Delimiter <string>] [-Wait] [-Raw] [-Encoding
    <Encoding>] [-AsByteStream] [<CommonParameters>]
.....
.....
Matched Content