Category Archives: Linux

Discover DevOps roles and learn Linux from basics to advanced at DevOpsRoles.com. Detailed guides and in-depth articles to master Linux for DevOps careers.

Mastering the users command in Linux with Examples

Introduction

In Linux, user management is a fundamental part of system administration, especially when it comes to monitoring active user sessions. The users command is one of the simplest yet effective tools for this purpose. With just a single command, you can instantly view who is logged into your system, making it a valuable utility for Linux administrators.

In this article, we will delve deep into the users command -its basic syntax, practical use cases, and advanced examples that show how you can automate user session monitoring. Whether you’re a beginner or an experienced administrator, you’ll find useful insights into how this command fits into everyday Linux administration.

What is the users Command in Linux?

The users command is a Linux utility that displays the usernames of all users currently logged into the system. It fetches this data from the /var/run/utmp file, which keeps track of all active sessions. This simple tool is invaluable for monitoring who is using the system at any given moment, especially when maintaining or troubleshooting multi-user environments.

Why Use the users Command?

The users command is useful for:

  • Quickly checking which users are currently logged in.
  • Monitoring user sessions during system maintenance.
  • Tracking user activities for security purposes.

While it seems straightforward, the users command can be enhanced and combined with other Linux commands to create powerful user management tools.

Basic Syntax of the users Command

The basic syntax for the users command is extremely simple:

users

When you run this command, it will display a space-separated list of usernames currently logged into the system. No options or additional parameters are required.

Example

$ users
root admin user1

This example shows that three users – root, admin, and user1 – are currently logged in.

Practical Use Cases of the users Command

Now, let’s explore some practical use cases where the users command comes in handy.

Example 1: Basic Usage

To see all currently logged-in users, simply run:

$ users
john mary admin

This provides a quick overview of who is using the system.

Example 2: Combine with the who Command for Detailed Info

If you need more information, like the terminal or login time, you can use the who command. The who command provides detailed user session data such as the terminal (pts/), login time, and remote host IP:

$ who
john     pts/0        2023-10-05 09:15 (192.168.1.100)
mary     pts/1        2023-10-05 09:20 (192.168.1.101)
admin    pts/2        2023-10-05 09:25 (192.168.1.102)

This shows the login times and other session details, which can be useful for system monitoring.

Count the number of logged-in users:

users | wc -w

By piping the output of the users command to wc -w, we can count the number of words in the output, which corresponds to the number of logged-in users.

Check if a specific user is logged in:

users | grep <username>

Check if a user is logged in and display a custom message:

if users | grep -q <username>; then echo "<username> is logged in"; else echo "<username> is not logged in"; fi

Advanced Examples with the users Command

The true power of Linux commands comes from combining simple commands with more advanced tools or integrating them into scripts. Let’s look at some advanced examples of using the users command.

Example 3: Count the Number of Logged-In Users

To count how many users are currently logged into your system, combine the users command with wc -w (word count):

$ users | wc -w
3

This counts the total number of words (usernames) output by the users command, showing that three users are logged in.

Example 4: Search for a Specific User

If you want to check if a specific user, like john, is logged in, you can use grep with the users command:

$ users | grep john
john

If john is logged in, his name will appear in the output. If he is not logged in, you’ll get no output.

Example 5: Monitor Users Continuously with watch

The watch command allows you to continuously execute the users command, refreshing every two seconds by default:

watch users

This command will update the list of logged-in users in real time, which is useful for monitoring systems under heavy use or tracking session changes during maintenance.

Automation and Scripting with the users Command

The users command can also be integrated into shell scripts for more complex automation tasks, such as user activity tracking or system monitoring.

Example 6: Create a Shell Script to Alert When Multiple Users Are Logged In

Below is a simple shell script that checks the number of logged-in users and sends a warning if there are more than three users:

#!/bin/bash

logged_in_users=$(users | wc -w)

if [ $logged_in_users -gt 3 ]; then
    echo "Warning: More than 3 users are logged in!"
fi

This script is a basic example of automating system monitoring by counting users and triggering an alert based on specific conditions. You can customize this further to send alerts via email or log events.

Additional Commands for User Monitoring

While the users command is excellent for a quick snapshot of logged-in users, you may need more detailed insights in some scenarios. Here are a few other commands that complement the users command:

1. The who Command

The who command offers more comprehensive information about logged-in users, including the terminal, login time, and remote IP:

$ who

2. The w Command

The w command displays not only the list of logged-in users but also what they are currently doing. It shows CPU usage, terminal details, and more:

w

