Commands by lucasrangit (9)


  • 2
    gcc -dM -E - < /dev/null
    lucasrangit · 2012-04-27 17:37:50 0
  • When you SSH to a server who's hostname or IP has changed since the last time a connection was recorded in the known_hosts file a warning will be displayed since this indicated a possible DNS spoofing attack. If this is a known change then this command will remove the previous entry and allow the SSH connection. The SSH client will prompt you as if it was the first time connected to the server. Replace ${LINE} with the line of the offending key in ~known_hosts. 49 in the sample output. Show Sample Output


    -5
    sed -i '${LINE}d' ~/.ssh/known_host
    lucasrangit · 2012-01-16 18:00:12 3
  • I often find it useful to know what the exit status for a program was. This can be helpful when looking up errors by exit status or when scripting frequent commands. Taken from http://www.faqs.org/docs/abs/HTML/exit-status.html Show Sample Output


    -1
    echo $?
    lucasrangit · 2011-07-27 15:34:20 0
  • This avoids the "chmod +x filename" after performing a check out or export. From http://snipplr.com/view/5277/set-executable-permissions-on-a-file-under-subversion/ Show Sample Output


    2
    svn propset svn:executable ON filename
    lucasrangit · 2011-07-18 22:51:43 0
  • This will extract all DCT format images from foo.pdf and save them in JPEG format (option -j) to bar-000.jpg, bar-001.jpg, bar-002.jpg, etc. Inspired by http://stefaanlippens.net/extract-images-from-pdf-documents


    3
    pdfimages -j foo.pdf bar
    lucasrangit · 2011-07-07 17:18:36 6
  • Booting the VM headless via VBoxHeadless requires knowledge of the VM's network in order to connect. Using VBoxManage in this way and you can SSH to the VM without first looking up the current IP, which changes depending on how you have your VM configured. Show Sample Output


    9
    ssh vm-user@`VBoxManage guestproperty get "vm-name" "/VirtualBox/GuestInfo/Net/0/V4/IP" | awk '{ print $2 }'`
    lucasrangit · 2011-05-04 18:01:36 2

  • 4
    abiword --to=html file.doc --exp-props=
    lucasrangit · 2011-01-05 19:31:25 4
  • I often find the need to number enumerations and other lists when programming. With this command, create a new file called 'inputfile' with the text you want to number. Paste the contents of 'outputfile' back into your source file and fix the tabbing if necessary. You can also change this to output hex numbering by changing the "%02d" to "%02x". If you need to start at 0 replace "NR" with "NR-1". I adapted this from http://osxdaily.com/2010/05/20/easily-add-line-numbers-to-a-text-file/. Show Sample Output


    1
    awk '{printf("/* %02d */ %s\n", NR,$0)}' inputfile > outputfile
    lucasrangit · 2011-01-04 19:13:55 3
  • Find C/C++ source files and headers in the current directory. Show Sample Output


    2
    find . -name '*.[c|h]pp' -o -name '*.[ch]' -type f
    lucasrangit · 2010-03-11 01:22:06 3

What's this?

commandlinefu.com is the place to record those command-line gems that you return to again and again. 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.

Share Your Commands


Check These Out

Merge Two or More PDFs into a New Document
require the pdftk package

Ping all hosts on 192.168.1.0/24

Convert JSON to YAML
Requires installing json2yaml via npm: npm install -g json2yaml (can also pipe from stdin) Ref: https://www.npmjs.com/package/json2yaml

Show a notify popup in Gnome that expires in specified time and does not leave an icon in notifications tray
Tested in Gnome 3.4

Get all possible problems from any log files
Using the grep command, retrieve all lines from any log files in /var/log/ that have one of the problem states

Downsample mp3s to 128K
This will lower the quality of mp3 files, but is necessary to play them on some mobile devices.

Update a tarball
This will update the tarball, adding files that have changed since the last update. This assumes that the tarball is in the same directory as the files being archived. N.B. This command can't be used on compressed tarballs. N.B. This will add the updated files to the tarball, so that the tarball will have two versions of each file. This will make the tarball larger, but doesn't have any other significant effect.

Use AWS CLI and JQ to get a list of instances sorted by launch time
You can do the filtering natively in the aws cli, without using jq (although jq is awesome!)

Print out your hard drive to a jet-direct compatible printer.
Where 192.168.1.2 is a printer with jet-direct. No, I don't suggest this as a backup method.

Create a mirror of a local folder, on a remote server
Create a exact mirror of the local folder "/root/files", on remote server 'remote_server' using SSH command (listening on port 22) (all files & folders on destination server/folder will be deleted)


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: