2020-03-22

Screenshot


1. Windows 下截图
2. Linux 下截图
本文前面2章节有用,下方都是相关主题的链接!
3. Linux 截图软件列举
4. Linux快捷键相关链接
5. 桌面环境 (DE) Desktop environments
6. 窗口管理 (WM) Windows managers
7. Screencast 录屏
8. 录屏软件对比

1. Windows下截图

好用的QQ截图需要登录QQ才能使用,就是说没有网络时就没的用了...
好在有强人将这部分好用的部分抽取了出来,只有780kb,可以单独使用。大家可以自行搜索下载
← 左边    
exe文件属性;

    右边 →
快捷方式属性
  1. 下载(解压)获得一个独立的的可执行文件QQSnapShot.exe,保存到你的任意目录下;
  2. 生成桌面快捷方式
  3. 给快捷方式添加快捷键: 选中快捷方式,右键菜单选择属性,在[快捷方式]页签下的[快捷键]栏设置你的快捷键,确定[应用]。
然后就可以在任何时候通过快捷键调用截图功能了。

2. Linux下截图

1) 安装截图软件Flameshot,(Arch: $ sudo pacman -S flameshot);
2) 设置快捷键;
当前系统是Arch, xfce的桌面,增加自定义快捷键在这里,其他桌面也在差不多的位置。
Settings\Keyboard 如图设置
  • Command: flameshot gui
  • Shortcut: Ctrl+Shift+A
查看更多系统快捷键
Settings\Window Manager\Keyboard

3. Linux截图软件列举

https://en.wikipedia.org/wiki/Comparison_of_screencasting_software
baseScreenshot描述web
Qt5Flameshot交互式截图。进行绘制并享受自定义功能。https://github.com/lupoDharkael/flameshot
Waylandgrim从Wayland合成器抓取图像。https://github.com/emersion/grim
QtScreenGrab跨平台应用程序,旨在快速获取屏幕截图。https://github.com/DOOMer/screengrab
KDESpectacle选定的矩形区域或徒手绘制的区域的图像。https://github.com/KDE/spectacle/

Shotgun根据作者的说法,它的速度是maim的两倍。https://github.com/neXromancers/shotgun

maim命令行实用程序,它旨在替换scrot。https://github.com/naelstrof/maim

ScrotX的简单命令行屏幕快照实用程序。https://github.com/resurrecting-open-source-projects/scrot
LXQtLXQt Screenshot用运行lximage-qt --screenshot。https://github.com/lxde/lximage-qt
MATEMATE ScreenshotMATE桌面的屏幕截图工具。http://mate-desktop.org
DeepinDeepin Screenshot全局热键触发截图,可添加文本和线条图。https://www.deepin.org/en/original/deepin-screenshot/
GNOMEGNOME ScreenshotGNOME桌面的屏幕截图工具。https://gitlab.gnome.org/GNOME/gnome-screenshot
Xfce4Xfce4 Screenshooter应用程序和Xfce4面板插件http://goodies.xfce.org/projects/applications/xfce4-screenshooter
xorgxwdX Window系统映像转储实用程序https://www.x.org/
Screenshot 屏幕截图
https://wiki.archlinux.org/index.php/xfce#Screenshots
https://wiki.archlinux.org/index.php/Screen_capture
https://en.wikipedia.org/wiki/Screenshot
https://en.wikipedia.org/wiki/Screenshot#Android
https://en.wikipedia.org/wiki/Screenshot#Linux
https://en.wikipedia.org/wiki/Screenshot#External_tools

4. Linux快捷键相关链接

Keyboard
https://wiki.archlinux.org/index.php/Extra_keyboard_keys
https://wiki.archlinux.org/index.php/xfce#Keyboard_volume_buttons
https://wiki.archlinux.org/index.php/GNOME/Tips_and_tricks#Keyboard
https://wiki.archlinux.org/index.php/Keyboard_shortcuts

5. 桌面环境 (DE) Desktop environments

https://wiki.archlinux.org/index.php/Desktop_environment#List_of_desktop_environments
桌面环境(DE) Desktop environments是由一系列程序组成的桌面比拟Desktop metaphor的实现,这些程序共享一个公共的图形用户界面(GUI)。
https://en.wikipedia.org/wiki/Desktop_environment
https://upload.wikimedia.org/wikipedia/commons/f/ff/Popular_free_desktop_environments.svg
https://en.wikipedia.org/wiki/Comparison_of_X_Window_System_desktop_environments
https://en.wikipedia.org/wiki/Category:Free_desktop_environments
https://wiki.archlinux.org/index.php/LXDE#Bindings
https://wiki.archlinux.org/index.php/Xfce#Keyboard_Shortcuts

6. 窗口管理 (WM) Windows managers

https://wiki.archlinux.org/index.php/Window_manager#List_of_window_managers
窗口管理器(WM) Windows managers是系统软件,它以图形用户界面(GUI)控制窗口系统内窗口的放置和外观。它可以是桌面环境(DE) Desktop environments的一部分,也可以独立使用。
https://wiki.archlinux.org/index.php/Fluxbox#Hotkeys
https://wiki.archlinux.org/index.php/Openbox#Keybinds
https://wiki.archlinux.org/index.php/Compiz

7. Screencast 录屏

