Shell Commands

From Teltonika Networks Wiki
Main Page > FAQ > Control & Configuration > Shell Commands

Summary

In this topic we will cover the basic CLI / SSH commands for beginners. It will help users manage and troubleshoot RUTxxx, RUTXxx, TRB14X devices.

Note: With almost every command, ‘--help’ option shows usage summary for that command. The commands have the following syntax:

$command options arguments

Command table

This section provides a list of basic CLI / SSH commands and options.

CLI commands
Command Syntax Description
File commands
pwd pwd Show current working directory.
cd cd </path-to-directory> Change the current working directory to the directory provided as argument. If no argument is given to cd, it changes the directory to the user's home directory.
ls ls <files-or-directories> List files or directories. Example: ls /etc/config/
mkdir mkdir <dir1> Creating a directory “dir1”.
touch touch <file1> Create empty file “file1”.
cp cp <file1> <file2> Copy the contents of “file1” to “file2”.
cp -r cp –r <dir1> <dir2> Copy “dir1” to “dir2”; creates “dir2” if not present.
mv mv <file1> <file2> Move files or directories.
rm rm <file1> Deleting the file “file1”.
rm -r rm –r <dir1> Deleting the directory “dir1”.
cat cat <file1> To view the contents of a “file1”. Example: cat /etc/config/system
vi vi <file1> Open a file with vi for editing. Press ‘i’, to enter INSERT mode, and start editing file. Press Esc to exit INSERT mode. Press ‘:x’ and 'Enter'. Changes will be saved.
Search commands
grep grep <pattern> <file> The grep command searches for a pattern in a file. Example to grep only version info from system file: grep version /etc/config/system
find find <path> -name <"pattern"> Find files or directories in specified directory that start with "pattern". Example: find / -name "modbus"
Piping commands
| <command1> | <command2> ... Pipe is a command that lets you use two or more commands such that output of one command serves as input to the next. Example, how to see only dhcp info from logread file: logread |grep dhcp
Process commands
ps ps Show the currently working processes.
kill kill <pid> Kill the process with given pid. Pid – is process ID, you can see it executing ps command. Kill -9 <pid> - force kill process pid.
top top Display all running process.
free free -h Command is used to display amount of free and used RAM in the system, also prints the swap space stats.
System commands
df df -h Show the disk usage.
uname uname -a Show kernel information.
- cat /proc/cpuinfo CPU information.
- cat /proc/version CPU version.
Network commands
ping ping <host> Ping host and output results. Example: ping 8.8.8.8
route route -n To see IP routing tables.
traceroute traceroute <domain> Displaying the route (path) and measuring transit delays of packets takes to destination. Example: traceroute teltonika-networks.com
tcpdump tcpdump <-option1> <-option2> ... To display packets being transmitted or received over a network interface. Example: tcpdump -n port 80 –I eth0
netstat netstat <-option1> <-option2> ... The netstat is a command used to check the network statistics of the system. It delivers basic statistics on all network activities and informs users on which ports and addresses the corresponding connections (TCP, UDP) are running and which ports are open for tasks.
- ip route |grep default To view default gateway.
- cat /tmp/resolv.conf.auto To view DNS address.
ifconfig ifconfig Displays the status of the system's active interfaces.
- /etc/init.d/<script name> Start/stop/restart running scripts. Example: /etc/init.d/firewall restart
iperf3 iperf <-s|-c host> <options> It is a tool to measure the bandwidth and the quality of a network link. It is additional package. First it should be installed on device: opkg install iperf3

Syntax examples for server: iperf3 -s -p 5000; for client: iperf3 -c IPADDRESS -p 5000 -t 10

Installation commands
opkg opkg <options> sub-command <arguments> The opkg utility is the lightweight package manager used for downloading and installing pre-made packages from package repositories. See examples on: Installation_commands
Extra commands
gsmctl gsmctl Can request information from or perform operations on an router’s module. More information on Teltonika wiki: Gsmctl_commands
reboot reboot To reboot the device immediately.
logread logread -f Show log output on screen. Example: logread –f |grep DHCP

Examples

File commands


