File | Date | Author | Commit |
---|---|---|---|
LICENSE | 2024-10-28 |
![]() |
[501f56] Initial commit |
PKGBUILD | 2024-10-28 |
![]() |
[e7d570] Update PKGBUILD |
README.md | 2024-10-28 |
![]() |
[0408f2] Update README.md |
razzshell.c | 2024-10-28 |
![]() |
[f285ba] Add files via upload |
RazzShell is a custom Unix shell written in C, designed to provide a unique and user-friendly command-line interface. It offers a variety of built-in commands, colorful output, command aliases, environment variable support, and the ability to execute external programs seamlessly. RazzShell aims to combine the functionality of traditional shells with custom features to enhance the user experience.
sudo su
.Ctrl+C
gracefully without exiting the shell.RazzShell distinguishes itself from other Unix shells like Bash, Zsh, and Fish by offering:
change
instead of cd
, list
instead of ls
). This encourages users to learn and use the shell's unique features.sudo apt-get update
sudo apt-get install build-essential libreadline-dev
sudo dnf install gcc make readline-devel
sudo pacman -S base-devel readline
bash
git clone https://github.com/rajacharya987/razzshell.git
bash
cd razzshell
bash
gcc -o razzshell razzshell.c -lreadline
bash
sudo cp razzshell /usr/local/bin/
sudo chmod +x /usr/local/bin/razzshell
bash
git clone https://github.com/rajacharya987/razzshell.git
bash
cd razzshell
bash
gcc -o razzshell razzshell.c -lreadline
bash
sudo cp razzshell /usr/local/bin/
sudo chmod +x /usr/local/bin/razzshell
yay
(AUR Helper)If you have yay
installed, you can install RazzShell directly from the AUR:
yay -S razzshell
bash
git clone https://github.com/rajacharya987/razzshell.git
bash
cd razzshell
bash
gcc -o razzshell razzshell.c -lreadline
bash
sudo cp razzshell /usr/local/bin/
sudo chmod +x /usr/local/bin/razzshell
Run the compiled executable:
razzshell
You will be greeted with a prompt similar to:
razzshell-$ [current_directory]>
razzshell-$ [directory]>
razzshell-# [directory]>
The prompt displays the shell type ($
for regular users, #
for root) and the current directory.
change
: Change the current working directory.change [directory]
list
: List directory contents with color-coded output.list [-a] [directory]
-a
: Include hidden files.
copy
: Copy files from one location to another.
copy [source] [destination]
move
: Move or rename files.move [source] [destination]
delete
: Delete files.delete [file]
makedir
: Create a new directory.makedir [directory]
removedir
: Remove an empty directory.removedir [directory]
create
: Create a new file.create [filename]
readfile
: Display the contents of a file.readfile [filename]
headfile
: Display the first lines of a file.headfile [filename]
tailfile
: Display the last lines of a file.tailfile [filename]
wordcount
: Count words, lines, and characters in a file.wordcount [filename]
showprocesses
: Display running processes.showprocesses
terminate
: Terminate a process.terminate [process id]
viewjobs
: List active background jobs.viewjobs
sendtoback
: Send a job to the background.sendtoback [job id]
bringtofront
: Bring a background job to the foreground.bringtofront [job id]
where
: Display the current working directory.where
whome
: Show the current user.whome
sysinfo
: Display system information.sysinfo
systemname
: Print system name and information.systemname
today
: Display the current date and time.today
calendar
: Display the calendar.calendar
diskusage
: Display disk usage.diskusage
diskfree
: Display free disk space.diskfree
cpuusage
: Display CPU usage.cpuusage
memusage
: Display memory usage.memusage
say
: Display a line of text (similar to echo
).say [text]
searchfile
: Search for files in a directory hierarchy.searchfile [filename]
searchtext
: Search for a pattern in files.searchtext [pattern] [file]
fetchurl
: Fetch content from a URL.fetchurl [URL]
pinghost
: Ping a host to check connectivity.pinghost [hostname]
visualize
: Visualize the command flow.visualize [command]
repeat
: Repeat a command multiple times.repeat [count] [command]
makealias
: Create a command alias.makealias [alias_name] [command]
removealias
: Remove a command alias.removealias [alias_name]
aliases
: List all aliases.aliases
setenv
: Set an environment variable.setenv [VAR] [VALUE]
unsetenv
: Unset an environment variable.unsetenv [VAR]
printenv
: Print all environment variables.printenv
save
: Save the current session history.save
load
: Load a saved session history.load
bookmark
: Bookmark a command.bookmark [command]
listbookmarks
: List all bookmarked commands.listbookmarks
commands
: Show command history.commands
history_clear
: Clear command history.history_clear
clear
: Clear the terminal screen.clear
howto
: Display help for commands.howto
sudo
: Run a command as root.sudo [command]
sudo_su
: Switch to root shell within RazzShell.sudo su
quit
: Exit the shell.quit
RazzShell supports executing external programs installed on your system. If a command is not recognized as a built-in command, RazzShell will attempt to execute it as an external command.
Example:
razzshell-$ [directory]> nano filename.txt
Changing Directory:
razzshell-$ [directory]> change /path/to/directory
Listing Files with Colors:
razzshell-$ [directory]> list
Listing All Files Including Hidden Files:
razzshell-$ [directory]> list -a
Creating and Using an Alias:
razzshell-$ [directory]> makealias ll list
razzshell-$ [directory]> ll
Setting and Using an Environment Variable:
razzshell-$ [directory]> setenv MYVAR HelloWorld
razzshell-$ [directory]> say $MYVAR
Repeating a Command:
razzshell-$ [directory]> repeat 5 say "Hello, World!"
Elevating to Root User within RazzShell:
razzshell-$ [directory]> sudo su
[sudo] password for user:
razzshell-# [directory]>
Exiting the Shell:
razzshell-$ [directory]> quit
RazzShell is released under the MIT License.
Disclaimer: Use RazzShell at your own risk. The author is not responsible for any damage or data loss resulting from the use of this shell.
Note: If you encounter errors related to readline
during compilation, ensure that the readline library is installed on your system.
Thank you for choosing RazzShell!