Line Discipline in Unix/Linux Machines

πŸ“… July 6, 2020 β€’ πŸ•£ 1 min read β€’ 304 totalwords

Line discipline handles things like backspace and also generates various signals for special characters like Ctrl + C/Z etc.

stty -a will display all these settings. To know more do man ssty.

Demo

Other than Ctrl+c and Ctrl+z which you already know about. Here are some other tricks.

Fire up your terminal. And start typing….

Keyboard Shortcut Description
Ctrl+? Delete the last input character, Basically Backspace (See what I am talking about, ^? can be used in terminals which may not support the backspace key
Ctrl+q Erase line, works like carriage return /r
Ctrl+a Moves cursor to beginning of line
Ctrl+e Moves cursor to end of line
Ctrl+w Delete the last input "word"
Ctrl+k Erase line to the end, from current cursor position
Ctrl+y Paste the last erased text

Apart from these line input specific keyboard shortcuts. We also have …

Multiline Input

Use / for continuing the multiline input.

bhupesh@dev: hello my name\
is\
bhupesh\
check\
> my boi\
> hoooo\
> 

A better version

#!/bin/bash

echo -e "Enter Commit Message (Ctrl+d to stop) : "
commit_message=$(</dev/stdin)

echo -e "\n\n$commit_message"

Make it executable and run.

Enter Commit Message (Ctrl+d to stop) : 
- fixed bug #454
- Increase reponse time
- style fixes


- fixed bug #454
- Increase reponse time
- style fixes

All of this is controlled by the tty driver

Resources