Essential Linux Commands
Directories and Files
- Create directory: mkdir dir_name
- Create nested directories: mkdir -p parent/child
- Remove empty directory: rmdir dir_name
- Remove directory (recursively): rm -r dir_name
- List contents: ls / ls -l / ls -a
- Change directory: cd dir_name
- Go to previous directory: cd -
- Go to home directory: cd ~
- Copy file/directory: cp file1 file2 / cp -r dir1 dir2
- Move/rename file: mv old new
- Delete file: rm file_name
- Find files: find . -name "filename"
- Search inside files: grep "word" file / grep -r "word" .
- View file contents: cat / less / more / head / tail
- Change permissions: chmod 755 file
- Change ownership: chown user:group file
Users and Groups
- Show current user: whoami
- Switch user: su user / sudo su
- Add user: sudo adduser username
- Delete user: sudo deluser username
- Modify user: usermod -aG group user
- Add group: sudo addgroup groupname
- Delete group: sudo delgroup groupname
- Add user to group: sudo usermod -aG group user
- Show user groups: groups username
- Show all users: cat /etc/passwd
- Show all groups: cat /etc/group
Processes and Process Management
- Show all running processes: ps aux / top / htop
- Show processes for user: ps -u username
- Kill process by PID: kill pid
- Kill process by name: pkill name
- Kill all from user: pkill -u username
- Nice value run: nice -n 10 command
- Change process priority: renice -n 5 -p PID
- Background a job: command &
- Bring job to foreground: fg
- Suspend a process: Ctrl + Z
- Show jobs: jobs
- Monitor process (realtime): watch -n 1 ps aux
Semaphores (IPC)
- Show all IPC (msg/sem/shm): ipcs
- Show semaphores only: ipcs -s
- Remove semaphore: ipcrm -s semaphore_id
- Remove all semaphores: ipcs -s | awk '{print $2}' | xargs -n 1 ipcrm -s
- Create semaphore (C code): Requires programming with semget()