In the case of this article, the Learning Linux Commands: awk title might be a little misleading. And that is because awk is more than a command, it's a programming language in its own right. You can write awk scripts for complex operations or you can use awk from the command line. The name stands for Aho, Weinberger and Kernighan (yes, Brian Kernighan), the authors of the language, which was started in 1977, hence it shares the same Unix spirit as the other classic *nix utilities.

If you're getting used to C programming or know it already, you will see some familiar concepts in awk, especially since the 'k' in awk stands for the same person as the 'k' in K&R, the C programming bible. You will need some command-line knowledge in Linux and possibly some scripting basics, but the last part is optional, as we will try to offer something for everybody. Many thanks to Arnold Robbins for all his work involved in awk.

In this tutorial you will learn:
  • What does awk do? How does it work?
  • awk basic concepts
  • Learn to use awk through command line examples

DHCP is a networking protocol used to assign IP addresses to networked devices. In this guide, we'll introduce you to the protocol and explain how it works. You'll also see how to implement a DHCP server on Linux systems, and configure it for your own network.

In this tutorial you will learn:
  • What is DHCP?
  • How to implement a DHCP server on major Linux distros
  • How to configure DHCP on Linux

In this guide, we'll show the step by step instructions to send an email using Telnet on a Linux system. This a great way to test your mail server configuration such as exim, sendmail or postfix without the need for an email client.

In this tutorial you will learn:
  • How to install Telnet on major Linux distros
  • How to send an email using Telnet protocol on Linux

In Linux, many applications and system services will store log files. These log files give a Linux administrator insight into how their system is performing, and are invaluable when troubleshooting issues. However, log files can get unwieldy very quickly. For example, if your web server software logs every visit to your website, and you get thousands of viewers per day, there will be way too much information to feasibly squeeze into one text file.

That's where the logrotate command comes into play. Logrotate will periodically take the current log files, rename them, optionally compress them, and generate a fresh file to which an application can continue sending its logs. The logrotate command is invoked automatically from cron, and most services have their own log rotation configuration that is implemented when they're installed. This configuration tells logrotate what it should do with the old log files. For example, how many of them should it keep around before deleting, should it compress the files, etc.

A system administrator can use the logrotate utility for their own needs as well. For example, if a Linux admin sets up a script to run, and has that script generating logs on a regular basis, it's possible to set up logrotate to manage the log files for us. In this guide, you'll learn more about the logrotate utility as we go through an example of configuring it to rotate the logs of a service we implement.

In this tutorial you will learn:
  • Where the logrotate configuration files are stored
  • How to set up a custom logrotate configuration
  • How to test a logrotate implementation

Sendmail is email routing software that can allow Linux systems to send an email from the command line. This allows you to send email from your bash scripts, hosted website, or from command line using the mail command. Another example where you can utilize this setting is for notification purposes such as failed backups, etc.

In this guide, we'll go over the step by step instructions to configure Gmail as a relay for the sendmail client on Linux. Note that Sendmail is just one of many utilities which can be configured to rely on a Gmail account. Others that are capable of this include postfix, exim, ssmpt, etc. The instructions here should work for any mainstream Linux distribution.

In this tutorial you will learn:
  • Gmail configuration prerequisites
  • How to install Sendmail and mail utilities on Linux
  • How to configure Gmail as a relay for Sendmail
  • How to test the config by sending an email from command line

The SSH command can be used to remotely login to a server running an sshd daemon. This allows Linux administrators to perform variety of administrative jobs. However, SSH is more powerful than just providing a user with remote shell access, as it can also be used to automate remote command executions, like running simple backups and downloading the backup file locally.

In this guide, we'll go over a few different command line examples to show how you can execute commands on a remote system via SSH, as well as direct the output back to your local machine.

In this tutorial you will learn:
  • Examples for remote command execution via SSH

Before systemd came into existence, most major Linux distributions ran a Sys-V style init system. Sys-V used seven different "runlevels" to determine which processes to start on the system. For example, runlevel 3 was typically reserved for the command line and its related programs, whereas runlevel 5 would launch a GUI and all the processes required for it. Results may vary, depending on the distro in question.

These days, the vast majority of Linux distros have adopted systemd as their init system. Some distros still use Sys-V, where the implementation of runlevels as described above still exists. On systemd systems, the concept of runlevels is still alive, but they have been adapted into systemd "targets."

Remnants of Sys-V still exist on some systems, where commands like runlevel still work. But some modern systemd distros have eradicated this support completely. In this guide, we'll show you how to check the current runlevel on Linux.

In this tutorial you will learn:
  • How to check the current runlevel

The ps command on Linux systems is a default command line utility that can give us insight into the processes that are currently running. It can give us a lot of helpful information about these processes, including their PID (process ID), TTY, the user running a command or application, and more.

There are two columns in the output of the ps command that don't get talked about a lot. These are the VSZ (Virtual Memory Size) and RSS (Resident Set Size) columns. Both columns give us information about how much memory a process is using. In this guide, we'll go over their meanings and how to interpret the data they show us in the ps command on Linux.