https://en.wikipedia.org/wiki/Screencast
截屏是一个数字记录计算机屏幕输出,也被称为视频屏幕捕获或屏幕记录,往往包含音频叙述。
最佳截屏软件:全面比较
https://screenrec.com/screen-recorder/screencast-software/
不要与Screenshot或Screencam混淆。Screencam 是微软的录屏软件,最新版本:SmartGuyz ScreenCam 3.6(2012-12)

8. 录屏软件对比

https://en.wikipedia.org/wiki/Comparison_of_screencasting_software
维基百科登录了40于种软件进行对比,这里只提取的10个,排序依据是,最近更新,跨平台,开源,功能等综合考量。
namePublisher最新发布OSlicense开源AudioFull DOpenGLDirect3DEditingOutputYes
Open Broadcaster SoftwareOBS Project2019-09-20Win macOS LinGPL v2YesYesYesYesYesNoSimple mode: FLV, MP4, MOV, MKV, TS, HLS
Advanced mode: Any format supported by libavformat
4
VLCVideoLAN2019-01-10Win macOS Lin
BSD Solaris QNX
Haiku Syllable OS/2
GPLYesYesYesYes?Yes
4
PeekPhilipp Wolfer2019-09-27LinGPL v3Yes






CamtasiaTechSmith2019-05-29Win macOSTrialwareNoYesYesYesYesYes.camrec, AVI5
BandicamBandicam Company2019-10-23WinProprietary commercialNoYesYesYesYesNoAVI, MP44
mimoLiveBoinx Software Ltd.2019-01-08macOSProprietary commercialNo






ActivePresenter/
ActivePresenter Free Edition
Atomi Systems2018-07-11Win macOSProprietary commercial
/ Freeware
NoYesYesNoYes
/No
YesVideo: AVI, MKV, MP4, SWF, WebM, WMV, FLV
Image sequence: PNG, JPEG
Slideshow: PowerPoint, HTML
Scripted animation: SWF, HTML5, SCORM
4
ScreenFlowTelestream2018-06-20macOSProprietary commercialNoYesYesYesN/AYesProRes, MP4, GIF, AAC
Video: MP4
Image sequence: PNG
4
SimpleScreenRecordermaartenbaert2017-12-11LinGPL v3YesYesYesYesN/ANoFormats supported by libavformat3
XSplit BroadcasterSplitmediaLabs2017-06-27WinSharewareNoYesYesYesYesYesMP4, FLV5


2020-03-16

BusyBox


1. BusyBox
2. Toybox
3. BusyBox命令
4. 关于Toybox的争议
5. 被取代的命令
6. 更多相关参考

1. BusyBox

https://en.wikipedia.org/wiki/BusyBox
https://zh.wikipedia.org/wiki/BusyBox
Initial release 1999; 20 years ago
Stable release 1.31.1 (October 25, 2019; 4 months ago) 
Repository git.busybox.net/busybox
Website  www.busybox.net
BusyBox是一个遵循GPL协议、以自由软件形式发行的应用程序。Busybox在单一的可执行文件中提供了精简的Unix工具集,可运行于多款POSIX环境的操作系统,例如Linux(包括Android)、Hurd、FreeBSD等等。由于BusyBox可执行文件的文件大小比较小,使得它非常适合使用于嵌入式系统。作者将BusyBox称为“嵌入式Linux的瑞士军刀”。

https://wiki.archlinux.org/index.php/BusyBox
BusyBox在单个小型可执行文件中为嵌入式系统提供了许多常见的UNIX实用程序。
注意:不要期望完全的直接替换和兼容性。某些实用程序可能不存在,而对于某些实用程序,则可能缺少选项。
https://wiki.gentoo.org/wiki/Mdev#Emerging_busybox

2. Toybox

https://en.wikipedia.org/wiki/Toybox
Initial release 2006; 14 years ago
Stable release 0.8.2 / October 18, 2019; 4 months ago
Repository github.com/landley/toybox.git
Website  www.landley.net/toybox
Toybox是针对嵌入式设备的某些Unix命令行实用程序的免费开源软件实现。其中包括ls,cp,mv和大约150个其他。Toybox项目始于2006年[2],已成为BSD许可的BusyBox替代产品。
Toybox包含在Android 6.0“ Marshmallow” [5]和所有更高的Android版本(即当前所有受支持的Android版本)中,并且还可以在某些其他操作系统上安装。

功能和目标

  • Toybox旨在为GPL许可的BusyBox提供BSD许可的替代产品。
  • Toybox的主要技术设计目标是简单,小巧,快速和符合标准。
  • Toybox与POSIX -2008和LSB 4.1兼容,并不专注于在GNU对应版本中找到每个选项。


Toybox使用许可的 BSD许可进行许可,其中BusyBox使用copyleft的 GNU通用公共许可,导致不同的使用域。
Busybox主要用于copyleft FOSS域,而Toybox主要用于许可项目和商业公司,例如Google的Android ,这是Toybox的明确目标。
从功能上讲,Toybox尚未达到Busybox的水平。从0.7.7版开始,Toybox仅提供Busybox功能的一部分。

3. BusyBox命令

