Native Linux
Last updated 2026-08-20 · 6 notes · 5 tags
Tags: linux ubuntu mint setup getting-started
For Ubuntu or Linux Mint as a normal install (or a full virtual machine) — not WSL. After Linux is installed, the tool list matches the WSL guide so either environment works for the later pages.
Note: If you use Windows every day and only want a Linux terminal, prefer WSL on Windows instead.
1. Install the operating system
- Download Ubuntu Desktop or Linux Mint from the official site.
- Create a bootable USB (use the maker tool recommended on that site).
- Boot from the USB and complete the installer.
- Log in, connect to the internet, and apply the first round of system updates from the Software Updater if it appears.
Note: During install, write down the username you create — that is your Linux account for
sudocommands.
2. Update the system
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
Verify:
lsb_release -a
uname -a
3. Git
sudo apt install git -y
git --version
4. GitHub CLI (gh)
(type -p wget >/dev/null || sudo apt install wget -y)
wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg \
| sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" \
| sudo tee /etc/apt/sources.list.d/github-cli.list >/dev/null
sudo apt update
sudo apt install gh -y
gh --version
5. Python, pip, and venv
sudo apt install python3 python3-pip python3-venv -y
python3 --version
pip3 --version
Note: Use a virtual environment per project. See Python virtual environments. Do not treat global
pip installas your default habit.
6. pipx and uv
sudo apt install pipx -y
pipx ensurepath
Open a new terminal window, then:
pipx --version
pipx install uv
uv --version
7. Node.js (LTS) with nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
Restart the terminal, then:
nvm install --lts
node --version
npm --version
8. Cursor or VS Code
Install from the official site for Linux, or use your distribution’s software center if the vendor package is listed.
- Cursor: https://cursor.com
- VS Code: https://code.visualstudio.com/
Verify (if the code command is on your PATH):
code --version
9. Ollama (optional)
curl -fsSL https://ollama.com/install.sh | sh
ollama --version
ollama pull qwen3:4b
ollama list
10. Handy utilities
sudo apt install tree zip unzip curl wget trash-cli ffmpeg jq -y
tree --version
curl --version
trash-put --version
jq --version
Note: Set up safe delete next so everyday
rmmistakes are recoverable.
11. Git identity and GitHub login
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git config --list
gh auth login
gh auth status
12. Project folder
mkdir -p ~/projects
cd ~/projects
pwd
Note: Keeping all projects under
~/projectsmakes paths easier to remember and to share with an AI assistant.
13. Quick health check
git --version
gh --version
python3 --version
pip3 --version
pipx --version
uv --version
node --version
npm --version
tree --version
curl --version
wget --version
jq --version
ffmpeg -version
trash-put --version
14. Keeping things updated
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
pipx upgrade-all
Note: On Mint, the Update Manager GUI is fine for system packages; still use the terminal for
pipx/nvm/ Ollama as shown above.
Common mistakes
sudoasks for your user password.- If a brand-new terminal still cannot find
nvmorpipx, log out and back in once. - Mint is Ubuntu-based; these
aptcommands apply to both in almost all cases used here.
This content repository is based on the hands-on experience of Naveen Bachwani. AI tools were also used in augmenting and refining it. The goal is to help non-technical users get familiar with these tools, so they may be able to use them effectively.
Readers are responsible for using any commands or instructions provided here with appropriate caution. The creator of this site accepts no responsibility for system damage, data loss, or other consequences resulting from their use.