enhance(site): add get-started pages for infosec, shells, software development and how to use termux safely

Ted authored parts of infosec, shells and software development pages in b02b00e0bc

See also
- https://wiki.termux.com/wiki/Getting_started
- https://wiki.termux.com/wiki/Hacking#How_to_use_Termux_safely
- https://wiki.termux.com/wiki/Development_Environments

Co-authored-by: @agnostic-apollo <agnosticapollo@gmail.com>
Co-authored-by: @tstein <me@tedstein.net>
This commit is contained in:
agnostic-apollo 2024-01-04 08:47:07 +05:00
parent 93c1cd8cf4
commit fee682fe0f
No known key found for this signature in database
GPG Key ID: BCCC0287E9DCCAED
5 changed files with 686 additions and 0 deletions

View File

@ -0,0 +1,29 @@
---
page_ref: "@PROJECTS__VARIANT@/termux/termux-packages/docs/@DOCS__VERSION@/get-started/how-to-use-termux-safely/index.html"
---
# How to use Termux safely
<!-- @DOCS__HEADER_PLACEHOLDER@ -->
- When following a tutorial, make sure that you properly understand the goal and purpose of every instruction. Understand what commands you are typing is meant to do.
- Do not run commands as the `root` user with `su`/`sudo` shells unless you know what you are doing, since otherwise you are likely to break Termux installation or your device, including causing permanent damage or losing data.
- Install software only from trusted sources. Remember that even open source software can contain trojan functionality. Do not trust random YouTube videos or GitHub repositories for hacking with Termux, they are mostly scams, which may result you getting hacked instead or you losing all your data on your device.
- If third-party script asks for credentials, most likely it is a scam. Obfuscated third-party scripts are likely to be a scam too.
- Suspicious files should be sent to [VirusTotal](https://www.virustotal.com/gui/home/upload).
- Do backups regularly, preferably encrypted if storing on untrusted places. There should be at least `2` backups in addition to the original files. Having `1-2` local backups (HDD, SSD, USB, SD cards, etc) and `1` cloud backup is usually good enough. Note that storage drives may lose data if every byte is not re-read every few months/years.
- Don't think you are very careful and thus bulletproof for scam, phishing or trojans. Long random passwords, verified software and brain in head are nice, but being prepared to be pwned at some day is even better.
- Remember that YouTube tutorials are often made for profit and entertainment, but not suitable for education. Learn to read.
- Do not give untrusted apps the `Run commands in Termux environment` (`com.termux.RUN_COMMAND`) permission or give them access to Termux files with its storage provider.
## &nbsp;
&nbsp;

View File

@ -6,6 +6,10 @@ page_ref: "@PROJECTS__VARIANT@/termux/termux-packages/docs/@DOCS__VERSION@/get-s
<!-- @DOCS__HEADER_PLACEHOLDER@ -->
- [Infosec](infosec/index.md)
- [Shells](shells/index.md)
- [Software Development](software-development/index.md)
## &nbsp;
&nbsp;

View File

@ -0,0 +1,29 @@
---
page_ref: "@PROJECTS__VARIANT@/termux/termux-packages/docs/@DOCS__VERSION@/get-started/infosec/index.html"
---
# Infosec
<!-- @DOCS__HEADER_PLACEHOLDER@ -->
Information security is a deep and exciting topic, but by its nature, there's some rules. The following things are generally true of people who do legal,
ethical, and interesting work in computer security, and especially of white-hat hackers:
- They never even attempt to access data or systems without the full knowledge and consent of their owners.
- They have strong in-depth understanding of how things work internally, like networks and operating systems. You have to understand how to build things to be able to break them. If you aren't already comfortable making websites, you aren't ready to learn how to compromise websites.
- They acquire the skills to do sophisticated hacking over years, and not a few days or weeks. It's a long road ahead before you will be able to say [*I am not in danger. I am the danger!*](https://www.youtube.com/watch?v=Ca3kPemW2CE&t=44s), unless you choose [other ways](https://xkcd.com/538).
- They don't get their info from random YouTube videos. Interesting computer security topics typically require a lot of background information and complex steps to reproduce. Get comfortable reading. Just being able to install kali and other hacking tools will not make you a hacker.
If you're sure this is for you and you're ready, here's some links:
- [Become a Hacker](https://www.wikihow.com/Become-a-Hacker)
- [Hack the Box](https://www.hackthebox.eu)
- [OWASP Top Ten](https://owasp.org/www-project-top-ten)
<!-- FIXME: Fix link: `hacking.md` -->
If you do decide to do hacking in Termux, note that Termux official communities and maintainers will not provide support for any hacking related activities and neither Termux nor its maintainers will be responsible for any trouble you get including legal issues, lost data, broken device or Termux app, and any other damage caused due to your actions. Check our [hacking](https://github.com/termux/termux-community/blob/site/site/pages/en/rules/hacking.md) rules for more info.
## &nbsp;
&nbsp;

View File

@ -0,0 +1,55 @@
---
page_ref: "@PROJECTS__VARIANT@/termux/termux-packages/docs/@DOCS__VERSION@/get-started/shells/index.html"
---
# Shells
<!-- @DOCS__HEADER_PLACEHOLDER@ -->
Termux provides the following shells. The [`bash`](#bash) shell is the default shell in Termux.
If you've never used a Linux shell or terminal (also called command-line interface) before, it can be intimidating. We think
[this interactive tutorial](https://linuxjourney.com/lesson/the-shell) that runs in your browser is a good way to learn the basics. Also check the `See also` section for [`bash`](#bash) for more guides.
- [bash](#bash)
- beanshell
- dash
- fish
- IPython
- ksh
- lua
- node
- perl
- php
- pry
- python
- ruby
- TCSH
- Xonsh
- zsh
---
&nbsp;
### bash
The `bash` is the default shell in Termux and in many linux distos and so is considered a portable shell. Learning it or related posix compatible shells will be very useful if you want to be good at using Termux and a terminal and at running commands properly.
#### See also
- [Homepage](https://www.gnu.org/software/bash)
- [Bash Beginners' Guide](https://tldp.org/LDP/Bash-Beginners-Guide/html)
- [Cheatsheet](https://devhints.io/bash)
- [Advanced scripts/tricks](https://github.com/dylanaraps/pure-bash-bible)
- [Complete bash manual](https://tldp.org/LDP/abs/html/index.html)
- [Awesome Bash](https://github.com/awesome-lists/awesome-bash)
- [Comparison of `bash` and other shells](https://hyperpolyglot.org/unix-shells)
## &nbsp;
&nbsp;

View File

@ -0,0 +1,569 @@
---
page_ref: "@PROJECTS__VARIANT@/termux/termux-packages/docs/@DOCS__VERSION@/get-started/software-development/index.html"
---
# Software Development
<!-- @DOCS__HEADER_PLACEHOLDER@ -->
Termux is often used for software development and in scientific fields. Termux provides the following development environments.
If you are new to programming and want to learn it in Termux, then know that there are no shortcuts: it takes a lot of time, effort, and patience. People spend lifetimes learning how to program and to keep improving!
One mistake new programmers often make is focusing too much on languages - it's much better to pick a language with a large community and focus on learning how to write programs generally than to jump from new thing to new thing without learning much about anything. Don't stress too much about picking The Best Language. It's sometimes helpful to find a real world problem that you personally have, and then try to find a way to solve it and use the language that will be more appropriate for it.
However, learning how things work at a lower level is also very important to be a good programmer, and so you may want to try to learn a low level language like C/C++ at some point, even if you don't start with it.
We aim to provide tutorials for specific languages in our docs. If you need help with a language that is not listed, feel free to ask - maybe someone in our community can help.
- [APKs](#apks)
- [C/C++](#cc)
- [Common Lisp](#common-lisp)
- [D](#d)
- [Dart](#dart)
- [ECJ](#ecj)
- [Elixir](#elixir)
- [Erlang](#erlang)
- [Forth](#forth)
- [Go](#go)
- [Gradle](#gradle)
- [Groovy](#groovy)
- [Guile](#guile)
- [Haskell](#haskell)
- [Java](#java)
- [JavaScript](#javascript)
- [Kotlin](#kotlin)
- [Lua](#lua)
- [Nim](#nim)
- [NodeJS](#nodejs)
- [OCaml](#ocaml)
- [Octave](#octave)
- [Perl](#perl)
- [PHP](#php)
- [Picolisp](#picolisp)
- [Prolog](#prolog)
- [Python](#python)
- [Racket](#racket)
- [Ruby](#ruby)
- [Rust](#rust)
- [Scala](#scala)
- [Scheme](#scheme)
- [Smalltalk](#smalltalk)
- [Swift](#swift)
- [TinyScheme](#tinyscheme)
- [Tcl](#tcl)
---
&nbsp;
### APKs
APKs (Android application PacKage) can be built in Termux on device with [`openjdk-17`](#java), [`kotlin`](#kotlin) and [`gradle`](#gradle).
Related Pull Request and Temporary Guide: https://github.com/termux/termux-packages/pull/7227#issuecomment-893022283
## &nbsp;
&nbsp;
### C/C++
**Package:** `clang`
**Description:** C language frontend for LLVM.
**Homepage:** http://clang.llvm.org/
**Related Issues:** https://github.com/termux/termux-packages/issues?q=clang
## &nbsp;
&nbsp;
### Common Lisp
**Package:** `ecl`
**Description:** ECL (Embeddable Common Lisp) interpreter.
**Homepage:** https://common-lisp.net/project/ecl/
## &nbsp;
&nbsp;
### D
**Package:** `ldc`
**Description:** D programming language compiler, built with LLVM.
**Homepage:** https://dlang.org/
**Instructions:** https://wiki.dlang.org/Build_D_for_Android
## &nbsp;
&nbsp;
### Dart
**Package:** `dart`
**Homepage:** https://www.dartlang.org/
## &nbsp;
&nbsp;
### ECJ
**Package:** `ecj`
**Description:** Eclipse Compiler for Java.
**Homepage:** http://www.eclipse.org/jdt/core/
**Related Issues:** https://github.com/termux/termux-packages/issues?q=ecj
## &nbsp;
&nbsp;
### Elixir
**Package:** `elixir`
**Description:** Programming language compatible with the Erlang platform.
**Homepage:** https://elixir-lang.org/
## &nbsp;
&nbsp;
### Erlang
**Package:** `erlang`
**Description:** Erlang programming language and runtime environment.
**Homepage:** https://www.erlang.org/
## &nbsp;
&nbsp;
### Forth
**Package:** `pforth`
**Description:** Portable Forth in C.
**Homepage:** http://www.softsynth.com/pforth/
## &nbsp;
&nbsp;
### Go
**Package:** `golang`
**Description:** Go programming language compiler.
**Homepage:** https://golang.org/
**Instructions:** https://gobyexample.com/hello-world
## &nbsp;
&nbsp;
### Gradle
**Package:** `gradle`
**Description:** A build automation tool for multi-language software development.
**Homepage:** https://gradle.org
## &nbsp;
&nbsp;
### Groovy
**Package:** `groovy`
**Description:** A multi-faceted language for the Java platform.
**Homepage:** https://groovy-lang.org/
## &nbsp;
&nbsp;
### Guile
**Package:** `guile`
**Homepage:** http://www.gnu.org/software/guile/
## &nbsp;
&nbsp;
### Haskell
**Package:** `ghc`
**Description:** Glasgow Haskell Compiler.
`ghc` is currently disabled due to build issues. Looking for patches that will fix package.
**Homepage:** https://www.haskell.org/ghc/
**Related Issues:** https://github.com/termux/termux-packages/issues?q=haskell
## &nbsp;
&nbsp;
### Java
**Package:** `openjdk-17`
**Description:** Java development kit and runtime.
**Related Issues:** https://github.com/termux/termux-packages/issues?q=openjdk, https://github.com/termux/termux-packages/issues?q=java
## &nbsp;
&nbsp;
### JavaScript
**Package:** `quickjs`, `duktape`, `nodejs`, `nodejs-lts`
## &nbsp;
&nbsp;
### Kotlin
**Package:** `kotlin`
**Homepage:** https://kotlinlang.org/
## &nbsp;
&nbsp;
### Lua
**Package:** `lua52`
**Package:** `lua53`
**Package:** `lua54`
**Description:** Lightweight embeddable scripting language.
**Homepage:** https://www.lua.org/
## &nbsp;
&nbsp;
### Nim
**Package:** `nim`
**Description:** Nim programming language compiler.
**Homepage:** https://nim-lang.org/
## &nbsp;
&nbsp;
### NodeJS
Main **Article:** [https://wiki.termux.com/index.php?title=Node.js Node.js]
**Homepage:** https://nodejs.org/
## &nbsp;
&nbsp;
### OCaml
[Compiling and setting up OCaml](https://wiki.termux.com/wiki/Compiling_and_setting_up_OCaml) (a copy of the article http://ygrek.org.ua/p/ocaml-termux.html).
**Related Issues:** https://github.com/termux/termux-packages/issues?q=ocaml
**See also**
- https://ocaml.org/learn/description.html
## &nbsp;
&nbsp;
### Octave
Octave is available from a community repository. [Setup up `its-pointless`](https://wiki.termux.com/wiki/Package_Management#By_its-pointless) repository.
https://github.com/termux/termux-packages/issues?q=octave
## &nbsp;
&nbsp;
### Perl
**Package:** `perl`
**Homepage:** https://www.perl.org/
## &nbsp;
&nbsp;
### PHP
**Package:** `php`
**Description:** Server-side scripting language.
**Homepage:** https://php.net
**Related Issues:** https://github.com/termux/termux-packages/issues?q=php
## &nbsp;
&nbsp;
### Picolisp
**Main external docs:** https://picolisp.com/wiki/?TermuxPentiPicoLisp
**Related Issues:** https://github.com/termux/termux-packages/issues?q=picolisp
## &nbsp;
&nbsp;
### Prolog
**Package:** `swi-prolog`
**Description:** Popular prolog implementation.
**Homepage:** https://swi-prolog.org/
## &nbsp;
&nbsp;
### Python
**Main docs:** https://wiki.termux.com/wiki/Python
**Package:** `python`
**Description:** Python 3 interpreter.
**Package:** `python2`
**Description:** Python 2 interpreter.
**Homepage:** http://python.org/
**Related Issues:** https://github.com/termux/termux-packages/issues?q=python
## &nbsp;
&nbsp;
### Racket
**Package:** `racket`
**Homepage:** https://racket-lang.org
## &nbsp;
&nbsp;
### Ruby
**Main docs:** https://wiki.termux.com/wiki/Ruby
**Package:** `ruby`
**Homepage:** https://www.ruby-lang.org/
**Related Issues:** https://github.com/termux/termux-packages/issues?q=ruby
## &nbsp;
&nbsp;
### Rust
**Package:** `rust`
**Description:** The Rust compiler and Cargo package manager.
**Homepage:** https://www.rust-lang.org
**Related Issues:** https://github.com/termux/termux-packages/issues?q=rust
## &nbsp;
&nbsp;
### Scala
**Package:** `scala`
**Homepage:** https://www.scala-lang.org
## &nbsp;
&nbsp;
### Scheme
**Package:** `scheme48`, `tinyscheme`
## &nbsp;
&nbsp;
### Smalltalk
**Package:** `smalltalk`
**Description:** Smalltalk-80 language implementation by GNU.
**Homepage:** http://smalltalk.gnu.org/
## &nbsp;
&nbsp;
### Swift
**Package:** `swift`
**Description:** Swift compiler.
**Homepage:** https://swift.org/
## &nbsp;
&nbsp;
### TinyScheme
**Package:** `tinyscheme`
**Description:** Very small scheme implementation.
**Homepage:** http://tinyscheme.sourceforge.net/home.html
## &nbsp;
&nbsp;
### Tcl
**Package:** `tcl`
**Homepage:** https://www.tcl.tk/
## &nbsp;
&nbsp;