ShellCraft Academy

Master Linux bash scripting for DevOps. Hands-on courses taught by a Vue.js frontend instructor who bridges the gap between frontend develop...
2 joined
Profile picture
@saltonstalleidingerProfile pictureJun 3
Pinned post

Welcome to ShellCraft Academy 🚀

{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","marks":[{"type":"bold"}],"text":"Welcome aboard, future DevOps engineer."}]},{"type":"paragraph","content":[{"type":"text","text":"You just made one of the best investments in your career. Whether you're a frontend dev looking to go full-stack or an engineer who wants to stop being afraid of the terminal — you're in the right place."}]},{"type":"heading","attrs":{"level":3},"content":[{"type":"text","text":"Here's how to get the most out of this:"}]},{"type":"bulletList","content":[{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"text","marks":[{"type":"bold"}],"text":"Start the course immediately."},{"type":"text","text":" Lessons are sequential — each one builds on the last. Don't skip around."}]}]},{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"text","marks":[{"type":"bold"}],"text":"Type every command yourself."},{"type":"text","text":" Reading code and writing code are two different skills. Use a real terminal — WSL on Windows, native on Mac/Linux."}]}]},{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"text","marks":[{"type":"bold"}],"text":"Use the Community Chat."},{"type":"text","text":" Post your errors, share your scripts, help others debug. This is how you actually learn."}]}]},{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"text","marks":[{"type":"bold"}],"text":"Check the Updates & Resources feed."},{"type":"text","text":" I drop bonus scripts, tool recommendations, and real-world DevOps walkthroughs there regularly."}]}]}]},{"type":"paragraph","content":[{"type":"text","text":"By the end of this course, you'll be writing deployment scripts, managing servers, and automating CI/CD pipelines — skills that will 2-3x your market value."}]},{"type":"paragraph","content":[{"type":"text","text":"Let's get to work. Start Module 1 now. 💻"}]}]}

Profile picture
@saltonstalleidingerProfile pictureJun 3

5 Bash One-Liners Every Frontend Developer Should Know

{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"I've been a Vue.js instructor for years, and the single biggest unlock for my students' careers wasn't learning another JavaScript framework — it was learning bash."}]},{"type":"paragraph","content":[{"type":"text","text":"Here are 5 commands that will save you hours every week:"}]},{"type":"heading","attrs":{"level":3},"content":[{"type":"text","text":"1. Find every file you touched today"}]},{"type":"codeBlock","attrs":{"language":"bash"},"content":[{"type":"text","text":"find . -type f -mtime 0 -not -path '/node_modules/' -not -path '/.git/'"}]},{"type":"paragraph","content":[{"type":"text","text":"Great for end-of-day reviews or catching files you forgot to commit."}]},{"type":"heading","attrs":{"level":3},"content":[{"type":"text","text":"2. Kill whatever is running on port 3000"}]},{"type":"codeBlock","attrs":{"language":"bash"},"content":[{"type":"text","text":"lsof -ti:3000 | xargs kill -9"}]},{"type":"paragraph","content":[{"type":"text","text":"No more \"port already in use\" errors. Works on any port — just swap the number."}]},{"type":"heading","attrs":{"level":3},"content":[{"type":"text","text":"3. Bulk rename file extensions"}]},{"type":"codeBlock","attrs":{"language":"bash"},"content":[{"type":"text","text":"for f in .js; do mv \"$f\" \"${f%.js}.ts\"; done"}]},{"type":"paragraph","content":[{"type":"text","text":"Migrating a project to TypeScript? This renames every .js file to .ts in the current directory instantly."}]},{"type":"heading","attrs":{"level":3},"content":[{"type":"text","text":"4. Search your entire codebase for a string"}]},{"type":"codeBlock","attrs":{"language":"bash"},"content":[{"type":"text","text":"grep -rn 'TODO' --include='.vue' --include='*.ts' ."}]},{"type":"paragraph","content":[{"type":"text","text":"Faster than any IDE search. Add --include flags for any file types you care about."}]},{"type":"heading","attrs":{"level":3},"content":[{"type":"text","text":"5. Watch a log file in real time"}]},{"type":"codeBlock","attrs":{"language":"bash"},"content":[{"type":"text","text":"tail -f /var/log/syslog | grep --line-buffered 'error'"}]},{"type":"paragraph","content":[{"type":"text","text":"Pipe tail into grep to filter live logs. Essential for debugging production servers."}]},{"type":"paragraph","content":[{"type":"text","text":"These 5 commands are just the surface. If you want to go from \"I copy-paste terminal commands from Stack Overflow\" to actually understanding and writing bash scripts for deployment, CI/CD, and server management — that's exactly what I teach inside ShellCraft Academy."}]}]}