{"id":13506890,"url":"https://github.com/sr6033/lterm","last_synced_at":"2026-01-22T20:15:02.908Z","repository":{"id":80174333,"uuid":"98073948","full_name":"sr6033/lterm","owner":"sr6033","description":"Online bash terminal(emulator) tutorial. A step by step tutorial for the bash shell.","archived":false,"fork":false,"pushed_at":"2022-12-05T15:23:11.000Z","size":233,"stargazers_count":52,"open_issues_count":9,"forks_count":68,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-01-24T07:09:45.401Z","etag":null,"topics":["css3","html5","javascript","jquery"],"latest_commit_sha":null,"homepage":"https://sr6033.github.io/lterm/","language":"JavaScript","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/sr6033.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-07-23T04:13:45.000Z","updated_at":"2024-01-24T07:09:45.402Z","dependencies_parsed_at":null,"dependency_job_id":"e137080e-1b3e-455b-9f55-26d70977cf5e","html_url":"https://github.com/sr6033/lterm","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/sr6033%2Flterm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sr6033%2Flterm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sr6033%2Flterm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sr6033%2Flterm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sr6033","download_url":"https://codeload.github.com/sr6033/lterm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246281098,"owners_count":20752203,"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":["css3","html5","javascript","jquery"],"created_at":"2024-08-01T01:00:59.445Z","updated_at":"2026-01-22T20:15:02.901Z","avatar_url":"https://github.com/sr6033.png","language":"JavaScript","funding_links":[],"categories":["Other","JavaScript","Examples"],"sub_categories":[],"readme":"\t\t\t     __       ________   _______   _____   _     _    __\n\t\t\t    |  |     |__    __| |   ____| |  _  | | \\   / |   \\ \\           \n\t\t\t    |  |        |  |    |  |__    | |_| | |  \\_/  |    \\ \\          \n\t\t\t    |  |      o |  |    |     |   |   __| |   _   |     \\ \\         \n\t\t\t    |  |      o |  |    |   __|   |   \\   |  | |  |     / /         \n\t\t\t    |  |____  o |  |    |  |____  |    \\  |  | |  |    / / ____   \n\t\t\t    |_______| o |__|    |_______| |__|\\_\\ |__| |__|   /_/ |____|  \n\n# lterm: Online bash terminal(emulator) tutorial\n\nCheck out the site live at:  [![lterm](https://img.shields.io/badge/webiste-live-brightgreen.svg?style=flat-square)](https://sr6033.github.io/lterm/)\t[![Gitter](https://badges.gitter.im/gitterHQ/gitter.svg)](https://gitter.im/lterm/Lobby?utm_source=share-link\u0026utm_medium=link\u0026utm_campaign=share-link)\n\n**lterm** is an online **Terminal Emulator**. It is a step by step tutorial that will teach you the **bash** commands by making you execute them.\n\n*Nothing is better than learning by doing.*\n\nIt is fully online and doesn't require any extra shitty access. Being an emulator, it only virtualizes a terminal environment and so the commands executed doesn't effect either the server or your local machine.\n\n### List of commands available presently\n\nCommand| Does...\n:-----:|:-----:\n`echo`|To display a string\n`pwd`|Shows you the present working directory\n`ls`|Lists all the files\n`cd`|To change directory - change the current working directory to a specific directory\n`cd ..`|Moves you up one directory(parent)\n`cat`|Concatenate and print the content of files\n`clear`|Clears the terminal screen\n`touch`|Changes file timestamps or creates a new file\n`cp`/`mv`|To copy/move files\n`rm`|Delets a file/directory\n`uname`|Shows the name of the Linux/Unix system you are using\n`date`|Shows the local standard date \u0026 time\n`ifconfig`|Shows information about active network interfaces.\n`mkdir`|Creates a new directory\n`tty`|Prints the file name of the terminal connected to standard input\n`history`|Shows all the commands which are used in the previous iterations\n\n### List of commands that can be added\n\n- `export`\n- `less`\n- `more`\n\n### Contributing\n\n\n1. Fork it (\u003chttps://github.com/sr6033/lterm/fork\u003e)\n2. Create your feature branch (`git checkout -b feature/fooBar`)\n3. Commit your changes (`git commit -am 'Add some fooBar'`)\n4. Push to the branch (`git push origin feature/fooBar`)\n5. Create a new Pull Request\n\n#### To add your new commands\n- edit the file **\u003ca href=\"https://github.com/sr6033/lterm/blob/master/js/main.js\"\u003emain.js\u003c/a\u003e** to add your commands.\n- You don't have to worry about any other files or programs.\n\n---\n\n- If a **command** doesn't need further steps:\n\n```\n// without argument\nls: function() {\n        this.echo('This is the ls command\\n');\n}\n```\n\n```\n// with argument\necho: function(arg1) {\n        this.echo('This is the echo command' + arg1 + '\\n');\n}\n```\n\n- If a **command** needs further steps:\n\n```\ncd: function(arg1) {\n\tthis.push(function(cmd, term) {\n                if(cmd == 'another_command')\n                    this.echo('another_command');\n\t\t}, {\n                    prompt: '[[b;#44D544;]lterm@localhost/' + arg1 + ':~$] ',\n                   }\n        );\n}\n```\n\n---\n\n**IMPORTANT**\n\n- On addition of a new **command**, increase the size of `arr` array. This array acts like a counter to check if a **task/command** is completed or not.\n- You need to add the new **command** into the second array `arr2` . This array stores all the commands and helps in fetching the **completed commands** when the **history** command is executed.\n- Please make sure that you **do not alter the positions of commands** in `arr2`, You need to add the new command towards the last.\n- Example: If I add the command - `echo`. I will add another 0 to the end of `arr`. Then I will make `arr[index] = 1` under `echo` command.\n```\nvar arr = [0,0,0,0,0,0,0,0,0,0,0,0,0,0]; // Will add another 0 here. The place where you added is the index.\nvar arr2 = ['list of all other commands']; // Will add the 'echo' command here\n...\n...\necho: function(arg1) {\n            arr[index_where_you_added_0] = 1;\t// Will make the value at that index to 1. \t\n            this.echo(arg1 + '\\n');\n            this.echo('\u003e The [[b;#ff3300;]echo] command prints back your arguments.');\n            this.echo('\u003e Type [[b;#ff3300;]help] and check your first task is completed.');\n            this.echo('\u003e Now type [[b;#ff3300;]pwd] to continue.');\n},\n\n```\n- If you face any problem or cannot understand anything, open up an **issue**.\n- You can also edit the **readme** and make it more user friendly to help out new contributors.\n\n\u003e **NOTE: Kindly keep the display of the terminal intact while making an update. A single extra space can make the look of the emulator little odd. So keep that in mind while printing something using `echo` command.**\n\n\u003e Note: Kindly have interpretable \u0026 good commit messages. Don't assume me to be some **Jedi** with powers to be able to make out every commit with a single word as message.\n*May the Force be with you.*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsr6033%2Flterm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsr6033%2Flterm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsr6033%2Flterm/lists"}