I was working on something to block outgoing connections for one particular app *only*. And I use a mac, leopard… the first place I went to look was System Preferences -> Security -> Firewall pane. And I was disappointed to find no “Block Outgoing Co…
bash command line editing + custom inputrc -> efficient editing
Command line editing in bash is sometimes tiring when you have long commands accepting multiple arguments etc. Its hard to edit the command line when you want to change some parameter here and there… adding some parameters in the middle or even modifying existing parameters. I’ve seen people mostly using the arrow keys to go back and forth and deleting everything and typing in again, or sometimes using copy-paste from previous lines for editing those long long commands. I used to do it myself…
But then you can set command line editing modes in bash. This is where it helps a lot in editing those long long commands that you sometimes run.
The default mode is set to emacs, and you can choose between using the default or using vi mode. If you want to switch to vi mode, use the following:
$ set -o vi
In vi mode, you can edit the command line as you would normally edit using vi. Press ESC in the command line to switch to vi command mode. And you can go forward editing with all vi habits you got… moving forward-word, backward-word, delete, cut, paste…etc. Typing “i” in command mode will bring you back in vi insert mode.
If you are not into vi, you can switch back to emacs mode using:
$ set -o emacs
I have never used emacs myself and being a fan of vi, I used to have vi mode in bash. But I was never happy with that mode…. seemed like too many keystrokes needed to switch between command/insert mode. Also some of the default shortcuts didn’t work in vi mode like control-a to move to beginning of line etc.
Using emacs mode, you don’t need to switch between command/insert mode like in vi. One disadvantage is I don’t know emacs and don’t wanna learn 🙂
So here’s I came up with – default emacs mode and a custom key mapping for most of the common editing functions. Yes, you can specify custom key mappings using a .inputrc in your home directory. You should probably go here if you want to find out about how to edit/manage your inputrc file….
I guess the most common editing functions that ppl would mostly care about would be (well its true for me at least)
- Moving forward and backwards by character: Use left/right arrow keys. I guess am too used to using the arrow keys
- Deleting backward and forward characters: Use backspace and delete keys of course, again too used to it
- Moving forward and backwards by word: I didn’t like the default mapping of using ESC+b and ESC+f. Felt kind of lazy reaching out for that far-off ESC key 🙂 …. so I changed it to use control-b and control-f instead
- Moving to beginning and end of line: Use the default mappings, control+a to move to beginning and control+e to move to end
- Deleting everything from cursor to beginning: Use default mapping of control+u
When you feel like deleting whole of line, use control-e controle-u, i.e. goto end of line and delete everything upto beginning of command
- Deleting one word backward from cursor: Use default control+w
If you want to delete the forward word, use control+f control+w, i.e. go forward one word and delete back one word
- Undo: People might not need this normally, but it’s handy sometimes. Use default control-x control-u
Here’s the contents of my inputrc file:
# This file controls the behaviour of line input editing for
# programs that use the Gnu Readline library. Existing programs
# include FTP, Bash, and Gdb.
#
# You can re-read the inputrc file with C-x C-r.
# Lines beginning with '#' are comments.
#
set editing-mode emacs
$if mode=emacs
"\C-f": forward-word
"\C-b": backward-word
"\C-a": beginning-of-line
"\C-e": end-of-line
"\C-u": unix-line-discard
"\C-w": unix-word-rubout
"\C-x\C-u": undo
$endif
As in the comments, if you are editing you inputrc file its helpful to know you can reload your mappings with control-x control-r
I’m pretty sure if you have a handy .inputrc file, you won’t be frustrated next time when you have one of those long command line and need to edit them, you’ll be no longer using the arrow keys 🙂
Enjoy your bash command editing sessions…
Gmail POP3 Configuration
I received several emails lately that asked me how to setup email clients so that they could retrieve Gmail emails using the POP3 protocol. The Gmail POP3 configuration is fortunately not that complex: The major problem that most users run into is that…
Automated Email Archiving and Monitoring In Microsoft Outlook
It is sometimes important to monitor and archive emails, especially in a business environment. One example would be that a supervisor wants a copy of every email that an employee sends to customers to keep track on everything. Probably the easiest way …
MSN (Hotmail) Hacking Software
MSN Password Hacker scans your computer for stored MSN account passwords and thus you can hack your msn account password. But, remember, for this msn hacking software to work, there must be locally stored msn passwords on victim computer.Steps to Use M…
All methods of hacking orkut
Orkut has became major social network in India and even abroad. So, naturally, www.orkut.com is becoming a target of hackers. There are many hacking tricks or hacks to hack orkut account passwords. So, i have listed most popular Orkut account password …
Hacking Down Websites
In this tutorial, I will show you how to take down websites via DDoS. For this tutorial we will be using one of the most effective and one of the least known tools called “Low Orbit Ion Cannon”, created by Anonymous members from 4chan.org, this program…