Example Output:

09:23:31 up 1:12,  3 users,  load average: 0.08, 0.05, 0.01
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
john     pts/1    192.168.1.100    09:21    1:12   0.01s  0.00s bash
mary     pts/2    192.168.1.101    09:23    0.02s  0.03s  0.01s vim
admin    pts/3    192.168.1.102    09:24    0.03s  0.02s  0.01s sshd

3. The last Command

The last command displays a log of all user login and logout events. It is useful for auditing and tracking user activity over time:

$ last
john     pts/0    192.168.1.100    Thu Oct  5 09:15   still logged in

Frequently Asked Questions (FAQs)

What does the users command do?

The users command in Linux shows a list of all users currently logged into the system by fetching data from the /var/run/utmp file.

Can the users command show login times or session details?

No, the users command only displays usernames. For more details like login times, use the who or w command.

How do I count the number of logged-in users?

You can count the number of logged-in users by using the users command combined with wc -w:

users | wc -w

Can I monitor users in real-time?

Yes, you can use the watch command with the users command to monitor logged-in users in real-time:

watch users

Conclusion

The users command in Linux is a versatile tool for monitoring logged-in users and tracking session activity. Though it provides only basic information, it can be combined with other commands like who, w, and last for more detailed insights. Advanced users can even automate tasks by integrating the users command into shell scripts to create custom monitoring solutions.

Whether you are just starting with Linux or managing a complex server environment, understanding how to use it efficiently will make you a better system administrator. Explore the commands and examples shared here, and enhance your ability to manage user sessions effectively.. Thank you for reading the DevopsRoles page!

w command in Linux with Examples

w command in Linux Provides a quick summary of every user logged into a computer.

The w command in Linux provides information about currently logged-in users and their activities. It displays details such as the user’s username, terminal, remote host, login time, idle time, and the current command or process they are running.

On the man page, the describes it

  • w – Show who is logged on and what they are doing.
  • man w– More details information.

w command in Linux with Examples

$ w

Executing the w command without any options will display a summary of logged-in users along with their activities. The output will include the following columns:

  1. USER: The username of the logged-in user.
  2. TTY: The terminal name or pseudo-terminal associated with the user.
  3. FROM: The remote host or IP address from which the user is logged in. If the user is logged in locally, this field displays the abbreviation “localhost” or the IP address “127.0.0.1”.
  4. LOGIN@: The login time of the user.
  5. IDLE: The idle time, indicating how long the user has been inactive.
  6. JCPU: The total CPU time used by the user’s processes.
  7. PCPU: The CPU time used by the user’s current process.
  8. WHAT: The command or process currently being executed by the user.

Conclusion

a simple command in Linux. It is the most popular in-use terminal Linux who is logged on and what they are doing. The w command also provides additional options for customized output and filtering based on specific users or terminals.

You can refer to the w command manual (man w) for more information on these options. Thank you for reading the DevopsRoles page!

uptime command in Linux with Examples

uptime command is a measure of system reliability, expressed as the percentage of time a machine, typically a computer.

The uptime command in Linux is used to display how long the system has been running, as well as the average system load over a certain period of time.

Here’s how you can use the uptime command:

On the man page, the describes it

  • uptime – Tell how long the system has been running.
  • man uptime – More details information.

Uptime command in Linux with Examples

$ uptime

Executing the uptime command without any options will provide a summary of system uptime and load averages. The output will include the following information:

  1. The current time.
  2. How long the system has been running?
  3. The number of logged-in users.
  4. The system load averages for the past 1, 5, and 15 minutes.

Here’s an example output of the uptime command in Linux:

 19:32:51 up  1:23,  3 users,  load average: 0.10, 0.12, 0.15

In this example, the system has been running for 1 hour and 23 minutes. There are three logged-in users. The load averages represent the system’s workload over the past 1, 5, and 15 minutes, respectively. In this case, the load averages are 0.10, 0.12, and 0.15, indicating a relatively low system load.

Conclusion

uptime command is a simple command in Linux. It is the most popular in-use terminal Linux for Telling how long the system has been running.

The uptime the command does not offer additional options, as it is designed to provide a simple overview of system uptime and load averages. For more detailed information and system statistics, you can explore other commands like top, htop, or specialized monitoring tools.

Thank you for reading the DevopsRoles page!

passwd command in Linux with Examples

command is a tool on Linux operating systems used to change a user’s password.

The passwd command in Linux is used to change a user’s password. It allows users to set or modify their own passwords or, if executed with root privileges, change the password for any user on the system.

