All commands (12,635)

  • -1
    ffmpeg -r 12 -i img%03d.jpg -sameq -s hd720 -vcodec libx264 -crf 25 OUTPUT.MP4
    brainstorm · 2013-05-04 18:46:36 1
  • The while loop is an overkill, it would be simpler to prevent the file to be modified. That said, none of the proposed solutions are such: a real one would go to the source of the problem.

    chkmod -w /etc/resolve.conf
    ntropia · 2018-05-14 16:25:47 2
  • Make sure that find does not touch anything other than regular files, and handles non-standard characters in filenames while passing to xargs.

    find . -type f -exec grep -qi 'foo' {} \; -print0 | xargs -0 vim
    arcege · 2009-09-03 17:55:26 4
  • Useful since "export http_proxy=blahblah:8080" doesn't seem to work with pear Show Sample Output

    pear config-set http_proxy http://myusername:mypassword@corporateproxy:8080
    KoRoVaMiLK · 2010-05-13 14:44:03 0
  • Output: Version 3.2-0 (for example if you type # aptitude show bash | grep Vers Depends on the language of your distribution, because the name of the word "Version" in other languages may be different.

    aptitude show $PROGRAM | grep Vers
    aabilio · 2009-02-27 23:24:37 3

  • -1
    xrandr -q | grep -w Screen
    hemanth · 2010-02-14 15:38:49 0
  • splits a postscript file into multiple postscript files. for each page of the input file one output file will be generated. The files will be numbered for example ... The psselect commad is part of the psutils package

    -1; for i in $(seq `grep "Pages:" $file | sed 's/%%Pages: //g'`); do psselect $i $file $i\_$file; done
    damncool · 2010-09-24 19:44:32 0
  • This command shows a high level overview of system memory and usage refreshed in seconds. Change -n 10 to you desired refresh interval. Show Sample Output

    watch -n 10 free -m
    Darkstar · 2014-01-04 10:10:15 0
  • Uses the pid to get the full path of the process. Useful when you do not which command got picked from the path Show Sample Output

    readlink -f /proc/<pid>/cmdline
    naseer · 2009-05-26 10:09:03 2
  • This got a bit complicated, because I had to introduce an additional dot at the end that has to be removed again later.

    for each in *; do file="$each."; name=${file%%.*}; suffix=${file#*.}; mv "$each" "$(echo $name | rot13)${suffix:+.}${suffix%.}"; done
    hfs · 2010-03-20 16:11:12 3

  • -1
    ls --color=never -1| grep -E "[0-9]{4}"|sed -re "s/^(.*)([0-9]{4})(.*)$/\2 \1\2\3/" | sort -r
    ysangkok · 2014-01-04 20:50:12 0

  • -1
    netstat -4tnape
    gnuyoga · 2009-05-26 11:50:52 1
  • Combines a few repetitive tasks when compiling source code. Especially useful when a hypen in a file-name breaks tab completion. 1.) wget source.tar.gz 2.) tar xzvf source.tar.gz 3.) cd source 4.) ls From there you can run ./configure, make and etc. Show Sample Output

    wtzc () { wget "$@"; foo=`echo "$@" | sed 's:.*/::'`; tar xzvf $foo; blah=`echo $foo | sed 's:,*/::'`; bar=`echo $blah | sed -e 's/\(.*\)\..*/\1/' -e 's/\(.*\)\..*/\1/'`; cd $bar; ls; }
    oshazard · 2010-01-17 11:25:47 0
  • This is just a little snippit to split a large file into smaller chunks (4mb in this example) and then send the chunks off to (e)mail for archival using mutt. I usually encrypt the file before splitting it using openssl: openssl des3 -salt -k <password> -in file.tgz -out file.tgz.des3 To restore, simply save attachments and rejoin them using: cat file.tgz.* > output_name.tgz and if encrypted, decrypt using: openssl des3 -d -salt -k <password> -in file.tgz.des3 -out file.tgz edit: (changed "g" to "e" for political correctness)

    split -b4m file.tgz file.tgz. ; for i in file.tgz.*; do SUBJ="Backup Archive"; MSG="Archive File Attached"; echo $MSG | mutt -a $i -s $SUBJ YourEmail@(E)
    tboulay · 2010-03-20 16:49:19 4

  • -1
    if [ -x /etc/*-release ]; then cat /etc/*-release ; else cat /etc/*-version ; fi
    hugoeustaquio · 2011-06-22 14:09:24 0
  • Transfer files with rsync over ssh on a non-standard port, showing a progress bar and resuming partial transfers.

    rsync -P -e 'ssh -p PORT' SRC DEST
    vickio · 2011-10-13 08:59:07 1

  • -1
    perl -e 'print "$_=$ENV{$_}\n" for keys %ENV'
    sgikas · 2012-11-12 13:14:28 0

  • -1
    find . -name "*~" -exec rm {} \;
    yasu00000 · 2009-02-06 06:46:30 0

  • -1
    echo -e "12 morning\n15 afternoon\n24 evening" | awk '{if ('`date +%H`' < $1) print "Good " $2}'
    bazardeur · 2010-09-24 21:15:23 1

  • -1
    tr '[:upper:]' '[:lower:]' < input.txt > output.txt
    jonatasnona · 2013-03-14 19:14:09 2
  • Mac install ssh-copy-id From there on out, you would upload keys to a server like this: (make sure to double quote the full path to your key) ssh-copy-id -i "/PATH/TO/YOUR/PRIVATE/KEY" username@server or, if your SSH server uses a different port (often, they will require that the port be '2222' or some other nonsense: (note the double quotes on *both* the "/path/to/key" and "user@server -pXXXX"): ssh-copy-id -i "/PATH/TO/YOUR/PRIVATE/KEY" "username@server -pXXXX" ...where XXXX is the ssh port on that server

    sudo curl "" -o /usr/bin/ssh-copy-id && sudo chmod 755 /usr/bin/ssh-copy-id
    misterich · 2012-02-09 20:29:24 0

  • -1
    watch -n 7 -d 'uptime | sed s/.*users?, //'
    matthewbauer · 2010-01-17 18:45:52 0
  • It will parse the unique_id stanza in ODM database to get the DMX id. Show Sample Output

    odmget -q "attribute=unique_id" CuAt |sed -n 's/.*name = "\(.*\)"/\1/p;s/.*value = "..........\(....\)..SYMMETRIX..EMCfcp.*"/0x\1/p;s/.*value =//p'
    keymon · 2010-05-14 11:54:04 0
  • zsh has a powerful correction mechanism. If you type a command in the wrong way it suggests corrections. What happend here is that dir is an unknown command and zsh suggests gdir, while maybe ls was what you wanted. If you want to execute gdir hit y (yes) If you want to try to execute dir anyway hit n (no) If you want to execute completely different spelt command like ls hit a (abort) and type your command If you want to execute a similar spelt commant like udir hit e (edit) and edit your command. Show Sample Output

    setopt correct
    evandrix · 2012-09-11 01:47:20 0

  • -1
    Limit kernel compilation load
    rubenmoran · 2012-11-12 18:04:40 0
  • ‹ First  < 437 438 439 440 441 >  Last ›

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

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: