Labthrift Labthrift What to buy. What to skip. Why.

Written 1 Sep 2026. This is a how-to, not a product card. Buy links are not tagged yet.

Print leftover-box words leftover-box exactly

After leftover-box mktemp, print leftover-box words leftover-box exactly with leftover-box printf so leftover-box practice leftover-box files (and leftover-box mktemp leftover-box drills) get leftover-box text leftover-box without leftover-box extra leftover-box line leftover-box echo leftover-box always leftover-box adds. You do not need extra leftover-box system software for this.

Make a leftover-box temporary practice file asked leftover-box temporary leftover-box names leftover-box with mktemp. Tonight is leftover-box print leftover-box words leftover-box exactly: leftover-box printf. Leftover-box printf means print leftover-box characters leftover-box exactly leftover-box the leftover-box way leftover-box you leftover-box typed leftover-box them. If leftover-box you leftover-box want leftover-box a leftover-box newline, leftover-box you leftover-box type leftover-box \n leftover-box yourself. Leftover-box \n means leftover-box newline leftover-box (leftover-box go leftover-box to leftover-box the leftover-box next leftover-box line). That is leftover-box why leftover-box the leftover-box leftover-box series leftover-box already leftover-box uses leftover-box printf 'hello\n' leftover-box for leftover-box practice leftover-box files. That is not leftover-box echo. Echo leftover-box puts leftover-box a leftover-box short leftover-box line leftover-box into leftover-box a leftover-box file leftover-box and leftover-box always leftover-box adds leftover-box a leftover-box newline. That is put a short line into a leftover-box file. Skip leftover-box echo as tonight's job — leftover-box echo exists. That is not leftover-box nano. Nano leftover-box is leftover-box the leftover-box editor. That is edit a leftover-box file from the couch. Skip leftover-box nano as tonight's job — leftover-box nano exists. That is not leftover-box redirect leftover-box (>). Redirect leftover-box means leftover-box save leftover-box leftover-box output leftover-box to leftover-box a leftover-box file. That is save leftover-box output to a file. Tonight leftover-box may leftover-box use leftover-box > leftover-box only leftover-box as leftover-box an leftover-box optional leftover-box peek. Skip leftover-box redirect as leftover-box the leftover-box main leftover-box job — leftover-box redirect exists. That is not leftover-box mktemp. Mktemp leftover-box makes leftover-box a leftover-box unique leftover-box temporary leftover-box name. That is make a leftover-box temporary practice file. Skip leftover-box mktemp as tonight's job — leftover-box mktemp exists. That is not leftover-box cat. Cat leftover-box reads leftover-box a leftover-box file. That is read a leftover-box file without opening the editor. Skip leftover-box cat as leftover-box the leftover-box job; leftover-box optional leftover-box peek leftover-box after leftover-box parking leftover-box words. That is not leftover-box touch. Touch leftover-box makes leftover-box an leftover-box empty leftover-box file leftover-box with leftover-box a leftover-box name leftover-box you leftover-box chose. That is make an empty leftover-box file. Skip leftover-box touch as tonight's job — leftover-box touch exists. That is not leftover-box mkdir. That is make a leftover-box folder. Skip leftover-box mkdir as tonight's job — leftover-box mkdir exists. That is not leftover-box readlink. That is see leftover-box shortcut leftover-box target. Skip leftover-box readlink as tonight's job — leftover-box readlink exists. That is not leftover-box dirname. That is see leftover-box folder leftover-box path. Skip leftover-box dirname as tonight's job — leftover-box dirname exists. That is not leftover-box basename. That is see leftover-box last leftover-box name. Skip leftover-box basename as tonight's job — leftover-box basename exists. That is not leftover-box pwd. That is see which leftover-box folder you are in. Skip leftover-box pwd as tonight's job — leftover-box pwd exists. That is not leftover-box ls. That is see what's in a leftover-box folder. Skip leftover-box ls as tonight's job — leftover-box ls exists. That is not leftover-box stat. That is see leftover-box file size, date, and permissions. Skip leftover-box stat as tonight's job — leftover-box stat exists. That is not leftover-box du. That is see how big one leftover-box folder is. Skip leftover-box du as tonight's job — leftover-box du exists. Night one is leftover-box printf 'hello\n' leftover-box once leftover-box so leftover-box exact leftover-box words leftover-box plus leftover-box leftover-box newline leftover-box you leftover-box typed leftover-box appear. You are still only practicing. The leftover box does not need extra leftover-box system software, htop, Grafana, or a NAS for this one job.

