DEV Community

bored duck
bored duck

Posted on AI-assisted

ducksh: Secure/pretty shell

🦆 Welcome to Ducksh

A secure, friendly shell for the 21st century.

Ducksh is built for beginners and professionals alike, with a focus on security, simplicity, and ease of use.

A big part of that is making things discoverable. You shouldn't necessarily have to memorize a bunch of commands just to get started.

Familiar commands, friendlier alternatives

Ducksh has the commands you'd expect, like cd, pwd, ls, and echo, but many of them also have more descriptive alternatives.

For example:

cd projects
go projects
waddle projects
Enter fullscreen mode Exit fullscreen mode

All get you where you're going. 🦆

The duck-themed aliases aren't meant to replace normal shell commands. They're just another way to interact with the shell (and make it a little more fun).

Quick Reference

Here's what Ducksh currently looks like:

NAVIGATION
  Tab                 Complete commands and paths
  Right Arrow         Accept the history suggestion
  ↑ / ↓               Browse command history
  history             Show this session's commands

FILES & DIRECTORIES
  cd DIR / go DIR     Change directory       (waddle / g)
  pwd / where         Show current directory (nest / here)
  ls / list           List files             (pond / l)
  mkdir / newdir      Create a directory

OUTPUT & TERMINAL
  echo / say          Print text              (quack / e)
  clear               Clear the screen        (flap / c)
  CMD & CMD           Run commands in order

CONFIGURATION
  source FILE         Load a Ducksh config file
  reset               Clear screen & reload ~/.quackrc
  export A=value      Set an environment variable
  path                Show PATH entries
  theme [NAME]        List or switch themes
  alias NAME=CMD      Create a simple alias

SESSION
  logout              Log out & authenticate another user
  exit                Leave Ducksh            (bye / q)
Enter fullscreen mode Exit fullscreen mode

Tab is your friend

One thing Ducksh encourages is exploration.

If you aren't sure what command or path you're looking for, press Tab.

Ducksh can help complete commands and paths, so you don't have to remember everything before you can start using the shell.

There's also history built into the prompt. You can use ↑ / ↓ to browse previous commands, or use the Right Arrow to accept a history suggestion.

Making it yours

Ducksh has a ~/.quackrc configuration file.

You can create aliases:

alias NAME=CMD
Enter fullscreen mode Exit fullscreen mode

Set environment variables:

export A=value
Enter fullscreen mode Exit fullscreen mode

Switch themes:

theme NAME
Enter fullscreen mode Exit fullscreen mode

And reset gives you a quick way to clear the terminal and reload your configuration.

Configuration is kept simple so you can customize your shell without dealing with a giant configuration system.

Security and syntax

Ducksh has two main goals: be more secure than Bash and have nice syntax.

At the same time, it keeps familiar commands like cd, pwd, ls, and echo, so using Ducksh doesn't mean throwing away commands you already know.

The alternative commands give you a different syntax when you want it:

go projects
list
say "Hello!"
Enter fullscreen mode Exit fullscreen mode

Or, of course:

waddle projects
pond
quack "Hello!"
Enter fullscreen mode Exit fullscreen mode

Install Ducksh

The Ducksh repository is on SourceForge:

https://sourceforge.net/p/ducksh

Download the repository and run the included installer:

./install.sh
Enter fullscreen mode Exit fullscreen mode

Once it's installed, you're ready to start using Ducksh.

Tip: Press Tab whenever you're unsure — Ducksh can help complete commands and paths.

Top comments (0)