https://zh.wikipedia.org/wiki/BusyBox#命令
https://en.wikipedia.org/wiki/BusyBox#Commands
https://www.busybox.net/downloads/BusyBox.html#commands
名称分类描述Arch/Busybox/Core替代品
stringsC语言编程查找文件中可打印字符串Arch
tarGnU tartar archiverArch Busyarchivers
echoShell编程输出命令参数到标准输出Busy Core
shShell编程Shell,标准命令语言解析器Busy
sleepShell编程延时Busy Core
cutShell编程选择文本中每行的特定区域Arch Core
teeShell编程读取标准输入并写入标准输出和文件Arch Core
suutil-linuxsubstitute userArchsudo
date其他输出日期和时间Busy Core
uname其他返回系统名Busy Core
od其他将文件以八进制或其他进制输出Arch Corehexdump, vim's xxd
sync文件处理工具将缓存写入磁盘并清理缓存Busy Core
cat文件系统连接和输出文件Arch Busy Coretac, bat
more文字处理逐页显示文件Busy
less文字处理terminal pagerArchterminal pagers
head文字处理显示文件开头几行Arch Core
tail文字处理显示文件结尾Arch Core
ls文件系统列出目录内容Arch Busy Coreexa, lsd, tree
pwd文件系统输出当前目录Busy Core
cd文件系统改变工作目录Arch
find文件系统查找文件Arch
grep其他根据模式搜索文字Arch Busy
egrep其他接受扩展正则表达式的grepBusy
fgrep其他接受固定字符串模式的grepBusy
pgrep其他look up processes by name or attributesArchpidof
chmod文件系统改变文件权限Arch Busy Core
chown文件系统改变文件所有者Arch Corechgrp
dd文件系统转换或复制文件Arch Busy Core
cp文件系统复制文件Arch Busy Core
mv文件系统移动文件Arch Busy Core
rm文件系统删除文件或目录Arch Busy Coreshred
touch文件系统改变文件访问和修改时间Busy Core
mkdir文件系统创建目录Arch Busy Core
rmdir文件系统删除空目录Arch Busy Core
vi文字处理面向屏幕的可视化编辑器Busy
alias其他定义或者显示别名Arch
ln文件系统创建文件链接Arch Busy Core
df文件系统报告磁盘剩余空间Arch Busy Core
du文件系统计算磁盘占用空间Core
dmesg文件系统查看内核信息Arch Busysystemd journal
mount文件系统挂载存储设备Arch Busy
umount文件系统移除挂载的存储设备Arch Busy
lsblk文件系统list block devicesArch
file文件系统判断文件类型Arch
type其他显示命令类型Archwhich
statShell 工具输出给定的索引节点存储的数据Core
awk文字处理模式扫描和处理语言Arch Busynawk, mawk
sed文字处理流编辑器Arch Busy
zcat文字处理显示或连接zip压缩的文件Busy
comm文字处理按行比较两个已排序文件Arch Core
diff文字处理比较2个文件Arch
iconv文字处理转换字符集Archrecode
sort文字处理文本排序Arch Core
tr文字处理翻译字符Arch Core
uniq文字处理报告或者删除文件中重复行Arch Core
wc文字处理字、行字节或者字符计数Arch Core
kill进程管理结束进程或向进程发信号Arch Busypkill, killall
ps进程管理报告进程状态Arch Busytop, htop
nohup进程管理运行一个忽略SIGHUP信号的程序Core
bg进程管理后台运行作业
fg进程管理在前台运行命令
jobs进程管理显示当前会话中任务状态
freeprocps-ngdisplay amount of free and used memoryArch
time进程管理定时命令Arch
ping

Busy
watch

Busy
wget
HTTP或FTP下载工具Busy
chrootShell 工具转换root(即“/”)文件夹Core
cksum文件系统计算文件校验和和大小Core
md5sum文本工具计算/校验文件的 MD5 校验值Core
sha1sum文本工具计算/校验sha224sum, sha256sum, sha384sum, sha512sumCore
env其他为命令设置环境变量Core
lp文字处理发送文件到打印机
pr文字处理打印文件Core
printfShell编程格式化输出Core
stty其他设置终端选项Core
tty其他返回用户终端名Core
logname其他返回当前登陆用户名Core
id其他返回用户标示符Core
usersShell 工具输出登录到当前主机的用户Core
who系统管理显示登录用户Core
whoamiShell 工具输出当前用户的有效用户IDCore
locale其他获得本地信息
localedef其他定义本地环境变量
man其他显示系统文档
ulimit其他设置或显示文件限制
umask其他设置或显示文件生成掩码
make编程维护一整套代码库,组织编译
split其他分割文件Core
paste文字处理合并文件Core
csplit文字处理基于内容分割文件Core
pathchk文件系统检验路径名Core
basename文件系统输入文件完整路径,只返回其文件名Core
dirname文件系统返回路径的目录Core
expand文字处理转换跳格为空格Core
unexpand文字处理转换空格为制表符Core
fold文字处理回折每行文本到特定宽度Core
nl文字处理加行号显示文本Core

4. 关于Toybox的争议

https://en.wikipedia.org/wiki/Toybox#Controversy
2012年1月,关于创建BSD许可证替代GPL许可的BusyBox项目的提案引起了Matthew Garrett的严厉批评,因为他剥夺了Software Freedom Conservancy组织唯一的版权实施相关工具。发起了基于BusyBox的诉讼的罗布·兰德利(Rob Landley)对此做出了有意的回应,他解释说,这些诉讼并没有使该项目受益,而是导致了公司回避,并表示希望“以任何方式阻止该诉讼”认为合适”。