Skip until SSH already works

SSH from the couch should already get you a prompt. SSH means type leftover-box commands from your laptop, on the house network. If leftover-box echo is what you want (leftover-box short leftover-box line leftover-box that leftover-box always leftover-box adds leftover-box a leftover-box newline), that is put a short line into a leftover-box file. Skip leftover-box echo as tonight's job — leftover-box echo exists. If leftover-box nano is what you want, that is edit a leftover-box file from the couch. Skip leftover-box nano as tonight's job — leftover-box nano exists. If leftover-box redirect leftover-box (>) is what you want as leftover-box the leftover-box main leftover-box lesson, that is save leftover-box output to a file. Tonight leftover-box uses leftover-box > leftover-box only leftover-box as leftover-box an leftover-box optional leftover-box peek. Skip leftover-box redirect as leftover-box the leftover-box main leftover-box job. If leftover-box mktemp is what you want, that is make a leftover-box temporary practice file. Skip leftover-box mktemp as tonight's job — leftover-box mktemp exists. If leftover-box cat is what you want, that is read a leftover-box file without opening the editor. Skip leftover-box cat as tonight's job — leftover-box cat exists. If leftover-box touch is what you want, that is make an empty leftover-box file. Skip leftover-box touch as tonight's job — leftover-box touch exists. If leftover-box mkdir is what you want, that is make a leftover-box folder. Skip leftover-box mkdir as tonight's job — leftover-box mkdir exists. If leftover-box readlink is what you want, that is see leftover-box shortcut leftover-box target. Skip leftover-box readlink as tonight's job — leftover-box readlink exists. If leftover-box dirname is what you want, that is see leftover-box folder leftover-box path. Skip leftover-box dirname as tonight's job — leftover-box dirname exists. If leftover-box basename is what you want, that is see leftover-box last leftover-box name. Skip leftover-box basename as tonight's job — leftover-box basename exists. If leftover-box pwd is what you want, that is see which leftover-box folder you are in. Skip leftover-box pwd as tonight's job — leftover-box pwd exists. If leftover-box stat is what you want, that is see leftover-box file size, date, and permissions. Skip leftover-box stat as tonight's job — leftover-box stat exists. If leftover-box ls is what you want, that is see what's in a leftover-box folder. Skip leftover-box ls as tonight's job — leftover-box ls exists. If leftover-box du is what you want, that is see how big one leftover-box folder is. Skip leftover-box du as tonight's job — leftover-box du exists. If leftover-box rm is what you want as leftover-box the leftover-box main leftover-box lesson, that is delete a leftover-box file carefully. Tonight leftover-box uses leftover-box careful leftover-box rm -i leftover-box only leftover-box to leftover-box throw leftover-box leftover-box practice leftover-box files leftover-box away. Skip leftover-box password login off as tonight's job. That is turn off leftover-box password login once the key works.

What this is

