9(1)

πŸ“¦ version 0_git20260208, in alpine 3.24, arch rolling, nixos 26.05, nixpkgs unstable

okay bestie, welcome to 9(1) from the General Commands Manual β€” the page for running Plan 9 or Unix commands, and it's giving environment-switch main character energy. πŸ’…βœ¨

🌸 NAME 🌸

9, 9.rc, u, u.rc β€” run Plan 9 or Unix commands. That's the whole name lineup, and yes, it's a little utility polycule. 🫢

πŸŽ€ SYNOPSIS πŸŽ€

9 cmd [ args ...  ]

.  9 (from sh(1))

9.rc cmd [ args ...  ]

.  9.rc (from rc(1))

u cmd [ args ...  ]

.  u (from sh(1))

u.rc cmd [ args ...  ]

.  u.rc (from rc(1))

✨ DESCRIPTION ✨

⚠️ Heads up bestie: Plan 9 supplies commands with the same name as β€” but different behavior than β€” many basic Unix system commands (e.g., grep, sed, mkdir, rm). Because of that, it is not recommended to run with the Plan 9 bin directory ahead of the system directories. No cap, that's the warning.

9 is a shell script that sets up a Plan 9 environment and runs cmd. It sets $PLAN9 if necessary and adds $PLAN9/bin to the beginning of $PATH before running cmd. Slay, path prepend.

If run with no arguments, 9 does not do anything β€” literally nothing β€” so it can be invoked from sh-style shells using . 9 in order to make the current shell start running in the Plan 9 environment. Cute, right? 🐚

9.rc is the same as 9 but written for use by the shell rc(1). Same vibe, different shell bestie.

U and u.rc are the inverse of 9 and 9.rc: they move $PLAN9/bin to the end of the path. It's giving reverse-card energy. πŸ”„

πŸ“ EXAMPLES πŸ“

Search for greek in the password file:

$ 9 grep '[Ξ±-ΞΆ]' /etc/passwd

Start an rc(1) with the Plan 9 commands in the path before the system commands, and then run the Unix ls:

$ 9 rc
% u ls

🧚 SOURCE 🧚

The files live here, periodt:

/bin/9
/bin/9.rc
/bin/u
/bin/u.rc

πŸ¦‹ SEE ALSO πŸ¦‹

intro(1) β€” that's the whole see-also list, bestie. Go read it if you want the lore. πŸ“š

πŸ’€ BUGS πŸ’€

Some shell configurations (notably, oh-my-zsh) define 9 as an alias for cd -9, which makes the 9 command described here inaccessible. In such shells, it is necessary to unalias 9 in your initialization scripts.

πŸ™ˆ This is the "why is my 9 not working" jumpscare. Do the unalias 9 in your initialization scripts and reclaim your command. πŸ’…

And that's the footer tea, bestie: this page is 9(1) from the General Commands Manual, with no extra date/version line printed on it β€” so that's the whole sign-off. Mwah πŸ’‹βœ¨