---------------------------------------- busybox ash "iSn’t vErY CuStOmIzAbLe" September 14th, 2022 ---------------------------------------- I use Alpine Linux, the default shell there is busybox ash, it's great. The only issues I see with it are the severe lack of documentation (the
=> best way to figure things out are to read the source or just see if
whatever feature it is you are trying to use {likely from bash} actually works) and lack of the command completion from bash (which I don't use).
=> Recently while browsing reddit, a user on the Alpine Linux sub was
asking if it is possible to make ash look a little prettier (it is), and the replies were either encouraging the OP to try another shell, or the hilarious repies of: "ash isn’t meant to be customizable. Look at the man page for options." "Ash still isn’t very customizable." "Ash still isn’t very customizable."
=> suspected image of spicyboi404
My head really hurts, the stupid is just intolerable. ---------------------------------------- Since busybox ash is (as mentioned) severely lacking in documentation I thought I'd post a few things that I know about customizing it off the top of my head, these are specific to the Alpine Linux version of it, as most others are going to have a vastly different build configuration: busybox ash expand prompt strings: \a bell character (07), typically sounds the terminal bell/buzzer \e escape character (33), used for terminal functions such as ANSI colors, bold, italics, underline, et al \h short hostname \H long hostname (FQDN), if known, otherwise same as \h \n linefeed (newline) \r carriage return (needed for some unusual terminals (\r\n) \t current time in HH:MM format \T same as \t \@ same as \t \A same as \t \u user who is running the shell \w Current working directory, $HOME abbreviated to ~ \W basename of current working directory, $HOME abbreviated to ~ \nnn replace `nnn' with the octal number of a character you wish to print for example `\007' is the same as `\a' \[ Start a sequence of non-printable characters. Used for terminal control stuff mostly; \] End a sequence of non-printable characters busybox ash environmental variables $PS1 main prompt string $PS2 continuation prompt string $PS4 prefix for xtrace shell option output $TMOUT Enable bash-like auto-logout after $TMOUT seconds of idle time. $MAIL Mail file, ash will print "you have mail" if the file changes. $MAILPATH Mail directory, ash will print "you have mail" if changes are seen. $RANDOM Each read of "$RANDOM" will generate a new pseudorandom value. You can reset the generator by using a specified start value. After "unset RANDOM" the generator will switch off and this variable will no longer have special treatment. $LANG language, also used for unicode stuff (C.UTF-8 anyone?) $LC_ALL language, also used for unicode stuff $LC_CTYPE language, also used for unicode stuff shell options, use the set command to set these. (e.g. `set -o noglob') "e" "errexit" Exit immediately upon error (useful for scripts) "f" "noglob" Disable filename globbing (cat *.html will no longer work) "I" "ignoreeof" Disables exiting on EOF (CTRL+D no longer exits) "i" "interactive" Marks the shell as human interactive "m" "monitor" Enables job control (on by default for interactive shells) "n" "noexec" Doesn't execute commands, but still parses input very useful for shell scripting or pranks. "x" "xtrace" before executing a command, print the actual command that will be executed. Useful for dealing with aliases & functions "v" "verbose" prints shell input "C" "noclobber" Output redirection (>) will only be allowed to write new files, existing files will not be modified. "a" "allexport" Variables and functions which are set while this option is in effect will be exported to subshells etc. "u" "nounset" Attempts to use unset variables and parameters will print an error. Non-interactive shells will exit also. Useful for scripting. "vi" use vi-style line editing interface. "pipefail" Cloned from bash: "If set, the return value of a pipeline is the value of the last (rightmost) command to exit with a non-zero status, or zero if all commands in the pipeline exit successfully. Disabled by default." make ash look a little prettier: PS1="\e[1;31ma\e[1;33ml\e[1;32mp\e[1;34mi\e[1;36mn\e[1;35me\e[0m \033[30;37;5m😊\e[0m\w " Did I miss anything? Do you have a prettier prompt for busybox ash? Let us know in the comments below. (or on the reddit thread, why not?) ----------------------------------------
=> Back to phlog index | gopher.zcrayfish.soy gopher root
1515 folks think that spicyboi404 is a dumbass. Future direct comment submission has been disabled for this phlog entry. Comments are still accepted by email, please send to: zacharygopher@gopher.zcrayfish.soy Be sure to include the post title in the subject line! Thanks! Nobody has commented on this post.
text/gemini;
This content has been proxied by September (ba2dc).