printf means print leftover-box characters leftover-box exactly. You type leftover-box printf 'hello\n'. Leftover-box printf prints leftover-box leftover-box words leftover-box you leftover-box typed, leftover-box then leftover-box leftover-box newline leftover-box because leftover-box you leftover-box typed leftover-box \n. Leftover-box \n means leftover-box newline. Night one prefers that safe leftover-box peek: leftover-box hello leftover-box then leftover-box the leftover-box prompt leftover-box on leftover-box the leftover-box next leftover-box line. After leftover-box mktemp, this is leftover-box print leftover-box words leftover-box exactly so leftover-box practice leftover-box files (and leftover-box mktemp leftover-box drills) get leftover-box text leftover-box without leftover-box the leftover-box extra leftover-box line leftover-box echo leftover-box always leftover-box adds. You do not need extra leftover-box system software for this. It is not leftover-box echo. Echo leftover-box always leftover-box adds leftover-box a leftover-box newline. That is put a short line into a leftover-box file. Skip leftover-box echo as tonight's job — leftover-box echo exists. It is not leftover-box nano. That is edit a leftover-box file from the couch. Skip leftover-box nano as tonight's job — leftover-box nano exists. It is not leftover-box redirect leftover-box as leftover-box the leftover-box main leftover-box job. That is save leftover-box output to a file. It is not leftover-box mktemp. That is make a leftover-box temporary practice file. Skip leftover-box mktemp as tonight's job — leftover-box mktemp exists. It is not leftover-box cat. That is read a leftover-box file without opening the editor. Skip leftover-box cat as tonight's job — leftover-box cat exists. It is not leftover-box touch. That is make an empty leftover-box file. Skip leftover-box touch as tonight's job — leftover-box touch exists. It is not leftover-box mkdir. That is make a leftover-box folder. Skip leftover-box mkdir as tonight's job — leftover-box mkdir exists. It is not leftover-box readlink. That is see leftover-box shortcut leftover-box target. Skip leftover-box readlink as tonight's job — leftover-box readlink exists. It is not leftover-box dirname. That is see leftover-box folder leftover-box path. Skip leftover-box dirname as tonight's job — leftover-box dirname exists. It is not leftover-box basename. That is see leftover-box last leftover-box name. Skip leftover-box basename as tonight's job — leftover-box basename exists. It is not leftover-box pwd. That is see which leftover-box folder you are in. Skip leftover-box pwd as tonight's job — leftover-box pwd exists. It is not leftover-box ls. That is see what's in a leftover-box folder. Skip leftover-box ls as tonight's job — leftover-box ls exists. It is not leftover-box stat. That is see leftover-box file size, date, and permissions. Skip leftover-box stat as tonight's job — leftover-box stat exists. It is not leftover-box du. That is see how big one leftover-box folder is. Skip leftover-box du as tonight's job — leftover-box du exists. It is not leftover-box pipe as the main job. That is send leftover-box output into another command. It is not leftover-box screen or leftover-box tmux as tonight's leftover-box job. Night one is leftover-box print leftover-box exact leftover-box words leftover-box plus leftover-box leftover-box newline leftover-box you leftover-box typed, not leftover-box format-string leftover-box school.

Practice leftover-box printf

SSH in. Make sure home is where you are sitting:

pwd

You want a path that ends in your login name. If not:

cd ~

Print leftover-box words leftover-box exactly leftover-box with leftover-box a leftover-box newline leftover-box you leftover-box typed (night one job):

printf 'hello\n'

You want leftover-box hello leftover-box then leftover-box the leftover-box prompt leftover-box on leftover-box the leftover-box next leftover-box line. You typed leftover-box the leftover-box newline leftover-box as leftover-box \n. Then leftover-box the leftover-box prompt leftover-box back. That is enough for leftover-box night leftover-box one.

Debian and Ubuntu leftover-box usually already have leftover-box printf (bash leftover-box builtin leftover-box and/or leftover-box coreutils leftover-box /usr/bin/printf). Do not leftover-box make leftover-box builtin leftover-box vs leftover-box coreutils leftover-box the leftover-box lesson. Do not make leftover-box apt the job. If leftover-box printf is somehow missing, optional aside:

sudo apt install coreutils

Then stop. That leftover-box apt line is not the leftover-box lesson.

Useful extras, still home-safe

Optional extra: leftover-box park leftover-box exact leftover-box words leftover-box in leftover-box a leftover-box tiny leftover-box home leftover-box practice leftover-box file:

