10 Essential Linux Commands Every Developer Should Master
This guide introduces ten fundamental Linux commands—pgrep, pstree, bc, split, nl, mkfifo, ldd, col, xmlwf, and lsof—explaining their purposes, typical use‑cases, and providing clear code examples to help developers and sysadmins work more efficiently on Linux systems.
According to Lao Jiu Master, Linux is the most suitable operating system for development because it gives users full control, offering openness, freedom, and honesty, which are its greatest charms.
More and more enterprises are choosing Linux as their server platform, making it essential for learners to understand Linux fundamentals.
Below are ten useful Linux commands that help you grasp key Linux features more deeply.
01 pgrep
The pgrep command lists process IDs that match a given pattern, similar to combining ps, egrep, and awk. $ pgrep -u hchen22441 22444 This is equivalent to:
ps -ef | egrep '^hchen' | awk '{print $2}'02 pstree
pstreedisplays the process hierarchy in a tree format.
hchen@RHELSVR5 ~]$ pstree
init-+-acpid
|-auditd-+-python
| `-{auditd}
|-automount---4*[{automount}]
|-backup.sh---sleep
|-dbus-daemon
|-events/0
|-events/1
|-hald---hald-runner---hald-addon-acpi
|-httpd---10*[httpd]
|-irqbalance
|-khelper
|-klogd
|-ksoftirqd/0
|-ksoftirqd/1
|-kthread-+-aio/0
| |-aio/1
| |-ata/0
| |-ata/1
| |-ata_aux
| |-cqueue/0
| |-cqueue/1
| |-kacpid
| |-kauditd
| |-kblockd/0
| |-kblockd/1
| |-kedac
| |-khubd
| |-6*[kjournald]
| |-kmirrord
| |-kpsmoused
| |-kseriod
| |-kswapd0
| |-2*[pdflush]
| |-scsi_eh_0
| |-scsi_eh_1
| |-xenbus
| `-xenwatch
|-migration/0
|-migration/1
|-6*[mingetty]
|-3*[multilog]
|-mysqld_safe---mysqld---9*[{mysqld}]
|-smartd
|-sshd---sshd---sshd---bash---pstree
|-svscanboot---svscan-+-3*[supervise---run]
| |-supervise---qmail-send-+-qmail-clean
| | |-qmail-lspawn
| | `-qmail-rspawn
| `-2*[supervise---tcpserver]
|-syslogd
|-udevd
|-watchdog/0
|-watchdog/1
|-xinetd03 bc
bcis a high‑precision calculator useful for mathematical operations such as square roots. Example script sqrt:
#!/bin/bash
if [ $# -ne 1 ]
then
echo 'Usage: sqrt number'
exit 1
else
echo -e "sqrt($1)
quit
" | bc -q -i
fiRunning the script:
[hchen@RHELSVR5]$ ./sqrt 36
6
[hchen@RHELSVR5]$ ./sqrt 2.0000
1.4142
[hchen@RHELSVR5]$ ./sqrt 10.0000
3.162204 split
splitdivides a large file into smaller pieces.
[hchen@RHELSVR5 applebak]# ls -l largefile.tar.gz
-rw-r--r-- 1 hchen hchen 436774774 04-17 02:00 largefile.tar.gz
[hchen@RHELSVR5 applebak]# split -b 50m largefile.tar.gz LF_
[hchen@RHELSVR5]# ls -l LF_*
-rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_aa
-rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ab
... (other parts) ...
-rw-r--r-- 1 hchen hchen 17344374 05-10 18:35 LF_aiTo recombine the parts:
[hchen@RHELSVR5]# cat LF_* > largefile.tar.gz05 nl
nlworks like cat but adds line numbers.
[hchen@RHELSVR5 include]# nl stdio.h | head -n 10
1 /* Define ISO C stdio on top of C++ iostreams.
2 Copyright (C) 1991,1994-2004,2005,2006 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4 The GNU C Library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
8 The GNU C Library is distributed in the hope that it will be useful,
9 ...06 mkfifo
mkfifocreates a named pipe (FIFO). Example:
[hchen@RHELSVR5 ~]# mkfifo /tmp/hchenpipe
[hchen@RHELSVR5 ~]# ls -l /tmp
prw-rw-r-- 1 hchen hchen 0 05-10 18:58 hchenpipeWriting to the pipe (will block until read): [hchen@RHELSVR5 ~]# ls -al > /tmp/hchenpipe Reading from another terminal:
[hchen@RHELSVR5 ~]# head /tmp/hchenpipe
drwx------ 8 hchen hchen 4096 05-10 18:27 .
... (listing output) ...07 ldd
lddshows the shared libraries required by an executable.
[hchen@RHELSVR5 ~]# ldd /usr/bin/java
linux-gate.so.1 => (0x00cd9000)
libgij.so.7rh => /usr/lib/libgij.so.7rh (0x00ed3000)
libgcj.so.7rh => /usr/lib/libgcj.so.7rh (0x00ed6000)
libpthread.so.0 => /lib/i686/nosegneg/libpthread.so.0 (0x00110000)
... (other libraries) ...
/lib/ld-linux.so.2 (0x00214000)08 col
colconverts man pages to plain text.
# PAGER=cat man less | col -b > less.txt09 xmlwf
xmlwfvalidates an XML document.
[hchen@RHELSVR5 ~]# curl 'https://coolshell.cn/?feed=rss2' > cocre.xml
... (download output) ...
[hchen@RHELSVR5 ~]# xmlwf cocre.xml
[hchen@RHELSVR5 ~]# perl -i -pe 's@<link>@<br>@g' cocre.xml
[hchen@RHELSVR5 ~]# xmlwf cocre.xml
cocre.xml:13:23: mismatched tag10 lsof
lsoflists open files and the processes using them.
[root@RHELSVR5 ~]# lsof | grep TCPhttpd
548 apache 4u IPv6 14300967 TCP *:http (LISTEN)
... (other entries) ...
sshd 10735 root 3u IPv6 160731956 TCP 210.51.0.232:ssh->123.117.239.68:31810 (ESTABLISHED)Source: Lao Jiu Classroom public account.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Open Source Linux
Focused on sharing Linux/Unix content, covering fundamentals, system development, network programming, automation/operations, cloud computing, and related professional knowledge.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
