System Information
Understanding your system's hardware and software configuration
uname -a # Displays kernel version and system architecture. lscpu # Provides detailed information about the CPU. lsblk # Lists all available block devices. lsusb # Shows USB devices connected to the system.
CPU and Memory Diagnostics
Monitoring CPU and memory usage helps in identifying performance bottlenecks.
htop is an interactive system monitor process viewer and process manager. It is designed as an alternative to the Unix program top. It shows a frequently updated list of the processes running on a computer, normally ordered by the amount of CPU usage.
htop
vmstat -s Provides a detailed breakdown of memory usage and other related metrics since the last system boot.
vmstat -s 980492 K total memory 480208 K used memory 132040 K active memory 582364 K inactive memory 67924 K free memory 21724 K buffer memory 410636 K swap cache 0 K total swap 0 K used swap 0 K free swap
free -h Displays memory usage in "human-readable" format
free -h total used free shared buff/cache available Mem: 7.7G 1.9G 3.9G 487M 1.9G 5.0G Swap: 2.0G 0B 2.0G
Disk Usage and Health
Keeping track of disk usage and health is crucial for preventing data loss and ensuring efficient storage management.
df -h # Shows disk space usage in "human-readable" format
df -h Filesystem Size Used Avail Use% Mounted on udev 3.8G 0 3.8G 0% /dev tmpfs 783M 1.7M 781M 1% /run /dev/sda2 233G 25G 197G 12% / tmpfs 3.9G 39M 3.8G 1% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 783M 80K 783M 1% /run/user/1000
du -sh /path/to/directory Displays the size of a specific directory.
du -sh /path/to/directory 1.1G /path/to/director iostat # Reports CPU and I/O statistics.
fdisk -l # List all partitions
fdisk -l Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors Disk model: QEMU HARDDISK Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: XXXXXX-XXX-XXX-XXXX-XXXXXXXXXX Device Start End Sectors Size Type /dev/sda1 2048 4095 2048 1M BIOS boot /dev/sda2 4096 41940607 41936512 20G Linux filesystem
Process and Service Management
Managing processes and services is essential for maintaining system stability.
ps aux # Lists all running processes
ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 168800 10944 ? Ss Jun12 0:02 /sbin/init root 2 0.0 0.0 0 0 ? S Jun12 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? I< Jun12 0:00 [rcu_gp] root 4 0.0 0.0 0 0 ? I< Jun12 0:00 [rcu_par_gp] ...
systemctl status service_name # Checks the status of a service
systemctl status apache2 ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2024-05-29 16:06:04 UTC; 2 weeks 5 days ago Docs: https://httpd.apache.org/docs/2.4/ Process: 1000205 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS) Main PID: 40385 (apache2) Tasks: 55 (limit: 1013) Memory: 8.8M CPU: 1min 55.654s CGroup: /system.slice/apache2.service ├─ 40385 /usr/sbin/apache2 -k start ├─1000209 /usr/sbin/apache2 -k start └─1000210 /usr/sbin/apache2 -k start
kill -9 process_id(PID) # Forces termination of a process. (No output unless there is an error, the process is terminated forcefully)
Logs and Monitoring
Analyzing logs and monitoring system activities can help in identifying issues and tracking system performance.
dmesg # allows reviewing messages stored in the Linux ring buffer, providing insights into hardware errors and startup issues. How To Use dmesg
dmesg -T [Wed May 29 14:46:00 2024] Run /init as init process [Wed May 29 14:46:00 2024] with arguments: [Wed May 29 14:46:00 2024] /init [Wed May 29 14:46:00 2024] with environment: [Wed May 29 14:46:00 2024] HOME=/ [Wed May 29 14:46:00 2024] TERM=linux [Wed May 29 14:46:00 2024] BOOT_IMAGE=/boot/vmlinuz-5.15.0-97-generic [Wed May 29 14:46:00 2024] biosdevname=0 [Wed May 29 14:46:00 2024] netcfg/do_not_use_netplan=true [Wed May 29 14:46:00 2024] piix4_smbus 0000:00:01.3: SMBus Host Controller at 0x700, revision 0 [Wed May 29 14:46:00 2024] scsi host2: Virtio SCSI HBA [Wed May 29 14:46:00 2024] scsi 2:0:0:0: Direct-Access QEMU QEMU HARDDISK 2.5+ PQ: 0 ANSI: 5 [Wed May 29 14:46:00 2024] input: VirtualPS/2 VMware VMMouse as /devices/platform/i8042/serio1/input/input4 [Wed May 29 14:46:00 2024] input: VirtualPS/2 VMware VMMouse as /devices/platform/i8042/serio1/input/input3 [Wed May 29 14:46:00 2024] cryptd: max_cpu_qlen set to 1000
journalctl # Views systemd logs and allows filtering Linux system logs to extract relevant information for monitoring and troubleshooting. How To Use journalctl
journalctl -- Logs begin at Tue 2024-06-18 10:55:23 UTC, end at Tue 2024-06-18 12:06:19 UTC. -- Jun 18 10:55:23 hostname kernel: Linux version 5.4.0-74-generic (buildd@lcy01-amd64-013) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #83-Ubuntu SMP Thu May 6 10:34:06 UTC 2021 (Ubuntu 5.4.0-74.83-generic 5.4.101) Jun 18 10:55:23 hostname kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-5.4.0-74-generic root=UUID=5d7f5dcd-1234-5678-9abc-def012345678 ro quiet splash vt.handoff=7 ...
journalctl -u service_name # Views Logs for a Specific Service
journalctl -u apache2 -- Logs begin at Tue 2024-06-18 10:55:23 UTC, end at Tue 2024-06-18 12:05:19 UTC. -- Jun 18 11:56:19 hostname systemd[1]: Starting The Apache HTTP Server... Jun 18 11:56:19 hostname apache2[1342]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message Jun 18 11:56:19 hostname systemd[1]: Started The Apache HTTP Server.