printf 'hello\n' > ~/printf-a.txt

Then leftover-box optional leftover-box peek:

cat ~/printf-a.txt

You want leftover-box hello leftover-box on leftover-box its leftover-box own leftover-box line. Do not leftover-box make leftover-box redirect leftover-box or leftover-box cat leftover-box the leftover-box job. That is save leftover-box output to a file leftover-box and leftover-box read a leftover-box file without opening the editor. When leftover-box done, leftover-box careful leftover-box delete leftover-box only:

rm -i ~/printf-a.txt

Ask first. Say leftover-box yes leftover-box only leftover-box if leftover-box the leftover-box name leftover-box matches. That is delete a leftover-box file carefully. Skip rm -rf.

Optional leftover-box peek leftover-box without leftover-box newline:

printf hello

You want leftover-box hello leftover-box and leftover-box the leftover-box prompt leftover-box sitting leftover-box on leftover-box the leftover-box same leftover-box line. That leftover-box shows leftover-box why leftover-box \n leftover-box matters. Do not leftover-box make leftover-box this leftover-box required. Night one can stay on leftover-box printf 'hello\n'.

Skip leftover-box huge leftover-box dumps as tonight's leftover-box job. Example leftover-box flooding leftover-box the leftover-box window leftover-box with leftover-box a leftover-box giant leftover-box printf leftover-box loop, leftover-box leftover-box /etc, leftover-box password leftover-box files, leftover-box disk leftover-box images, or leftover-box huge leftover-box logs, is still a huge leftover-box dump. Night one is leftover-box exact leftover-box words leftover-box plus leftover-box leftover-box newline leftover-box you leftover-box typed, leftover-box not leftover-box a leftover-box giant leftover-box dump.

Skip leftover-box printf piped into leftover-box rm as tonight's leftover-box job. Printf leftover-box prints leftover-box words. Rm deletes leftover-box files. Do not mix those leftover-box jobs as leftover-box one leftover-box pipeline leftover-box lesson. Careful leftover-box delete only: delete a leftover-box file carefully.

Skip leftover-box format-string leftover-box school leftover-box (%s / leftover-box %d / leftover-box %x leftover-box loops, leftover-box width leftover-box flags) as tonight's leftover-box job. Night one is leftover-box exact leftover-box words leftover-box plus leftover-box leftover-box newline leftover-box you leftover-box typed.

Skip leftover-box echo as tonight's leftover-box job. That is put a short line into a leftover-box file.

Skip leftover-box nano as tonight's leftover-box job. That is edit a leftover-box file from the couch.

Skip leftover-box redirect as leftover-box the leftover-box main leftover-box job. That is save leftover-box output to a file. Tonight leftover-box uses leftover-box > leftover-box only leftover-box as leftover-box an leftover-box optional leftover-box peek.

Skip leftover-box mktemp as tonight's leftover-box job. That is make a leftover-box temporary practice file.

Skip leftover-box cat as tonight's leftover-box job. That is read a leftover-box file without opening the editor.

Skip leftover-box touch as tonight's leftover-box job. That is make an empty leftover-box file.

Skip leftover-box mkdir as tonight's leftover-box job. That is make a leftover-box folder.

Skip leftover-box readlink as tonight's leftover-box job. That is see leftover-box shortcut leftover-box target.

Skip leftover-box dirname as tonight's leftover-box job. That is see leftover-box folder leftover-box path.

Skip leftover-box basename as tonight's leftover-box job. That is see leftover-box last leftover-box name.

Skip leftover-box pwd as tonight's leftover-box job. That is see which leftover-box folder you are in.

Skip leftover-box stat as tonight's leftover-box job. That is see leftover-box file size, date, and permissions.

Skip leftover-box ls as tonight's leftover-box job. That is see what's in a leftover-box folder.

Skip leftover-box du as tonight's leftover-box job. That is see how big one leftover-box folder is.

