Thay đổi giao diện powershell nhàm chán như 1 hacker thực thụ !

Thay đổi giao diện powershell thường ngày trở nên thú vị hơn và biến bạn thành 1 hacker 🕵

Có lẽ đối với một developer thì việc tiếp xúc với giao diện cmd đã là quá quen thuộc với chúng ta. Nó như một người bạn gái luôn bên ta giúp ta bắt đầu một website, một ứng dụng, nhắc nhở ta khi có log hoặc thậm chí shutdown luôn ứng dụng của ta khi giận dỗi. Vui buồn đều bắt đầu từ nó. Vậy nên, việc "chăm sóc", trang trí cho người bạn gái mình thêm lung linh hơn để mọi cuộc vui điều trở nên thú vị là một việc rất đáng phải không 😃.

Chém gió vậy đủ rồi 😁 bài viết này mình sẽ hướng dẫn cách trang trí giao diện powershellUbuntu (WSL).

Thành quả mình sẽ đạt được

Từ 😦 👇

Thành 😆

Powershell Ubuntu

Đầu tiên các bạn cần phải cài đặt một số thứ để tiếp tục

Ở bài viết này mình sẽ thực hiện trên Window Terminal do nó hỗ trợ customize giao diện nhiều và mình cũng rất thích command trên này do có thể mở nhiều tab cùng lúc. Bạn có thể tải nó từ Windows Store.

Note: bạn vẫn có thể thực hiện trên Powershell nếu không có Window Terminal nha.

  1. Cài đặt git cho Windows ở đây

  2. Bộ font để có thể hiển thị các icon trên giao diện cmd

    Mở cmd để clont bộ font hoặc bạn có thể tải dưới dạng zip ở đây

    git clone https://github.com/powerline/fonts.git --depth=1
    

    Sau đó bạn mở folder vừa tải về và chạy lệnh sau bằng powershell

    ./install.ps1
    

    ( quá trình có thể mất một lúc để cài fonts )

  3. Cài đặt WSL cho các bạn muốn dùng Terminal của Linux trên Window ( Windows Subsystem for Linux ), điều này có thể giúp các bạn code backend chạy server ngay trên Windows rất hay. Bạn có thể xem thêm và tải ở đây

  4. Window Terminal ở đây

Ok sau khi đã hoàn tất các bước trên thì mình bắt tay vào phần chính.

1. Powershell

  • Cài đặt posh-gitoh-my-posh ( giống như oh-my-zosh trên Linux )

Các bạn mở powershell lên và chạy lệnh như sau:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser
  • Sau đó cài đặt để thay đổi giao diện trên powershell Tiếp tục chạy các lệnh sau
# Start the default settings (might not work so optional)
Set-Prompt
# Set-up file  profile để thay đổi giao diện cho powershell
notepad $PROFILE

Sau khi file mở lên thì các bạn thêm ba dòng này vào cuối file ( trường hợp file chưa có thì các bạn cứ tạo mới file nha )

Import-Module posh-git
Import-Module oh-my-posh
Set-Theme Paradox

Sau đó các b sẽ có thành quả 😃 trên Window Terminal

Lưu ý: Trên Window Powershell thì có thể nhìn khác một chút nha. Nếu như bị lỗi icon thì các bạn vào setting của Powershell và chọn font MesloLGS nha. Nếu thiếu bạn có thể cài đặt font ở đây . Ngoài ra bạn có thể xem thêm các theme khác.

2. Ubuntu ( trên Windows Terminal Preview )

Các bạn mở một tab Ubuntu trên Terminal

  • Cài đặt zsh
sudo apt-get install zsh curl git
  • Cài đặt oh-my-zosh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
  • Sau khi cài đặt oh-my-zosh xong ta sẽ cài đặt powerlevel10k để thay đổi giao diện.
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k
  • Sau đó thiết lập theme cho zsh là powerlevel10k Ở đây mình sẽ dùng VS Code để thay đổi file config, bạn có thể dùng các text editor khác để chỉnh nha.
code ~/.zshrc

Sau đó tìm dòng ZSH_THEME= và set thành ZSH_THEME=powerlevel10k/powerlevel10k. Lưu lại và restart lại terminal. Lúc này màn hình sẽ hiện các setting để bạn tinh chỉnh giao diện theo ý mình, các bạn cứ làm theo nha khá đơn giản.

3. Bonus

Nếu sử dụng Window Terminal thì b có thể thay đổi ảnh nền cho sinh động nha.

Các bạn mở setting trong Window Terminal lên và dán đè lên như sau ( lưu lại file setting cũ nếu cần backup nha )

