|Mandalika's scratchpad||[ Work blog @Oracle | My Music Compositions ]|
The examples shown in this blog post were created and executed on a Solaris system. Some of these tips and examples are applicable to all *nix systems.
One of the typical uses of computed digest is to check if a file has been compromised or tampered. The
digest utility can be used to calculate the digest of files.
-l option lists out all cryptographic hash algorithms available on the system.
% digest -l sha1 md5 sha224 sha256 .. sha3_224 sha3_256 ..
-a option can be used to specify the hash algorithm while computing the digest.
% digest -v -a sha1 /usr/lib/libc.so.1 sha1 (/usr/lib/libc.so.1) = 89a588f447ade9b1be55ba8b0cd2edad25513619
Shell treats any line that start with '#' symbol as a comment and ignores such lines completely. (The line on top that start with
#! is an exception).
From what I understand there is no multiline comment mechanism in shell. While # symbol is useful to mark single line comments, it becomes laborious and not well suited to comment quite a number of contiguous lines.
One possible way to achieve multiline comments in a shell script is to rely on a combination of shell built-in '
:' and Here-Document code block. It may not be the most attractive solution but gets the work done.
Shell ignores the lines that start with a "
:" (colon) and returns
% cat -n multiblock_comment.sh 1 #!/bin/bash 2 3 echo 'not a commented line' 4 #echo 'a commented line' 5 echo 'not a commented line either' 6 : <<'MULTILINE-COMMENT' 7 echo 'beginning of a multiline comment' 8 echo 'second line of a multiline comment' 9 echo 'last line of a multiline comment' 10 MULTILINE-COMMENT 11 echo 'yet another "not a commented line"' % ./multiblock_comment.sh not a commented line not a commented line either yet another "not a commented line"
tput command can help make the command line terminals look interesting.
tput can be used to change the color of text, apply effects (bold, underline, blink, ..), move cursor around the screen, get information about the status of the terminal and so on.
In addition to improving the command line experience,
tput can also be used to improve the interactive experience of scripts by showing different colors and/or text effects to users.
% tput bold <= bold text % date Thu Aug 30 17:02:57 PDT 2018 % tput smul <= underline text % date Thu Aug 30 17:03:51 PDT 2018 % tput sgr0 <= turn-off all attributes (back to normal) % date Thu Aug 30 17:04:47 PDT 2018
Check the man page of
terminfo for a complete list of capabilities to be used with
On systems running Solaris, processor's marketing or brand name can be extracted with the help of
cpu_info module provides information related to the processor(s) on the system.
On SPARC: % kstat -p cpu_info:1:cpu_info1:brand cpu_info:1:cpu_info1:brand SPARC-M8 On x86/x64: % kstat -p cpu_info:1:cpu_info1:brand cpu_info:1:cpu_info1:brand Intel(r) Xeon(r) CPU L5640 @ 2.27GHz
In the above example,
cpu_info is the module.
1 is the instance number.
cpu_info1 is the name of the section and
brand is the statistic in focus. Note that
cpu_info module has only one section
cpu_info1. Therefore it is fine to skip the section name portion (eg.,
To see the complete list of statistics offered by
cpu_info module, simply run
sed utility allows specifying multiple editing commands on the same command line. (in other words, it is not necessary to pipe multiple
sed commands). The editing commands need to be separated with a semicolon (;)
The following two commands are equivalent and yield the same output.
% prtconf | grep Memory | sed 's/Megabytes/MB/g' | sed 's/ size//g' Memory: 65312 MB % prtconf | grep Memory | sed 's/Megabytes/MB/g;s/ size//g' Memory: 65312 MB