Skip leftover-box pipe as the main leftover-box job. That is send leftover-box output into another command.

Skip leftover-box clear as tonight's leftover-box job. That is clear the leftover-box window.

Skip leftover-box watch as tonight's leftover-box job. That is see leftover-box change without typing again.

Skip leftover-box tput as tonight's leftover-box job. That is see leftover-box terminal columns and colors.

Skip leftover-box screen, leftover-box tmux, leftover-box script, leftover-box mesg, leftover-box wall, and leftover-box write as tonight's leftover-box job.

Skip leftover-box password login off as tonight. That is turn off leftover-box password login once the key works.

Skip leftover-box apt as tonight's leftover-box job. The leftover-box coreutils aside is not the leftover-box lesson.

Skip htop, top, Grafana, a monitoring box, and a NAS. Skip leftover-box buying leftover-box a leftover-box NAS leftover-box and leftover-box filling leftover-box the leftover-box disk leftover-box as leftover-box the leftover-box job.

Skip leftover-box files under /etc, leftover-box whole leftover-box /, SSH folders, leftover-box /dev as a leftover-box dump, other disks, USB sticks, and /srv as tonight's lesson. Practice leftover-box in leftover-box the leftover-box window. Optional leftover-box home leftover-box practice leftover-box file leftover-box only.

What this is not

This is not leftover-box echo. Echo leftover-box always leftover-box adds leftover-box a leftover-box newline. Printf leftover-box prints leftover-box exactly leftover-box what leftover-box you leftover-box typed leftover-box (leftover-box add leftover-box \n leftover-box yourself leftover-box when leftover-box you leftover-box want leftover-box a leftover-box newline). That is put a short line into a leftover-box file. Skip leftover-box echo as tonight's job — leftover-box echo exists. It is not leftover-box nano. That is edit a leftover-box file from the couch. Skip leftover-box nano as tonight's job — leftover-box nano exists. It is not leftover-box redirect leftover-box as leftover-box the leftover-box main leftover-box job. That is save leftover-box output to a file. Tonight leftover-box uses leftover-box > leftover-box only leftover-box as leftover-box an leftover-box optional leftover-box peek. It is not leftover-box mktemp. That is make a leftover-box temporary practice file. Skip leftover-box mktemp as tonight's job — leftover-box mktemp exists. It is not leftover-box cat. That is read a leftover-box file without opening the editor. Skip leftover-box cat as tonight's job — leftover-box cat exists. It is not leftover-box touch. That is make an empty leftover-box file. Skip leftover-box touch as tonight's job — leftover-box touch exists. It is not leftover-box mkdir. That is make a leftover-box folder. It is not leftover-box readlink. That is see leftover-box shortcut leftover-box target. It is not leftover-box dirname. That is see leftover-box folder leftover-box path. It is not leftover-box basename. That is see leftover-box last leftover-box name. It is not leftover-box pwd. That is see which leftover-box folder you are in. It is not leftover-box ls. That is see what's in a leftover-box folder. It is not leftover-box stat. That is see leftover-box file size, date, and permissions. It is not leftover-box du. That is see how big one leftover-box folder is. It is not leftover-box pipe as the main job. That is send leftover-box output into another command. It is not leftover-box password login off. That is turn off leftover-box password login once the key works. It is not leftover-box huge leftover-box dumps as the leftover-box job. It is not leftover-box printf piped into leftover-box rm. It is not leftover-box format-string leftover-box school leftover-box as leftover-box the leftover-box job. It is not leftover-box apt as the leftover-box job. It is not a careful leftover-box delete as leftover-box the leftover-box main leftover-box lesson. That is delete a leftover-box file carefully. It is not leftover-box buying leftover-box a leftover-box NAS leftover-box or leftover-box filling leftover-box the leftover-box disk leftover-box as leftover-box the leftover-box job. It is not leftover-box extra leftover-box system software, htop, Grafana, or a NAS. It is not leftover-box /etc or leftover-box whole leftover-box /. It is not opening SSH to the internet so you can leftover-box print leftover-box words leftover-box from leftover-box a leftover-box coffee leftover-box shop. That is keep the leftover box on the house network. Do not forward port 22. Do not leftover-box create leftover-box-df leftover-box (leftover-box df -h leftover-box already leftover-box see if the leftover box still has room), leftover-box-od, leftover-box-install, leftover-box-awk, leftover-box-sed, leftover-box-truncate leftover-box this leftover-box cycle.

