Basic System Info Commands
System Monitoring
systemctl
→ interact with systemd system manager
ps
→ view current processes
top
→ dynamic view of process usage
Systemctl Usage
systemctl start|stop|status servicename.service
→ manage service state
systemctl enable servicename.service
→ start service at boot
systemctl restart|reload servicename
→ restart or reload service
systemctl list-units --all
→ list all units
To add a service:
Create a unit file in /etc/systemd/system/servicename.service
Process Management
Killing and Prioritizing
Jobs Monitoring
jobs
→ list background/foreground job states
Essential Commands:
useradd
, groupadd
, userdel
, groupdel
, usermod
Modify 3 files: /etc/passwd
, /etc/group
, /etc/shadow
Create User with Custom Options
useradd -G mygroup -s /bin/bash \
-c "User Description" -m \
-d "/home/myuser" myuser
Other Useful User Commands
useradd myuser
→ create user
id myuser
→ check if user exists
groupadd
→ create group
cat /etc/group
→ check group
userdel -r myuser
→ delete user and home directory
groupdel mygroup
→ delete group
usermod -G mygroup myuser
→ change user's group
chgrp -R mygroup myuser
→ change group ownership recursively
passwd myuser
→ set or update user's password
Password Aging with chage
Edit Password Policies
File: /etc/login.defs
PASS_MAX_DAYS 9999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
Switch User Privileges
User Info and Monitoring Commands
who
→ see logged in users
last
→ list last login records
w
→ who is logged in with more details
finger
→ show user details
id
→ show UID, GID and groups
id myuser
→ check user info
Send Messages to Users
Basic Replace Syntax:
Delete Line Containing String:
sed -i '/SEINFELD/d' filename
Delete Empty Lines:
Delete First Line:
sed '1,2d' filename
→ delete the first two lines
sed 's/\t/ /g' filename
→ replace tabs with spaces
sed -n '12,18p' filename
→ print only lines 12 to 18
sed '12,18d' filename
→ delete lines 12 to 18
sed G filename
→ insert an empty line after every line
sed '8!s/seinfeld/S1/' filename
→ replace "seinfeld" with "S1" on every line except line 8
Vi Editor Commands
i
→ insert mode
I
→ insert at line start
ESC
→ escape to command mode
R
→ replace mode
x
→ delete character
dd
→ delete line
yy
→ copy line
p
→ paste
v
→ visual mode
o
→ open new line below and insert
O
→ open new line above and insert
a
→ append after cursor
A
→ append at end of line
:q!
→ quit without saving
:wq
or ZZ
→ save and quit
Crontab Basics
crontab -e
→ edit crontab
crontab -l
→ list crontab entries
crontab -r
→ remove crontab entries
systemctl status crond
→ check crond service status
AT: One-time Scheduled Tasks
Used to schedule jobs only once.
Scheduling Examples:
at HH:MM PM
→ schedule a job interactively
at 11:23AM 12/24/25
Enter job (e.g., echo "test"
) and press Ctrl + D
to finish
at 2:45PM 01/30/25
at 4PM + 4 days
at now + 5 hours
at 8:00AM Sun
at 10:00AM next month
Managing AT Jobs
atq
→ list the scheduled at jobs
atrm #
→ remove a specific at job (use number from atq
)
systemctl status atd
→ check atd daemon status
File Display Commands
cat → Show entire content
cat -A
→ Show non-printable characters
more → Paginate output
less → Same as more
but allows navigation with arrow keys
head → Show top lines (default: 10)
tail → Show bottom lines (default: 10)
head -2 myfile
tail -2 myfile
Filters / Text Processing Input
cut
→ Cut input
awk
→ List by columns
grep
& egrep
→ Search by keyword
sort
→ Sort in alphabetical order
uniq
→ Remove duplicate lines
wc
→ Word count (including lines)
cut Command Examples
cut -c1 filename
→ First letter of each line
cut -c1,2,4 filename
→ Characters 1, 2, and 4
cut -c1-3 filename
→ Range: characters 1 to 3
cut -c1-3,6-8 filename
→ Ranges: characters 1-3 and 6-8
cut -b1-3 filename
→ Byte range 1 to 3
cut -d: -f6 /etc/passwd
→ Field 6 using :
delimiter
cut -d: -f6-7
→ Fields 6 and 7
ls -l | cut -c2-4
→ Extract character range 2 to 4 from ls
output
awk Command Examples
awk '{print $1}' file
→ Print 1st column of file
ls -l | awk '{print $1, $3}'
→ Print 1st and 3rd columns from ls -l
ls -l | awk '{print $NF}'
→ Print last column
awk '/jerry/ {print}' file
→ Search for "jerry" and print matching lines
awk -F: '{print $1}' /etc/passwd
→ Use :
as delimiter, print 1st field
echo "hello tom" | awk '{$2="adam"; print}'
→ Replace column 2 with "adam"
awk 'length($0) > 15' file
→ Print lines longer than 15 characters
grep Command Examples
grep keyword file
→ Search for keyword
grep -c keyword file
→ Count matching lines
grep -i keyword file
→ Ignore case
grep -n keyword file
→ Show line numbers
grep -v keyword file
→ Invert match (everything except keyword)
grep keyword file | awk '{print $1}'
→ Pipe grep to awk to extract 1st column
ls -l | grep keyword
→ Filter ls -l
output by keyword
egrep -i "keyword1|keyword2" file
→ Search for multiple keywords (case-insensitive)
sort Command Examples
sort file
→ Sort alphabetically
sort -r file
→ Sort in reverse order
sort -u file
→ Sort and remove duplicates
sort file | uniq
→ Same as above with explicit uniq
sort file | uniq -d
→ Show only duplicate lines
sort file | uniq -c
→ Count duplicates
sort -k4 -n file
→ Sort by 4th field (numeric)
ls -l | sort -k4 -n
→ Sort by size from ls -l
wc Command Examples
wc -c filename
→ Byte count
wc -w filename
→ Word count
wc -l filename
→ Line count
ls -l | wc -l
→ Count lines from ls -l
wc -l filename
→ Count number of lines in file
cmp / diff
diff
→ Compare files line by line
cmp
→ Compare files byte by byte
tar / gzip
tar cvf export.tar somedir
→ Compress directory
tar xvf export.tar
→ Extract tar archive
gzip export.tar
→ Compress with gzip
gzip -d export.tar.gz
→ Decompress gzip archive
truncate Command
truncate -s10 filename
→ Chop file to 10 bytes
truncate -s60 filename
→ Extend file to 60 bytes
Combining & Splitting Files
cat file1 file2 file3 > fileN
→ Combine multiple files into one
Fold
Fold all
Expand
Expand all
Are you sure you want to delete this link?
Are you sure you want to delete this tag?
The personal, minimalist, super-fast, database free, bookmarking service by the Shaarli community