terminal
Course Description
Maximize your productivity with the best developer setup. Hand-craft an environment with bash scripts and incorporate common unix tools for managing libraries, interacting with the OS, window management, and more.
This course and others like it are available as part of our Frontend Masters video subscription.
Preview
CloseCourse Details
Published: January 31, 2025
Learn Straight from the Experts Who Shape the Modern Web
Your Path to Senior Developer and Beyond
- 200+ In-depth courses
- 18 Learning Paths
- Industry Leading Experts
- Live Interactive Workshops
Table of Contents
Introduction
Section Duration: 3 minutes
- ThePrimeagen introduces the course by emphasizing the importance of productivity over aesthetics and his preference for a highly functional setup that allows him to navigate and access what he needs quickly. ThePrimeagen also mentions that the course will primarily focus on the Unix perspective. - Course Repo:
Your Environment
Section Duration: 1 hour, 15 minutes
- ThePrimeagen discusses the challenges of setting up and maintaining a productive environment. He also mentions Ansible as a tool for managing dotfiles and demonstrates how to create a basic Ansible playbook to install NeoVim.
- ThePrimeagen demonstrates cloning the NeoVim repository, installing the necessary dependencies, and building NeoVim from source using the "make" command. ThePrimeagen also highlights the pros and cons of using Ansible for this process and compares it to using shell scripts or other methods.
- ThePrimeagen discusses the importance of reinventing the wheel in software development to gain a deeper understanding of how things work and to appreciate the complexity of certain tasks. He also emphasizes the importance of creating a solution that suits your own needs and preferences, rather than relying on generalized solutions.
- ThePrimeagen demonstrates how to create a script called "run" that can run scripts from a subdirectory called "runs". He demonstrates using the "find" command to find all executable files in the "runs" directory and store them in a variable. He then loops through the scripts, filters out any scripts that don't match the filter argument, and executes the remaining scripts.
- ThePrimeagen demonstrates how to update a bash script to be identical to an Ansible script. He shows how to simplify the script by deleting unnecessary lines, cloning a branch, installing dependencies, changing directories, and running commands. ThePrimeagen also discusses the benefits of using bash scripts for software installation and customization.
- ThePrimeagen explains how to create a script to copy directories and files in a Bash environment. He also shows how to use the `basename` command to extract the name of a file from its path.
Navigation
Section Duration: 54 minutes
- ThePrimeagen discusses the benefits of using a window manager to organize windows and streamline navigation, and recommend using tmux and ghostie for a powerful terminal experience. He also highlights the importance of having sessions that persist even after closing the terminal, multiple sessions based on directories, tabs within sessions, and the ability to quickly navigate to sessions using fuzzy find.
- ThePrimeagen discusses using Tmux for managing terminal sessions, windows, and panes. He also demonstrates various Tmux commands and shortcuts, such as creating new sessions and windows, navigating between them, and sending commands to specific panes.
- ThePrimeagen demonstrates how to write a script that will execute a specific file when navigating to a directory. He also introduces a fuzzy finder tool and shows how it can be used for quick navigation and selection of files and directories.
- ThePrimeagen demonstrates how to write a script called "Tmux Sessionizer" that allows the user to navigate and switch between different directories using Tmux sessions. The script can create new sessions, switch to existing sessions, and execute other scripts within the sessions.
Tools
Section Duration: 1 hour, 12 minutes
- ThePrimeagen demonstrates various commands and functionalities of JQ, such as making JSON data pretty, filtering and selecting specific objects, performing calculations, and creating new objects.
- ThePrimeagen provides a quick overview of several Unix tools, including sed, find, exec, xargs, parallel, and awk. He explains how these tools can be used for various tasks such as text transformation, file manipulation, and data processing.
- ThePrimeagen introduces Neovim and explains the differences between Neovim and other code editors like VS Code. He also mentions the usefulness of learning Vim motions and suggests incorporating a keyboard-centric approach to improve productivity.
- ThePrimeagen demonstrates VIM features such as motions (e.g., moving up, down, left, right), operators (e.g., delete, copy), combining motions with operators, using quick fix lists, and the ability to customize and extend VIM using Lua scripting.
- ThePrimeagen shares his personal preferences for using VIM and reasons for choosing certain tools and terminals. He briefly demonstrates some features of the Neovim API and a collection of small games called VimBeGood to practice VIM motions.
- ThePrimeagen explains why he didn't cover AI in the course, including AI tools evolving rapidly and becoming deprecated quickly, and the concern that junior developers may rely too heavily on AI and not develop their own problem-solving skills.
- ThePrimeagen answers student questions regarding the use of Ansible versus bash scripts, idempotency, and the importance of challenging one's comfort zone. He also touches on personal development and team dynamics, offering tips for creating a cohesive and collaborative team environment.
Wrapping Up
Section Duration: 2 minutes
- ThePrimeagen wraps up the course by emphasizing the importance of finding joy in the process of problem-solving and learning, rather than solely focusing on the end result. He also encourages students to develop their own unique approaches and setups that work best for them.
Learn Straight from the Experts Who Shape the Modern Web
- In-depth Courses
- Industry Leading Experts
- Learning Paths
- Live Interactive Workshops