Slashdot Mirror


Essential UNIX Tricks and Tools?

Chris Lesner asks: "What handy UNIX tricks/tools do you use everyday? I'm asking for stuff that amazes your friends and makes you wonder how they use UNIX w/o them. Some simple examples include: job control (with fg, bg/&, jobs, Ctrl-Z); moving login sessions between machines with Screen for vt100 and VNC for X11 and using screen and VNC to share login session b/w users for demos etc.; using find, xargs -i and echo to build command strings which after inspection can be piped back though bash e.g. `find . -type f | xargs -i{} echo "cp {} {}.bak" | bash` I'm asking b/c my source for this kind of information has dried up as my UNIX skills have matured. I'm guessing other Slashdot readers have the same problem. By the way, if you think the examples I give are lame I challenge you to better them!"

3 of 185 comments (clear)

  1. Bash Completion Project by Bouncings · · Score: 4, Interesting
    One of the most useful gadgets I use is the bash completion project. It's a handy-dandy tool where tab-completion does more, oh, so much more than filenames. When I do a Debian apt-get install python-, I get a list of Debian packages to install starting with python-

    There's more fun too. It completes tons of crazy stuff. I'd check it out.

    --
    -- Ken Kinder ken@_nospam_kenkinder.com http://kenkinder.com/
  2. Re:dusort by Phexro · · Score: 5, Interesting
    But why bother with the awk, when you can just do:

    $ du -s /path/to/wherever/* | sort -rn | head -10


    to get the top ten hogs in /path/to/wherever?

    Also, sometimes there are some big files, and you are only interested in the directories full of crap:

    $ du -s `find /path/to/wherever/* -type d` | sort -rn | head -10


    While we're on the subject, you can use this handy-dandy snippet to find the disk usage of one user in any part of the filesystem:

    $ find /path -type f -user jsmith -exec ls -l {} \; 2>/dev/null \
    > | awk '{ sum += $5} END { print sum }'
  3. Re:Regular Expressions by Permission+Denied · · Score: 4, Interesting
    Here's a cute little perl script that's useful for developping other perl scripts:
    #!/usr/bin/env perl
    $st = "\033[7m";
    $en = "\033[m";

    print "Enter regex: ";
    $re = <>;
    chomp $re;
    while () {
    print "Enter string: ";
    $s = <>;
    chomp $s;
    exit unless $s;
    $s =~ s/$re/$st$&$en/g;
    print $s . "\n";
    }
    This will highlight what parts of a string match a given regular expression. (I modelled this script on something I found in a Ruby tutorial).

    Also, for those learning regular expressions, I would highly recommend Introduction to Automota Theory, Languages and Computation by Hopcroft et al. This is a more mathematical/theoretical introduction to the subject. Regular expressions/automata are a very nice part of CS in that the basic theory is immediately applicable.