https://en.wikipedia.org/wiki/BusyBox#Controversy_over_Toybox
由于关于GPLv3/GPLv2讨论的争议,Toybox于2006年初由前Busybox维护者Rob Landley 根据GNU通用公共许可证启动。2011年年底,该项目进入休眠状态后,根据BSD许可证重新获得了许可。2012年1月11日,索尼(Sony)员工蒂姆伯德(Tim Bird)建议创建BusyBox的替代方案,该替代方案不受GNU通用公共许可证的约束。他建议基于休眠的Toybox。2012年1月,关于创建由BSD许可的替代GPL许可的BusyBox项目的提案引起了Matthew Garrett的严厉批评。对于带走的唯一工具相关版权执法的的软件自由水利组。基于BusyBox的诉讼的开始者罗布·兰德利(Rob Landley)回答说,这是有意的,因为他得出的结论是,这些诉讼并没有希望产生积极的结果,他想“以我认为合适的方式”制止诉讼。

5. 被取代的命令

不推荐使用的Linux网络命令及其替代品 (原文及译文)
https://dougvitale.wordpress.com/2011/12/21/deprecated-linux-networking-commands-and-their-replacements/
https://www.cnblogs.com/sztom/articles/10764994.html
弃用命令  更换命令
  arp    ip n (ip neighbor)
ifconfig ip a (ip addr), ip link, ip -s(ip -stats)
iptunnel ip tunnel
iwconfig iw
 nameif  ip link,ifrename
netstat  ss,ip route (for netstat -r), ip -s link (for netstat -i), ip maddr (for netstat -g)
 route   ip r(ip route)

mkfs https://wiki.archlinux.org/index.php/File_systems#Create_a_file_system
https://wiki.archlinux.org/index.php/Category:Superseded_commands
https://www.archlinux.org/news/deprecation-of-net-tools/
https://wiki.archlinux.org/index.php/Network_configuration#net-tools
https://wiki.archlinux.org/index.php/Network_configuration#Investigate_sockets
https://wiki.archlinux.org/index.php/Network_configuration/Wireless#iw_and_wireless_tools_comparison
https://wireless.wiki.kernel.org/en/users/Documentation/iw/replace-iwconfig
Arch Linux has deprecated net-tools in favor of iproute2.
就像其他网络接口一样,无线接口也由iproute2包中的ip控制。
管理无线连接需要一套基本的工具。使用 network manager 或直接使用以下之一:
SoftwarePackageWEXTnl80211WEPWPA/WPA2Archiso
wireless_toolswireless_toolsYesNoYesNoYes
iwiwNoYesYesNoYes
WPA supplicantwpa_supplicantYesYesYesYesYes
iwdiwdNoYesYesYesYes

iw and wireless_tools comparison
iw command描述wireless_tools command
iw dev wlan0 link获取链接状态。iwconfig wlan0
iw dev wlan0 scan扫描可用的接入点。iwlist wlan0 scan
iw dev wlan0 set type ibss将操作模式设置为临时。iwconfig wlan0 mode ad-hoc
iw dev wlan0 connect your_essid连接到开放网络。iwconfig wlan0 essid your_essid
iw dev wlan0 connect your_essid 2432连接到开放的网络指定通道。iwconfig wlan0 essid your_essid freq 2432M
iw dev wlan0 connect your_essid key 0:your_key使用十六进制密钥连接到WEP加密网络。iwconfig wlan0 essid your_essid key your_key
使用ASCII密钥连接到WEP加密网络。iwconfig wlan0 essid your_essid key s:your_key
iw dev wlan0 set power_save on启用省电功能。iwconfig wlan0 power on

6. 更多相关参考

List of GNU Core Utilities commands
https://en.wikipedia.org/wiki/List_of_GNU_Core_Utilities_commands
https://zh.wikipedia.org/wiki/GNU核心工具组命令列表

List of Unix commands
https://en.wikipedia.org/wiki/List_of_Unix_commands
https://zh.wikipedia.org/wiki/Unix实用程序列表

http://www.roesler-ac.de/wolfram/acro/Cmd.htm

https://wiki.archlinux.org/index.php/Core_utilities

https://wiki.archlinux.org/index.php/List_of_applications#See_also

https://www.gnu.org/software/coreutils/manual/coreutils.html
https://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html

GNU核心实用程序
https://en.wikipedia.org/wiki/GNU_Core_Utilities
嵌入式系统上的Linux
https://en.wikipedia.org/wiki/Linux_on_embedded_systems
适用于移动设备的Linux
https://en.wikipedia.org/wiki/Linux_for_mobile_devices

2020-03-14

Termux


1. Termux
 1.1 安装地址
 1.2 查看手册
 1.3 开放源码
2. proot
 2.1 Termux为您的设备提供以下版本的Linux操作系统软件:
 2.2 使用
 2.3 设置为Arch环境
3. gentoo下的终端仿真器
4. proot维基百科
5. chroot
 5.1 chroot的用途
 5.2 chroot的要求
 5.3 使用
 5.4 在chroot中使用图形界面
6. termux-FAQ
 6.1 如何访问Termux中的设备存储?
 6.2 内部和外部存储
 6.3 共享资料
 6.4 termux下的部分检测工具

1. Termux

