DEV Community

Haytham Mostafa
Haytham Mostafa

Posted on • Edited on

Top Linux Commands Every DevOps Engineer Should Know

Networking

Here are some of the most commonly used networking commands in Linux that are essential for DevOps:

  • ifconfig: Displays and configures network interfaces.
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::20c:29ff:fe09:ff74 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:09:ff:74 txqueuelen 1000 (Ethernet) RX packets 12345 bytes 12345678 (12.3 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 54321 bytes 87654321 (87.6 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 
Enter fullscreen mode Exit fullscreen mode
  • ip: A versatile command for network configuration, routing tables, and more.
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0 valid_lft 84605sec preferred_lft 84605sec 
Enter fullscreen mode Exit fullscreen mode
  • ping: Tests network connectivity to another host.
PING google.com (172.217.6.14) 56(84) bytes of data. 64 bytes from lga34s28-in-f14.1e100.net (172.217.6.14): icmp_seq=1 ttl=56 time=10.2 ms 
Enter fullscreen mode Exit fullscreen mode
  • traceroute: Determines the route packets take to reach a destination.
traceroute to google.com (172.217.6.14), 30 hops max, 60 byte packets 1 192.168.1.1 (192.168.1.1) 1.234 ms 2.345 ms 3.456 ms 2 10.10.10.1 (10.10.10.1) 4.567 ms 5.678 ms 6.789 ms 3 8.8.8.8 (8.8.8.8) 7.890 ms 8.901 ms 9.012 ms 
Enter fullscreen mode Exit fullscreen mode
  • netstat: Displays network statistics, connections, routing tables, and more.
Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp6 0 0 :::80 :::* LISTEN 
Enter fullscreen mode Exit fullscreen mode
  • ss: A tool to investigate sockets, network connections, and more.
State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* LISTEN 0 100 192.168.1.100:80 0.0.0.0:* 
Enter fullscreen mode Exit fullscreen mode
  • dig: A DNS lookup utility for querying DNS servers.
;; ANSWER SECTION: example.com. 86400 IN A 93.184.216.34 
Enter fullscreen mode Exit fullscreen mode
  • host: Another DNS lookup utility for translating hostnames to IP addresses and vice versa.
example.com has address 93.184.216.34 
Enter fullscreen mode Exit fullscreen mode
  • nslookup: Yet another DNS lookup utility for querying DNS servers.
Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: Name: example.com Address: 93.184.216.34 
Enter fullscreen mode Exit fullscreen mode
  • route: Displays and manipulates the IP routing table.
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 
Enter fullscreen mode Exit fullscreen mode
  • iptables: A powerful firewall utility for configuring packet filtering rules.
Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 
Enter fullscreen mode Exit fullscreen mode
  • nmap: A network scanning tool for discovering devices on a network.
Starting Nmap 7.80 ( https://nmap.org ) at 2024-09-01 12:00 UTC Nmap scan report for example.com (93.184.216.34) Host is up (0.0050s latency). Not shown: 998 closed ports PORT STATE SERVICE 80/tcp open http 443/tcp open https 
Enter fullscreen mode Exit fullscreen mode
  • curl: Used for transferring data with URLs and can test web services.
HTTP/1.1 200 OK Date: Thu, 01 Sep 2024 12:00:00 GMT Server: Apache Content-Length: 1234 Content-Type: text/html; charset=UTF-8 
Enter fullscreen mode Exit fullscreen mode
  • wget: Retrieves content from web servers.
--2024-09-01 12:00:00-- http://example.com/file.zip Resolving example.com (example.com)... 93.184.216.34 Connecting to example.com (example.com)|93.184.216.34|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 12345678 (12M) [application/zip] 
Enter fullscreen mode Exit fullscreen mode
  • ssh: Securely connects to remote servers.
Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-77-generic x86_64) Last login: Thu Sep 1 11:00:00 2024 from 192.168.1.2 
Enter fullscreen mode Exit fullscreen mode
  • scp: Securely copies files between hosts.
file.txt 100% 1234 1.2MB/s 00:00 
Enter fullscreen mode Exit fullscreen mode
  • telnet: Connects to remote hosts using the Telnet protocol.
Trying 192.168.1.1... Connected to 192.168.1.1. Escape character is '^]'. 
Enter fullscreen mode Exit fullscreen mode
  • arp: Displays and modifies the Address Resolution Protocol (ARP) cache.
Address HWtype HWaddress Flags Mask Iface 192.168.1.1 ether 00:1a:2b:3c:4d:5e C eth0 
Enter fullscreen mode Exit fullscreen mode
  • ethtool: Displays or changes ethernet card settings.
Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 
Enter fullscreen mode Exit fullscreen mode
  • tcpdump: A packet analyzer that captures and displays network packets.
12:00:00.123456 IP 192.168.1.2.12345 > 8.8.8.8.80: Flags [S], seq 1234567890, win 1024, options [mss 1460] 
Enter fullscreen mode Exit fullscreen mode

These networking commands are crucial for troubleshooting, network configuration, and monitoring.

Monitoring

Here are some of the most commonly used monitoring commands in Linux that are essential for DevOps:

  • top: Displays real-time system information, including CPU and memory usage.
top - 12:00:00 up 1 day, 1:00, 1 user, load average: 0.08, 0.07, 0.06 Tasks: 201 total, 1 running, 200 sleeping, 0 stopped, 0 zombie %Cpu(s): 3.2 us, 0.8 sy, 0.0 ni, 95.8 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 7847.4 total, 4986.4 free, 804.5 used, 2056.6 buff/cache MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 6847.7 avail Mem 
Enter fullscreen mode Exit fullscreen mode
  • htop: An interactive system-monitor process-viewer and process-manager.

Interactive process view, similar to top but with a more user-friendly interface

  • vmstat: Reports information about processes, memory, paging, block IO, traps, and CPU activity.
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 4986.4 2056.6 804.5 0 0 0 0 0 0 3 0 95 0 0 
Enter fullscreen mode Exit fullscreen mode
  • iostat: Reports CPU utilization and disk I/O statistics.
Linux 5.4.0-77-generic (hostname) 09/01/24 _x86_64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 3.2 0.0 0.8 0.2 0.0 95.8 
Enter fullscreen mode Exit fullscreen mode
  • sar: Collects, reports, or saves system activity information.
Linux 5.4.0-77-generic (hostname) 09/01/24 12:00:00 CPU %user %nice %system %iowait %steal %idle 12:05:00 all 3.2 0.0 0.8 0.2 0.0 95.8 
Enter fullscreen mode Exit fullscreen mode
  • free: Displays the amount of free and used memory in the system.
total used free shared buff/cache available Mem: 7847 804 4986 0 2056 6847 Swap: 2048 0 2048 
Enter fullscreen mode Exit fullscreen mode
  • uptime: Shows how long the system has been running, as well as load averages.
12:00:00 up 1 day, 1:00, 1 user, load average: 0.08, 0.07, 0.06 
Enter fullscreen mode Exit fullscreen mode
  • ps: Reports a snapshot of the current processes.
PID TTY TIME CMD 123 tty1 00:00:05 bash 456 tty2 00:02:10 python 
Enter fullscreen mode Exit fullscreen mode
  • pidstat: Monitors system resources, such as CPU, memory, and I/O usage for a specific process.
Linux 5.4.0-77-generic (hostname) 09/01/24 12:00:00 UID PID %usr %system %guest %wait CPU 12:00:05 0 123 3.0 0.5 0.0 0.0 all 
Enter fullscreen mode Exit fullscreen mode
  • dstat: Combines vmstat, iostat, and ifstat and presents it in a more user-friendly way.
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- usr sys idl wai hiq siq| read writ| recv send| in out | int csw 3 1 95 1 0 0| 123 456 | 78 90 | 12 34 | 56 78 
Enter fullscreen mode Exit fullscreen mode
  • nmon: A system performance monitor for Linux that displays performance data in a clear, concise way.

Output is typically interactive and graphical, providing real-time performance metrics in a comprehensive dashboard format

  • perf: A performance analyzing tool in Linux that supports various types of analysis.
Performance counter stats for 'programname': 1000.123456 task-clock # 1.000 CPUs utilized 12345 context-switches # 0.123 M/sec 6789 CPU-migrations # 0.0678 M/sec 1.234567890 seconds time elapsed 
Enter fullscreen mode Exit fullscreen mode
  • mpstat: Reports processors related statistics.
Linux 5.4.0-77-generic (hostname) 09/01/24 _x86_64_ (4 CPU) 12:00:00 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 12:00:05 all 2.0 0.0 1.0 0.2 0.0 0.0 0.0 0.0 0.0 97.8 
Enter fullscreen mode Exit fullscreen mode
  • iftop: Displays bandwidth usage on an interface by host.
12:00:00 up 1 day, 1:00, 1 user, load average: 0.08, 0.07, 0.06 Interface RX TX Total eth0 1.2KB/s 0.8KB/s 2.0KB/s 
Enter fullscreen mode Exit fullscreen mode
  • iotop: Monitors I/O usage information on a per-process basis.
Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s 
Enter fullscreen mode Exit fullscreen mode
  • lsof: Lists open files and the processes that opened them.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 1234 root 3u IPv4 12345 0t0 TCP *:22 (LISTEN) 
Enter fullscreen mode Exit fullscreen mode
  • strace: Traces system calls and signals.
strace -c ls % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 0.00 0.000000 0 5 read 0.00 0.000000 0 2 write 0.00 0.000000 0 7 open 0.00 0.000000 0 9 close 0.00 0.000000 0 7 fstat 0.00 0.000000 0 18 mmap 0.00 0.000000 0 13 mprotect 0.00 0.000000 0 2 munmap 0.00 0.000000 0 3 brk 0.00 0.000000 0 1 1 access 0.00 0.000000 0 1 execve 0.00 0.000000 0 1 arch_prctl ------ ----------- ----------- --------- --------- ---------------- 100.00 0.000000 69 1 total 
Enter fullscreen mode Exit fullscreen mode

These monitoring and performance commands are crucial for analyzing system performance, identifying bottlenecks, troubleshooting issues, and optimizing system resources.

Managing Processes

In a DevOps environment, monitoring and managing processes is crucial for maintaining system performance and stability. Here are some of the most commonly used process-related commands in Linux for DevOps tasks:

  • ps: Provides information about currently running processes.
PID USER TIME COMMAND 1234 root 0:02 /usr/sbin/apache2 5678 user 0:00 python script.py 
Enter fullscreen mode Exit fullscreen mode
  • pidstat: Reports statistics for processes and threads, including CPU, memory, and I/O usage.
Linux 5.4.0-77-generic (hostname) 09/01/24 12:00:00 UID PID %usr %system %guest %CPU CPU Command 12:05:00 0 1234 5.0 2.0 0.0 7.0 0 apache2 
Enter fullscreen mode Exit fullscreen mode
  • kill: Terminates a process by sending a signal.
kill -9 PID 
Enter fullscreen mode Exit fullscreen mode
  • pkill: Kills processes based on their name or other attributes. Example:
pkill process_name 
Enter fullscreen mode Exit fullscreen mode
  • pgrep: Lists processes based on name or other attributes.
pgrep -u username 
Enter fullscreen mode Exit fullscreen mode
  • killall: Kills processes by name.
killall process_name 
Enter fullscreen mode Exit fullscreen mode
  • pstree: Displays processes in a tree structure.
initโ”€โ”ฌโ”€apache2โ”€โ”€โ”€5*[apache2] โ”œโ”€cron โ”œโ”€sshd โ”œโ”€rsyslogd โ”œโ”€... 
Enter fullscreen mode Exit fullscreen mode
  • nice: Runs a command with a specified priority.
nice -n 10 ./my_script.sh 
Enter fullscreen mode Exit fullscreen mode

In this example, the nice command is used to launch my_script.sh with a lower priority (higher nice value), allowing other processes to take precedence.

  • renice: Changes the priority of a running process.
renice -n 5 -p 1234 
Enter fullscreen mode Exit fullscreen mode

This renice command changes the priority of the process with PID 1234 to a higher priority (lower nice value), giving it more CPU time compared to other processes.

Top comments (6)

Collapse
 
hectorlaris profile image
Hรฉctor Serrano

Thank you.

Collapse
 
haythammostafa profile image
Haytham Mostafa • Edited

Most welcome. I'm glad that this can help.

Collapse
 
viiik profile image
Eduard

I'd add rsync and rclone :)

Collapse
 
haythammostafa profile image
Haytham Mostafa

good addition for sure, but I preferred to keep only the most basic commands everyone need.

Collapse
 
pulkitsingh profile image
Pulkit Singh

Top

Collapse
 
haythammostafa profile image
Haytham Mostafa

Thanks