{"id":19362423,"url":"https://github.com/moisam/layla-shell","last_synced_at":"2025-04-23T12:33:00.486Z","repository":{"id":57992763,"uuid":"211309419","full_name":"moisam/Layla-Shell","owner":"moisam","description":"A GNU/Linux shell implementation","archived":false,"fork":false,"pushed_at":"2024-07-29T16:24:52.000Z","size":2790,"stargazers_count":14,"open_issues_count":0,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-02T15:21:16.571Z","etag":null,"topics":["gnu","gnu-linux","layla","linux","linux-shell","posix","posix-compatible","posix-compliant","shell","unix"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/moisam.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-27T12:00:45.000Z","updated_at":"2025-03-27T22:15:18.000Z","dependencies_parsed_at":"2024-07-09T04:43:06.069Z","dependency_job_id":"69248ab8-0641-4a28-8296-4236058c6200","html_url":"https://github.com/moisam/Layla-Shell","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moisam%2FLayla-Shell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moisam%2FLayla-Shell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moisam%2FLayla-Shell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moisam%2FLayla-Shell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moisam","download_url":"https://codeload.github.com/moisam/Layla-Shell/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250435210,"owners_count":21430237,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gnu","gnu-linux","layla","linux","linux-shell","posix","posix-compatible","posix-compliant","shell","unix"],"created_at":"2024-11-10T07:28:18.511Z","updated_at":"2025-04-23T12:32:55.468Z","avatar_url":"https://github.com/moisam.png","language":"C","readme":"# \n#    Copyright 2019, 2024 (c)\n#    Mohammed Isam [mohammed_isam1984@yahoo.com]\n# \n#    file: README\n#    This file is part of the Layla Shell project.\n#\n#    Layla Shell is free software: you can redistribute it and/or modify\n#    it under the terms of the GNU General Public License as published by\n#    the Free Software Foundation, either version 3 of the License, or\n#    (at your option) any later version.\n#\n#    Layla Shell is distributed in the hope that it will be useful,\n#    but WITHOUT ANY WARRANTY; without even the implied warranty of\n#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n#    GNU General Public License for more details.\n#\n#    You should have received a copy of the GNU General Public License\n#    along with Layla Shell. If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n#\n\nAbout:\n======\n\nLayla shell is a POSIX-compliant GNU/Linux shell. It aims to implement the\nfull functionality specified in the POSIX Shell \u0026 Utilities volume. This\nvolume describes the Shell Command Language, the general terminal interface,\nand the builtin utilities of compliant shells. The full POSIX standard is\nfreely available from The Open Group's website at:\n\nhttps://pubs.opengroup.org/onlinepubs/9699919799.2018edition/\n\nLayla shell implements most of the POSIX-defined functionality. Specifically,\nquoting, token recognition, words expansions, I/O redirection, reponses to\nerror conditions, the shell command language, the standard shell execution\nenvironment, signal handling, and the general and special builtin utilities\nare all implemented and behave in a way that is conforming to the POSIX\nstandard. Pattern matching and pathname expansion relies on external tools,\nand thus might not behave exactly as specified in the POSIX standard. The\nshell grammar has been extended to accommodate some of the widely used non-\nPOSIX words, such as the function and [[ keywords, and the (( )) arithmetic\nexpansion operator. In all of these situations, if one or more of the major Unix\nshells disagreed in some aspect of their behaviour, we opted to follow ksh,\nas ksh is the \"model\" POSIX shell, the one upon which the Shell \u0026 Utilities\nvolume was modeled in the first place. But ksh is not the only shell out\nthere. This is why we included features from other shells, most notably bash,\nthe most widely used shell nowadays.\n\nTo better understand the inner workings of this (as well as any other POSIX-\ncompliant shell), it would be better if you got a copy of the Linux Shell\nInternals book, published by No Starch Press. This shell and the book has been\ndeveloped hand-in-hand. The book helps to explain the code of this shell and\nprovide a walk-through for newcomers. Although the code is extensively\ncommented, a lot of theoretical ground has covered in the book, not in the\nsource code. If you really want to understand how and why Unix/Linux shells\nbehave in the context of POSIX, I honestly advise you to get a copy of the\nbook.\n\nThere is still a long way to go with testing, bug-fixing and improving Layla\nshell, and your feedback is more than welcome in this regard. If you have a\nbug report, or you want to suggest adding some feature or fixing something\nwith the shell, feel free to email me directly at my email address, the one\nyou will find in the beginning of this file. If you have any bugfixes, patches\nor feature improvements you want to add to the code, feel free to send me your\ncode at the email address above, or through the Linux Shell Internals\nrepository at GitHub:\n\nhttps://github.com/moisam/Layla-Shell/\n\nThe simplified (and tuned-down) version of Layla shell is available from:\nhttps://github.com/moisam/Linux-Shell-Internals-book/\n\n\nPackage dependencies:\n=====================\n\nLayla shell has very few external dependencies, in order to ease the process\nof compiling and installing it. You only need to have the GNU C library\ninstalled, in addition to the GNU Compiler Collection (GCC) or the Clang/LLVM\ncompiler.\n\nIf you are using any GNU/Linux distro, it would be better if you checked your\ndistro's official repositories, as these tools are installed by default on\nmost systems. If, by a sore chance, you needed to manually download and\ninstall them, here are the links:\n\n- GNU C Library: https://www.gnu.org/software/libc/\n- GCC: https://gcc.gnu.org/\n- LLVM: http://releases.llvm.org/download.html\n\n\nHow to compile and install\n==========================\n\nIf you downloaded the shell as a source tarball, navigate to the directory\nwhere you downloaded the tarball:\n\n$ cd ~/Downloads\n\nthen extract the archive and enter the extracted directory:\n\n$ tar xvf lsh-1.0\n$ cd lsh-1.0/\n\nthen run:\n\n$ make \u0026\u0026 su -c \"make install\"\n\nand that's it! Now you can run the shell by invoking:\n\n$ lsh\n\n\nHelp\n====\n\nFor more information, please read the manpage and info page in the docs/\ndirectory.\n\nThanks!\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoisam%2Flayla-shell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoisam%2Flayla-shell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoisam%2Flayla-shell/lists"}