In this tutorial you will learn:
  • How to interpret VSZ and RSS numbers in the ps command output

A Media Access Control (MAC) address is a unique number that gets assigned to every network interface, including Ethernet and wireless. It's used by many system programs and protocols in order to identify a network interface. One of the most common examples would be in the case of DHCP, where a router assigns an IP address to a network interface automatically. The router will know which device it has assigned an IP address to by referring to the MAC address.

Unlike an IP address, which is temporary and can be changed easily, MAC addresses are hardcoded into a network interface from the manufacturer. However, it's still possible to change or "spoof" a MAC address temporarily. On Linux systems, one of the easiest ways to do this is with the macchanger command line program. There are both legitimate and shady reasons for why a Linux user may find the need to change a MAC address.

In this guide, we'll show how to install the macchanger program on major Linux distros and then use the macchanger command to change the MAC address of a network interface either to a random value or some specific number. Follow the examples below to learn how.

In this tutorial you will learn:
  • How to install macchanger on major Linux distros
  • How to identify current MAC address and network interface
  • How to change an interface's MAC address
  • How to change interface to a specific MAC address

Working with the terminal using a command line interface is very fast and effective way of doing stuff on Linux systems. But have you tried working with the terminal, listening to some music via headphones and having a terminal warning or tab-completion beep / bell turned ON at the same time? Well, it can be very annoying. Listening to the PC Speaker beeps via headphones is very close to the feeling of hitting your head with a hammer. Even without headphones this beeping bell sound is very annoying.

In this guide, we'll show you several ways to turn off the terminal beep / bell noise in Linux, without just turning your system volume completely off. These instructions have been tested to work with a variety of major Linux distros.

In this tutorial you will learn:
  • Multiple methods to turn off the bell / beep terminal sound in terminal
  • Turn off beep / bell sound in vim text editor

When using PostgreSQL on Linux, there may be times that you wish to save the output of a query. Normally, the output appears on your screen. It's possible to redirect this output to a file instead, which would allow you to view it later. In this guide, we'll show you how to save the output of a PostgreSQL query to a file.

In this tutorial you will learn:
  • How to save the output of a PostgreSQL query to a file

As a Linux user, you're likely already familiar with using the mv command to rename a file on a Linux system. The task becomes a little more difficult when you need to rename multiple files at the same time on Linux.

One of the most common batch renaming jobs that are performed is to change all file names to lowercase letters. There are several different ways to do this on Linux. One way is with the native mv utility and a bit of Bash scripting, and the other methods involve the rename and mmv tools, which may or may not already be installed on your Linux distro by default.

In this guide, we'll go over various command line examples to rename all files from uppercase to lowercase letters on Linux. Some commands will work only for files, some for directories, and some commands work recursively. Take a look at all the different examples below to decide which command(s) to use that would best suit your needs.

In this tutorial you will learn:
  • How to rename all files from uppercase to lowercase using mv, rename, or mmv commands
  • How to install rename and mmv on major Linux distros

If you ever get tired of typing in your SSH password, we've got good news. It's possible to configure public key authentication on Linux systems, which allows you to connect to a server through SSH, without using a password.

The best part is, using key authentication is actually more secure than typing in a password each time. This is in addition to being far more convenient. It also allows you to automate certain tasks, such as rsync scripts or other Bash scripts that utilize SSH, SCP, etc.

The process for setting up key authentication involves generating RSA keys on one system, then copying the key to a remote host. This works on any Linux distribution and is a short and easy process. Follow along with the instructions below as we take you through the step by step guide to configure passwordless SSH on Linux.

In this tutorial you will learn:
  • Generate RSA keys and transfer to remote system
  • How to login with SSH without a password

A system administrator, in the vast majority of cases, has to take care of more than one server, so he often has to perform repetitive tasks on all of them. In these cases automation is a must. Ansible is an open source software owned by Red Hat; it is written in the Python programming lanaguage, and it is a provisioning and configuration management software which help us in the aforementioned cases. In this tutorial we will see how to install it and the basic concepts behind its usage.

In this tutorial you will learn:

  • How to install Ansible on the most used Linux distributions
  • How to configure Ansible
  • What is the Ansible inventory
  • What are the Ansible modules
  • How to run a module from the command line
  • How to create and run a playbook

When it comes to tidying up your hard drive on Linux, either to free up space or to become more organized, it's helpful to identify which directories are consuming the most storage space.

In this guide, we'll show you how to list all directories and sort them by their total size on Linux, through command line examples, a Bash script, and GUI methods.

In this tutorial you will learn:
  • How to list directories by size with du command examples
  • How to list directories by size with a Bash script
  • How to check directory sizes with Disk Usage Analyzer GUI utility

Submit your RESUME, create a JOB ALERT.
Subscribe to NEWSLETTER and receive latest news, jobs, career advice and tutorials.
Get extra help by visiting our LINUX FORUM or simply use comments below.

You may also be interested in: