Linux Guide for Developers
Guide to Linux operating system for developers.
Popular Linux Operating Systems
- ParrotOS
- Used by security professionals and hackers.
- Comes with hacking and penetration testing tools.
- Ubuntu
- Used by general consumers.
Kernel vs Operating System
- Linux is a kernel, not an operating system. Ubuntu is an operating system.
Everything is a File
Everything is represented as a file.
- eg:
ls
command is a file
The Shell
- The
shell
is what interacts with the linux kernel. The terminal is the keyboard, mouse, OS application that emulates a physical terminal. BASH
isB
ornA
gainSH
ell.- The terminal emulator is the UI window that you type into, which is using
BASH
underneath to interact with the kernel.
Remote SSH
- New servers don't allow remote access by default. You must enable that as follows:
https://linuxize.com/post/how-to-enable-ssh-on-ubuntu-20-04/
Linux Directories
/bin
Binaries, commands like ls
.
/dev
Devices, like virtual disks vda.
/etc
Configuration settings. Known as 'etsy' or 'etcetera'.
/home
Home, subdirectory for each user's files (except root user).
/root
Root user's files.
/sbin
Super user binaries, commands like adduser
.
Linux Commands
apropos
Search for a command. Eg: apropos usb
cat
Concatenate.
cd
Change Directory. Use cd ~
to go to home directory.
cp
Copy.
clear
Clear terminal. CTRL+L is alternative shortcut.
exit
Same as logout?
groups
Print users that logged in user is a member of.
logout
Logout. Shortcut is CTRL+D.
ls
List files.
ps
Process status.
pwd
Print Working Directory.
rm
Remove.
ssh
Connect to remote machine.
sudo
Switch user. Use sudo su -
to switch to root user.
su bob
sudo
Super user do.
sudo cp ls lsbak
whoami
Who Am I?
which
What is the path to a command?
which ls
Tasks/Tips
cat /etc/passwd
- Prints info on all users in system.
- Package management.
- Two big ones are
dpkg
andapt
. dpkg
- Low-level package manager.apt
- Advanced Package Tool. High-level package manager that is more convenient for everyday usage.aptitude
- Interactive super advanced package manager.snap
- "Sort of" a package manager, more like a store.
- Two big ones are
- Installing Visual Studio Code VSCode.
sudo snap install --classic code