CLI Overview
This chapter presents a brief summary of the OSDx CLI. CLI stands for Command Line Interface.
The OSDx CLI has many features, including auto-completion, online help, history, etc.
It has two modes of operation:
Operational menu. In this menu, you can perform some basic network operations (like ping, traceroute, ssh, etc), filesystem operations (copy, remove, show, etc) or monitor/debug system information.
Configuration menu. In this menu, you can modify the device configuration. The prompt changes to bold letters and ends with
#
.
Important
You can press the TAB key at any time to show a list of available completions for the current editing line.
Accessing the CLI
First of all, you will need to access the CLI, to do so there are several methods: locally, through the serial port if the device has one; or remotely, through Telnet or, preferably SSH. Once in the OSDx CLI, it will behave equivalently regardless of how it was accessed.
Local access
If the device is physically accessible and it has a serial or console port (usually
marked as CON
), you may access the CLI through it.
All OSDx devices use asynchronous serial transfer at 115200 Baud, no parity, with 8
data bits and 1 stop bit (115200N81
).
Example:
osdx login: admin
Password:
Welcome to Teldat OSDx v3.7.1.3
This system includes free software.
Contact Teldat for licenses information and source code.
admin@osdx$
Remote access
The CLI is accessible remotely via Telnet or SSH. Although, by default, only SSH is enabled.
The default configuration tries to get an IP address through DHCP, in the following
examples 10.215.168.2
is used. Note that this value depends on the DHCP server.
SSH example:
$ ssh admin@10.215.168.2
Warning: Permanently added '10.215.168.2' (ED25519) to the list of known hosts.
admin@10.215.168.2's password:
Welcome to Teldat OSDx v3.7.1.3
This system includes free software.
Contact Teldat for licenses information and source code.
admin@osdx$
Telnet example:
$ telnet 10.215.168.2
Trying 10.215.168.2...
Connected to 10.215.168.2.
Escape character is '^]'.
osdx login: admin
Password:
Last login: Mon Jul 3 09:16:40 UTC 2023 from 10.215.168.1 on pts/0
Welcome to Teldat OSDx v3.7.1.3
This system includes free software.
Contact Teldat for licenses information and source code.
admin@osdx$
Operational Mode
By default, OSDx is in operational mode and, as previously stated, the command prompt
displays a $
. OSDx features a rich set of operational level commands to retrieve arbitrary
information about your running system.
One of the most useful commands is show version
. This command shows summarized
information relative to the device:
OS, hardware and system status.
admin@osdx$ show version
OS vendor: Teldat
OS name: OSDx
OS version: v3.1.1.1
OS Linux kernel: 4.19.181
OS built by: jeknins@daphne
OS build date: Mon Sep 20 11:56:22 UTC 2021
OS installation: physical
OS boot mode: user
License: BASE N-Cores-1
Hardware vendor: innotek GmbH
Hardware model: SDE
Hardware OEM model: VirtualBox
Hardware version: 1.2
Hardware S/N: 0
Hardware UUID: d45cddc3-ecc6-5776-877e-87749826dc82
Hardware architecture: amd64
Hardware fwid: iso
Hardware base MAC: 08:00:27:fc:9d:2c
Hardware cpu: 1 x Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz (4 cores)
Last reboot reason: Performed by user
Date: Tue 21 Sep 2021 11:16:00 AM UTC
Uptime: 3:12:01
CPU load (1m, 5m, 15m): 0.00 0.00 0.00
CPU usage % (1m): 0.62
Storage usage (kB): 589868/20501072
Memory usage (kB): 297480/2042816
Temperature (ºC): 0
Users logged in: 0
Mode (current/next boot): user/user
Hostname: osdx
interfaces show
can be used to display basic interface status information:
-----------------------------------------------------------------
Name IP Adress Admin Oper Vrf Description
-----------------------------------------------------------------
dum0 fe80::a068:b3ff:fe36:fdb2/64 up up
eth0 10.0.0.1/24 up up
fe80::a00:27ff:fe24:1aac/64
eth1 down down
eth2 down down
eth3 192.168.213.18/22 up up
fe80::a00:27ff:fec0:ad36/64
lo 127.0.0.1/8 up up
::1/128
The poweroff
and reboot
commands can be used to power off or reboot the device.
show running
displays the configuration that is currently active:
admin@osdx# show running
set interfaces ethernet eth0 address 10.0.0.1/24
set interfaces ethernet eth3 address 192.168.213.18/22
set service dns forwarding name-server 192.168.212.3
set service ssh
set system login user admin authentication encrypted-password $6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0
To change the current configuration, you need to access the configuration menu.
Configuration Mode
To configure OSDx, you will need to enter configuration mode, resulting in the
command prompt displaying a #
as shown below:
admin@osdx$ configure
admin@osdx#
To modify the device configuration, you must use the set
prefix.
This is used to add a new configuration path or value in the device configuration.
Example:
admin@osdx# set system description MyDescription
The following three commands can be used to retrieve the system configuration:
show running
: to display the running (or currently active) configuration.show working
: to display the working configuration (including non-commited changes).show changes
: to display differences between the running and working configurations.
Example:
admin@osdx# set traffic selector SEL_ICMP rule 1 protocol icmp
admin@osdx# set traffic policy DROP_ICMP rule 1 selector SEL_ICMP
admin@osdx# set traffic policy DROP_ICMP rule 1 action drop
admin@osdx#
admin@osdx# show changes
set traffic policy DROP_ICMP rule 1 action drop
set traffic policy DROP_ICMP rule 1 selector SEL_ICMP
set traffic selector SEL_ICMP rule 1 protocol icmp
admin@osdx#
admin@osdx# commit
The delete
command can be used to delete a value or a complete subtree from the
configuration.
Example:
admin@osdx# delete interfaces ethernet eth0
Warning
If you delete an attribute from a node and it was the last one, the whole node is also removed and the delete operation propagates recursively.
Example:
admin@osdx# show working path protocols static
set protocols static route 10.0.0.0/24 next-hop 192.168.1.1 interface eth0
set protocols static route 10.0.0.0/24 next-hop 192.168.1.2
If you issue the following command: del protocols static route 10.0.0.0/24 next-hop
192.168.1.1 interface
, the whole node next-hop 192.168.1.1
will also be deleted
since there are no remaining attributes in that node.
Another example:
admin@osdx# show working path protocols static
set protocols static route 10.0.0.0/24 next-hop 192.168.1.1 interface eth0
If you now issue the same command, the whole protocols static
node subtree will be
removed.
After every configuration change, you must apply the changes using the following command:
commit
You can type discard
at any time to discard non-committed changes (working
configuration). These changes can be displayed by issuing a show changes
command.
Once your configuration works as expected, you can save it permanently by using the following command:
save
exit
can be used to return to the operational menu.
Tip
You can run an operational command directly from this menu by using run
followed by
the operational command. Example:
admin@osdx# run show interfaces
----------------------------------------------------------------
Name IP Adress Admin Oper Vrf Description
----------------------------------------------------------------
eth0 fe80::a00:27ff:feb7:4644/64 up up
eth1 down down
eth2 down down
eth3 192.168.213.18/22 up up
fe80::a00:27ff:fef5:5868/64
lo 127.0.0.1/8 up up
::1/128
Tips and advanced features
In this section, some tips and advanced features are discussed.
Keyboard shortcuts
This is a list of the most frequently used shortcuts in the OSDx CLI:
UP and DOWN arrow keys: navigate between command history.
TAB: show completion for current editing line.
CTRL + A: move to the beginning of the line.
CTRL + B / LEFT arrow key: move back one character.
CTRL + C: stop the currently running command.
CTRL + D: delete one character backward or, if the line is empty, it behaves like the
exit
command.CTRL + E: move to the end of the line.
CTRL + F / RIGHT arrow key: move forward one character.
CTRL + K: delete all characters after the cursor.
CTRL + L: clear the screen and redisplay the line. It behaves like the
clear console
operational command.
CLI shortcuts
Command abbreviations are allowed as long as the command is not ambiguous.
For example, in the operational menu, you can type conf
instead of configure
to access the configuration menu. This is a good way to save some time.
Example:
admin@osdx$ conf
admin@osdx#
Besides that, typing the interface type is not necessary.
For example, to set an address to the br0 interface, you could use
the set interfaces br0 address
configuration command, instead of using
set interfaces bridge br0 address
.
Example:
admin@osdx# set interfaces br0 address 1.0.0.1/24
admin@osdx# commit
Available commands
Running show commands
(in both operational and configuration modes) will give
you a list of the available commands.
path <OPTIONAL_PATH>
can be used to display a specific tree.
Example:
admin@DUT0# show commands path interfaces ethernet eth0 traffic policy
# Showing all commands available under 'interfaces ethernet eth0 traffic policy'
interfaces ethernet eth0 traffic policy in <txt>
interfaces ethernet eth0 traffic policy local-in <txt>
interfaces ethernet eth0 traffic policy local-out <txt>
interfaces ethernet eth0 traffic policy out <txt>
Pipes
Pipes can be used in both operational and configuration menus.
In OSDx, a pipe is a special operator that connects the output of one command to the input of another.
There are many things you can do using pipes. For example, you can store a command’s output, filter its content or measure its execution time.
OSDx includes the following pipes:
file <path>
: to save command output to a file.
grep [options] <pattern>
: to print lines matching a certain pattern. There are some options available, such as:
-E
: to interpret <pattern> as an extended regular expression.
-v
: to invert the sense of matching, selecting only non-matching lines.
head [options]
: to show the initial part of a command’s output. Some available options are:
-n <num>
: to print the first <num> lines (10 are printed by default).
less
: to process a command’s output.
tail [options]
: similar to head but it shows the last part of a command’s output.
time
: to measure the execution time of a command.
wc
: to print new line, word and byte counts.
Example:
admin@osdx$ show tech-support | file running://support/2020_september
Command's output saved under "support/2020_september"
Filesize: 363.719 KB
Example:
admin@osdx# commit | time
-----------------------
Elapsed time: 2s 353ms.