All Projects → brenns10 → Lsh

brenns10 / Lsh

Licence: unlicense
Simple shell implementation. Tutorial here ->

Programming Languages

c
50402 projects - #5 most used programming language
shell
77523 projects

Labels

Projects that are alternatives of or similar to Lsh

React Redux Boilerplate Example
Stars: ✭ 15 (-98.42%)
Mutual labels:  tutorial
Teleball
Build your own Arduino based retro handheld game console
Stars: ✭ 21 (-97.79%)
Mutual labels:  tutorial
Youtube Downloader App
Source code for youtube-downloader app. Step by step tutorial at:
Stars: ✭ 28 (-97.05%)
Mutual labels:  tutorial
Learnrelay
Learn Relay - A comprehensive introduction to Relay (created by Graphcool)
Stars: ✭ 887 (-6.53%)
Mutual labels:  tutorial
Learn Aws Lambda
✨ Learn how to use AWS Lambda to easily create infinitely scalable web services
Stars: ✭ 910 (-4.11%)
Mutual labels:  tutorial
Tensorflow2.0 eager execution tutorials
Tutorials of TensorFlow eager execution
Stars: ✭ 28 (-97.05%)
Mutual labels:  tutorial
Javase6tutorial
Java SE 6 技術手冊
Stars: ✭ 884 (-6.85%)
Mutual labels:  tutorial
App Tutorial
Tutorial app which is built in the tutorial
Stars: ✭ 29 (-96.94%)
Mutual labels:  tutorial
Office automation dev
Python自动化代码模板、开发文档
Stars: ✭ 21 (-97.79%)
Mutual labels:  tutorial
Android Mvp
Android Model View Presenter
Stars: ✭ 28 (-97.05%)
Mutual labels:  tutorial
React Tutorial Kotlin
An implementation of the React Tutorial using Kotlin
Stars: ✭ 20 (-97.89%)
Mutual labels:  tutorial
Ionic3 Angular43 Httpclient
Example of Ionic 3 and the new Angular 4.3 HTTPClient
Stars: ✭ 20 (-97.89%)
Mutual labels:  tutorial
Pwa Example
A short example illustrating some essential steps for creating a progressive web app (PWA).
Stars: ✭ 28 (-97.05%)
Mutual labels:  tutorial
Awesome Swiftui
A collaborative list of awesome articles, talks, books, videos and code examples about SwiftUI.
Stars: ✭ 878 (-7.48%)
Mutual labels:  tutorial
Write A Programming Language
How to make a new language(and why we shouldn't?)
Stars: ✭ 29 (-96.94%)
Mutual labels:  tutorial
Road To Master Ngrx Store
A curated guided hyperlinks to learn all there is to know of Ngrx/Store and state management in general
Stars: ✭ 15 (-98.42%)
Mutual labels:  tutorial
100 Days Of Ml Code
100 Days of ML Coding
Stars: ✭ 33,641 (+3444.89%)
Mutual labels:  tutorial
Course
Slides and Jupyter notebooks
Stars: ✭ 29 (-96.94%)
Mutual labels:  tutorial
Lemonml
🍋Machine Learning library from scratch.🍋
Stars: ✭ 29 (-96.94%)
Mutual labels:  tutorial
Generals.io Node.js Bot Example
An example Node.js bot for generals.io. Learn more at http://dev.generals.io/api#tutorial
Stars: ✭ 28 (-97.05%)
Mutual labels:  tutorial

LSH

LSH is a simple implementation of a shell in C, and it is the subject of a tutorial on my website. It demonstrates the basics of how a shell works. That is: read, parse, fork, exec, and wait. Since its purpose is demonstration (not feature completeness or even fitness for casual use), it has many limitations, including:

  • Commands must be on a single line.
  • Arguments must be separated by whitespace.
  • No quoting arguments or escaping whitespace.
  • No piping or redirection.
  • Only builtins are: cd, help, exit.

Running

Use gcc -o lsh src/main.c to compile, and then ./lsh to run. If you would like to use the standard-library based implementation of lsh_read_line(), then you can do: gcc -DLSH_USE_STD_GETLINE -o lsh src/main.c.

Contributing

Since this is the subject of a tutorial, I'm not looking to extend it with additional features at this time. So I won't be accepting any pull requests that aren't related to bug fixes (and I'm sure there are still bugs in the code!).

However, that doesn't mean that you shouldn't play with the code, make changes, and explore new features! That's the whole point of this project! It's just that other people are doing the same thing, and this project is merely a starting point for your own exploration.

On that note, I would be just tickled if you dropped me a line (see my website for contact info) to show me the cool new features you've added!

License

This code is in the public domain (see UNLICENSE for more details). This means you can use, modify, and distribute it without any restriction. I appreciate, but don't require, acknowledgement in derivative works.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].