Hide

What's this?

commandlinefu.com is the place to record those command-line gems that you return to again and again.

Delete that bloated snippets file you've been using and share your personal repository with the world. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.


If you have a new feature suggestion or find a bug, please get in touch via http://commandlinefu.uservoice.com/

Get involved!

You can sign-in using OpenID credentials, or register a traditional username and password.

First-time OpenID users will be automatically assigned a username which can be changed after signing in.

World cup college
Hide

Stay in the loop…

Follow the Tweets.

Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.

» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10

Subscribe to the feeds.

Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):

Subscribe to the feed for:

Hide

News

2010-03-03 - Commandlinefu @ SXSW 2010
Am going to be at SXSW this year, in case you want to submit any CLI nuggets or suggestions to me in person. Ping me on the @codeinthehole Twitter account.
2009-09-12 - Email updates now available
You can now enable email updates to let you know each time you're command is commented on.
2009-07-11 - API and javascript blog widget now available
A simple API has been released, allowing commands to be retrieved in various formats. This also allows commands to be embedded on blogs/homepages.
2009-05-17 - Added duplicate suggestions to the new command form
When adding a new command, a quick background search is performed to make sure you're not duplicating a command already in the system.
Hide

Tags

Hide

Functions

Salvage a borked terminal

Terminal - Salvage a borked terminal
reset
2009-01-28 22:22:01
User: root
Functions: reset
114
Salvage a borked terminal

If you bork your terminal by sending binary data to STDOUT or similar, you can get your terminal back using this command rather than killing and restarting the session. Note that you often won't be able to see the characters as you type them.

Alternatives

There are 5 alternatives - vote for the best!

Terminal - Alternatives
stty sane
2009-11-09 15:58:06
User: darkpand
Functions: stty
Tags: terminal reset
11

When some console full-screen program (minicom, vi, some installers) breaks down your terminal, try this command to revert all options to "sane" settings (sane is a built-in combo of a lot of stty options)

echo <ctrl-v><esc>c<enter>
2009-08-05 18:32:28
User: kcm
Functions: echo
7

This works in some situations where 'reset' and the other alternatives don't.

<ctrl+j>stty sane<ctrl+j>
2009-08-05 21:50:07
User: CharlieInCO
7

This is more or less the same as 'reset', but with two advantages: the initial LF character makes sure you're starting a new line to the tty driver, the final one is more reliably a line-end as CR is often unset; and second, 'stty sane' is reliable on older UNIX systems, especially Berkeley-based ones.

reset
2009-11-09 16:15:26
User: flart
Functions: reset
2

If something fracks up your terminal, just type in 'reset' and everything should be good again.

echo <ctrl+v><ctrl+o><enter>
2009-12-07 20:02:33
User: mkobler
Functions: echo
1

Also works in places where reset does not.

Know a better way?

If you can do better, submit your command here.

What others think

Nice to know. I normally always reset it by typing "cat /bin/ls" (you can use any binary file you want) and hitting ^C while it's still cat'ting.

Comment by LudoA 57 weeks ago

Use "cat -v" instead of "cat" to cat binary files without borking the terminal.

Comment by int19h 55 weeks and 3 days ago

interesting enough, +enter will fix this as well, no need for external commands.

Comment by SiegeX 55 weeks and 2 days ago

stupid tag parsing. Lets try this again:

interesting enough ctrl+v,ctrl+o then hitting enter will fix this as well, no need for external commands.

Comment by SiegeX 55 weeks and 2 days ago

reset doesn't always work for me if the terminal is borked, is this a bug or am I doing something wrong? Anyone else encountered reset not resetting the terminal?

Comment by int19h 55 weeks and 2 days ago

in alternative, this is what I use:

http://www.commandlinefu.com/commands/view/866/reset-an-hanging-terminal-session

Comment by berta 55 weeks and 2 days ago

@int19h: Yeah, reset doesn't always work.

Comment by mulad 55 weeks ago

This is what the 'file' command is for. If you don't know the file type you're about to echo to the terminal, run 'file' on it before hand, then use the right tool to parse its data. If you do, and reset doesn't work, ^Jreset^j might. ^j (ctrl-j) is the ASCII key sequence for the Enter key.

Comment by atoponce 53 weeks and 4 days ago

Interesting, I always use "stty sane" CTRL-J

Comment by mpb 51 weeks and 2 days ago

'reset' goes with tset and the System V-style termio. stty sane does much the same thing but is portable to the older style terminal driver.

Comment by CharlieInCO 31 weeks ago

I simply have the solution SiegeX presented as part of my system prompt so I never get borked.

Using Vi in binary mode I edited my .bashrc and inserted the control character into the PS1 variable so that PS1="\u@\h^O" (^O produced with ctrl+v,ctrl+o)

No more borked terminals.

Comment by john6of6 22 weeks and 2 days ago

Your point of view

You must be signed in to comment.

Related sites and podcasts