https://termux.com/
Termux是一个Android终端模拟器和Linux环境应用程序,可直接运行而无需root或安装。自动安装了最小的基本系统-使用APT软件包管理器可以安装其他软件包。
  • Secure 安全: 使用OpenSSH的ssh客户端访问远程服务器。Termux在漂亮的开源解决方案中将标准软件包与精确的终端仿真相结合。
  • Feature packed 功能打包: 在Bash,fish或Zsh和nano,Emacs或Vim之间选择。使用curl访问API端点,并使用rsync将联系人列表的备份存储在远程服务器上。
  • Customizable 可定制: 通过Debian和Ubuntu GNU/Linux已知的APT软件包管理系统安装所需的软件包。为什么不开始安装Git并同步您的点文件?
  • Explorable 可探索的: Termux中提供的软件包与Mac和Linux上的软件包相同-在手机上安装手册页,并在一个会话中阅读手册,而在另一个会话中进行实验。
  • With batteries included: Perl,Python,Ruby和Node.js的最新版本均可用。
  • Ready to scale up: 连接蓝牙键盘,并在需要时将设备连接至外部显示器-Termux支持键盘快捷键并具有完整的鼠标支持。
  • Tinkerable 可修补的: 通过使用Clang编译C文件进行开发,并使用CMake和pkg-config构建自己的项目。如果您遇到困难并需要调试,则GDB和strace均可用。

1.1 安装地址

可通过Google Play, F-Droid或者Nethunter Store上下载安装
带有软件包的终端模拟器,Termux将强大的终端仿真与广泛的Linux软件包集合结合在一起。
  • Enjoy the bash and zsh shells.
  • Edit files with nano and vim.
  • Access servers over ssh.
  • Compile code with gcc and clang.
  • Use the python console as a pocket calculator.
  • Check out projects with git and subversion.
  • Run text-based games with frotz.
首先,下载一个小型基本系统-然后可以使用Debian和Ubuntu Linux发行版中已知的apt软件包管理器安装所需的软件包。
长按终端上的任意位置并选择“帮助”菜单选项以了解更多信息,以访问内置帮助。
join the Termux IRC chat: #termux on freenode

1.2 查看手册

https://wiki.termux.com/wiki/Main_Page
Addons,Termux具有一些额外的功能(需要购买)。您可以通过安装插件来添加它们:
  • Termux:API (free):从Termux访问Android功能 (读取SMS,GPS,通知等)
  • Termux:Boot 启动:Termux的附加组件,使程序可以在引导时运行
  • Termux:Float 浮动:在浮动终端窗口中使用Termux
  • Termux:Styling 样式:自定义您的Termux终端, 调整终端的颜色和字体
  • Termux:Tasker 任务:Tasker插件可从Tasker运行Termux脚本
  • Termux:Widget 小部件:从主屏幕启动Termux命令, 使用桌面图标在Termux中运行程序

1.3 开放源码

https://github.com/termux
https://github.com/termux/termux-packages
https://github.com/termux/termux-app
除其他外,Termux还提供了带有许多扩展库的C clang编译器。这使您可以在Termux和Termux中编译自己的应用程序。
Termux配备了许多其他语言的翻译器和口译器,例如Python,Java,Go,Rust和其他语言。
Midnight Comander文件管理器,Vim文本编辑器,SSH应用程序等可用,使Termux成为Andriod设备上舒适的工作区,尤其是在配备键盘的情况下。

在许多情况下,在终端环境中的Linux PC和Android及Termux设备上工作没有区别。但是,由于Android的限制(不允许直接访问硬件),该环境无法完全正常运行。
例如 Termux中无法访问USB端口和连接到该端口的设备。在更高版本的Android中,由于对/proc文件系统的访问限制,“ top” info命令不起作用。

2. proot

https://wiki.termux.com/wiki/PRoot
说明:为非root用户模拟chroot,绑定mount和binfmt_misc
https://proot-me.github.io
https://github.com/proot-me/PRoot
PRoot概述
PRoot使用`ptrace`系统调用来伪造root特权。这意味着它将跟踪其每个子进程,以解释和转换由子进程进行的系统调用。
PRoot命令可用于从伪造的chroot执行一个命令或启动Shell会话。后者对于虚拟化其他操作系统的来宾根文件系统很有用。
如果您知道某些命令行,请运行proot --help以获取完整的帮助屏幕。建议您在使用任何来宾OA rootfs之前始终学习Linux命令行基础知识。
同样,PRoot仅虚拟化根文件系统树,而不是整个操作系统。不要期望诸如插入内核模块之类的事情起作用。
当使用proot虚拟化rootfs时,会观察到性能下降,这当然不如使用模拟器慢。但是,当Termux生态系统中提供了所需的软件包时,请使用它们,因为它更容易,更快捷。
不要指望一切正常。

PROOT是一个用户空间实现的chroot,mount --bind和binfmt_misc。
这意味着用户不需要任何特权或设置即可执行诸如使用任意目录作为新的根文件系统的操作。
启用PRoot的好处包括在Android智能手机和平板电脑以及Chromebook 的Termux chroot中运行Linux操作系统。

2.1 Termux为您的设备提供以下版本的Linux操作系统软件:

  Arch   https://wiki.termux.com/wiki/Arch
Archstrike https://wiki.termux.com/wiki/Archstrike
Blackarch https://wiki.termux.com/wiki/Blackarch
 Ubuntu  https://wiki.termux.com/wiki/Ubuntu
 Debian  https://wiki.termux.com/wiki/Debian
 Fedora  https://wiki.termux.com/wiki/Fedora
Slackware https://wiki.termux.com/wiki/Slackware
Alpine Linux https://github.com/Hax4us/TermuxAlpine

2.2 使用

设定值
要在安装了termux-exec和时使用proot:
  unset LD_PRELOAD
  export LD_PRELOAD=$PREFIX/lib/libtermux-exec.so