The syntax

passwd [options] [LOGIN]

In man page, the describe it

  • passwd – change user password
  • man passwd

passwd command in Linux with Examples

passwd huupv

To change another user’s password (as root):

sudo passwd <username>

Replace <username> with the username of the user whose password you want to change. Running the command with sudo and providing the username will prompt you to enter the new password for that user. Again, the characters won’t be displayed while typing.

It’s important to keep in mind that only the root user or users with appropriate privileges (e.g., members of the sudo group) can change other users’ passwords.

Additional options can be used with the passwd command to modify its behavior, such as:

  • -l or --lock: Locks the specified user account.
  • -u or --unlock: Unlocks the specified user account.
  • -S or --status: Shows the password status of the specified user account.

Conclusion

The passwd command is a simple command in Linux. It is the most popular in-use terminal Linux for changing passwords users. You can refer to the passwd command manual (man passwd) for more detailed information on its usage and available options. Thank you for reading the DevopsRoles page!

gzip command in Linux with Examples

gzip is a software application used for file compression and decompression. It is a common way of compressing files in Linux.

The gzip command in Linux is used to compress files. It reduces the size of a file or a group of files and creates a compressed file with the extension .gz.

Here are a few examples of how to use the gzip command:

The syntax gzip command

gzip [ -acdfhlLnNrtvV19 ] [-S suffix] [ name ...  ]

On the man page, the describes it

Gzip reduces the size of the named files using Lempel-Ziv coding (LZ77).

gzip command in Linux with Examples

Creating a compressed file

[huupv@DevopsRoles ~]$ gzip filename.txt

Decompress a File Using the gzip Command

[huupv@DevopsRoles ~]$ gzip -d filename.gz

Decompress multiple compressed files

gzip -d file1.gz file2.gz file3.gz

The following details about gzip command in Linux.

man gzip

Compress multiple files

gzip file1 file2 file3

Keep the original file after compression or decompression

gzip -k filename
gzip -dk filename.gz

The -k option is used to keep the original file after compression or decompression. When compressing a file, the original file will be retained, and a compressed file will be created with the .gz extension. Similarly, when decompressing a file, the original compressed file will be retained, and a decompressed file will be created without the .gz extension.

Conclusion

gzip command is a simple command in Linux. It is the most popular in-use terminal Linux for file compression and

pwd command in Linux with Examples

command is the print working directory. It is one of the most frequently used Linux. like is cd or ls command.

The pwd command in Linux is used to print the current working directory. It displays the absolute path of the current directory where you are located within the file system.

The syntax pwd command

pwd [Option] ...

On the man page, the describes it

Print the full filename of the current working directory.

pwd command in Linux with Examples

The full PathName of the current working directory.

[huupv@DevopsRoles ~]$ cd /etc/nginx
[huupv@DevopsRoles nginx]$ pwd
/etc/nginx

Use the -P option to display the physical path:

pwd -P

Use the -L option to display the logical path:

pwd -L

Print the current directory with a symbolic link indicator:

pwd -P -L

By combining both the -P and -L options, the pwd the command will display the physical path and indicate any symbolic links present in the path.

Conclusion

These are some examples of using the pwd command in Linux. The command is useful for verifying your current directory or capturing it for use in shell scripts or other commands. pwd command is a simple command in Linux. It is the most popular in-use terminal Linux. Thank you for reading the DevopsRoles page!

Linux command tips and tricks

Introduction

In this tutorial, I system admin. Linux the essential for DevOps Roles.

Begin with an engaging introduction that explains the importance of mastering Linux commands for DevOps professionals. Highlight how these commands enhance productivity and streamline operations in a Linux environment.

Linux command tips and tricks

How to return to the previous directory

$ cd -

The display headers and footers in FileName.

$ cat filename | sed -e '$d' | awk 'NR > 1 {print}'

Search files under arbitrary directories

$ find ./ -name '*'|xargs grep 'devopsroles.com'

Empty the file.

$ cat /dev/null > filename.txt

Move to thereafter create the folder

$ mkdir dir_name ; cd $_

To count the number of files in any directory.

$ ls -F |grep -v / |wc -l

or count the number of folders in any directory.

$ ls -F |wc -l

Convert all extensions

$ for filename in *.txt; do mv $filename ${filename%.txt}.txt.old; done

To create serial number files.

$ touch foo_{1..4}.csv
$ touch {A..X}.csv

Delete “.DS_store” in bash

$ find . -name '.DS_Store' -type f -ls -delete

How to delete the last slash of the path.

