Latest Updates: bsd

  • Add Line Numbers to “cat” Output

    22:02 on November 3, 2012 | 0 Comments
    Tags: bsd, , , ,

    cat can be used to print the contents of a file in a Terminal, and it’s often useful to number each line of the output (including empty lines).

    Adding line numbers is as simple as adding the -n switch to the command:

    cat -n filename.txt

    Example Output, with -n switch:

    $ cat -n filename.txt

    1 Line 1
    2 Line 2
    3 Line 3
    4 Line 4
    5 Line 5

    Example Output, without -n:

    $ cat filename.txt

    Line 1
    Line 2
    Line 3
    Line 4
    Line 5

     

     
  • Using grep and Ignoring Case (Case Insensitive grep)

    18:50 on April 27, 2012 | 0 Comments
    Tags: bsd, , ,

    grep is a great way to find phrases, words, and characters in text.  One of the biggest stumbling blocks is case – is the word “Hello”, “hello”, “HELLO”, or even “HeLLo”?  All of these are different, and a “grep “Hello”" would only find lines containing the first “Hello” example.

    You can, however, exclude case from a grep to make it not case sensitive - simply add -i:

    grep -i “Hello” textfile.txt

    Alternatively, you could use it in conjunction with cat and tac (Reverse Cat)

    cat textfile.txt | grep -i “Hello”

    The above will find all lines containing “Hello” in textfile.txt, whether it’s “Hello”, “HELLO”, HElLO”, etc, making it much easier to find instances of “Hello” if you don’t really need to care about case.

     

    (Read the article on Wikipedia about Case Sensitivity..)

     
  • Using dig to Query a Specific DNS Server (Name Server) Directly (Linux, BSD, OSX)

    16:54 on August 12, 2011 | 0 Comments
    Tags: bsd, , , ,

    There may be occasions when you wish to query a DNS server directly.  I often do it before changing DNS servers for a domain; I’ll setup the new records on the new DNS servers, and then query them directly to ensure they are returning the correct records.

    I recommend that anyone running DNS services for any domain looks into these commands – they’re very useful, especially when you’re making changes.

    dig has a feature which allows you to specify a name server along with the record you want to query.

    For example, one of the DNS servers for droptips.com is “ns.123-reg.co.uk”.  We can query this server directly, for the www record by doing the following:

    $ dig droptips.com @ns.123-reg.co.uk

    You’ll get some output with a section titled Answer Section:

    ;; ANSWER SECTION:
     droptips.com.       86400   IN      A       89.238.134.5

    This details the result (89.238.134.5) and also the TTL for the record (in seconds).  The TTL is important, as this is how long caching DNS servers should cache the result for – in this case, 86400 seconds which is 1 day. Using this command to find out a TTL value for a particular record is also quite useful, especially if you’re investigating DNS cache issues.

    You can also do the same to check other records such as MX records, by simpling adding the record type to the command.  For example, to get the MX records ns1.google.com is reporting for google.co.uk:

    $ dig MX google.co.uk @ns1.google.com

    … with the results:

    ;; ANSWER SECTION:
     google.co.uk.           10800   IN      MX      10 google.com.s9a2.psmtp.com.
     google.co.uk.           10800   IN      MX      10 google.com.s9b1.psmtp.com.
     google.co.uk.           10800   IN      MX      10 google.com.s9b2.psmtp.com.
     google.co.uk.           10800   IN      MX      10 google.com.s9a1.psmtp.com.

    You can see in this instance, that the TTL is 10800 seconds which is 3 hours, and all MX records have the same priority level of 10.