← Janaka Academy

Essential Linux & CLI Mastery for Senior Java Engineers

Complete practical guide and quick-reference commands for day-to-day backend engineering work.

A. Foundations of Linux

Filesystem Hierarchy

  • /etc – config files
  • /var/log – logs
  • /opt – optional software (great for JARs)

Paths

cd /opt/apps     # absolute path
cd ../logs       # relative path

Navigation Commands

ls -la
pwd
tree -L 2

B. File & Directory Operations

Copy, Move, Remove

cp -rv target/*.jar /opt/apps/
mv app.log logs/
rm -rf temp/

Compression

tar -czvf backup.tar.gz /opt/apps/

Compare

diff application.yml application-prod.yml
vimdiff settings.xml settings-dev.xml

C. Search & Filtering

Find Stacktraces, Configs, Keys

grep -i exception logs/app.log
find /var -name "*.yml"
locate application.properties
xargs -a services.txt grep -H 'timeout'

Pipelines

cat log.txt | grep ERROR | cut -d' ' -f5- | sort | uniq -c

D. Text Processing

Practical Usage

cut -d":" -f1 /etc/passwd
awk '{print $2, $5}' performance.csv
sed 's/localhost/127.0.0.1/g' config.yml

Tail Logs Live

tail -f /var/log/spring.log | grep WARN

E. Working With Processes

List and Kill

ps aux | grep java
kill -9 <PID>
lsof -i :8080

F. Networking Tools

API Testing

curl -X POST http://localhost:8080/api -d '{"test":true}'
wget https://repo.maven.org/artifact.jar

Ports & DNS

netstat -tulnp
ping google.com
traceroute github.com

G. Permissions & Users

chmod +x deploy.sh
chown appuser:app logs/
sudo ./restart.sh

H. Bash Shell Essentials

alias mvnclean='mvn clean install'
export JAVA_HOME=/opt/jdk
export PATH=$JAVA_HOME/bin:$PATH
echo $PATH

I. SSH, SFTP & rsync

ssh user@server
scp build/libs/app.jar user@server:/opt/apps
rsync -avz /var/log/ user@host:/data/logs

J. Systemd & Services

sudo systemctl start spring-app
sudo systemctl stop spring-app
journalctl -u spring-app -f

K. Docker & Container CLI

docker ps
docker logs container
docker exec -it container bash
docker inspect container

L. Git Bash Essentials

git log --oneline
git diff
git stash
git checkout -b feature-x
git mergetool

M. Final Cheat Sheet

CommandPurposeExample
lsof -i :8080Check which PID uses a portlsof -i :8080
tail -f app.log | grep ERRORLive error logstail -f /var/log/app.log
find / -name "*.jar"Find all JARsfind /opt -name "*.jar"

N. Real Java Scenarios

  • Find what’s using port 8080 → lsof -i :8080
  • Tail Spring logs live → tail -f spring.log
  • Search huge log without loading → grep Exception big.log
  • Copy logs between servers → rsync -avz /logs user@host:/backup
  • Kill hung Spring app → pkill -f spring
  • Check memory usage → free -h
  • View running containers → docker ps
  • View CPU usage → top