Commands Reference¶
Essential Linux commands used throughout the CS330 project
for environment setup, compilation, execution, monitoring, and system management.
System Verification¶
System Information¶
Kernel & OS Information
uname -a # Full system information
uname -s # Kernel name
uname -m # Architecture
lsb_release -a # Ubuntu version
cat /etc/os-release # OS details
Hardware Resources¶
Memory, CPU & Disk
free -h # Memory usage
lscpu # CPU details
df -h # Disk usage
cat /proc/meminfo # Detailed memory info
Package Management (APT)¶
Installing & Managing Packages
sudo apt update
sudo apt upgrade
sudo apt install build-essential
sudo apt install nano htop git
sudo apt remove package-name
sudo apt autoremove
sudo apt clean
File Operations¶
Navigation & File Management
ls -la
mkdir project-name
cd /path/to/directory
cd ~
cp source.txt destination.txt
cp -r source_dir/ destination_dir/
mv oldname.txt newname.txt
rm filename.txt
rm -r directory_name/
cat filename.txt
head -20 filename.txt
tail -15 filename.txt
Text Editing¶
Using nano
nano filename.c
# Ctrl+O Save
# Ctrl+X Exit
# Ctrl+K Cut line
# Ctrl+U Paste
# Ctrl+W Search
# Ctrl+\ Replace
less filename.c
Compilation (GCC)¶
Common GCC Flags
gcc program.c -o program
gcc -Wall program.c -o program
gcc -g program.c -o program
gcc -O2 program.c -o program
gcc program.c -o program -lm
gcc main.c utils.c -o program
Program Execution¶
Running Programs
./program
chmod +x program
time ./program
./program > output.txt
./program 2> error.txt
./program > output.txt 2>&1
./program &
CS330 Matrix Program¶
Build & Run matrix_fork.c
gcc -Wall matrix_fork.c -o matrix_fork
./matrix_fork
gcc -Wall matrix_fork.c -o matrix_fork && ./matrix_fork
Process Monitoring¶
Inspect Running Processes
ps
ps aux
ps -ef
top
htop
pstree
ps -u $USER
pgrep program_name
ps aux | grep program_name
Process Control¶
Signals & Termination
kill -SIGINT process_id
kill process_id
kill -TERM process_id
kill -9 process_id
pkill program_name
killall program_name
kill -STOP process_id
kill -CONT process_id
Background & Job Control¶
Managing Jobs
./program &
jobs
fg %1
bg %1
disown
Performance Monitoring¶
CPU & System Performance
top
htop
mpstat
iostat
vmstat 1
top -p process_id
Logs & System Status¶
System Logs
dmesg | tail -50
journalctl -xe
last
uptime
date
timedatectl
Git Version Control¶
Basic Git Workflow
git clone https://github.com/username/repo.git
git status
git add .
git commit -m "Description of changes"
git push origin main
git pull origin main
git log --oneline --graph
git checkout -b feature-branch
Virtualization (UTM / VM Diagnostics)¶
Virtual Machine Checks
ps aux | grep -i utm
systemctl status libvirtd
virt-host-validate
kvm-ok
Terminal Shortcuts¶
Keyboard Shortcuts
Ctrl+C Interrupt process
Ctrl+Z Suspend process
Ctrl+D Exit shell
Ctrl+L Clear screen
Ctrl+R Search history
Ctrl+A Start of line
Ctrl+E End of line
Ctrl+U Clear before cursor
Ctrl+K Clear after cursor
Tab Autocomplete
Command Operators¶
Chaining & Redirection
command1 && command2
command1 ; command2
command1 | command2
command 2>&1
command | wc -l
command | grep pattern
Complete Build–Run Workflow¶
Full Project Cycle
cd ~/os-project/src
nano matrix_fork.c
gcc -Wall matrix_fork.c -o matrix_fork
./matrix_fork
htop
Quick Testing Loops¶
Automated Test Runs
nano matrix_fork.c && gcc -Wall matrix_fork.c -o matrix_fork && ./matrix_fork
for i in {1..3}; do echo "Run $i:"; ./matrix_fork; done
for i in {1..5}; do echo "Run $i:"; time ./matrix_fork; done