1. pwd command shows current working directory:

...
root@Teltonika:~# pwd
/root
...

2. cd command is used to change the current working directory to the directory provided as argument.

Example: when you're on your Home directory, you need to go to the /etc/config directory, use cd /etc/config:

...
root@Teltonika:~# cd /etc/config/
root@Teltonika:/etc/config#
...

3. ls command is used to list files or directories.

Example: use ls /etc/config to list contents of the "/etc/config" folder:

...
root@Teltonika:~# ls /etc/config/
auto_update           events_reporting      load_balancing        multiwan              pptpd                 rpcd                  stunnel
blocklist             eventslog_report      logtrigger            network               privoxy               rut_fota              system
call_utils            firewall              luci                  ntpclient             profiles              sim_idle_protection    
cli                   fstab                 mdcollectd            ntpserver             qos                   sim_switch            ucitrack
coovachilli           gps                   modbus                openvpn               quagga                simcard               uhttpd
data_limit            hostblock             modbus_data_sender    operctl               racoon                smpp_config           vrrpd
ddns                  hotspot_scheduler     modbus_master_alarms  output_control        radius                sms_gateway            
ddos                  hwinfo                modbus_tcp_master     overview              reregister            sms_utils             wireless
dhcp                  ioman                 modbusgateway         periodic_reboot       rms_connect_mqtt      smscollect            xl2tpd
dropbear              kmod_man              mosquitto             ping_reboot           rms_connect_timer     static_arp
etherwake             landingpage           mqtt_pub              portscan              rms_mqtt              strongswan
...

4. mkdir command is used to create a directory.

Example: use mkdir /etc/Example_dir to make a new directory named "Example_dir":

...
root@Teltonika:~# mkdir /etc/Example_dir
root@Teltonika:~# ls /etc/
Example_dir           chilli.conf           fstab                 ipsec.d               package_restore.sh    rc.common             stunnel               
...

5. touch command is used to create empty file.

Example: use touch /etc/Example_dir/Example_file1.txt to create a blank txt file under the "/etc/Example_dir" directory:

...
root@Teltonika:~# touch /etc/Example_dir/Example_file1.txt
root@Teltonika:~# ls /etc/Example_dir/
Example_file1.txt
...

6. cat command is used to get inside contents of a file.

Example: use cat /etc/config/ping_reboot to get the inside contents of "ping_reboot" file in your screen:

...
root@Teltonika:~# cat /etc/config/ping_reboot
config ping_reboot
       option enable '0'
       option action '1'
       option time '5'
       option host '8.8.8.8'
       option retry '2'
       option fail_counter '0'
       option packet_size '56'
       option time_out '5'
       option interface '1'
       option stop_action '0'
...

7. cp command is used to copy the contents of “file1” to “file2”.

Example: use cp Example_file1.txt Example_file2.txt, to copy content of file "Example_file1.txt" to "Example_file2.txt":

...
root@Teltonika:/etc/Example_dir# cp Example_file1.txt Example_file2.txt
root@Teltonika:/etc/Example_dir# ls
Example_file1.txt  Example_file2.txt
root@Teltonika:/etc/Example_dir# cat Example_file2.txt
"Sample text !!!"
...

8. cp -r command is used to copy “dir1” to “dir2”; creates “dir2” if not present.

Example: use cp -r Example_dir Example_dir2, to copy directory "Example_dir":

...
root@Teltonika:/etc# cp -r Example_dir Example_dir2
root@Teltonika:/etc# ls
Example_dir           chilli                freeradius2           ipsec.conf            opkg.conf             rc.button             
Example_dir2          chilli.conf           fstab                 ipsec.d               package_restore.sh    rc.common             stunnel
...

9. rm command is used to delete the file.

Example: use rm /etc/Example_dir2/Example_file1.txt, to delete file "Example_file1":

...
root@Teltonika:~# rm /etc/Example_dir2/Example_file1.txt
root@Teltonika:~# ls /etc/Example_dir2/
Example_file2.txt
...

10. rm -r command is used delete the directory.

Example: use rm -r /etc/Example_dir, to delete directory "Example_dir":

