Commands by gtoal (1)

  • # Limited and very hacky wildcard rename # works for rename *.ext *.other # and for rename file.* other.* # but fails for rename file*ext other*other and many more # Might be good to merge this technique with mmv command... mv-helper() { argv="`history 1 | perl -pe 's/^ *[0-9]+ +[^ ]+ //'`" files="`echo \"$argv\"|sed -e \"s/ .*//\"`" str="`history 1 | perl -pe 's/^ *[0-9]+ +[^ ]+ //' | tr -d \*`" set -- $str for file in $files do echo mv $file `echo $file|sed -e "s/$1/$2/"` mv $file `echo $file|sed -e "s/$1/$2/"` done } alias rename='mv-helper #'

    rename *.JPG *.jpg
    gtoal · 2014-03-05 14:54:33 0

What's this? 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

I finally found out how to use notify-send with at or cron
The simplest way to do it. Works for me, at least. (Why are the variables being set?)

Resize photos without changing exif
To resize photos without changing exif datas, pretty cool for gps tagging. (Require ImageMagick)

Backup files incremental with rsync to a NTFS-Partition
This will backup the _contents_ of /media/SOURCE to /media/TARGET where TARGET is formatted with ntfs. The --modify-window lets rsync ignore the less accurate timestamps of NTFS.

Look for English words in /dev/urandom
Little faster alternative.

print all network interfaces' names and IPv4 addresses
ifconfig can't properly display interface's name longer 9 symbols,also it can't show IPs added thru ip command, so 'ip' should be used instead. This alias properly shows long names, bond interfaces and all interface aliases. loopback interface is ignored, since its IP is obvious

send tweets to twitter (and get user details)
great for outputting tweets from cron jobs and batch scripts

Turn shell tracing and verbosity (set -xv) on/off with 1 command!
Running this command turns shell tracing and shell verbose debugging on or off. Not only does it do that, it also uses your terminals builtin method of setting colors to make debugging much easier. It looks at the current shell options contained in the $- special bash variable and that lets this function set the opposite of the current value. So from the shell you could do a: $ setx; echo "y" | ( cat -t ) | echo "d"; setx and it will turn on debbuggin. This is an amazingly useful function that is perfect to add system-wide by adding it to /etc/profile or /etc/bashrc.. You can run it from the shell, and you can also use it in your shell scripts like my .bash_profile -

Locking and unlocking files and mailboxes
Programs for locking and unlocking files and mailboxes.This package includes several programs to safely lock and unlock files and mailboxes from the command line. These include: lockfile-create lockfile-remove lockfile-touchlock mail-lock mail-unlock mail-touchlock These programs use liblockfile to perform the file locking and unlocking, so they are guaranteed compatible with Debian's file locking policies.

How to trim a video using ffmpeg
Will trim the video to 4 seconds starting from the beginning. The -vcodec , -acodec options are required so that ffmpeg knows in what video/audio format you want for the new video.

Emergency Alien Invasion Warning
When aliens invade Earth, be first to warn your neighbours by placing your computer screen at a window and executing this potentially Earth-saving command. Ctrl C when aliens are defeated.

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.


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: