Linux System Administration Commands: Monitoring, Users, Cron & Services
To check memory in Linux, run free -h in the terminal. It shows total, used, free and available RAM in human-readable units. The “available” column is what the kernel can actually allocate to new processes. Pair it with top or htop for a live per-process view.
- Key Takeaway 1:
free -h,df -handtopare the first three commands you run when something feels wrong on a server. - Key Takeaway 2:
crontab -eschedules recurring tasks; systemd timers are the modern alternative for service-level automation. - Key Takeaway 3:
ps aux | grep <name>finds any process ID in seconds, without needing root. - Key Takeaway 4: Always use
systemctl rebootinstead of a hard power cycle; it flushes buffers and runs shutdown scripts cleanly. - Key Takeaway 5: These commands appear verbatim in RHCSA exam objectives and in nearly every L1/L2 DevOps job description on Naukri and LinkedIn India.
How to Check Memory in Linux: RAM, CPU, Disk and System Info
When a ticket lands saying “the application is sluggish,” you need numbers fast. Start with memory, then CPU, then disk. That order catches 90% of common issues before you even open an application log.
How to Check Memory in Linux Using free -h
The standard way to check memory in Linux is to run free -h, which displays RAM in gigabytes or megabytes. The “available” column (not “free”) is what the kernel can actually hand to a new process. A server with 1 GB available out of 16 GB total is fine; a server with 200 MB available is not.
For a real-time view, top shows CPU and memory per process, sorted by CPU by default. Press M inside top to re-sort by memory. If you want something more visual, install htop from the default repos on Ubuntu, CentOS or RHEL. In Indian IT support environments at companies like Infosys, TCS and HCL, L1 engineers are expected to run this check within the first 60 seconds of any performance ticket.
Checking CPU Load
The uptime command prints load averages for 1, 5 and 15 minutes. A load average above the number of CPU cores is a warning sign. Check core count with nproc or lscpu. According to the Linux Foundation’s 2023 Jobs Report, sysadmin roles citing performance tuning skills grew 18% year-on-year, and load-average interpretation is a baseline expectation for L1 and L2 roles.
How to Check Disk Usage in Linux
df -h shows disk space by filesystem, which is what you check when a drive might be full. du -sh /path/to/dir shows how much space a specific directory is consuming. The difference matters: df reports filesystem-level usage while du walks the directory tree, so they can produce different numbers when hard links or deleted-but-open files are involved.
A quick combo that saves time on production servers: du -sh /* 2>/dev/null | sort -rh | head -10 lists the ten largest top-level directories. Indian IT teams running shared hosting panels like cPanel or Plesk use this constantly to find clients consuming excess disk space.
Checking OS Version, Hostname and Environment
Run cat /etc/os-release or lsb_release -a to check the Linux distribution and version. On RHEL-based systems like CentOS Stream or Rocky Linux, cat /etc/redhat-release also works. To check the kernel version specifically, use uname -r.
Your hostname is returned by the hostname command. Change it with hostnamectl set-hostname newname on systemd-based distros. Environment variables are listed with env or printenv. To check one variable, echo $VARIABLE_NAME is faster.
| Task | Command | Output Type |
|---|---|---|
| Check RAM usage (check memory in Linux) | free -h | Human-readable MB/GB |
| Check disk filesystem usage | df -h | Per-mount percentage |
| Check directory size | du -sh /path | Single directory total |
| Check CPU load | uptime / top | Load averages / live view |
| Check OS version | cat /etc/os-release | Distro name and version |
| Check kernel version | uname -r | Kernel release string |
| Check hostname | hostname | Server name |
| List environment variables | env | Key=value pairs |
Managing Processes, Users, Groups and Cron in Linux
Once you have confirmed the system has resources, the next question is usually “which process is misbehaving” or “who scheduled that job.” These commands answer both.
How to Check Process ID in Linux
Use ps aux to list every running process with its PID, CPU and memory usage. To find a specific process, pipe it through grep: ps aux | grep nginx. The PID is the number in the second column. A faster shortcut is pgrep nginx, which returns only the PID.
Once you have a PID, kill PID sends SIGTERM (graceful stop) and kill -9 PID sends SIGKILL (forced). Always try SIGTERM first. Killing with -9 can leave lock files and corrupt data in databases like MySQL or PostgreSQL.
Managing Users, Groups and UID
Create a new user with useradd username, then set a password with passwd username. Check which groups a user belongs to with groups username. Every user has a UID (user ID) and GID (group ID) stored in /etc/passwd. Root always has UID 0.
To see a user’s UID and GID, run id username. This is the fastest way to confirm whether a service account has the right permissions before debugging a “permission denied” error. User and group management is a mandatory tested skill in the RHCSA exam, and it appears in real support tickets at Indian IT service companies on a daily basis.
How to Create a Cron Job in Linux
Open the cron editor with crontab -e. Each line follows the format: minute hour day month weekday command. For example, 0 2 * * * /usr/bin/backup.sh runs a backup script at 2 AM every day. List existing cron jobs with crontab -l. Remove all cron jobs for the current user with crontab -r, but be careful with that last one.
Cron is simpler to set up for user-level tasks. Systemd timers are more powerful for service-level scheduling because they integrate with journald logging and dependency management. For most junior sysadmin scenarios, crontab is what you will reach for first. Stack Overflow’s 2023 Developer Survey found that Linux is the most used operating system among professional developers at 53%, which means cron knowledge is essentially universal in the industry.
Mounting Drives and Managing Services
Mount a drive with mount /dev/sdb1 /mnt/data. Unmount it with umount /mnt/data. To make a mount persist across reboots, add an entry to /etc/fstab. Always test fstab changes with mount -a before rebooting, otherwise you might boot into emergency mode on a production server.
Manage services with systemctl. Start Apache with systemctl start httpd (RHEL/CentOS) or systemctl start apache2 (Ubuntu/Debian). Enable it to start on boot with systemctl enable apache2. Check its status with systemctl status apache2. These four systemctl actions cover the majority of service management tasks you will handle as an L1 or L2 engineer.
How to Reboot a Linux Server Safely and Reset Passwords
Never pull the plug on a running Linux server. Open file handles, database transactions and write buffers all need to flush properly. The safe commands are systemctl reboot or shutdown -r now. Both trigger a clean shutdown sequence before the system restarts.
If you need to schedule a reboot for later, shutdown -r +10 reboots in 10 minutes and broadcasts a warning to logged-in users. Cancel it with shutdown -c. According to Uptime Institute’s 2023 Global Data Center Survey, 37% of outages are caused by human error during maintenance, and unplanned reboots are a significant contributor. Using the scheduled shutdown command with a warning window is a simple way to reduce that risk.
Resetting a User Password
As root, run passwd username and type the new password twice. No need to know the old one. Force the user to change their password on next login with passwd -e username. This is the standard procedure in Indian IT support teams where service desk engineers reset passwords for internal users without needing Active Directory access. L1 engineers at Indian IT firms handling ITSM queues on tools like ServiceNow or Jira Service Management perform this task multiple times per shift.
These Commands in a Career Context
Every command in this guide appears in real L1/L2 support and DevOps job descriptions. NASSCOM’s IT workforce reports consistently list Linux administration as a top-five skill requirement for infrastructure roles in India, with entry-level Linux sysadmin salaries ranging from Rs 3 LPA to Rs 6 LPA depending on location and company tier. If you are studying for RHCSA, these are tested directly. If you are aiming for a DevOps role, check out the full DevOps engineer career guide on 3.0 University, which maps these skills to actual job roles and salary bands. For interview prep, the DevOps interview questions guide covers how interviewers probe Linux knowledge in technical rounds.
If you are working in monitoring or log management, many of these system commands feed directly into tools like Splunk. The Splunk interview questions guide on 3.0 University is a good next read once you are comfortable with the basics here.
Build a habit of running these commands in a sequence whenever you log into a server for the first time: uptime, free -h, df -h, top. That four-command health check takes under 30 seconds and tells you whether the system is stable before you touch anything else. Senior engineers do this instinctively; juniors who adopt it early stand out fast.
Ready to turn these skills into a career? Explore 3.0 University’s job-focused tech programs and get structured training in Linux, DevOps and cybersecurity with mentorship from working professionals.
Frequently Asked Questions
How do you check memory in Linux?
Run free -h in the terminal to check memory in Linux. It displays total, used, free and available memory in human-readable format. The “available” column is the most useful figure because it shows what the kernel can actually allocate to new processes. For a live per-process breakdown, use top or htop and press M to sort by memory consumption.
How do you check disk usage in Linux?
Use df -h to see disk space at the filesystem level, including percentage used per mount point. Use du -sh /path to measure a specific directory’s size. The two commands serve different purposes: df reports overall filesystem capacity, while du calculates actual directory contents. Run du -sh /* 2>/dev/null | sort -rh | head -10 to find the largest directories quickly.
How do you create a cron job in Linux?
Run crontab -e to open the cron editor. Add a line in the format: minute hour day month weekday /path/to/command. For example, 30 6 * * 1-5 /home/user/report.sh runs a script at 6:30 AM on weekdays. List existing jobs with crontab -l. For service-level scheduling, systemd timers offer better logging and dependency control.
How do you find a process ID in Linux?
Run ps aux | grep processname to list matching processes with their PIDs. The PID appears in the second column. For a faster result, use pgrep processname, which returns only the PID. Once you have it, use kill PID for a graceful stop or kill -9 PID to force-terminate. Always try the graceful option first to avoid data corruption.
How do you reboot a Linux server safely?
Use systemctl reboot or shutdown -r now. Both flush file buffers and run shutdown scripts before restarting. To schedule a reboot in advance, run shutdown -r +10 to reboot in 10 minutes, which also broadcasts a warning to logged-in users. Cancel a scheduled reboot with shutdown -c. Never use a hard power cycle unless the system is completely unresponsive.
How do you check available memory in Linux from the command line?
The quickest way to check available memory in Linux from the command line is free -h. Look at the “available” column in the Mem row. You can also run cat /proc/meminfo | grep MemAvailable for a raw kernel-level figure in kilobytes. Both methods work without root privileges and are available on all major distributions including Ubuntu, CentOS, RHEL and Debian.
Last updated: July 2026. Reviewed by the 3University editorial team.