如何取消 unset?

如果要启动或执行包含proot命令的启动脚本,则在此之前必须先取消设置LD_PRELOAD(如果同时安装了termux-exec),否则将收到错误消息。通过执行,很容易取消设置LD_PRELOAD
  unset LD_PRELOAD

如何退缩 set back?
现在,如果您完成了代理工作,并且想要使用termux,那么现在您有两个选择可以再次设置/导出LD_PRELOAD:
1)只需打开一个新会话并从上一个会话退出,那么现在您的LD_PRELOAD将随新会话自动设置。
2)如果由于任何原因不想打开新会话,也可以通过执行以下命令在同一会话中导出或设置LD_PRELOAD路径
  export LD_PRELOAD=$PREFIX/lib/libtermux-exec.so

2.3 设置为Arch环境

https://wiki.termux.com/wiki/Arch
该Termux设置外壳脚本将尝试在Termux环境中设置Arch Linux。分别执行以下每个命令行以运行setupTermuxArch.bash。一次运行它们可能会产生错误;提示,复制并粘贴以下内容:
pkg install curl
curl -OL https://raw.githubusercontent.com/TermuxArch/TermuxArch/master/setupTermuxArch.bash
bash setupTermuxArch.bash
建议此安装的可用空间分配约为用户空间中的1G可用空间,而不是外部SD卡上的可用空间。Android智能手机2018上Termux PRoot中的Arch Linux:

3. gentoo下的终端仿真器

https://wiki.gentoo.org/wiki/Android/Terminal_Emulators_(Tips-and-tricks)
此目录在所有Android设备之间通用。
$ cd /data/data/<package name>

https://wiki.gentoo.org/wiki/Project:Android/tarball
本指南介绍了如何使用预编译的stage3 tarball在Android设备上安装Gentoo Prefix。
需要root用户的设备才能安装Gentoo。由于大多数Android系统都noexec为用户可写分区设置了选项,因此无法执行应用程序。同时,正在探索在无根设备上运行Gentoo的可能性。
需要比1.17更新的Busybox。如果您还没有,建议使用Stericson版本
下载最新的64位tarball(2018.02.25)或32位tarball(2018.02.26),然后将其解压缩到/ data目录中。

4. proot维基百科

https://wiki.archlinux.org/index.php/PRoot
PRoot是一种程序,它在用户空间中实现类似于GNU/Linux的chroot,mount --bind和binfmt_misc的功能,从而允许无特权的用户执行具有备用根目录的程序,就像chroot“ jail”一样。在由于缺乏root特权而无法使用chroot的情况下,这很有用。
安装后,PRoot不需要root特权。与chroot一样,必须给PRoot一个目录,以充当要运行的程序的新根目录。如果未指定程序,则/bin/sh默认情况下将启动PRoot 。无需手动安装虚拟文件系统,因为PRoot会自动进行处理。
$ proot -r ~/mychroot/
此时,将启动一个外壳,其外壳与主机系统上的目录/相对应~/chroot/。
可以使用以下-b选项显式绑定路径:
$ proot -b /bin/bash:/bin/sh
这使得主机的/ bin / bash在来宾的/ bin / sh中可用
PRoot在内部利用qemu用户模式仿真器允许程序在PRoot内部运行,即使它们是针对除主机系统之外的体系结构进行编译的。
与chroot一样,PRoot仅提供文件系统级别的隔离。PRoot“监狱”内部的程序共享相同的内核,硬件,进程空间和网络子系统。chroot和PRoot不能替代真正的虚拟化应用程序,例如虚拟机管理程序和半虚拟化程序。

5. chroot

https://wiki.archlinux.org/index.php/Chroot
chroot是改变表观根目录为当前运行的进程和他们的孩子的操作。在这种修改后的环境中运行的程序无法访问该环境目录树之外的文件和命令。修改后的环境称为chroot监狱。
更改根目录通常是为了在不再可能进行引导和/或登录的系统上执行系统维护。

5.1 chroot的用途

重新安装引导程序。  https://wiki.archlinux.org/index.php/Bootloader
重建initramfs映像。 https://wiki.archlinux.org/index.php/Mkinitcpio
升级或降级软件包。  https://wiki.archlinux.org/index.php/Downgrading_packages
重设忘记的密码。    https://wiki.archlinux.org/index.php/Password_recovery
在干净的chroot中构建包. https://wiki.archlinux.org/index.php/DeveloperWiki:Building_in_a_clean_chroot

5.2 chroot的要求

  • root根特权。
  • 另一个Linux环境,例如LiveCD或USB闪存介质,或来自另一个现有Linux发行版的环境。
  • 匹配的架构环境;即chroot从和chroot到。当前环境的体系结构可以通过以下方式发现:(uname -m例如i686或x86_64)。
  • 加载了chroot环境中所需的内核模块。
  • 如果需要,启用交换: # swapon /dev/sdxY
  • 如果需要,建立Internet连接。

5.3 使用

例如,在安装指南中,该目录为/mnt:
# arch-chroot /mnt
要退出chroot,只需使用:
# exit

https://en.wikipedia.org/wiki/Chroot
https://zh.wikipedia.org/wiki/Chroot
chroot是在unix系统的一个操作,针对正在运作的软件行程和它的子进程,改变它外显的根目录。一个运行在这个环境下,经由chroot设置根目录的程序,它不能够对这个指定根目录之外的文件进行访问动作,不能读取,也不能更改它的内容。chroot这一特殊表达可能指chroot系统调用或chroot前端程序。
由chroot创造出的那个根目录,叫做“chroot监狱”(chroot jail,或chroot prison)。