{
  "$schema": "https://aka.ms/terminal-profiles-schema",
  "defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
  "profiles": [
    {
      "acrylicOpacity": 0.9,
      "closeOnExit": true,
      "colorScheme": "One Half Dark",
      "backgroundImage": "E:\\terminal_background2.gif",
      "backgroundImageOpacity": 0.2,
      "backgroundImageStretchMode": "uniformToFill",
      "commandline": "powershell.exe",
      "cursorColor": "#FFFFFF",
      "cursorShape": "bar",
      "fontFace": "MesloLGS NF",
      "fontSize": 14,
      "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
      "name": "Windows PowerShell",
      "hidden": false,
      "padding": "0, 0, 0, 0",
      "snapOnInput": true,
      "startingDirectory": "%USERPROFILE%",
      "useAcrylic": true
    },
    {
      "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
      "backgroundImage": "E:\\terminal_background3.gif",
      "backgroundImageOpacity": 0.2,
      "fontFace": "MesloLGS NF",
      "backgroundImageStretchMode": "uniformToFill",
      "name": "cmd",
      "commandline": "cmd.exe",
      "hidden": false
    },
    {
      "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
      "hidden": false,
      "name": "Azure Cloud Shell",
      "source": "Windows.Terminal.Azure"
    },
    {
      "acrylicOpacity": 0.9,
      "closeOnExit": true,
      "backgroundImage": "E:\\terminal_background3.gif",
      "backgroundImageOpacity": 0.2,
      "backgroundImageStretchMode": "uniformToFill",
      "colorScheme": "Solarized Dark",
      "commandline": "wsl",
      "cursorColor": "#FFFFFF",
      "cursorHeight": 25,
      "cursorShape": "vintage",
      "fontFace": "MesloLGS NF",
      "fontSize": 14,
      "guid": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",
      "hidden": false,
      "name": "Ubuntu-18.04",
      "source": "Windows.Terminal.Wsl",
      "padding": "0, 0, 0, 0",
      "snapOnInput": true,
      "useAcrylic": true,
      "startingDirectory": "%USERPROFILE%"
    },
    {
      "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
      "hidden": false,
      "fontFace": "MesloLGS NF",
      "backgroundImage": "E:\\terminal_background.gif",
      "backgroundImageOpacity": 0.2,
      "backgroundImageStretchMode": "uniformToFill",
      "name": "Ubuntu",
      "source": "Windows.Terminal.Wsl"
    }
  ],
  "schemes": [
    {
      "background": "#282C34",
      "black": "#282C34",
      "blue": "#61AFEF",
      "brightBlack": "#5A6374",
      "brightBlue": "#61AFEF",
      "brightCyan": "#56B6C2",
      "brightGreen": "#98C379",
      "brightPurple": "#C678DD",
      "brightRed": "#E06C75",
      "brightWhite": "#DCDFE4",
      "brightYellow": "#E5C07B",
      "cyan": "#56B6C2",
      "foreground": "#DCDFE4",
      "green": "#98C379",
      "name": "One Half Dark",
      "purple": "#C678DD",
      "red": "#E06C75",
      "white": "#DCDFE4",
      "yellow": "#E5C07B"
    },
    {
      "background": "#073642",
      "black": "#073642",
      "blue": "#268BD2",
      "brightBlack": "#002B36",
      "brightBlue": "#839496",
      "brightCyan": "#93A1A1",
      "brightGreen": "#586E75",
      "brightPurple": "#6C71C4",
      "brightRed": "#CB4B16",
      "brightWhite": "#FDF6E3",
      "brightYellow": "#657B83",
      "cyan": "#2AA198",
      "foreground": "#FDF6E3",
      "green": "#859900",
      "name": "Solarized Dark",
      "purple": "#D33682",
      "red": "#D30102",
      "white": "#EEE8D5",
      "yellow": "#B58900"
    }
  ],
  "keybindings": []
}

Các bạn thay các backgroundImage trong profiles tới đường dẫn hình ảnh ( cả file .gif ) trên máy các bạn là được nha. Gif của mình cho bạn nào cần.

Kết

Bài viết khá dài do lần đầu mình làm cũng khá chật vật nên cũng muốn hướng dẫn rõ cho các b để dễ dàng thành công hơn 😃)). Nếu có chỗ nào cần hỗ trợ các b cứ cmt mình sé support and... nếu bài viết bổ ích các b cho mình một vote 👆 để có động lực viết thêm nhiều bài nữa nha. 😘

Chúc các b thành công và có thêm nhiều cảm hứng hơn khi làm việc với "cô bạn gái mới 👩" của mình nha 😃))

Ref:


All Rights Reserved