...
root@Teltonika:~# rm -r /etc/Example_dir
root@Teltonika:~# ls /etc/
Example_dir2          chilli.conf           fstab                 ipsec.d               package_restore.sh    rc.common             stunnel
...

11. mv command is used to move files or directories.

Example: use mv /etc/Example_new /etc/Example_dir2/, to move directory "Example_new" to directory "Example_dir2":

...
root@Teltonika:~# mv /etc/Example_new /etc/Example_dir2/
root@Teltonika:~# ls /etc/Example_dir2/
Example_new    
...

12. vi command is used to edit files.

Example: use vi /etc/Example_dir2/Example_file2.txt, to edit file "Example_file2.txt". Press ‘i’, to enter INSERT mode, it will let you edit. Press Esc to exit INSERT mode. Press ‘:x’ and 'Enter' to save changes:

...
root@Teltonika:~# vi /etc/Example_dir2/Example_file2.txt    
...

Process management commands


1. ps command shows the currently working processes:

...
root@Teltonika:~# ps
 PID USER       VSZ STAT COMMAND
   1 root      1596 S    /sbin/procd
   2 root         0 SW   [kthreadd]
   3 root         0 SW   [ksoftirqd/0]
   5 root         0 SW<  [kworker/0:0H]
   7 root         0 SW<  [khelper]
  28 root         0 SW<  [writeback]
  29 root         0 SW<  [bioset]
  30 root         0 SW<  [kblockd]
  31 root         0 SW   [kworker/0:1]
  32 root         0 SW   [kswapd0]
  33 root         0 SW   [fsnotify_mark]
  35 root         0 SW   [spi0]
 254 root         0 SW<  [deferwq]
 329 root         0 SWN  [jffs2_gcd_mtd5]
 494 root      1244 S    /sbin/ubusd
 570 root         0 SW<  [ipv6_addrconf]
...

2. kill command is used to kill the process with given pid.

Example, use kill 570 to stop process ID - 570 [ipv6_addrconf]

...
root@Teltonika:~# kill 570
...

3. top command shows all running process:

...
root@Teltonika:~# top
Mem: 49948K used, 11068K free, 188K shrd, 6764K buff, 16836K cached
CPU:   0% usr   9% sys   0% nic  81% idle   0% io   0% irq   9% sirq
Load average: 0.02 0.06 0.07 1/59 19825
 PID  PPID USER     STAT   VSZ %VSZ %CPU COMMAND
19825 13212 root     R     1524   2%   9% top
 5989     1 root     S     7572  12%   0% /usr/sbin/rms_mqtt
 4466     1 root     S     7088  12%   0% /usr/bin/mwan
 3862     1 root     S     4400   7%   0% /usr/bin/mdcollectd start
 2102     1 root     S     4260   7%   0% /usr/sbin/uhttpd -f -h /www -r Teltonika -x /cgi-bin -u /ubus -t 600 -T 30 -k 20 -A 1 -n 3 -N 100
 5376     1 root     S     4024   7%   0% /usr/sbin/openvpn --syslog openvpn(client_cln) --cd /var/etc --config openvpn-client_cln.conf
 1594     1 root     S     3056   5%   0% /usr/sbin/gsmd -p /dev/modem_cmd -s 115200 -m auto
 1466     1 root     S     2504   4%   0% /usr/bin/eventslogd
 1035     1 root     S     2132   3%   0% /sbin/rpcd
 3902     1 root     S     2036   3%   0% /usr/sbin/port_event_checker
 3021     1 root     S     2004   3%   0% /usr/sbin/wpa_supplicant -B -s -P /var/run/wpa_supplicant-wlan0.pid -D nl80211 -i wlan0
 2910     1 root     S     1996   3%   0% /usr/sbin/hostapd -s -P /var/run/wifi-phy0.pid -B /var/run/hostapd-phy0.conf
 1279     1 root     S     1784   3%   0% /sbin/netifd
    1     0 root     S     1596   3%   0% /sbin/procd
 4035     1 root     S     1580   3%   0% /bin/sh /sbin/fix_sta_ap.sh
...

