DEV Community

Alex Shev
Alex Shev

Posted on

Stop Teaching Terminal Commands. Teach Terminal Workflows.

Most terminal education teaches commands.

That makes sense at the beginning.

You need to know what grep does. You need to know how find works. You need to understand pipes, redirects, exit codes, environment variables, and shell scripts.

But after a while, the command is not the hard part.

The hard part is the workflow.

Not:

grep -R "TODO" .
Enter fullscreen mode Exit fullscreen mode

But:

Inspect the repo.
Find the risky files.
Decide what needs changing.
Run the smallest useful command.
Verify the result.
Recover cleanly if the command was wrong.
Enter fullscreen mode Exit fullscreen mode

That is the part most people are not taught.

And it is also the part AI agents need most.


Commands are vocabulary

Knowing terminal commands is useful.

But commands are vocabulary.

Workflows are how you actually get work done.

A beginner asks:

What command lists files?
Enter fullscreen mode Exit fullscreen mode

A more experienced developer asks:

What am I trying to learn from the filesystem, and what is the safest way to inspect it?
Enter fullscreen mode Exit fullscreen mode

Those are different questions.

For example, this command is easy to memorize:

ls
Enter fullscreen mode Exit fullscreen mode

But the real workflow might be:

pwd
ls -la
find . -maxdepth 2 -type f | head
git status --short
Enter fullscreen mode Exit fullscreen mode

That sequence tells you where you are, what is around you, what kind of project you are in, and whether the workspace is already dirty.

The command is small.

The judgment around the command is the skill.


A terminal workflow has stages

I like this simple model:

inspect -> decide -> run -> verify -> recover
Enter fullscreen mode Exit fullscreen mode

That pattern shows up everywhere.

1. Inspect

Before you change anything, learn the shape of the problem.

pwd
git status --short
find . -maxdepth 2 -type f | sort | head -50
Enter fullscreen mode Exit fullscreen mode

This is not busywork.

It prevents the most common terminal mistake: running the right command in the wrong place.

2. Decide

Once you inspect, choose the smallest useful action.

Do not start with the most powerful command.

Start with the command that gives you more information or makes a reversible change.

For example:

git diff -- path/to/file
Enter fullscreen mode Exit fullscreen mode

before:

git add .
Enter fullscreen mode Exit fullscreen mode

Or:

ffprobe input.mp4
Enter fullscreen mode Exit fullscreen mode

before:

ffmpeg -i input.mp4 output.mp4
Enter fullscreen mode Exit fullscreen mode

3. Run

Run the command with a clear expectation.

You should know what success looks like before you press Enter.

Bad:

Let's try this and see what happens.
Enter fullscreen mode Exit fullscreen mode

Better:

This should produce one MP4 in the output folder, keep the source file unchanged, and exit non-zero if the input is invalid.
Enter fullscreen mode Exit fullscreen mode

4. Verify

The command finishing is not the same as the workflow being done.

If you converted a video, inspect the output.

ffprobe output.mp4
Enter fullscreen mode Exit fullscreen mode

If you changed code, run a relevant test.

npm test
Enter fullscreen mode Exit fullscreen mode

If you edited content, check the final rendered page, not just the local markdown.

Verification is where a terminal habit becomes a production workflow.

5. Recover

Every useful workflow needs a recovery path.

What happens if the command fails?

What happens if it succeeds but produces the wrong output?

What happens if the workspace already had unrelated changes?

For example:

git diff
git restore --staged .
Enter fullscreen mode Exit fullscreen mode

or:

mkdir -p output_failed
mv broken-output.mp4 output_failed/
Enter fullscreen mode Exit fullscreen mode

Recovery should not be improvised after something breaks.

It should be part of the workflow.


Why this matters more with AI agents

AI agents are very good at discovering commands.

They can usually find the right shell syntax faster than a human can.

But they can still fail in familiar ways:

  • running commands before inspecting the project
  • using broad commands when a narrow one would do
  • trusting success output too early
  • overwriting files without a recovery plan
  • skipping platform-specific verification
  • treating a tool capability as a finished workflow

That is why "give the agent terminal access" is not enough.

