I spend a lot of time in the terminal. But I never touch Enter or arrow keys. Here is what makes me productive:

Command history navigation

ctrl + p - previous command
ctrl + n - next command
ctrl + r - history search
ctrl + m - enter

Can't imagine my life without these hotkeys
Line navigation

ctrl + a - jump to the beginning
ctrl + e - jump to the end
ctrl + u - del from cursor till the beginning
ctrl + k - del from cursor till the end
Work navigation (slightly more exotic, but I got used to it already)

alt + f - jump one word forward
alt + b - jump one word backward
alt + d - del a word in front of cursor
ctrl + f - jump one char forward
ctrl + b - jump one char backward
ctrl + d - del a symbol under cursor
Screen manipulation

ctrl + l - clear visible area (scrolls up)
cmd + k - this one works only in iterm2, but it's gold - flush the whole output buffer

reset - a tool to fix the terminal that got broken by a partial output of the previous command
Miscellaneous

ctrl + z - stop the current program (but don't terminate it). I use it when I need to drop out of my Vim session to experiment with something. Use `fg` to restore the stopped job.

ctrl + s - stop the output of a crazy command
ctrl + q - resume the output
When I internalized these hotkeys, my terminal experience drastically improved. It's actually less than 20! And most of them come in pairs. So, just 10 things to remember.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Ivan Velichko

Ivan Velichko Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @iximiuz

14 Jun
Algorithms and Data Structures at work

Long story short: I solved hundreds of LeetCode and HackerRank problems, and I do find this experience useful for my day job.

Here is why (thread)
Sometimes, a developer may stumble upon a purely algorithmic task.

In my very first company, I wrote a GUI framework for SmartTV devices. These sets were quite slow back in 2011, so I needed to make the framework really lightweight and fast because even jQuery would be too heavy
The framework had a virtual DOM tree (react wasn't a thing yet). And the element rendering and navigation were all about tree traversals.

This framework essentially saved the project from failure.
Read 17 tweets
10 May
Prometheus Data & Query Model (thread)

Basics first, bear with me.

Everything starts from a METRIC.

Metric is a certain measurement of a system one wants to track. Metric names are identifiers.

Ex: http_requests_total, gc_duration_seconds, etc.
Every metric is measured at a certain TIME and has a certain VALUE.

Time is always with milliseconds precision.

Value is always float64, even if it looks like an integer.

Metric value, aka sample, is a pair (value, timestamp).
A metric can be LABEL-ed to allow more fine-grained control over measurements.

Label names are identifiers too (in a common programming sense).

Label values are always strings.

Ex: http_requests_total{method="GET", status="200"}
Read 16 tweets
21 Mar
Grasping Computer Networking - Bottom-Up Approach.

1/ Computers can talk only to their neighbors!

What is a neighbor? It's a network node residing on the same Layer 2 segment.

Curious, what is an L2 segment? Then read on!
A simplest possible example of an L2 segment is a point-to-point connection of two computers (as above).

But to interconnect multiple computers, an additional multi-port device is needed.
For wired networks, such a device is called "switch" or "bridge".

There are lots of switches in data centers. But you probably have one at home too.

It's your Wi-Fi router! See those RJ45 ports on the backside? Then it's not a router but a bridge combined with a router.
Read 12 tweets
20 Dec 20
The great rise of cloud-native projects (thread).

Microservices don't solve any technical problems. Instead, microservices are trying to solve org challenges.

...by turning org problems into new tech challenges.
In accordance with the complexity conservation law, microservice architectures should be bringing a lot of new problems yet to be solved.

ferd.ca/complexity-has…
Thesis: the goal of the majority of the CNCF projects is to solve those technical problems originated by the microservice transition.

landscape.cncf.io
Read 9 tweets
19 Dec 20
Kubernetes is a Distributed Operating System (thread):

1. One of the primary goals of a traditional operating system (e.g Linux) is to share a machine's resources between apps. While "Kubernetes is all about sharing machines between applications."
2. An operating system gives you a handy way to launch your apps. So does Kubernetes.
3. An operating system gives you a handy way to install apps. So does Kubernetes (through raw YAML or a package manager like Helm).
Read 5 tweets
18 Dec 20
Kubernetes is deprecating Docker as a container runtime after v1.20. But nobody cares. Why? Because images built with Docker will keep working on Kubernetes.
So does images created with Podman and most of the other build tools around. Why? Because of the great standardization effort called OCI!

opencontainers.org
OCI contains two specifications: the Runtime Specification (runtime-spec) and the Image Specification (image-spec).
Read 14 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(