$ MYDIR=${MYDIR%/}

Extract processes that use a lot of physical memory

$ ps aux | sort -n -k 6 | tail -n 10

Find processes with high CPU utilization

$ vmstat 1 | awk '{print strftime("%y/%m/%d %H:%M:%S"), $0}

lsof command list of ports in Listen

$ lsof -Pan -i tcp -i udp

Generate random passwords using the head command and tr command.

$ head /dev/urandom | tr -dc A-Za-z0-9 | head -c 13 ; echo ''

Extract a character string

$ echo 'devopsroles.com' | awk '{print substr($0, 2)}'

the mount command the display formatting with column

$ mount | column -t

To See CPU utilization per user

$ ps aux | awk  '{if (NR> 1) {p [$1] +=$3; n [$ 1] ++}} END {for (i in p) print p [i], n [i], i }'

How much RAM is installed on this system?

[huupv@huupv devopsroles]$ sudo dmidecode -t 17 | grep "Size.*MB" | awk '{s+=$2} END {print s / 1024 "GB"}'

Awk command line

Character count (wc – c)

$ awk '{n+=length($0)} END{print n}' filename

Word count (wc – w)

$ awk '{n+=NF} END{print n}' filename

Row count (wc – l)

$ awk 'END{print NR}' filename

Display from specified line to specified line

$ awk 'NR==3,NR==10'

Kill bulk by process name

$ kill $(ps aux | grep  "jenkins" | awk '{print $2;}')

Conclusion

Throughout this article, we’ve explored various Linux command tips and tricks. I hope you find these insights useful for your tasks. Thanks for visiting the DevopsRoles page.

How to install MySQL Server on Centos

In this tutorial, How to install MySQL Server on Centos/RedHat. The default local repository only supports MySQL packages including MySQL (replaced by Mariadb), Mongodb, so forth. In some cases, you need to install the correct MySQL Community server. I will point to a local repository dedicated to MySQL. Linux the essential for DevOps Roles.

My environment

  • Centos 7/6.
  • MySQL Version 8.

Install MySQL Server on CentOS 7

Step 1. Disable the current repository on Centos.

Failure to do this will result in conflicting package MongoDB on Epel repository. Install a package management software package:

$ sudo yum install yum-utils

Disable repository ‘remi- *’ and internet MongoDB package if pre-ordered:

$ sudo yum-config-manager --disable \*epel\*
$ sudo yum-config-manager --disable \*mongo\*

Step 2. Enable repository MySQL Server.

Create a “/etc/yum.repos.d/MySQL.repo” file with the content as below:

# Enable to use MySQL 5.5
[Local-mysql55-community]
name=MySQL 5.5 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/\$releasever/\$basearch/
enabled=0
gpgcheck=0