4. free -h command is used to display amount of free and used RAM in the system, also prints the swap space stats:

...
root@Teltonika:~# free -h
              total        used        free      shared  buff/cache   available
Mem:          61016       26992       10420         188       23604       34964
Swap:             0           0           0
...

System commands


1. df -h command shows the disk space usage:

...
root@Teltonika:~# df -h
Filesystem                Size      Used Available Use% Mounted on
rootfs                    2.4M    640.0K      1.8M  26% /
/dev/root                11.8M     11.8M         0 100% /rom
tmpfs                    29.8M    188.0K     29.6M   1% /tmp
/dev/mtdblock5            2.4M    640.0K      1.8M  26% /overlay
overlayfs:/overlay        2.4M    640.0K      1.8M  26% /
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/mtdblock7          576.0K    336.0K    240.0K  58% /mnt/mtdblock7
...

2. uname -a command shows kernel information:

...
root@Teltonika:~# uname -a
Linux Teltonika 3.18.44 #1 Tue Mar 24 13:53:40 UTC 2020 mips GNU/Linux
...

3. cat /proc/cpuinfo command shows CPU information:

...
root@Teltonika:~# cat /proc/cpuinfo
system type             : Atheros AR9330 rev 1
machine                 : Teltonika RUT200
processor               : 0
cpu model               : MIPS 24Kc V7.4
BogoMIPS                : 265.42
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 16
extra interrupt vector  : yes
hardware watchpoint     : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa                     : mips1 mips2 mips32r1 mips32r2
ASEs implemented        : mips16
shadow register sets    : 1
kscratch registers      : 0
package                 : 0
core                    : 0
VCED exceptions         : not available
VCEI exceptions         : not available
...

4. cat /proc/version command shows CPU version:

...
root@Teltonika:~# cat /proc/version
Linux version 3.18.44 (app@runner-DsCEGNRx-project-7-concurrent-0) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 unknown) ) #1
...

Installation commands


The opkg utility is the lightweight package manager used for downloading and installing pre-made packages from package repositories. For more information visit: https://openwrt.org/docs/guide-user/additional-software/opkg


1. opkg update command updates list of available packages:

...
root@Teltonika:~# opkg update
Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/packages/base/Packages.gz.
Updated list of available packages in /var/opkg-lists/chaos_calmer_base.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/packages/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/chaos_calmer_packages.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/packages/luci/Packages.gz.
Updated list of available packages in /var/opkg-lists/chaos_calmer_luci.
...

2. opkg list command lists available packages.

Example: use opkg list |grep iperf3 to list tool "iperf3" info:

...
root@Teltonika:~# opkg list |grep iperf3
iperf3 - 3.0.11-1 - Iperf is a modern alternative for measuring TCP and UDP bandwidth performance, allowing the tuning of various parameters.
...

3. opkg install <paskage name> command installs packages.

Example: use opkg install iperf3 to install package "iperf3":