5.4 在chroot中使用图形界面

在chroot环境中使用图形界面是可能的,参见以下几个方案:
  • xhost (or copy the secret from .Xauthority) https://wiki.archlinux.org/index.php/Xhost
  • 使用内置像Xnest这样嵌套的X服务,或更现代的Xephyr(或者在监牢中启动真正的X服务)
  • 通过开启X11转发(X11 forwarding)的 SSH连接到chroot中(ssh -X)
  • 当一个X服务启动是设置为不监听tcp端口或没有可用的SSH服务器时,使用openroot
  • 通过一个X11 VNC服务,链接到在外环境的VNC客户端
  • xchroot 是chroot环境的扩展版本,为用户和Xorg/X11转发(socat/mount)
https://wiki.archlinux.org/index.php/Category:Virtualization
https://wiki.archlinux.org/index.php/Arch_Linux_VPS

6. termux-FAQ

https://wiki.termux.com/wiki/FAQ
什么是Termux?
Termux是Android的终端模拟器。由于存在大量可用的软件包,例如clang,ffmpeg,openssh,python,vim,它可以被认为更像是Linux发行版,而不仅仅是终端应用程序。
Termux不是操作系统或硬件仿真器。它与Android OS的其他部分共享相同的环境。为了更好地了解发生了什么,建议阅读以下文章:
维基百科:什么是终端模拟器 https://en.wikipedia.org/wiki/Terminal_emulator
Termux与Linux发行版有何不同 https://wiki.termux.com/wiki/Differences_from_Linux

6.1 如何访问Termux中的设备存储?

您需要向Termux应用程序授予存储权限。
打开Android设置,然后转到Apps>Termux>Permissions(权限),然后在菜单中切换存储权限。
也可以直接从Termux命令行请求此权限,只需执行: termux-setup-storage  并授予所请求的权限。

6.2 内部和外部存储

https://wiki.termux.com/wiki/Internal_and_external_storage
Termux有三种主要的存储类型:
  • App-private storage: 应用程序专用存储:放在 $HOME 中的文件,可从Termux内部使用(或明确选择时,例如,将文件附加到邮件时)。
  • Shared internal storage: 共享内部存储空间:设备中可供所有应用程序使用的存储空间。在Android 6.0上,这要求用户显式授予Termux的访问权限,以便Termux可以访问它。
  • External storage: 外部存储设备:存储在外部SD卡上。每个应用程序在外部SD卡上都有一个专用文件夹,它们之间的互换需要使用Termux中尚不可用的特殊API。
访问共享和外部存储
要访问共享和外部存储,您需要运行termux-setup-storage。然后,系统将提示您“允许Termux访问设备上的照片,媒体和文件”,这应该允许。

执行termux-setup-storage可以确保:

在Android 6.0或更高版本上运行时,对共享存储的权限将授予Termux。
在外部存储上创建了一个应用程序专用文件夹(如果存在外部存储)。
创建一个文件夹 $HOME/storage

~/storage
创建的 $HOME/storage 指向不同存储文件夹的符号链接:
 ~/storage/shared 所有应用之间共享存储的根。
 ~/storage/downloads 从例如系统浏览器下载的标准目录。
 ~/storage/dcim  将设备安装为相机时,图片和视频的传统位置。
 ~/storage/pictures 放置用户可用图片的标准目录。
 ~/storage/music 在标准目录中,应将任何音频文件放置在用户的常规音乐列表中。
 ~/storage/movies 放置用户可用电影的标准目录。
 ~/storage/external 符号链接到外部存储上的Termux专用文件夹(仅当外部存储可用时)。

6.3 共享资料

https://wiki.termux.com/wiki/Sharing_Data
默认情况下,其他应用程序无法访问Termux主目录中存储的文件。这是Android本身的局限性。
解决方法是,您可以使用[termux-open] termux-tools软件包中的可用资源共享具有读取访问权限的文件。
$ termux-open -h
Usage: termux-open [options] path-or-url
Open a file or URL in an external app. 在外部应用程序中打开文件或URL。
  --send               if the file should be shared for sending  是否共享文件以进行发送
  --view               if the file should be shared for viewing (default)  是否共享文件以进行查看(默认)
  --chooser            if an app chooser should always be shown  是否始终显示应用选择器
  --content-type type  specify the content type to use  指定要使用的内容类型
$ termux-open hello.c
为了与标准Linux程序兼容,[xdg-open]符号链接到[termux-open]。

有时,读取访问权限还不够,您需要能够修改文件。这可以通过将所需文件存储在sdcard上来实现。
Android Lollipop应该可以立即使用, 但是,棉花糖及更高版本要求Termux应用程序请求读取/写入外部数据的权限。

termux-setup-storage 对话框弹出时运行并授予权限。
这将创建一个$HOME/storage目录,该目录带有指向sdcard各自路径的符号链接。

6.4 termux下的部分检测工具

