document practical example oneliners
authorMischa POSLAWSKY <perl@shiar.org>
Wed, 4 Sep 2019 18:21:24 +0000 (20:21 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Thu, 5 Sep 2019 03:11:33 +0000 (05:11 +0200)
Some shell commands adapted from personal history.  After pictures,
code should also be worth quite some words.

graph

diff --git a/graph b/graph
index f9d18a9526881f38e63883a93252f737a84e14c2..5b61e53a5c8d978b3b0922c10d49e66c43f7aac0 100755 (executable)
--- a/graph
+++ b/graph
@@ -52,8 +52,6 @@ graph - append bar chart to input numbers
 
 B<graph> [<options>] [<input>]
 
-cat ... | uniq -c | graph
-
 =head1 DESCRIPTION
 
 Each line starting with a number is given a bar to visualise relative sizes.
@@ -69,6 +67,43 @@ Appended graphics will extend to fill up the entire screen.
 
 =back
 
+=head1 EXAMPLES
+
+Commonly used after counting, such as users on the current server:
+
+    users | sed 's/ /\n/g' | sort | uniq -c | graph
+
+Letter frequencies in text files:
+
+    cat /usr/share/games/fortunes/*.u8 |
+    perl -CO -nE 'say for grep length, split /\PL*/, uc' |
+    sort | uniq -c | graph
+
+Memory usage of user processes:
+
+    ps xo %mem,pid,cmd | graph -l40
+
+Sizes (in megabytes) of all root files and directories:
+
+    du -d0 -m * | graph
+
+Number of HTTP requests per day:
+
+    cat log/access.log | cut -d\  -f4 | cut -d: -f1 | uniq -c | graph
+
+Any kind of database query with leading counts:
+
+    echo 'SELECT count(*),schemaname FROM pg_tables GROUP BY 2' |
+    psql -t | graph
+
+Git statistics, such commit count by year:
+
+    git log --pretty=%ci | cut -b-4 | uniq -c | graph
+
+Or the most frequent authors:
+
+    git shortlog -sn | graph | head -3
+
 =head1 AUTHOR
 
 Mischa POSLAWSKY <perl@shiar.org>