Working effectively with iTerm


brew cask install iterm2


Cmd+\ Show Annotations
Cmd+Click Clickable Links
Cmd+Shift+H Paste History
Cmd + k Clear buffer
Cmd+Shift+O Open Quickly(Search tabs)
Cmd+; Autocomplete
Cmd+Shift+; Show Command History
Cmd+Shift+H Show Paste History
Cmd+Option+/ Recent Directories popup


Reuse previous session’s directory
  • Profiles > Default > General > Working Directory > Reuse previous session’s directory ##### Store command history/directory info
  • General > Save copy/paste and command history
  • Ensure Preferences > Advanced > Restore window contents at startup is set to Yes in iTerm (default to true)
  • Ensure “Close windows when quitting an app” is off in Mac’s System Preferences >General
Change default window size
  • Profiles -> Window -> Set rows to 80, Columns to 300
  • No way to open as maximized by default

Bash Settings

# \w - Full path of the current working directory
export PS1="\w "

Bash emacs mode shortcuts

CTRL-A Move cursor to the beginning of the line
CTRL-E Move to the end of the line
CTRL-K Kill forward to the end of a line
CTRL-U Kill the line from the beginning to this point
^abc­^­def Run previous command, replacing abc with def
Option+left(right) Move backward(forward) one word
Make Option+left(right) work
  • Preferences > Profiles > Keys
Keyboard Shortcut: Option+Left Action: Send Escape Sequence Esc+ b
Keyboard Shortcut: Option+Right Action: Send Escape Sequence Esc+ f
Command History - Cmd+Shift+;
Paste History - Cmd+Shift+H
  • Works for multiple-lines command
highlight errors and warnings
  • Preferences > Profiles > Advanced > Triggers > Edit
(?i:.*error.*)                     // Yellow on Black
(?i:.*(warning|warn).*)            // Orange on Black
(?i:.*FATAL.*)                     // White on Red
install shell-integration
  • Install from menu: iTerm2 > Install Shell Integration
  • add command: imgcat
  • to use the feature download and upload with scp, we need install shell integration on each remote host
  • Preferences>Profiles>General>Badge (session.username)@(session.hostname)


Track long running command

  • Edit > Marks and Annotations > Alert on next mark

Chrome Tips And Tricks


Chrome Extensions

Chrome Vimium
  • Shortcuts
  • numbers+command
    • number+x-close multiple tabs
    • number+r-reload multiple tabs
    • number+W-move multiple tabs to new window
    • number+<<(>>) move multiple tabs
    • (number+)f(F)-open multiple links
    • (number+)d(u)- multiple half page(up) down
  • Find Mode (/)
    • Support regex()
    • Find queries are global and persistent
    • Use and to re-use previous queries
  • Visual Mode
    • v or V (line mode)
    • o to swap the anchor and the focus
    • c to enter caret mode from a visual mode
    • vi-like movements: $
Chrome Urls
  • chrome://flags/
  • chrome://restart/
Change/Assign extension’s shortcuts
  • chrome://extensions/shortcuts


Block notification requests
  • go to chrome://settings/content/notifications
  • toggle Ask before sending (recommended) to Blocked
  • Hide headers and footers
Close Download Bar

NET::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED for known safe (intranet) sites
  • edit /Library/Preferences/


Drag multiple tabs to new window hold the Command key
Open a Search in New Tab Hold down the Command button and hit return
Cmd+click Open link in new tab
  • How to Merge Multiple Tabs from Two Windows
    • Left-click the first tab in the window you want to merge. While holding the shift key, left-click the right most tab. All of tabs for the current window are now selected, so you can drag and drop them as as group on the other window.


Extension Development

Partition code into background scripts and content scripts
  • Content Scripts
    • Run in the context of web pages
    • limited access to Chrome APIs
    • Use Chrome Dev Tools to debug it
  • Background Scripts
    • Full access to Chrome APIs, but no access to web page content
    • Use background.html page in chrome://extensions/ to debug it
  • Message Passing
    • Some functions can be only run in context scripts, some only in background script, use message passing to pass data in different context
    • Disable Blocking of Mixed Content
    • chrome.tabs.sendMessage, chrome.extension.onMessage.addListener
  • chrome.commands|shortcuts
  • chrome.contextMenus.create
  • window.getSelection()

Productivity Tools for Developers

Chrome Tips && Tricks


HipChat App


Adobe Reader


Mac Tips and Tricks


Change Notification type

  • Preferences > Notifications
  • None: no notification at all
  • Banners: go away automatically
  • Alters: stay until user dismisses it
Option click EVERYTHING
  • in Finder, Option+Click will show menu: “copy items as pathnames”, and “show inspector”

Prevent a Mac from Sleeping

  • pmset noidle

Remove Siri from the Touch Bar

  • Preferences > Keyboard > Customize Control Strip
  • Highlight the Siri button, click, and drag the Siri button upward and out of the Touch Bar

