Here is a bash script that will display system information such as the OS, disk and memory usage, CPU, and the 5 most recently modified files by users. It will also check for outdated packages and display a message if any are found:
#!/bin/bash
# Display the OS name and version
echo "Operating System: $(uname -a)"
# Display disk usage
echo "Disk usage: $(df -h)"
# Display memory usage
echo "Memory usage: $(free -m)"
# Display CPU information
echo "CPU information: $(lscpu)"
# Display the 5 most recently modified files by users
echo "Recently modified files:"
ls -ltu ~ | head -n 6
# Check for outdated packages
outdated_packages=$(apt list --upgradable 2>/dev/null | grep -v "Listing..." | wc -l)
if [ "$outdated_packages" -gt 0 ]; then
echo "Outdated packages found: $outdated_packages"
else
echo "No outdated packages found"
fi
To use this script, save it to a file with a .sh
extension and make it executable using the chmod
command. For example:
chmod +x sysinfo.sh
You can then run the script by entering the following command:
./sysinfo.sh
Output example
Here is an example of what the output of the script might look like:
Operating System: Linux myhost 4.19.0-16-generic #16-Ubuntu SMP Thu Oct 10 10:59:10 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Disk usage: Filesystem Size Used Avail Use% Mounted on
udev 7.7G 0 7.7G 0% /dev
tmpfs 1.6G 9.2M 1.6G 1% /run
/dev/sda1 238G 41G 191G 18% /
tmpfs 7.7G 38M 7.7G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 7.7G 0 7.7G 0% /sys/fs/cgroup
tmpfs 1.6G 60K 1.6G 1% /run/user/1000
Memory usage: total used free shared buff/cache available
Mem: 15951 2064 7708 75 6178 13079
Swap: 0 0 0
CPU information: Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 158
Model name: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
Stepping: 9
CPU MHz: 800.000
CPU max MHz: 3800.0000
CPU min MHz: 800.0000
BogoMIPS: 5604.00
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 6144K
Recently modified files:
total 16
-rw-rw-r-- 1 user user 37 Mar 9 21:20 file5.txt
-rw-rw-r-- 1 user user 37 Mar 9 21:19 file4.txt
-rw-rw-r-- 1 user user 37 Mar 9 21:18 file3.txt
-rw-rw-r-- 1 user user 37 Mar 9 21:17 file2.txt
-rw-rw-r-- 1 user user 37 Mar 9 21:16 file1.txt
drwxrwxr-x 2 user user 4096 Mar 9 21:15 .
No outdated packages found
Note that the output may vary depending on the specific system and configuration.
Neofetch
An alternative to the bash script discussed above is the neofetch
command-line utility. Neofetch is a system information tool that is easy to use and displays a wide range of system information in a visually appealing format. It is available in many Linux distributions and can be installed using the package manager. To use the neofetch command, simply enter the following command in the terminal:
The output of the command includes system information such as the OS name and version, disk usage, memory usage, CPU information, and the 5 most recently modified files by users. It also checks for outdated packages and displays a message if any are found.