问题
Is there a way to type the null character in the terminal?
I would like to do something like:
this is a sentence (null) test123
回答1:
In Linux, any special character can be literally inserted on the terminal by pressing Ctrl+v followed by the actual symbol. null is usually ^@ where ^ stands for Ctrl and @ for whatever combination on your keyboard layout that produces @.
So on my keyboard I do: Ctrl+v followed by Ctrl+Shift+@ and I get a ^@ symbol with a distinguished background color. This means it's a special character and not just ^ and @ typed in.
Edit: Several years later and a few input variations implemented by different terminals using keyboard layouts that require pressing Shift to access @.
- Ctrl+v followed by Ctrl+Shift+@
- Ctrl+v followed by Shift+@ without releasing Ctrl.
- Ctrl+Shift+v followed by @ without releasing Ctrl+Shift.
- Ctrl+Shift release Shift and re-press Shift keeping both Ctrl+Shift pressed followed by v and finally @. Seen in some terminals that implement a special input on Ctrl+Shift.
回答2:
Apparently you can type this character with ^@ on some character sets. This wikipedia article on the null character may be helpful.
回答3:
$ echo -e "this is a sentence \0 test123"
this is a sentence test123
The null here ^^ IS NOT visible
$ echo -e "this is a sentence \0 test123" | cat --show-nonprinting
this is a sentence ^@ test123
But it IS here ^^
But maybe you did not want this for a script?
回答4:
As with the abort command (Ctrl-C), in most terminals just hit Ctrl-@ (with the use of Shift on my keyboard).
来源:https://stackoverflow.com/questions/7572801/type-null-character-in-terminal