Dove posso trovare la documentazione per i comandi della shell? [chiuso]


18

Per l'utilizzo di comandi shell tramite un programma terminale, dove posso trovare documentazione o aiuto o pagine man per i comandi implementati in Android ?

Anche se sarebbe bello averli sul dispositivo tramite man , anche PDF o Web andrebbero bene.

Quando eseguo "man" dal terminale, ricevo un errore e non ho trovato una buona fonte online.



@CiroSantilli 华 涌 低端 人口 六四 事件 法轮功 - Il collegamento fornito è una domanda più sulla lista dei comandi disponibili che sulle pagine man per loro. E le risposte sono piuttosto povere.
sancho.s Ripristina Monica il

Risposte:



4

La maggior parte dei comandi di terminale in Android sono la versione limitata dei comandi di terminale standard Linux / Unix / POSIX, forniti dal toolboxprogramma. In particolare è assente toolboxil cpcomando (copia file), è necessario utilizzare cat file1 > file2invece. Se trascorri molto tempo nella shell, potresti voler installare busybox, che fornisce un set più ricco di comandi POSIX standard.

Ci sono alcune informazioni sulla shell Android qui: http://benno.id.au/blog/2007/11/13/android-under-the-hood



3

La maggior parte dei comandi "standard" della shell Android si trova in / system / bin / e la maggior parte di questi sono collegati in modo simbolico a Toolbox, un set di applet con licenza bsd, simile a busybox, ma senza i "" problemi "della licenza GPL-2 . Toolbox aiuta Google a rimuovere la dipendenza dal codice GPL e si rivolge a piccole dimensioni e a specifiche attività Android. Non era destinato all'uso da parte dell'utente finale.

Non ci sono manuali integrati in stock Android e le applet degli strumenti non dispongono di alcuna documentazione, dai comandi, dagli stessi strumenti e online. Sono copie molto limitate di ciò che la maggior parte degli utenti considererebbe gli strumenti di tipo POSIX standard. Più simile a BSD-Utils, quindi le bandiere di BSD Util hanno maggiori probabilità di funzionare e il comportamento è più simile a BSD-Utils che a Posix. Anche allora, le applet Toolbox mancano di molte di quelle bandiere.

La cosa più vicina alla documentazione è il codice sorgente. Che, come la maggior parte di Android, disponibile online. Ecco la versione Froyo della fonte Toolbox: https://android.googlesource.com/platform/system/core/+/froyo/toolbox
Trova la versione che ti serve.

Tieni presente che diversi produttori potrebbero modificare il codice. La cassetta degli attrezzi di Samsung è diversa da quella di Motorola. Diamine, Samsung Galaxy S Toolbox differisce da Samsung Sidekick 4g (basato su Galaxy S). I produttori possono aggiungere applet per uso personale o modificare l'impostazione predefinita per scopi specifici. l' restartapplet nella casella degli strumenti funzionerà sul telefono in cui è stata accesa, ma l' restartapplet busybox non funzionerà, a meno che non sia stato appositamente corretto. Timee Datesono anche diversi. Ce ne sono anche altri. Quindi Toolbox non è qualcosa che puoi sostituire completamente con Busybox o l'intero GNU-Utils o altro.


3

Nelle versioni precedenti di Android

Nelle versioni precedenti di Android, i comandi della shell tendono ad essere:

  • Riscritto appositamente per Android e spedito come parte di Toolbox. Non sono sicuro che Toolbox sia davvero documentato ovunque.
  • O copiato da NetBSD. In tal caso, il comando è stato ricompilato per Android e il comando (ma non la sua pagina di manuale) viene fornito con Android.

Usa typeper dirti dove è memorizzato un comando e ls -lsul comando per dirti se si tratta di un vero binario o di un collegamento simbolico. Se si tratta di un collegamento simbolico a Toolbox, saprai che il comando fa parte di Toolbox.

Alcuni comandi, come ad esempio kill, sono disponibili sia come shell incorporata (questa è la versione che verrà normalmente eseguita) sia in /system/bin(questa versione normalmente non verrà mai eseguita). typeti dirà quale versione verrà eseguita.

Su Marshmallow e su

Android 6.0 "Marshmallow" e sulla nave con Toybox , e la maggior parte dei comandi di shell più comunemente usati ( cp, mv, ls, eccetera) tendono ad essere giocattoli Toybox. I giocattoli Toybox normalmente includono un aiuto integrato; le pagine di manuale ufficiali non sono incluse.

Tuttavia, Toybox non include tutto e quindi non tutto viene fornito da Toybox. Ad esempio, anche su Android 6.0 "Marshmallow", fsck_msdos(che dovrebbe essere usato solo per controllare le schede SD di 32 GB o meno) sembra essere preso da FreeBSD o NetBSD. fsck_exfat(che può controllare la maggior parte delle schede SD da 64 GB o più) è preso da altrove. Non sono sicuro di dove.

La tua conchiglia

Nelle versioni moderne di Android, la shell è mksh, la shell MirBSD Korn. Se mkshè in esecuzione, quindi per scoprire la tua mkshversione, inserisci:

echo $KSH_VERSION

1

Suggerirei di avviare un dispositivo virtuale Android (AVD), collegarlo ad adb ed eseguire il comando shell Android in questione:

pdurbin@macbook ~$ cd /Applications/eclipse/android-sdk-mac_x86/platform-tools
pdurbin@macbook platform-tools$ ./adb -s emulator-5554 shell
# /system/bin/pm
usage: pm [list|path|install|uninstall]
       pm list packages [-f]
       pm list permission-groups
       pm list permissions [-g] [-f] [-d] [-u] [GROUP]
       pm list instrumentation [-f] [TARGET-PACKAGE]
       pm list features
       pm path PACKAGE
       pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f] PATH
       pm uninstall [-k] PACKAGE
       pm enable PACKAGE_OR_COMPONENT
       pm disable PACKAGE_OR_COMPONENT
       pm setInstallLocation [0/auto] [1/internal] [2/external]
[snip]

Se qualcuno conosce la bandiera per dare comandi shell Android per stampare solo la schermata di utilizzo, per favore fatemelo sapere. Ho provato --help, -help, -h, --usage, ecc.

Prova a eseguire ls /system/bine vedi anche http://developer.android.com/guide/developing/tools/adb.html#shellcommands


1

Il set di comandi della shell utilizzato da Android sembra essere toolbox. Le informazioni su di esso sembrano non essere centralizzate (il che mi sembra oscuro ), ma si potrebbe cercare e trovare informazioni in giro, ad es.

http://www.all-things-android.com/content/android-toolbox-command-reference

Per un uso "intensivo" della riga di comando, BusyBox è generalmente raccomandato in sostituzione di toolbox.

Crediti / Correlati:

/programming/3647014/how-can-i-get-information-from-the-shell-about-commands-available-in-android-she

/programming/41498651/how-to-execute-the-help-linux-command-on-android

https://github.com/jackpal/Android-Terminal-Emulator/wiki/Android-Shell-Command-Reference

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.