10 Essential Linux Commands Every Developer Should Master
This article 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 example outputs to help developers and system administrators work more efficiently on Linux systems.
Linux is widely regarded as the most suitable operating system for development due to its openness, freedom, and user control. As more enterprises adopt Linux for servers, mastering essential commands becomes crucial.
Below are ten useful Linux commands with explanations and examples.
01 pgrep
The pgrep command lists process IDs matching a pattern, similar to using ps with grep. $ pgrep -u hchen2244122444 Equivalent to:
ps -ef | egrep '^hchen' | awk '{print $2}'02 pstree
pstreedisplays the process hierarchy in a tree format.
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 calculator for high‑precision arithmetic, useful for operations like square‑root calculations.
#!/bin/bash
if [ $# -ne 1 ]
then
echo 'Usage: sqrt number'
exit 1
else
echo -e "sqrt($1)
quit
" | bc -q -i
fiExample usage:
$ ./sqrt 36
6
$ ./sqrt 2.0000
1.4142
$ ./sqrt 10.0000
3.162204 split
splitdivides a large file into smaller pieces.
$ ls -l largefile.tar.gz
-rw-r--r-- 1 hchen hchen 436774774 04-17 02:00 largefile.tar.gz
$ split -b 50m largefile.tar.gz LF_
$ 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_aiRecombine the parts:
$ cat LF_* > largefile.tar.gz05 nl
nlworks like cat but adds line numbers to each line.
$ 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,06 mkfifo
mkfifocreates a named pipe (FIFO) for inter‑process communication.
$ mkfifo /tmp/hchenpipe
$ ls -l /tmp
prw-rw-r-- 1 hchen hchen 0 05-10 18:58 hchenpipeWrite to the pipe (blocks until read): $ ls -al > /tmp/hchenpipe Read from the pipe (unblocks the writer):
$ head /tmp/hchenpipe
... (output of ls -al) ...07 ldd
lddlists the shared libraries required by an executable.
$ 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)
librt.so.1 => /lib/i686/nosegneg/librt.so.1 (0x009c8000)
libdl.so.2 => /lib/libdl.so.2 (0x008b5000)
libz.so.1 => /usr/lib/libz.so.1 (0x00bee000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00aa7000)
libc.so.6 => /lib/i686/nosegneg/libc.so.6 (0x0022f000)
libm.so.6 => /lib/i686/nosegneg/libm.so.6 (0x00127000)
/lib/ld-linux.so.2 (0x00214000)08 col
colconverts formatted man pages to plain text.
# PAGER=cat
man less | col -b > less.txt09 xmlwf
xmlwfvalidates an XML document, checking for well‑formedness.
$ curl 'https://coolshell.cn/?feed=rss2' > cocre.xml
... (download output) ...
$ xmlwf cocre.xml
$ perl -i -pe 's@<link>@<br>@g' cocre.xml
$ xmlwf cocre.xml
cocre.xml:13:23: mismatched tag10 lsof
lsoflists open files and the processes that opened them.
$ lsof | grep TCP
httpd 548 apache 4u IPv6 14300967 TCP *:http (LISTEN)
httpd 548 apache 6u IPv6 14300972 TCP *:https (LISTEN)
sshd 1764 root 3u IPv6 4993 TCP *:ssh (LISTEN)
... (other entries) ...These commands provide a solid foundation for everyday Linux system administration and development tasks.
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.
Efficient Ops
This public account is maintained by Xiaotianguo and friends, regularly publishing widely-read original technical articles. We focus on operations transformation and accompany you throughout your operations career, growing together happily.
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.