# Enable to use MySQL 5.6
[Local-mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/\$releasever/\$basearch/
enabled=0
gpgcheck=0

# Enable to use MySQL 5.7
[Local-mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/\$releasever/\$basearch/
enabled=0
gpgcheck=0

[Local-mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/\$releasever/\$basearch/
enabled=1
gpgcheck=0

[Local-mysql80-mysql-cluster-7.6-community]
name=MySQL cluster 7.6 community
baseurl=http://repo.mysql.com/yum/mysql-cluster-7.6-community/el/\$releasever/\$basearch/
enabled=1
gpgcheck=0

[Local-mysql-cluster-7.5-community]
name=MySQL Cluster 7.5 Community
baseurl=http://repo.mysql.com/yum/mysql-cluster-7.5-community/el/7/\$basearch/
enabled=0
gpgcheck=0

[Local-mysql-connectors-community]
name=MySQL Connectors Community
baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/\$releasever/\$basearch/
enabled=1
gpgcheck=0

[Local-mysql-tools-community]
name=MySQL Tools Community
baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/\$releasever/\$basearch/
enabled=1
gpgcheck=0

[Local-mysql-tools-preview]
name=MySQL Tools Preview
baseurl=http://repo.mysql.com/yum/mysql-tools-preview/el/7/\$basearch/
enabled=1
gpgcheck=0

Install the MySQL Community Server package:

$ sudo yum install mysql-community-server

Install another library for MySQL Server  (if necessary)

Workbench

$ sudo yum install mysql-workbench-community

Shared client libraries

$ sudo yum install mysql-community-libs

MySQL Cluster server

$ sudo yum install mysql-cluster-community
$ sudo yum install mysql-cluster-community-management-server

Shell Tools

$ sudo yum install mysql-shell

Tools

$ sudo yum install mysql-utilities
$ sudo yum install mysql-router

Connector

$ sudo yum install mysql-connector-python
$ sudo yum install mysql-connector-odbc

Step 3. Disable MongoDB and Enable back the repository epel.

$ sudo yum-config-manager --enable \*epel\*
$ sudo yum-config-manager --disable \*mongo\*

To install MySQL Server another  version (Option)

MySQL versions other you can enable/disable in the directory: /etc/yum.repos.d/MySQL.repo

Disable the current MySQL version:

$ sudo yum-config-manager --disable Local-mysql\*-community

Enable MySQL version 5.6, type the command:

$ sudo yum-config-manager --enable Local-mysql56-community

Enable MySQL version 5.7, type the command:

$ sudo yum-config-manager --enable Local-mysql57-community

Checking the current MySQL version with the command:

$ sudo yum info mysql-community-server

Reference to  MySQL

Conclusion

Thought the article, You can “Install MySQL Server” as above. I hope will this your helpful.

How to install Mongodb on Centos/Redhat

In this tutorial,  How to install MongoDB on Centos. The Local Remi Repository only supports the old MongoDB packages by default. Need to upgrade to higher version need to point to the server of MongoDB. Linux the essential for DevOps Roles.

My environment

  • Centos 7/6, Redhat.
  • MongoDB Version 4.0

Install Mongodb on Centos/Redhat

Step 1. Disable the current Repository on Centos.

Failure to do this will result in conflicting package MongoDB on Epel Repository. Installing a package management software package:

$ sudo yum install yum-utils

Disable Repository ‘remi- *’ and internet MongoDB package if Pre-ordered:

$ sudo yum-config-manager --disable \*epel\*
$ sudo yum-config-manager --disable \*mongo\*

Step 2. Enable Repository MongoDB.

Creating a “/etc/yum.repos.d/mongodb.repo” file with the content as below

[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

Now, You can install MongoDB directly using yum

$ sudo yum install mongodb-org

The screen output terminal:

Step 3. To disable MongoDB and Enable back the repository epel.

$ sudo yum-config-manager --enable \*epel\*
$ sudo yum-config-manager --disable \*mongo\*

To check the MongoDB version

$ mongod --version

The screen output terminal:

Reference to Mongodb

Conclusion

Thought the article, You can “Install MongoDB” as above. I hope will this your helpful.

Complete Guide to Install Development Tools on CentOS

Introduction

This guide provides a comprehensive overview of installing essential development tools on CentOS. By using the yum groupinstall command, users can efficiently manage and install packages required for development, such as GNU GCC C/C++ compilers. This process is crucial for developers working in CentOS environments, aiming to streamline their setup and increase productivity.

In this tutorial, I used Centos “install development tools”.  The Ubuntu distribution install method is equivalent to “apt-get build-essential, while the Centos called groupinstall with yum command. How do I install all developer tools such as GNU GCC C/C++ compilers and others? You need to “install Development Tools“.

  • Development Tools for CentOS: Overview of tools and installation via Yum.
  • Development Tools for RHEL 7: Recommended tools and installation tips for Red Hat Enterprise Linux.
  • Development Tools for Ubuntu: Effective tools for Ubuntu and installation using apt-get.
  • Comparing Toolsets Across OS: Differences and similarities in toolkits across CentOS, RHEL 7, and Ubuntu.

How to Install Development Tools on Centos

For Centos, RHEL, and Fedora

Installing groupinstall use the yum command on Centos, RHEL, and Fedora.

[huupv@huupv devopsroles]$ sudo yum groupinstall "Development Tools"

The related with the subcommand  Group list

A list of groups uses “grouplist” command on Centos, RHEL, and Fedora.

[huupv@huupv devopsroles]$ sudo yum grouplist

To install a unit of a group name.

[huupv@huupv devopsroles]$ sudo yum groupinstall "Group name"

To remove a unit of a group using “groupremove” command on Centos, RHEL, and Fedora.

[huupv@huupv devopsroles]$ sudo yum groupremove "Group name"

Updating a unit of a group by “groupupdate” command on Centos, RHEL, and Fedora.

[huupv@huupv devopsroles]$ sudo yum groupupdate "Group name"

Conclusion

By following the steps outlined in this tutorial, users can successfully install all necessary development tools on CentOS, ensuring a robust environment for programming and development tasks.

This guide simplifies the process, making it accessible even for those new to Linux systems, ultimately enhancing their capabilities in handling various software development requirements. I hope will this your helpful. Thank you for reading the DevopsRoles page!