In rabin, symbols list works in a very similar way as exports do. With the flag -i it will list all the symbols present in the file in a format that can be parsed easily.
$ rabin -s /bin/ls
[Symbols]
address=0x0805e3c0 offset=0x000163c0 size=00000004 bind=GLOBAL type=OBJECT name=stdout
address=0x08059b04 offset=0x00011b04 size=00000004 bind=GLOBAL type=OBJECT name=_IO_stdin_used
address=0x0805e3a4 offset=0x000163a4 size=00000004 bind=GLOBAL type=OBJECT name=stderr
address=0x0805e3a0 offset=0x000163a0 size=00000004 bind=GLOBAL type=OBJECT name=optind
address=0x0805e3c4 offset=0x000163c4 size=00000004 bind=GLOBAL type=OBJECT name=optarg
With -v, rabin will print a simpler output.
$ rabin -sv /bin/ls
[Symbols]
Memory address File offset Name
0x0805e3c0 0x000163c0 stdout
0x08059b04 0x00011b04 _IO_stdin_used
0x0805e3a4 0x000163a4 stderr
0x0805e3a0 0x000163a0 optind
0x0805e3c4 0x000163c4 optarg
5 symbols
Using -vv, we will get their size, bind and type too.
$ rabin -svv /bin/ls
[Symbols]
Memory address File offset Size Bind Type Name
0x0805e3c0 0x000163c0 00000004 GLOBAL OBJECT stdout
0x08059b04 0x00011b04 00000004 GLOBAL OBJECT _IO_stdin_used
0x0805e3a4 0x000163a4 00000004 GLOBAL OBJECT stderr
0x0805e3a0 0x000163a0 00000004 GLOBAL OBJECT optind
0x0805e3c4 0x000163c4 00000004 GLOBAL OBJECT optarg
5 symbols
And, finally, with -r radare core can flag automatically all these symbols and define function and data blocks.
$ rabin -sr /bin/ls
fs symbols
b 4 && f sym.stdout @ 0x0805e3c0
b 4 && f sym._IO_stdin_used @ 0x08059b04
b 4 && f sym.stderr @ 0x0805e3a4
b 4 && f sym.optind @ 0x0805e3a0
b 4 && f sym.optarg @ 0x0805e3c4
b 512
5 symbols added