...
root@Teltonika:~# opkg install iperf3
Installing iperf3 (3.0.11-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/packages/base/iperf3_3.0.11-1_ar71xx.ipk.
Configuring iperf3.
...

4. opkg upgrade <paskage name> command upgrades packages.

Example: use opkg upgrade iperf3 to upgrade package "iperf3":

...
root@Teltonika:~# opkg upgrade iperf3
Installing iperf3 (3.0.11-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/packages/base/iperf3_3.0.11-1_ar71xx.ipk.
Configuring iperf3.
...

3. opkg remove <paskage name> command removes packages.

Example: use opkg remove iperf3 to remove package "iperf3":

...
root@Teltonika:~# opkg remove iperf3
Removing package iperf3 from root...
...

Networking commands


1. ifconfig command shows all network interface information. Some basic use could be like checking which network interfaces are connected and their respective MAC or IP address.

Example: use ifconfig to see network interfaces:

...
root@Teltonika:~# ifconfig
br-lan    Link encap:Ethernet  HWaddr 00:1E:42:26:2B:F0
         inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
         inet6 addr: fe80::21e:42ff:fe26:2bf0/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:3726 errors:0 dropped:0 overruns:0 frame:0
         TX packets:2924 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0
         RX bytes:451598 (441.0 KiB)  TX bytes:991568 (968.3 KiB)
eth0      Link encap:Ethernet  HWaddr 00:1E:42:26:2B:F0
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:3737 errors:0 dropped:11 overruns:0 frame:0
         TX packets:2917 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:504422 (492.5 KiB)  TX bytes:990758 (967.5 KiB)
         Interrupt:5
lo        Link encap:Local Loopback
         inet addr:127.0.0.1  Mask:255.0.0.0
         inet6 addr: ::1/128 Scope:Host
         UP LOOPBACK RUNNING  MTU:65536  Metric:1
         RX packets:76 errors:0 dropped:0 overruns:0 frame:0
         TX packets:76 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0
         RX bytes:6963 (6.7 KiB)  TX bytes:6963 (6.7 KiB)
wlan0     Link encap:Ethernet  HWaddr 00:1E:42:26:2B:F2
         inet addr:192.168.88.197  Bcast:192.168.88.255  Mask:255.255.255.0
         inet6 addr: fe80::21e:42ff:fe26:2bf2/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:34007 errors:0 dropped:146 overruns:0 frame:0
         TX packets:4360 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0
         RX bytes:5610523 (5.3 MiB)  TX bytes:523881 (511.6 KiB)
wlan0-1   Link encap:Ethernet  HWaddr 02:1E:42:26:2B:F2
         inet6 addr: fe80::1e:42ff:fe26:2bf2/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:728 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0
         RX bytes:0 (0.0 B)  TX bytes:239145 (233.5 KiB)
wwan0     Link encap:Ethernet  HWaddr 12:2A:38:D0:1D:21
         inet6 addr: fe80::102a:38ff:fed0:1d21/64 Scope:Link
         UP BROADCAST RUNNING NOARP MULTICAST  MTU:1500  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:1494 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:0 (0.0 B)  TX bytes:55434 (54.1 KiB)
...

2. ip route |grep default command used to view default gateway:

...
root@Teltonika:~# ip route |grep default
default via 84.15.163.16 dev wwan0  metric 1
...

3. cat /tmp/resolv.conf.auto command used to view DNS addresses:

...
root@Teltonika:~# cat /tmp/resolv.conf.auto
# Interface ppp_4
nameserver 213.226.131.131
nameserver 193.219.88.36
...

4. ping command used to test connectivity between hosts:

Use ping to see all options:

...
root@Teltonika:~# ping
BusyBox v1.30.1 () multi-call binary.
Usage: ping [OPTIONS] HOST
Send ICMP ECHO_REQUEST packets to network hosts
       -4,-6           Force IP or IPv6 name resolution
       -c CNT          Send only CNT pings
       -s SIZE         Send SIZE data bytes in packets (default 56)
       -i SECS         Interval
       -A              Ping as soon as reply is recevied
       -t TTL          Set TTL
       -I IFACE/IP     Source interface or IP address
       -W SEC          Seconds to wait for the first response (default 10)
                       (after all -c CNT packets are sent)
       -w SEC          Seconds until ping exits (default:infinite)
                       (can exit earlier with -c CNT)
       -q              Quiet, only display output at start
                       and when finished
       -p HEXBYTE      Pattern to use for payload
...

Example: use ping -I 192.168.1.1 192.168.1.111 to ping host 192.168.1.111 frew LAN interface 192.168.1.1:

...
root@Teltonika:~# ping -I 192.168.1.1 192.168.1.111
PING 192.168.1.111 (192.168.1.111) from 192.168.1.1: 56 data bytes
64 bytes from 192.168.1.111: seq=0 ttl=128 time=0.893 ms
64 bytes from 192.168.1.111: seq=1 ttl=128 time=0.839 ms
64 bytes from 192.168.1.111: seq=2 ttl=128 time=1.067 ms
64 bytes from 192.168.1.111: seq=3 ttl=128 time=0.781 ms
...

5. route command used to see IP routing tables.

Example: use route -n to see routing tables and don't resolve names:

...
root@Teltonika:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         84.15.163.16    0.0.0.0         UG    1      0        0 wwan0
84.15.163.0     0.0.0.0         255.255.255.224 U     0      0        0 wwan0
84.15.163.16    0.0.0.0         255.255.255.255 UH    0      0        0 wwan0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 br-lan
...

6. traceroute command used to view the route (path) and measuring transit delays of packets takes to destination.

Use traceroute to see all options:

...
root@Teltonika:~# traceroute
BusyBox v1.30.1 () multi-call binary.
Usage: traceroute [-FIlnrv] [-f 1ST_TTL] [-m MAXTTL] [-q PROBES] [-p PORT]
       [-t TOS] [-w WAIT_SEC] [-s SRC_IP] [-i IFACE]
       [-z PAUSE_MSEC] HOST [BYTES]
Trace the route to HOST
       -F      Set don't fragment bit
       -l      Display TTL value of the returned packet
       -n      Print numeric addresses
       -r      Bypass routing tables, send directly to HOST
       -v      Verbose
       -f N    First number of hops (default 1)
       -m N    Max number of hops
       -q N    Number of probes per hop (default 3)
       -p N    Base UDP port number used in probes
               (default 33434)
       -s IP   Source address
       -i IFACE Source interface
       -t N    Type-of-service in probe packets (default 0)
       -w SEC  Time to wait for a response (default 3)
       -g IP   Loose source route gateway (8 max)
...

Example: use traceroute teltonika-networks.com -n to see path to destination teltonika-networks.com:

...
root@Teltonika:~# traceroute teltonika-networks.com -n
traceroute to teltonika-networks.com (13.32.43.40), 30 hops max, 38 byte packets
1  *  *  *
2  10.225.72.9  48.441 ms  28.459 ms  40.557 ms
3  10.224.72.9  28.655 ms  27.577 ms  24.268 ms
4  10.224.72.20  26.963 ms  28.636 ms  28.579 ms
5  84.15.10.245  33.991 ms  27.176 ms  39.612 ms
6  213.252.227.173  28.585 ms  29.742 ms  213.252.224.217  33.504 ms
7  213.252.227.250  28.838 ms  213.252.224.250  33.806 ms  213.252.227.250  27.663 ms
8  213.252.224.254  28.347 ms  34.179 ms  28.548 ms
...

7. tcpdump is command-line packets sniffer tool which is used to capture or filter TCP/IP packets that received or transferred over a network on a specific interface.

Use tcpdump -h to see all options:

...
root@Teltonika:~# tcpdump -h
tcpdump version 4.9.2
libpcap version 1.8.1
Usage: tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ]
               [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
               [ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ]
               [ -Q in|out|inout ]
               [ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ]
               [ --immediate-mode ] [ -T type ] [ --version ] [ -V file ]
               [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ]
               [ -Z user ] [ expression ]
...

Example: use tcpdump -D to display available interfaces:

...
root@Teltonika:~# tcpdump -D
1.eth0 [Up, Running]
2.wwan0 [Up, Running]
3.br-lan [Up, Running]
4.wlan0 [Up, Running]
5.any (Pseudo-device that captures on all interfaces) [Up, Running]
6.lo [Up, Running, Loopback]
...

Example: use tcpdump -n -i wwan0 to capture IP address packets from mobile interface:

...
root@Teltonika:~# tcpdump -n -i wwan0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wwan0, link-type EN10MB (Ethernet), capture size 262144 bytes
16:40:16.620564 IP 41.36.236.201.56037 > 84.15.163.15.23: Flags [S], seq 1410310927, win 33462, length 0
16:40:16.620887 IP 84.15.163.15.23 > 41.36.236.201.56037: Flags [R.], seq 0, ack 1410310928, win 0, length 0
16:40:19.732046 IP 84.15.163.15 > 8.8.4.4: ICMP echo request, id 522, seq 0, length 17
16:40:19.795429 IP 8.8.4.4 > 84.15.163.15: ICMP echo reply, id 522, seq 0, length 17
16:40:24.796440 IP 84.15.163.15 > 8.8.4.4: ICMP echo request, id 523, seq 0, length 17
16:40:24.863184 IP 8.8.4.4 > 84.15.163.15: ICMP echo reply, id 523, seq 0, length 17
...

Example: use tcpdump host 192.168.1.111 and icmp -i any -n to capture only icmp packets from 192.168.1.111 on any interface:

...
root@Teltonika:~# tcpdump host 192.168.1.111 and icmp -i any -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
16:42:46.122094 IP 192.168.1.111 > 192.168.1.1: ICMP echo request, id 1, seq 48, length 40
16:42:46.122142 IP 192.168.1.111 > 192.168.1.1: ICMP echo request, id 1, seq 48, length 40
16:42:46.122458 IP 192.168.1.1 > 192.168.1.111: ICMP echo reply, id 1, seq 48, length 40
16:42:46.122493 IP 192.168.1.1 > 192.168.1.111: ICMP echo reply, id 1, seq 48, length 40
...

8. netstat [-ral] [-tuwx] [-enWp] command used to check the network statistics.

Example: use netstat -h to see all options:

...
root@Teltonika:~# netstat -h
netstat: invalid option -- h
BusyBox v1.30.1 () multi-call binary.
Usage: netstat [-ral] [-tuwx] [-enWp]
Display networking information
       -r      Routing table
       -a      All sockets
       -l      Listening sockets
               Else: connected sockets
       -t      TCP sockets
       -u      UDP sockets
       -w      Raw sockets
       -x      Unix sockets
               Else: all socket types
       -e      Other/more information
       -n      Don't resolve names
       -W      Wide display
       -p      Show PID/program name for sockets
...

Example: use netstat -n -p -t to see established connection for TCP socket, not resolving names and showing PID/program:

...
root@Teltonika:~# netstat -n -p -t
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 192.168.1.1:22          192.168.1.111:55826     ESTABLISHED 13199/dropbear
tcp        0      0 192.168.1.1:22          192.168.1.111:55824     ESTABLISHED 13169/dropbear
tcp        0      0 84.15.163.15:56982      18.196.62.30:15010      ESTABLISHED 5989/rms_mqtt
...

9. iperf3 is a tool to measure the bandwidth and the quality of a network link.

First it should be installed on device. Use command opkg install iperf3:

...
root@Teltonika:~# opkg install iperf3
Installing iperf3 (3.0.11-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/packages/base/iperf3_3.0.11-1_ar71xx.ipk.
Configuring iperf3.
...

Use iperf3 -h to see all options:

...
root@Teltonika:~# iperf3 -h
Usage: iperf [-s|-c host] [options]
       iperf [-h|--help] [-v|--version]
Server or Client:
 -p, --port      #         server port to listen on/connect to
 -f, --format    [kmgKMG]  format to report: Kbits, Mbits, KBytes, MBytes
 -i, --interval  #         seconds between periodic bandwidth reports
 -F, --file name           xmit/recv the specified file
 -A, --affinity n/n,m      set CPU affinity
 -B, --bind      <host>    bind to a specific interface
 -V, --verbose             more detailed output
 -J, --json                output in JSON format
 -d, --debug               emit debugging output
 -v, --version             show version information and quit
 -h, --help                show this message and quit
Server specific:
 -s, --server              run in server mode
 -D, --daemon              run the server as a daemon
 -1, --one-off             handle one client connection then exit
Client specific:
 -c, --client    <host>    run in client mode, connecting to <host>
 -u, --udp                 use UDP rather than TCP
 -b, --bandwidth #[KMG][/#] target bandwidth in bits/sec (0 for unlimited)
                           (default 1 Mbit/sec for UDP, unlimited for TCP)
                           (optional slash and packet count for burst mode)
 -t, --time      #         time in seconds to transmit for (default 10 secs)
 -n, --bytes     #[KMG]    number of bytes to transmit (instead of -t)
 -k, --blockcount #[KMG]   number of blocks (packets) to transmit (instead of -t or -n)
 -l, --len       #[KMG]    length of buffer to read or write
                           (default 128 KB for TCP, 8 KB for UDP)
 -P, --parallel  #         number of parallel client streams to run
 -R, --reverse             run in reverse mode (server sends, client receives)
 -w, --window    #[KMG]    set window size / socket buffer size
 -C, --linux-congestion <algo>  set TCP congestion control algorithm (Linux only)
 -M, --set-mss   #         set TCP maximum segment size (MTU - 40 bytes)
 -N, --nodelay             set TCP no delay, disabling Nagle's Algorithm
 -4, --version4            only use IPv4
 -6, --version6            only use IPv6
 -S, --tos N               set the IP 'type of service'
 -L, --flowlabel N         set the IPv6 flow label (only supported on Linux)
 -Z, --zerocopy            use a 'zero copy' method of sending data
 -O, --omit N              omit the first n seconds
 -T, --title str           prefix every output line with this string
 --get-server-output       get results from server
[KMG] indicates options that support a K/M/G suffix for kilo-, mega-, or giga-
iperf3 homepage at: http://software.es.net/iperf/
Report bugs to:     https://github.com/esnet/iperf
...


Use iperf3 -s -p 5000 to enable iperf3 server listening on port 5000 on device1:

...
root@Teltonika:~# iperf3 -s -p 5000
-----------------------------------------------------------
Server listening on 5000
-----------------------------------------------------------
...

Use iperf3 -c IPADDRESS -p 5000 -t 5 to launch iperf3 client on device2:

...
root@Teltonika:~# iperf3 -c 192.168.1.111 -p 5000 -t 10
Connecting to host 192.168.1.111, port 5000
[  4] local 192.168.1.1 port 45060 connected to 192.168.1.111 port 5000
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.12   sec  8.75 MBytes  65.7 Mbits/sec    0   28.5 KBytes
[  4]   1.12-2.11   sec  6.93 MBytes  58.7 Mbits/sec    1   29.9 KBytes
[  4]   2.11-3.09   sec  7.50 MBytes  64.4 Mbits/sec    0   31.4 KBytes
[  4]   3.09-4.09   sec  8.27 MBytes  68.7 Mbits/sec    1   31.4 KBytes
[  4]   4.09-5.07   sec  7.85 MBytes  67.6 Mbits/sec    0   34.2 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.08  sec  78.7 MBytes  65.5 Mbits/sec    3             sender
[  4]   0.00-10.08  sec  78.7 MBytes  65.5 Mbits/sec                  receiver
iperf Done.
...

Search commands


1. grep <pattern> <file> command searches for a pattern in a file.

Example: use grep version /etc/config/system to see only version in file "system":

...
root@Teltonika:~# grep version /etc/config/system
option device_fw_version 'RUT2XX_R_00.01.12'
...

2. find <path> -name <"pattern"> command finds files or directories in specified directory that start with "pattern".

Example: use find / -name "modbus" to find file or directory in root that start with "modbus":

...
root@Teltonika:~# find / -name "modbus"
/etc/config/modbus
/overlay/upper/etc/config/modbus
/rom/etc/config/modbus
...

Piping commands


1. | pipe is command that lets you use two or more commands such that output of one command serves as input to the next.

Example: use logread |grep dhcp to see only dhcp info on logread file:

...
root@Teltonika:~# logread |grep dhcp
Fri Apr  3 18:58:40 2020 daemon.info dnsmasq-dhcp[2945]: DHCP, IP range 192.168.1.100 -- 192.168.1.249, lease time 12h
Fri Apr  3 18:58:40 2020 daemon.info dnsmasq-dhcp[2945]: read /etc/ethers - 0 addresses
Fri Apr  3 18:58:43 2020 daemon.notice netifd: wan3 (3120): udhcpc: started, v1.30.1
Fri Apr  3 18:58:44 2020 daemon.notice netifd: wan3 (3120): udhcpc: sending discover
Fri Apr  3 18:58:47 2020 daemon.notice netifd: wan3 (3120): udhcpc: sending discover
Fri Apr  3 18:58:47 2020 daemon.notice netifd: wan3 (3120): udhcpc: sending select for 192.168.88.197
Fri Apr  3 18:58:47 2020 daemon.notice netifd: wan3 (3120): udhcpc: lease of 192.168.88.197 obtained, lease time 86400
...