Taming the Terminal is a series of tutorials teaching how to use OS X’s command line tool called Terminal.
Bart Busschots & Allison Sheridan
In this episode of Taming the Terminal, Bart winds up our series within a series all about the Terminal command TMUX. In this final piece he teaches us first how to string commands together to create the TMUX sessions we want with the screens split and the processes running in each pane as we like them. After teaching us how to string them together he shows us how to make a little script file we can run so that we can automatically open up our TMUX sessions exactly the way we like them. This will be the last of our Taming the Terminal episodes for a while, but we'll be back after macOS Big Sur ships and is stabilized. In macOS Catalina the default shell was changed from bash to zsh and it does bring some changes to things we learned earlier in the series but it seems prudent to wait till we're over this big hump getting into Big Sur. You can find Bart's tutorial shownotes over at ttt.bartificer.net/... Don't forget, you can download the Taming the Terminal book at podfeet.com/tttbook. The book will be updated with this instalment shortly.
This week's episode of Chit Chat Across the Pond was another installment of Taming the Terminal. Two weeks ago Bart taught us the basics of a technology called `tmux`, or terminal multiplexer that allows you to access the same server in many different ways at the same time. He covered how `tmux` replaces the deprecated `screen` but he didn't go much further. In this rather light and easy-to-follow installment, he takes `tmux` up a notch and shows us how to create multiple windows, and multiple panes all within a single `tmux` session. Like I said it was super easy to understand, very visual and fun! You can listen to this week's installment by searching for Taming the Terminal in your podcatcher of choice or it's included in the full Chit Chat Across the Pond show as well. And as always you can get to Bart's fabulous tutorial shownotes at bartbusschots.ie/...
When Bart first started the Taming the Terminal series in October of 2015, he purposely declared every installment to be "of n" where n was not defined. It's been 3 years since there was an episode of Taming the Terminal, but today we've got a new one for you. In Taming the Terminal 36, recorded in 2016, Bart introduced us to a nifty command-line tool called screen. Screen allowed you to ssh into a server, and start a session but disconnect and come back to it without stopping the processes you were running. But in the last year, screen was deprecated by Red Hat Linux (which means it's gone from the free CentOS version as well). The good news is that it was replaced with an even more powerful tool called tmux. In this installment, Bart walks us through just how tmux solves the same problem as screen, but teases us with the knowledge that this tool has much more to offer. It was a super fun episode with lots of surprises (for me at least) and whether you followed along with the first 37 installments or not, I'm sure you'll find it useful as well. You can find Bart's fabulous shownotes at bartbusschots.ie/....
In 2017 on Taming the Terminal installment 37 of n, Bart taught us about SSH agents and the advantages of using a passphrase to further protect your SSH keys. In the intervening four years, things have changed a bit in macOS, so we decided to do a supplemental update to installment 37. We review a bit about what SSH Keys are (from installment 30) and then discuss how much easier and cleaner things are on macOS with the clean integration of your identity, passphrase and Apple's Keychain. You can find the replaced show notes for TTT 37 at ttt.bartificer.net/... If you've downloaded the Taming the Terminal book, please go to podfeet.com/tttbook to get a fresh version.
As promised, Taming the Terminal isn't over yet! Bart Busschots joins us to talk about SSH Agents. We'll talk about how Apple changed things in El Capitan so that you'll have to log into your server with your passphrase more often, and how Bart has a fix for that problem. Bart does a great job of reminding us of what we learned about SSH back in parts 29 and 30 of Taming the Terminal so it's easier to get back up to speed to follow along. And as always, Bart's full tutorial is available at bartbusschots.ie/....
It’s been a long time since we did a Taming the Terminal episode but we’re back with episode 36 of n, screen and cron. You’ll hear me say this is episode 35, but with all these numbers flying around we got mixed up! In any case, in this installment Bart teaches us two unrelated but really cool things you can do with the Terminal in macOS or Linux. The first is cron, a tool that lets you schedule scripts to run at specific times and days. The second is screen, which is a utility that allows you to create a virtual terminal inside your regular terminal. If that sounds head explody (as Bart likes to say), it kind of is, but of course he breaks it down and shows how really clever and useful it is. You can find Bart’s full detailed tutorial at bartbusschots.ie/...
In this installment we look at three terminal commands for interacting with the world wide web from the terminal. We'll look at a command-line based browser, and commands for downloading files and viewing HTTP headers.
In this installment we look at how the HTTP protocol works, this is the protocol that powers the world-wide-web.
In this installment we learn how to use SSH config files to automate some aspects of SSH, creating what amount to bookmarks to servers we connect to often. We'll also look at some GUIs for storing SSH connection details.
In this installment we'll look at how SSH tunnels can be used to secure all kinds of network traffic, not just remote commands and file transfers. Most people won't need the power of SSH tunnels very often, if at all, but when you do need them, you probably REALLY need them, so it's important to know what's possible, even if you don't remember the details.
SSH can do a lot more than just run commands, and in this installment we'll discover how to use SSH to securely transfer files from one computer to another.
By default SSH uses usernames and passwords to authenticate users, but in this installment we'll discover how to use SSH keys to make SSH both more secure and more convenient.
In this installment we introduce the Secure Shell, or SSH. SSH can do many things, but first and foremost it lets us run command, or entire command shells on remote computers securely
In this installment we put everything we have learned so far about networking together, and describe a workflow for diagnosing home networking problems.
This is the second part of a two-part installment looking at the Domain Name System, or DNS. DNS is a critical cog in the internet's wheel because it translates between human-friendly domain names, and computer-friendly IP addresses.
This is the first part of a two-part installment looking at the Domain Name System, or DNS. DNS is a critical cog in the internet's wheel because it translates between human-friendly domain names, and computer-friendly IP addresses.
In this installment we learn about the Dynamic Host Configuration Protocol, or DHCP. This is the protocol that allows our computers to automatically discover their network settings, and without it portable computing devices simply wouldn't work.
This is the second part of a two-part installment exploring the second layer in the TCP/IP stack, the Internet Layer, and most importantly, the IP protocol. In particular we focus on the vitally important, but often confusing, concept of IP subnets. If you understand subnets, home networking becomes simple and obvious, if you don't it seems like black magic!
This is the first part of a two-part installment exploring the second layer in the TCP/IP stack, the Internet Layer, and most importantly, the IP protocol. In particular we focus on the vitally important, but often confusing, concept of IP subnets. If you understand subnets, home networking becomes simple and obvious, if you don't it seems like black magic!
In this installment we start at the bottom of the TCP/IP stack, looking at the so-called link-layer, and in particular at Ethernet and the ARP protocol.
This is the second part of a two-part installment describing the TCP/IP networking stack that allows our computers to talk to each other within our homes and offices, and to other computers and server around the world through the internet.
This is the first part of a two-part installment describing the TCP/IP networking stack that allows our computers to talk to each other within our homes and offices, and to other computers and server around the world through the internet.
In this installment we take a bit of a breather, and look at some simple tips and tricks for making like on the command line that little bit easier.
In this installment we learn how to use the results of a file search as the input to another command. This allows us to do things like set the file permissions on every file that ends in .php.
In this installment we learn how to search for files based on all sorts of criteria, including file name, file size, modified date, and more.
In this installment we look at how to use terminal commands and regular expressions to filter text, such as the output of terminal commands, and to search for files that contain a particular text pattern.
This is the second of a two-part installment where we dive deeper into Regular Expressions. This two-part installment is laying vital foundations for the up-coming installments on searching.
This is the first of a two-part installment where we dive deeper into Regular Expressions. This two-part installment is laying vital foundations for the up-coming installments on searching.
In this installment we introduce the concept of 'regular expressions' - a means of accurately describing arbitrary patterns. Regular expressions allow us to express complex search pattens in a way the computer can understand.
In this installment we continue our exploration of streams, looking at how we can use files as the source and destination for streams, and how we can combine two streams into one.
In this installment we introduce the concept of data streams, looking at the three system streams STDIN, STDOUT $ STDERR, and then look at how we can use the pipe operator connect the output of one command to the input of another.
In this installment we wrap up our look at the environment by describing command line aliases, and looking at how we can customize the prompt we see when working at the command line.
In this installment we continue to explore the environment, focusing on the very important environment variable PATH.
In this installment we introduce the rather nebulous concept of the Unix/Linux environment, and we look at environment variables and shell variables.
In this installment we look at how to read and edit text files from the command line.
Unix, Linux and OS X have a built-in manual describing how the various terminal commands work. In this installment we look at how to access this manual, and explain the special language used within.
In this installment we learn how to control processes - creating them, and ending them.
In this installment we explore the concept of Linux/Unix processes, and we introdue the ps command for viewing the running processes.
In this installment we look at file management from the commandline - creating, copying, moving, renaming, and deleting files and folders.
In this installment we’ll start by biting the bullet and dive into how to alter standard Unix File permissions. This could well turn out to be the most difficult segment in this entire series, regardless of how big n gets, but it is very important, so if you have trouble with it, please don’t give up.
We take a look at how standard Unix File Permissions work, and look at how to understand the permissions on existing files and folders, but not at how to change them. We also cover the fact that the standard unix file permissions are now only a sub-set of the file permissions on OS X and Linux (OS X also supports file ACLs, and Linux has SELinux as an optional extra layer of security).
In this installment we’ll look at how to navigate around the Unix/Linux/OS X filesystem in a Bash command shell.
We discuss the concept of a file system in detail. We described how filesystems contain folders which contain files or folders, and we described the different ways in which Windows and Linux/Unix/OS X combine all the filesystems on our computers into a single name-space, within which every file has a unique ‘path’ (F:myFoldermyFile.txt -v- /Volumes/myThumbDrive/myFolder/myFile.txt).
In this installment, we look at OS X’s Terminal.app, the anatomy of the Bash command prompt, and the anatomy of a Unix/Linux command.
In this first segment we'll lay a very basic foundation. We plan to take things very slowly with this series, so Bart gives us a sort of 40,000ft view of command shells – some context, some history, a very general description of what command shells do, and a little bit on why they are still very useful in the modern GUI age
Taming the Terminal is a collaboration between Bart Busschots and Allison Sheridan. The tutorials were written by Bart, and hosted on this site, and there are matching conversations with Allison Sheridan on the NosillaCast Podcast. In Taming the Terminal, Bart Busschots guides Allison Sheridan through a series of tutorials to help get people comfortable in the Terminal, learn efficient ways of controlling your computer, and diagnosing network problems. While both hosts are using OS X, every effort is made to include both Linux and Windows comparative commands where possible. Bart is a Linux system administrator by day, is hosts the Let’s Talk Apple and Let’s Talk Photography podcasts. Allison is the host of the NosillaCast podcast, A Technology Geek Podcast with an EVER so Slight Macintosh Bias. Special thanks go to Steve Sheridan who suggested converting this series into a stand-alone podcast, and did the time-consuming and monotonous audio editing needed to extract the segments from the NosillaCast and re-package them, AND designing the logo for us.