I moved from Windows to Ubuntu and learnt fast by doing. These are the Linux commands I used every day. I kept to the basics: navigation, permissions, package management, and a few bits that make a Windows migration less clumsy. Try them in a terminal or a virtual machine before changing anything important.
Start with the terminal. Open the app labelled Terminal or GNOME Terminal, or use the shortcut. The prompt shows the current user and path. Use pwd to print the working directory. Use ls -l to list files with details. Change directory with cd /path/to/dir.
These come up constantly:
mkdir mydirmakes a directorytouch file.txtcreates an empty filecp source destcopiesmv oldname newnamemoves or renamesrm filedeletes
Be careful with rm -rf. It removes recursively without asking.
View file contents with cat file.txt. Use less file.txt for paging, head -n 20 file for the first lines, and tail -n 50 file for the last lines. Search inside files with grep 'pattern' file and search the filesystem with find /path -name '*.conf'. Combine commands with pipes, for example:
ps aux | grep nginx
If a command offers options, use command --help or man command. That clears up more confusion than guessing.
File permissions trip people up quickly. Check them with ls -l. An entry looks like -rwxr-xr-x 1 alice staff 1024 Jan 1 file. The first block shows type and permissions. r stands for read, w for write, and x for execute. Change permissions with chmod.
Use chmod 644 file.txt to give the owner read and write, and group and others read only. Use chmod 755 script.sh to allow execution. Change ownership with chown alice:staff file.txt. For commands that need higher privileges, use sudo before the command, for example:
sudo apt update
Do not log in as root. Create a normal user and use sudo for administrative tasks. On Ubuntu, the sudo timeout keeps your authentication for a short period. If a command fails with permission denied, check ownership and mode before changing them.
For sharing files between Windows and Ubuntu, mount NTFS partitions read-write with udisksctl or via the file manager. For syncing, rsync -av --progress /source /destination is reliable and efficient.
Package management on Ubuntu centres on apt. Update package lists with sudo apt update. Upgrade installed packages with sudo apt upgrade. Install software with sudo apt install packagename. Remove it with sudo apt remove packagename. Use apt search keyword to find packages.
For newer desktop snaps use snap install packagename and view installed snaps with snap list. Some people prefer Flatpak for certain desktop apps; install it if you want that packaging route. For development, install build-essential to get compilers and tools:
sudo apt install build-essential
For version control, install git and set it up with:
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
Enable the uncomplicated firewall with sudo ufw enable and check status with sudo ufw status.
When moving from Windows, back up first. Export bookmarks, export emails, and copy important folders to an external drive. Use rsync to copy large datasets:
rsync -avh --progress /mnt/windows/Users/you/Documents /home/you/Documents
If a Windows app has no Linux version, check for a Linux alternative or use Wine for simple apps. If you use browsers, sign into the same profile to bring bookmarks and passwords across. For productivity files, LibreOffice reads most Microsoft Office documents.
Set up SSH keys early with:
ssh-keygen -t ed25519
Copy the public key with ssh-copy-id user@host when you need it for remote systems. Keep a small list of commands close by: pwd, ls -la, cd, cp, mv, rm, chmod, chown, sudo, apt update, apt install, rsync. Read the man pages when something breaks. Practice common tasks in a live USB session or a virtual machine until they stop feeling odd.