https://cs.wikipedia.org/wiki/Termux#Dostupnost
Nmap, 它是一种收集信息并检测漏洞的工具。
SQLmap, 工具SQLMAP是一个来寻找弱点非常有用的工具,在该网站是由大量使用的黑客黑客,安全研究员。这取决于在大多数站点中发现的SQL漏洞。
Lazymux, sudo, Black Hydra, Hydra, Fl00d & Fl00d2, FB Brute Force, Infoga, Webdav, LANs.py,
RED HAWK, Metasploit, Ufonet, IPLoc, D-Tect, ReconDog, A-Rat, Meisha, Torshammer,
Kali NetHunter, Ngrok, DSSS, Weeman, Hash-Buster, Wifite 2, Ubuntu, Fedora,

2020-03-13

Comparison-of-OS-emulation-or-virtualization-apps-on-Android


Android上的操作系统仿真或虚拟化应用程序的比较
https://en.wikipedia.org/wiki/Comparison_of_OS_emulation_or_virtualization_apps_on_Android
Android中有许多应用程序可以通过利用对平台虚拟化技术的硬件支持或通过终端仿真来运行或仿真其他操作系统。其中一些应用程序支持具有多个用于不同OS配置文件的仿真/虚拟文件系统,从而具有或运行多个OS的能力。有些甚至支持通过localhost SSH连接运行仿真(让设备上的远程ssh终端应用访问操作系统仿真/ VM,VNC和XSDL)。
如果android设备上支持这些协议或技术的应用程序中有多个,则可以通过androids执行后台任务的功能,将android上的主要仿真器/ VM应用程序用于启动多个仿真/ vm OS,而其他应用程序可以连接,因此可以同时运行多个仿真/ VM OS。但是,有一些模拟器或VM应用程序要求将android设备root根目录才能使该应用程序正常工作,而其他一些模拟器或VM应用程序则不需要。一些远程终端访问应用程序还可以通过设备回送支持访问Android内部实现的Toybox。某些VM /模拟器应用程序具有一组受支持的操作系统或应用程序。

自Android 8(Oreo)和更高版本的Android版本以来,其中一些应用程序一直在报告问题,因为Google增强了对新版本Android设备的文件访问权限的安全性。某些应用有困难或无法访问SD卡。还据报道,由于对应用程序施加了新的硬件或Android API限制,某些应用程序在使用udisks2,Open vSwitch,Snort(软件)和mininet之类的软件包时遇到了麻烦在最近几年。
因此,这些应用程序开发人员及其社区成员中的许多人都表示,仿真/ VM应用程序可以在没有root用户的情况下运行自身和操作系统,但是,除非设备已获得root用户,否则并非所有软件包都可以运行。

1. OS模拟器或VM Android应用

https://en.wikipedia.org/wiki/Comparison_of_OS_emulation_or_virtualization_apps_on_Android#OS_emulators_or_VM_Android_apps
App Name类型设备架构和OS需求来宾系统架构rooted连接技术
TermuxEnhanced Terminal Emulator/Android 7.0 +same as hostNoEmulation inside app (none)
AnLinuxCompatibility layer
(utilizes Termux)
ARMv7, 64, x86,-64
/Android 5.0 +
same as hostNoSSH, VNC (similar support statement like in UserLAnd.)
AndroNIXCompatibility layer
(utilizes Termux)
ARMv7,64, x86-64
/Android 5.1 +
same as hostNo
UserLAnd TechnologiesCompatibility layer/Android 5.0 +same as hostNoSSH, VNC, XSDL
GNURoot DebianCompatibility layer?/Android < 5.0same as hostNo
LinuxDeployCompatibility layerARM,64, X86,-64,
仿真模式(ARM ~ 86)
/Android 4.0.3 +

Yes
SPC/ATComputer system emulatorarm仅为VM的androidX86-64 PC…

VMOS (software)platform virtualization app?/Andorid 5.0+same as hostNoEmulation inside app (none)
linux on dex
仅三星/Android < 10
No
VMware Horizon ClientDesktop virtualization?/Android 5.0 +连接到服务器:
VMware Server,
VMware ESXi
No

2. 使用内部操作系统的终端仿真应用

https://en.wikipedia.org/wiki/Comparison_of_OS_emulation_or_virtualization_apps_on_Android#Terminal_emulation_apps_utilizing_internal_OS
 App Name  Notes
 Termius   local loopback, SSH, telnet, SFTP.
 JuiceSSH  local loopback, SSH, telnet, Mosh.
ConnectBot local loopback, SSH, telnet.
3. 更多
https://en.wikipedia.org/wiki/List_of_computer_system_emulators
本文列出了模拟计算平台的软件和硬件。本文中的主机是运行仿真器的系统,而来宾是正在仿真的系统。
该列表由来宾操作系统(正在仿真的系统)组织,并按bitness分组。每个部分均包含一个能够仿真指定来宾的仿真器列表,能够仿真的来宾系统范围的详细信息以及所需的主机环境和许可。

Comparison-of-platform-virtualization-software
https://en.wikipedia.org/wiki/Comparison_of_platform_virtualization_software
除了跨平台的virtualbox,这里有近70种虚拟化软件...
$ pacman -Si virtualbox
Repository      : community
Name            : virtualbox
Version         : 6.1.4-3
Description     : Powerful x86 virtualization for enterprise as well as home use
Architecture    : x86_64
URL             : https://virtualbox.org/
Licenses        : GPL  custom
...

Sound

导航 (返回顶部) 1. Sound 1.1 声-音 1.2 声波的性质及特性 2. 声音频率 2.1 听力范围 2.2 VF-语音频率 2.3 人声基本频率 2.4 8度音阶表 2.5 综合表 3. 声波 3.1 Compression and she...