ฉันจะหาเอกสารสำหรับคำสั่งเชลล์ได้ที่ไหน [ปิด]


18

สำหรับการใช้คำสั่งเชลล์ผ่านโปรแกรมเทอร์มินัลฉันสามารถหาเอกสารหรือวิธีใช้หรือหน้าคนสำหรับคำสั่งที่นำมาใช้ใน Android ได้อย่างไร

ในขณะที่มันจะดีที่มีพวกเขาบนอุปกรณ์ผ่านคน PDF หรือบนเว็บจะดีเช่นกัน

เมื่อฉันเรียกใช้ "คน" จากเทอร์มินัลฉันได้รับข้อผิดพลาดและฉันไม่พบแหล่งข้อมูลออนไลน์ที่ดี



@CiroSantilli 华涌低端人口六四事件法轮功 - ลิงก์ที่ให้ไว้เป็นคำถามเพิ่มเติมเกี่ยวกับรายการคำสั่งที่ใช้ได้มากกว่าในหน้าคนสำหรับพวกเขา และคำตอบนั้นค่อนข้างแย่
sancho.s Reinstate Monica

คำถามที่เกี่ยวข้องเก่า ... stackoverflow.com/questions/3647014/
sancho.s Reinstate Monica

คำตอบ:


8

คุณอาจดูได้ที่http://www.busybox.net/downloads/BusyBox.htmlเพื่อดูคำอธิบายเกี่ยวกับ busybox และคำสั่งต่างๆ และเชื่อใจฉันหากคุณกำลังจะทำงานในคอนโซลคุณอาจต้องการใช้ busybox


5
มันเป็นที่น่าสังเกตว่าหุ้น Android ไม่ได้มาด้วยและแทนที่จะใช้busybox toolbox
Lie Ryan

4

คำสั่งเทอร์มินัลส่วนใหญ่ใน Android เป็นเวอร์ชัน จำกัด ของคำสั่งเทอร์มินัล Linux / Unix / POSIX ที่จัดทำโดยtoolboxโปรแกรม ขาดสะดุดตาจากtoolboxเป็นcp(คัดลอกไฟล์) คำสั่งคุณต้องใช้cat file1 > file2แทน หากคุณใช้เวลามากในเชลล์คุณอาจต้องการติดตั้งbusyboxซึ่งมีชุดคำสั่ง POSIX มาตรฐานที่สมบูรณ์ยิ่งขึ้น

มีบางอย่างเกี่ยวกับเชลล์ Android ที่นี่: http://benno.id.au/blog/2007/11/13/android-under-the-hood



3

คำสั่งเชลล์มาตรฐาน Android ส่วนใหญ่พบได้ใน / system / bin / และส่วนใหญ่คำสั่งนั้นเชื่อมโยงกับ Toolbox ชุดแอปเพล็ตที่ได้รับใบอนุญาต bsd คล้ายกับ busybox แต่ไม่มีการออกใบอนุญาต GPL-2 "" . กล่องเครื่องมือช่วยให้ Google จำเป็นต้องลบการพึ่งพารหัส GPL และมีการกำหนดเป้าหมายไปที่งานขนาดเล็กและงาน Android ที่เฉพาะเจาะจง มันไม่ได้มีไว้สำหรับการใช้งานของผู้ใช้

ไม่มีคู่มือ builtin ในสต็อก Android และกล่องเครื่องมือ applets ขาดเอกสารใด ๆ จากคำสั่งจากกล่องเครื่องมือตัวเองและออนไลน์ พวกเขาเป็นสำเนาที่ จำกัด ของสิ่งที่ผู้ใช้ส่วนใหญ่จะพิจารณาเครื่องมือชนิด POSIX มาตรฐาน คล้ายกับ BSD Utils ดังนั้นธง BSD Util มีแนวโน้มที่จะทำงานและพฤติกรรมคล้ายกับ BSD Utils มากกว่า Posix ถึงตอนนั้นแอพเพล็ตกล่องเครื่องมือยังขาดแฟล็กเหล่านั้นจำนวนมาก

เอกสารที่ใกล้เคียงที่สุดคือซอร์สโค้ด ซึ่งเหมือนกับ Android ส่วนใหญ่สามารถออนไลน์ได้ นี่คือรุ่น Froyo ของแหล่ง Toolbox: https://android.googlesource.com/platform/system/core/+/froyo/toolbox
เพียงแค่ค้นหารุ่นที่คุณต้องการ

