LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - News
User Name
Password
Linux - News This forum is for original Linux News. If you'd like to write content for LQ, feel free to contact us.
All threads in the forum need to be approved before they will appear.

Notices


Reply
  Search this Thread
Old 10-17-2007, 03:39 AM   #1
Blizzard
Member
 
Registered: Oct 2007
Location: Italy
Distribution: Linux Slackware 14.1
Posts: 35

Rep: Reputation: 1
Post BohShell (The shell that I'm developing)


Hi!
My name is Santostefano Givoanni and I'me developing a new shell for *nix systems. Actually I've compiled it for linux (slackware 12.0) but in the forum of OpenSolaris they told me that compile also on Solaris system.

The force of this shell is that is too easy to understand and to modify (or extend) so if someone want to understand how to make a process execution in a simple code... bohshell source is a good way to begin.

The website where you can obtain all informations is:
http://digilander.libero.it/bohshell/

Actually bohshell is in the prealpha stage but allow some interesting features and the development goes on day by day with the release of the source code direcly on the CVS.
Every one or two weeks there is the release of the tar.gz with the source
and with a binary for i386-linux

The project is released under SourceForge.net with the GPLv3 license and are allowed the donations if someone want to support my works (not only this project but in general my softwares, tutorials etc...)

The change-log of the latest released version (not the CVS that is updated day by day) is:
____________________________________________________________________
BOHSHELL v0.3 (prealpha) by Santostefano Giovanni
contact: idmgiovanni@libero.it


Hi! This is my shell.... or better this is a part of my shell because it's
not entierely implemented. There is a lot of work to do!!!

#version 0.3 prealpha#
-customizable prompt
-command history
$ ?? show the history
$ ?[number] call the [number]-th command in the history

#version 0.2c prealpha#
-Fixed a bug with the parameters parsing
-Now "lista di analisi" is "READ THE SOURCE CODE - HOW TO"

#version 0.2b prealpha#
-Now you can launch programs and write parameters with a space in the name using the wildcard \[space bar]
like: $ ./program\ name.out
$ command\ name parameter\ one parameter\ two para\ meter\ three
->Program: command name
->arg1: parameter one
->arg2: parameter two
->arg3: para meter three

#version 0.2 prealpha#
Actually bohsh implements:
-launching foreground programs and commands (./my prog , ls ....)
-redirection
< input
> output
>> output with append
# error
## error with append
-pipe (ls | more)
-cd command
-exit command
-find command or files ^
./bi^ find all the files bi.... in the cwd
bi^ find all the commands bi.....
EX: ls^ returns ls,lspci,lsmod..... etc
-complete new structure for builtin commands

With pipe you cannot use redirection

fixed many bugs and memory leaks

that's all for now!
 
Old 10-17-2007, 08:48 PM   #2
jtshaw
Senior Member
 
Registered: Nov 2000
Location: Seattle, WA USA
Distribution: Ubuntu @ Home, RHEL @ Work
Posts: 3,892
Blog Entries: 1

Rep: Reputation: 67
Moved: This thread is more suitable in Linux - News and has been moved accordingly to help your thread/question get the exposure it deserves.
 
Old 10-17-2007, 10:30 PM   #3
drj000
Member
 
Registered: Sep 2004
Location: Houston, TX
Distribution: Fedora
Posts: 261

Rep: Reputation: 33
Smile

My question then is, why?

Why create a new shell when there are a plethora of shells already available?
Or to put it a better way, what will bohsh be able to do that bash, csh, tcsh, zsh, etc. can't do, or can't do as well?
 
Old 10-18-2007, 03:17 AM   #4
Blizzard
Member
 
Registered: Oct 2007
Location: Italy
Distribution: Linux Slackware 14.1
Posts: 35

Original Poster
Rep: Reputation: 1
Hi!

Quote:
Moved: This thread is more suitable in Linux - News and has been moved accordingly to help your thread/question get the exposure it deserves.
Thanks!

Quote:
My question then is, why?

Why create a new shell when there are a plethora of shells already available?
Or to put it a better way, what will bohsh be able to do that bash, csh, tcsh, zsh, etc. can't do, or can't do as well?
This question is like other questions... and I answer in the same way!
If I try to develop an OS you say to me that there is Linux, MacOSX etc...
If I try to develop an FPS you say to me that there is Half Life, Doom etc...
If I try to develop an office suite you say to me that there is OpenOffice or Lotus Simphony
If I try do develop a player you say to me that there is mplayer, amarok etc...
If I try to develop something you will say to me that there is something better

I know that there are lots of powerfull shells! but this is not a way to drop out before starting!
This project is early! and day by day I add features and etc... preserving a kind of semplicity and lightness. If someone have a small device... maybe embedded or if someone simply want to know how is made a shell, it can see bohshell if he wants.
But for first! I'm enjoying in the development of bohshell and I've never seen a code of other shells, so If I've to implement a feature I've to think how I can do that!

I hope you can understand me! Alone is difficult to change the world when you like system or game programming... but I have to prepare my future and I'm enjoying a lot!

bye!
Giovanni
 
Old 10-18-2007, 02:07 PM   #5
drj000
Member
 
Registered: Sep 2004
Location: Houston, TX
Distribution: Fedora
Posts: 261

Rep: Reputation: 33
Quote:
Originally Posted by Blizzard View Post
I know that there are lots of powerfull shells! but this is not a way to drop out before starting!
This project is early! and day by day I add features and etc... preserving a kind of semplicity and lightness. If someone have a small device... maybe embedded or if someone simply want to know how is made a shell, it can see bohshell if he wants.
But for first! I'm enjoying in the development of bohshell and I've never seen a code of other shells, so If I've to implement a feature I've to think how I can do that!
No, I wasn't trying to criticize. I'm sorry if it came off that way. I was just trying to understand what are your goals in making a new shell. To make a new shell because you want to understand how to do so seems like a great idea to me.

I'm wondering what specifically are you planning on doing with this shell. What kind of features do you intend to include, that might be unique?
 
Old 10-18-2007, 02:17 PM   #6
b0uncer
LQ Guru
 
Registered: Aug 2003
Distribution: CentOS, OS X
Posts: 5,131

Rep: Reputation: Disabled
Got interested after reading the thread title..good work, learning something is best done by trying it out. Especially in programming.

A question (I'll quote your first post a bit for this):
Quote:
Originally Posted by Blizzard
#version 0.2 prealpha#
Actually bohsh implements:
-launching foreground programs and commands (./my prog , ls ....)
-redirection
< input
> output
>> output with append
# error
## error with append
-pipe (ls | more)
-cd command
-exit command
-find command or files ^
./bi^ find all the files bi.... in the cwd
bi^ find all the commands bi.....
EX: ls^ returns ls,lspci,lsmod..... etc

-complete new structure for builtin commands

With pipe you cannot use redirection

fixed many bugs and memory leaks

that's all for now!
Does this (the red parts) mean that you're implementing the already-existing functionality of some programs such as cd, find etc. into your shell? I'm a little curious..usually those are not the job of a shell, especially if you want the shell to be light (which means also: less code). The power of Unix is that you have a lot of small programs (to do small tasks) that you can "glue together" to get different kinds of jobs done (instead of having a specialized, big tool for each task); therefore I find it more sane that functionality of 'cd' command, for example, is in a different executable than the shell - if I need to use 'cd' with something else, I wouldn't want to run a complete shell to have it!

Well, that's for now. I'll go check that site you linked to..keep working on it, and keep it GPL!
 
Old 10-18-2007, 04:17 PM   #7
Blizzard
Member
 
Registered: Oct 2007
Location: Italy
Distribution: Linux Slackware 14.1
Posts: 35

Original Poster
Rep: Reputation: 1
Hi!

Quote:
No, I wasn't trying to criticize. I'm sorry if it came off that way. I was just trying to understand what are your goals in making a new shell. To make a new shell because you want to understand how to do so seems like a great idea to me.

I'm wondering what specifically are you planning on doing with this shell. What kind of features do you intend to include, that might be unique?
Sorry! I've misunderstood
The goals are more or less described in the answer to your post...
For unique characteristc for now I'm implementing (for the 0.4) the file association.
I know that in *nix systems the extensions are quite sensless but if you use them you can use the file association feature.
When you write a line like this
$ ,/main.c
The shell search automatically in the .bohshell_conf file if there is an association! For example bohshell read the line
c | vi
At this point automatically runs vi with the parameter main.c
Other example may be
$ ,/conf.txt mail.txt my\ file.txt
if we find a line like
txt | kwrite -option -option
the shell runs kwrite -option -option and for params the filenames

After that are planned (but these are very common characteristic):
-Background process launch
-Resolutions of patterns like * (*.c, test*,...)
-Basic scripting system

With the time I may create something original :P

Quote:
-cd command
-exit command
These are builtin commands... don't know you... but I've never had these commands

# which cd
which: no cd in (/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin)
# which exit
which: no exit in (/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin)

This is from root so you can trust me

Quote:
-find command or files ^
./bi^ find all the files bi.... in the cwd
bi^ find all the commands bi.....
EX: ls^ returns ls,lspci,lsmod..... etc
Sorry! may be I'm not clear at this point.
This is not properly a find functions but emulates the bash autocompletition (when you write a file name and hit TAB)
The behavior is the same.
writing
$ ./he^
list all the files that begins with he in the current working directory
In bash you can make this

$ mplayer Qu
when you hit TAB bash make something like

Queen_WeAreTheChampions.mp3 QuakeIII Quack.jpg
$ mplayer Qu

The symbol ^ has the same functionality.

Quote:
Well, that's for now. I'll go check that site you linked to..keep working on it, and keep it GPL!
OK! you're right... but for now the shell has the priority

Thanks
Giovanni
 
  


Reply

Tags
shell



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Developing Distro Netgh0st Linux - Distributions 3 03-11-2007 02:09 PM
where to start with developing suicideducky Linux - General 9 12-18-2006 04:36 PM
developing mp3 player rrs_matrix Programming 3 12-10-2005 04:20 PM
developing device drivers djgerbavore Linux - Hardware 1 07-30-2004 01:49 PM
Need help in developing a script ostech Linux - General 2 04-22-2004 09:24 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - News

All times are GMT -5. The time now is 11:32 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration