Unofficial

TurboShell

TurboShell: a full command line on your QNAP

Shells, archivers, editors and languages, one App Center install away.

TurboShell adds command-line tools to an SSH login on the NAS: zsh and fish, tmux, Midnight Commander, 7-Zip, Perl, Python, Free Pascal and more.

Every program is compiled from source with Bucket & Code Server IDE. Install the package as it is, or change its recipe list and build your own.

In App Center: (example) TurboShell · Intel and AMD (x86_64) · QTS 6.0 or QuTS hero 6.0 or newer · freeware

SSH login on the NAS

command -v rsync

/usr/app/TurboShell/first/rsync

rsync --version | head -1

rsync version 3.5.1 protocol version 33

tar --version | head -1

tar (GNU tar) 1.35

git --version

git version 2.55.0

python3 --version

Python 3.14.7

tmux -V

tmux 3.7c

What is inside

The recipe list names these programs, and the build adds the libraries they need. The archivers and compressors alone make 16 recipes.

Shells

bash
the GNU Bourne-Again Shell
zsh
the Z shell, with its modules
fish
the friendly interactive shell
mksh
the MirBSD Korn shell
ksh
ksh 93u+m, the AT&T Korn shell
bash-completion
tab completion for bash

GNU tools

coreutils
ls, cp, sort, sha256sum and the rest
binutils
as, ld, objdump, readelf, nm, strip
findutils
find, xargs, locate
diffutils
diff, diff3, sdiff, cmp
grep
with -P for Perl patterns
sed
the stream editor
gawk
GNU awk
bc
bc and dc, calculators of any precision
less
the pager
file
names a file's type
tree
folders as a tree
util-linux
lsblk, lscpu, findmnt, blkid, column, flock, script, whereis, rev
make
GNU make
patch
GNU patch
man
mandoc: reads the manual pages of the package

Archivers and compressors

tar
GNU tar
gzip
GNU gzip
bzip2
block-sorting compressor
xz
LZMA2, with xzcat and unxz
zstd
Zstandard
lz4
fast LZ4 compression
lzip
LZMA with an integrity-checked format
lzop
fast LZO compression
pigz
gzip on all processor cores
brotli
the Brotli compressor
7zz
every 7-Zip format, also as 7z and 7za
bsdtar
libarchive: tar, zip, 7z, rar, cab and iso, with bsdcpio and bsdunzip
unrar-free
RAR through libarchive
unrar
RARLAB's UnRAR, every RAR format
cpio
GNU cpio
cabextract
Microsoft .cab files

Network, remote work and version control

curl
URL transfers with TLS
wget
GNU wget
rsync
file synchronisation
lftp
FTP, FTPS, SFTP and HTTP client with mirroring and queues
socat
relays bytes between files, pipes, sockets and TLS
whois
asks about a domain, an IP address or an AS number
openssh
ssh, scp, sftp, ssh-keygen, ssh-copy-id, ssh-agent
sshpass
types a password into ssh for scripts
autossh
restarts ssh when a connection or tunnel stops
sshfs
mounts a folder of another machine over SSH
git
version control

Scripts and files

jq
processes JSON on the command line
dos2unix
converts line breaks and UTF-16 text files
rename
renames files with a Perl expression
parallel
GNU parallel: runs shell jobs in parallel
dialog
text-mode dialog boxes for scripts
par2
makes PAR2 recovery files and repairs with them
fzf
interactive fuzzy finder for files and history
rg
ripgrep: searches folders for a regular expression
fd
finds files by name
micro
terminal editor with the usual keys
restic
encrypted, deduplicated backups

Recovery and hardware report

ddrescue
copies a failing disk and maps the bad areas
testdisk
TestDisk and PhotoRec: find lost partitions, recover deleted files
inxi
hardware and system summary in one command

Terminal, files and editors

tmux
panes and sessions that outlive the connection
screen
GNU Screen
mc
Midnight Commander, with mcedit and mcview
nano
the GNU editor
vim
with xxd for hex dumps
hexedit
hex and ASCII side by side
bvi
binary editing with vi commands, and bmore
Nerd Font
DejaVu Sans Mono with Powerline and icon glyphs

Languages

perl
with its core modules
python3
with pip and the standard library
lua
with its compiler luac
fpc
Free Pascal, with its run-time library and packages
bwbasic
Bywater BASIC
yabasic
yet another BASIC

How it looks

Real screens from a QNAP NAS with the package from App Center.

Midnight Commander: two blue file panels showing /usr/app/TurboShell and its first folder
Midnight Commander with the package's own folders in its two panels.
hexedit: the start of the file 7zz in hexadecimal and ASCII
hexedit with the program 7zz open.

Who it helps

You work on the NAS over SSH

Pick zsh or fish as your shell, and keep long jobs in tmux, where they carry on after the connection drops.

You sort and unpack files by hand

Midnight Commander gives you two panels in the terminal. 7zz, unrar and bsdtar unpack 7z, RAR, ISO and CAB files.

You write small scripts and programs

Perl, Python 3, Lua, Free Pascal and two BASICs run on the NAS itself, each by its name.

Install it

  1. Add this site's repository to App Center once: the three steps.
  2. In the repository's list find (example) TurboShell and press Install.
  3. Turn on SSH in Control Panel › Network & File Services › Telnet / SSH.

Start it

TurboShell has no window of its own: you run it from a terminal. Sign in over SSH as admin and call a program by its name.

ssh admin@192.0.2.10   # your NAS's address
mc                     # Midnight Commander
tmux                   # a session that survives a dropped connection

Good to know

  • In a shell you type into, the package's rsync, bash, tar, jq, python3, vim, less, grep, find, sort, dd and diff run before QTS's copies, which refuse everyday options such as tar --zstd, sort -h and grep -P.
  • Other names QTS has stay QTS's, such as sed, awk, curl, ssh and screen. The package's copy runs by its full path: /usr/app/TurboShell/bin/sed.
  • Scripts, cron and a command given straight to ssh keep QTS's commands. From another machine, name the program: rsync --rsync-path=/usr/app/TurboShell/bin/rsync.
  • On a QNAP NAS nc is QNAP's Notification Center tool. Use socat, or ncat from SysMon.
  • UnRAR is freeware, not open source. Its licence lets you use it and pass it on, but not use its code to make a RAR-compatible archiver.

Change it and build it again, whenever you want

TurboShell is an example from Bucket & Code Server IDE, our free development environment for QNAP. It compiles each program from source on your own NAS and packs the result as a QPKG.

From the panel

  1. In Bucket & Code open Apps, then the Examples tab. Add Ubuntu 24.04 builder (full) if you have no builder environment yet.
  2. Press Use this example on TurboShell (geek set 1). The app appears with its recipes, and nothing is built yet.
  3. Press Build, then Activate. Export makes a QPKG once a QDK toolchain is installed.

From a terminal

The Editor project TurboShell holds the same list in recipes.txt. Take a line out or add a recipe from the library, then run this in the Editor's terminal:

make app        # makes the app from recipes.txt
make build      # builds it and follows the job
make activate   # /usr/app/TurboShell now points to the build
make qpkg       # exports a QPKG (needs a QDK toolchain)

The first build compiles every recipe with its libraries and takes a while. A later make build rebuilds only the recipes whose sources or build scripts changed. The project also has a Powerline-style tmux status line: make dotfiles copies it to your home folder, and make font copies the Nerd Font for your computer.

The New app page of Bucket & Code's App Builder See it done in Bucket & Code Compile Any App You Need Without Linux Skills: Build QPKG & Deploy Easily (Freeware) 8 min on YouTube

Related pages