Enable Touch ID

  • Preferences > Touch ID
  • Then we can use touch id instead of manually type password
  • Use Touch ID for sudo
    • vi nano /etc/pam.d/sudo
    • add “auth sufficient” to the top

Change default application for a file type

  • right-click the file, select Get Info and change the application in Open With section.
  • click Change All… button to apply the changes to all files
  • Shortcut: Command+space
  • Reveal the Location
    • Preview location: with Command key
    • Open the location in Finder: hold the Command key, and press Return


Messages App to send/receive SMS


Manually manage music and videos

To manually copy videos from mac to iPad: - Select Summary option from the device’s settings in iTunes, then enable the option



  • brew cask install the-unarchiver
  • open its preferences and select all the file format


Mac Tips & Tricks - 2016



CSR(Certificate Signing Request)

Create a keypair

keytool -genkeypair -keystore keystore.p12 -storetype PKCS12 
-alias ${THE_ALIAS} -keyalg RSA -keysize 2048 
-dname "CN=${THE_CN}" -storepass ${THE_PASSWORD}
#### Create a Certificate Signing Request
keytool -certreq -keystore keystore.p12 -storetype PKCS12 
-alias ${THE_ALIAS} -sigalg SHA256withRSA -storepass ${THE_PASSWORD}
#### Install the downloaded certificate.chain.pem to the keystore
keytool -import -keystore keystore.p12 -alias ${THE_ALIAS} 
-trustcacerts -file the.chain.pem -storepass ${THE_PASSWORD}
##### Extract private key
openssl pkcs12 -nocerts -in keystore.p12 -out the_private.key -nodes
##### Convert the pem to PKCS12 Keystore
openssl pkcs12 -export -in the.chain.pem -out keystore.p12 
-inkey the_private.key -name ${THE_ALIAS} -noiter -nomaciter


  • unique string to identify the key entry
trustStore vs keyStore
  • Keystore is used by a server to store private keys, and truststore is used by third party client to store public keys provided by server to access.


Java (162) Lucene-Solr (112) Interview (63) J2SE (53) Algorithm (45) Soft Skills (39) Eclipse (32) Code Example (31) Troubleshooting (27) JavaScript (23) Linux (22) Spring (22) Tools (22) Windows (22) Web Development (20) Nutch2 (18) Bugs (17) Dev Tips (17) Debug (16) Defects (14) Text Mining (14) J2EE (13) Network (13) PowerShell (11) Chrome (10) Problem Solving (10) Google (9) How to (9) Learning code (9) Performance (9) Security (9) UIMA (9) html (9) Design (8) Http Client (8) Maven (8) bat (8) blogger (8) Big Data (7) Database (7) Guava (7) JSON (7) Shell (7) System Design (7) ANT (6) Coding Skills (6) Lesson Learned (6) Programmer Skills (6) Scala (6) css (6) Algorithm Series (5) Cache (5) Continuous Integration (5) IDE (5) Testing (5) adsense (5) xml (5) AIX (4) Become a Better You (4) Code Quality (4) Concurrency (4) GAE (4) Git (4) Good Programming Practices (4) Jackson (4) Life (4) Memory Usage (4) Miscs (4) OpenNLP (4) Project Managment (4) Review (4) Spark (4) ads (4) regular-expression (4) Android (3) Apache Spark (3) Distributed (3) Dynamic Languages (3) Eclipse RCP (3) English (3) Happy Hacking (3) IBM (3) J2SE Knowledge Series (3) JAX-RS (3) Jetty (3) Mac (3) Python (3) Restful Web Service (3) Script (3) regex (3) seo (3) .Net (2) Android Studio (2) Apache (2) Apache Procrun (2) Architecture (2) Batch (2) Bit Operation (2) Build (2) Building Scalable Web Sites (2) C# (2) C/C++ (2) CSV (2) Career (2) Cassandra (2) Fiddler (2) Google Drive (2) Gson (2) How to Interview (2) Html Parser (2) Http (2) Image Tools (2) JQuery (2) Jersey (2) LDAP (2) Logging (2) Software Issues (2) Storage (2) Text Search (2) xml parser (2) AOP (1) Application Design (1) AspectJ (1) Chrome DevTools (1) Cloud (1) Codility (1) Data Mining (1) Data Structure (1) ExceptionUtils (1) Exif (1) Feature Request (1) FindBugs (1) Firefox (1) Greasemonkey (1) HTML5 (1) Httpd (1) I18N (1) IBM Java Thread Dump Analyzer (1) Invest (1) JDK Source Code (1) JDK8 (1) JMX (1) Lazy Developer (1) Machine Learning (1) Mobile (1) My Plan for 2010 (1) Netbeans (1) Notes (1) Operating System (1) Perl (1) Problems (1) Product Architecture (1) Programming Life (1) Quality (1) Redhat (1) Redis (1) RxJava (1) Solutions logs (1) Team Management (1) Thread Dump Analyzer (1) Tips (1) Visualization (1) boilerpipe (1) htm (1) ongoing (1) procrun (1) rss (1)

Popular Posts