Tool access gives the agent hands.

The workflow tells the agent what careful work looks like.


Example: teaching grep vs teaching search

You can teach someone this:

grep -R "stripe" .
Enter fullscreen mode Exit fullscreen mode

That is a command.

But a real search workflow might be:

git status --short
find . -maxdepth 3 -type f | sort | head -100
grep -R --exclude-dir=node_modules --exclude-dir=.git "stripe" .
grep -R --include="*.ts" --include="*.tsx" "createCheckout" .
Enter fullscreen mode Exit fullscreen mode

The difference is not just syntax.

The workflow says:

  • check the workspace first
  • avoid dependency folders
  • search broadly, then narrow by file type
  • search both product terms and implementation terms
  • do not edit until you know where the real boundary is

That is what developers actually do.

The command is only one piece.


Example: teaching ffmpeg vs teaching media prep

You can teach:

ffmpeg -i input.mov output.mp4
Enter fullscreen mode Exit fullscreen mode

That is fine for a demo.

But if the file needs to be uploaded to a platform, the workflow matters more:

Inspect input.
Check duration, codec, pixel format, audio, and dimensions.
Convert to a safe default.
Inspect output.
Check file size.
Upload.
Verify the real platform preview.
Publish.
Verify the final post.
Enter fullscreen mode Exit fullscreen mode

The important lesson is not "use FFmpeg."

The important lesson is:

Never trust a media conversion until the destination platform accepts it.
Enter fullscreen mode Exit fullscreen mode

That is workflow knowledge.


This is where Terminal Skills fits

Terminal Skills is useful because it gives agents a way to package workflows, not just commands.

A good skill does not only say:

Run this command.
Enter fullscreen mode Exit fullscreen mode

It says:

Use this when the task looks like this.
Inspect these inputs.
Run these steps.
Stop in these cases.
Verify these outputs.
Report the result in this format.
Enter fullscreen mode Exit fullscreen mode

That is the missing layer between raw tool access and reliable automation.

For example, a media skill can teach an agent how to prepare upload-safe video.

A Git skill can teach an agent how to inspect a dirty worktree without destroying user changes.

A deployment skill can teach an agent how to build, test, deploy, and verify a live URL.

The point is not that the terminal becomes easier.

The point is that the workflow becomes repeatable.


A useful skill has a definition of done

This is the part I care about most.

A command can finish successfully and still not solve the problem.

A skill should define done.

For a code change:

Done means the targeted files were changed, tests passed, no unrelated files were touched, and the result was summarized with exact file paths.
Enter fullscreen mode Exit fullscreen mode

For a video conversion:

Done means the output file is readable, uses the expected codec and pixel format, is under the target size, and has been accepted by the upload composer.
Enter fullscreen mode Exit fullscreen mode

For a content workflow:

Done means the draft exists, the links work, the target platform format is respected, and publishing approval was recorded.
Enter fullscreen mode Exit fullscreen mode

That last line matters.

In real work, verification and approval are part of the system.

They are not optional admin details.


The better way to teach terminal work

I still think people should learn commands.

But I would not stop there.

Teach commands inside workflows.

Instead of:

Here are 20 useful Linux commands.
Enter fullscreen mode Exit fullscreen mode

Teach:

Here is how to inspect an unfamiliar repo.
Here is how to safely search a codebase.
Here is how to prepare a video for upload.
Here is how to debug a broken script.
Here is how to verify a deployment.
Here is how to recover after a bad command.
Enter fullscreen mode Exit fullscreen mode

That is closer to how developers actually work.

It is also closer to what AI agents need.

Because the future of terminal automation is not agents memorizing more commands.

It is agents following better workflows.


If you are building with AI agents, ask this:

What terminal task do I keep explaining from scratch?
Enter fullscreen mode Exit fullscreen mode

That is probably not a prompt problem.

It is probably a workflow that should become a skill.

Disclosure: I used AI assistance to draft and edit this article, then reviewed the examples, commands, and claims before publishing.

Top comments (1)

Collapse
 
nimay_04 profile image
Nimesh Kulkarni

Linux guys just hardcode those commands in their mind lol...