โปรดทราบว่าผู้ผลิตรายอื่นอาจเปลี่ยนรหัส กล่องเครื่องมือของ Samsung นั้นแตกต่างจากของ Motorola Heck, กล่องเครื่องมือ Samsung Galaxy S แตกต่างจาก Samsung Sidekick 4g (ใช้กับ Galaxy S) ผู้ผลิตอาจเพิ่มแอปเพล็ตสำหรับการใช้งานของตนเองหรือเปลี่ยนค่าเริ่มต้นเพื่อวัตถุประสงค์เฉพาะ restartแอปเพล็ในกล่องจะทำงานบนโทรศัพท์มันมา แต่ busybox restartแอปเพล็จะไม่เว้นแต่ patched เฉพาะ TimeและDateก็แตกต่างกัน มีคนอื่นเช่นกัน ดังนั้นกล่องเครื่องมือไม่ใช่สิ่งที่คุณสามารถแทนที่ด้วย Busybox หรือ GNU-Utils ทั้งหมดหรืออะไรก็ตาม


3

สำหรับ Android รุ่นเก่า

สำหรับ Android เวอร์ชันเก่าคำสั่ง shell มีแนวโน้มที่จะเป็น:

  • เขียนซ้ำโดยเฉพาะสำหรับ Android และจัดส่งเป็นส่วนหนึ่งของกล่องเครื่องมือ ฉันไม่แน่ใจว่ากล่องเครื่องมือมีเอกสารจริงหรือไม่
  • หรือคัดลอกมาจาก NetBSD หากเป็นเช่นนั้นคำสั่งจะถูกคอมไพล์ใหม่สำหรับ Android และคำสั่ง (แต่ไม่ใช่หน้าคู่มือ) จะถูกส่งมาพร้อมกับ Android

ใช้typeเพื่อบอกตำแหน่งที่เก็บคำสั่งและls -lในคำสั่งเพื่อบอกคุณว่าเป็นไบนารีจริงหรือลิงก์สัญลักษณ์ หากเป็นลิงก์สัญลักษณ์ไปยังกล่องเครื่องมือคุณจะรู้ว่าคำสั่งนั้นเป็นส่วนหนึ่งของกล่องเครื่องมือ

คำสั่งบางคำสั่งเช่นkillมีทั้งแบบเชลล์บิวด์อิน (ซึ่งเป็นรุ่นที่จะใช้งานตามปกติ) และใน/system/bin(รุ่นนี้โดยปกติจะไม่ทำงาน) typeจะบอกคุณว่าเวอร์ชันใดจะทำงาน

เมื่อ Marshmallow ขึ้นไป

Android 6.0 "ขนมหวาน" และขึ้นเรือที่มีToyboxและส่วนใหญ่ของเชลล์คำสั่งที่ใช้กันมากที่สุด ( cp, mv, lsฯลฯ ) มีแนวโน้มที่จะเป็นของเล่น Toybox ปกติแล้ว Toybox นั้นจะมีของเล่นในตัว ไม่รวมหน้าคู่มืออย่างเป็นทางการ

ถึงกระนั้น Toybox ก็ไม่ได้รวมทุกอย่างไว้ดังนั้น Toybox จึงไม่ให้ทุกอย่าง ตัวอย่างเช่นแม้ใน Android 6.0 "Marshmallow" fsck_msdos(ซึ่งควรใช้เพื่อตรวจสอบการ์ด SD ที่มีขนาด 32 GB หรือน้อยกว่า) ดูเหมือนว่าจะใช้จาก FreeBSD หรือ NetBSD fsck_exfat(ซึ่งสามารถตรวจสอบการ์ด SD ส่วนใหญ่ 64 GB หรือใหญ่กว่า) นำมาจากที่อื่น ฉันไม่แน่ใจว่าอยู่ที่ไหน

เปลือกของคุณ

สำหรับ Android รุ่นใหม่ shell คือmkshMirBSD Korn shell หากmkshกำลังทำงานอยู่หากต้องการค้นหาmkshเวอร์ชันของคุณให้ป้อน:

echo $KSH_VERSION

1

ฉันขอแนะนำให้เริ่มต้นอุปกรณ์ Android เสมือน (AVD) เชื่อมต่อกับ adb และเรียกใช้คำสั่งเชลล์ Android ในคำถาม:

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]

หากใครรู้ว่าการตั้งค่าสถานะเพื่อให้คำสั่งเปลือก Android เพียงพิมพ์หน้าจอการใช้งานโปรดแจ้งให้เราทราบ ฉันพยายาม - ช่วยเหลือ, - ช่วยเหลือ, -h, - การใช้ ฯลฯ

ลองเรียกใช้ls /system/binและดูhttp://developer.android.com/guide/developing/tools/adb.html#shellcommands


1

ชุดของคำสั่งเชลล์ใช้โดย Android toolboxน่าจะเป็น ข้อมูลเกี่ยวกับมันดูเหมือนว่าจะไม่รวมศูนย์ (ซึ่งดูเหมือนจะคลุมเครือกับฉัน) แต่สามารถค้นหาและค้นหาข้อมูลบางส่วนได้เช่น

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

สำหรับการใช้งาน "เข้มข้น" ของบรรทัดคำสั่งBusyBoxtoolboxแนะนำโดยทั่วไปแทนสำหรับ

เครดิต / ที่เกี่ยวข้อง:

/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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.