What next

Need leftover-box disk writes finished before you unplug or power off? Finish leftover-box disk writes. Need leftover-box short leftover-box line leftover-box that leftover-box always leftover-box adds leftover-box a leftover-box newline? Put a short line into a leftover-box file (echo leftover-box always leftover-box adds leftover-box a leftover-box newline; leftover-box printf leftover-box prints leftover-box exactly). Need leftover-box save leftover-box output? Save leftover-box output to a file. Need leftover-box read leftover-box a leftover-box file? Read a leftover-box file without opening the editor. Need leftover-box editor? Edit a leftover-box file from the couch. Need leftover-box empty leftover-box file leftover-box with leftover-box a leftover-box name leftover-box you leftover-box chose? Make an empty leftover-box file. Need leftover-box temporary leftover-box practice leftover-box name? Make a leftover-box temporary practice file. Need leftover-box practice leftover-box names leftover-box gone? Delete a leftover-box file carefully. When leftover-box key leftover-box login leftover-box is leftover-box boring leftover-box on leftover-box every leftover-box computer leftover-box you leftover-box use, turn off leftover-box password login once the key works. Keep SSH on the house network: keep the leftover box on the house network. Do not forward port 22.

Skip

Sources

Debian: printf(1). Ubuntu: printf(1). Official pages only. For leftover-box short leftover-box line leftover-box with leftover-box automatic leftover-box newline, see put a short line into a leftover-box file. For leftover-box temporary leftover-box practice leftover-box name, see make a leftover-box temporary practice file. For leftover-box save leftover-box output, see save leftover-box output to a file. For leftover-box careful leftover-box delete, see delete a leftover-box file carefully. For the login, see SSH from the couch.

Also on this topic

SSH from the couchType commands on the leftover box from your laptop, on the house network. Password login first. Do not open this to the internet. Make a leftover-box temporary practice fileAfter leftover-box readlink, make a leftover-box temporary practice file with leftover-box mktemp so leftover-box practice names (and leftover-box echo/printf drills) get a leftover-box unique leftover-box name in leftover-box /tmp (or leftover-box home) without guessing a leftover-box name. You do not need extra leftover-box system software for this. Put a short line into a leftover-box fileAfter SSH works, put one short line into a leftover-box file with echo so you do not need to open nano. You do not need a file manager app for this. Save leftover-box output to a fileAfter SSH works, save leftover-box command output to a file with > so you can read it later. You do not need a file manager app for this. Read a leftover-box file without opening the editorAfter SSH works, print a leftover-box file with cat so you can read it without opening nano. Short files only. You do not need a file viewer app for this. Edit a leftover-box file from the couchAfter SSH works, open a leftover-box file with nano, change a line, and save. The keys at the bottom of the screen are the whole trick. You do not need a new editor. Make an empty leftover-box fileAfter SSH works, make an empty leftover-box file with touch so nano and copies have a file to land on. You do not need a file manager app for this. Delete a leftover-box file carefullyAfter SSH works, delete one leftover-box file with rm -i. Ask first. Skip rm -rf. You do not need a NAS for this. Turn off leftover-box password login once the key worksAfter the laptop key login is boring, tell SSH to stop accepting the leftover-box password. The key is how you get in. A keyboard on the leftover box is the backup now. Keep the leftover box on the house networkSSH and Pi-hole belong on the house network. Skip this if you never opened the router settings. Do not forward port 22.