鸿蒙HarmonyOS NEXT开发(5.0)toybox轻量级的Linux命令行工具集合

 鸿蒙HarmonyOS开发实战往期必看文章:(持续更新......)

HarmonyOS NEXT应用开发性能实践总结(持续更新......)

HarmonyOS NEXT应用开发案例实践总结合集(持续更新......)

一分钟了解”纯血版!鸿蒙HarmonyOS Next应用开发!

最新版!“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线!(从零基础入门到精通)


toybox 是一个轻量级的Linux命令行工具集合,它将常用的Linux命令行工具合并到一个单独的可执行文件中。

前置条件

使用方法1:

  • 正常连接设备
  • 使用hdc shell进入命令行执行模式

使用方法2:

  • 应用沙箱内运行

说明

由于权限管控,当进程缺少进程、目录、文件的权限时,执行相关的命令会失败。

如果遇到命令执行失败,请确认执行命令的进程是否拥有对应的权限,可以从日志里找到相应的报错。

命令行说明

toybox的执行方式有两种

  • 使用toybox cmd [arg...]
  • 创建cmd到toybox的软连接,直接调用cmd

系统已经创建好了软连接,可以直接使用各种命令。

选项参数说明
--helpNA显示命令帮助。
--longNA显示支持的所有命令的路径。
NANA显示所有支持的命令。

帮助命令

格式:help [-ah] [command]

参数说明
command显示command的帮助。
选项说明
-a显示所有命令的帮助。
-h以html格式显示帮助。

数学计算与随机数

命令说明
factor

分解因数。

usage: factor NUMBER...

mcookie

生成128位强随机数。

usage: mcookie [-vV]

uuidgen

创建并打印新的RFC4122随机UUID。

usage: uuidgen

终端操作

命令说明
nohup

运行一个独立于终端的命令。

usage: nohup [COMMAND [ARGS...]]

reset

复位终端。

usage: reset

clear

清空终端。

usage: clear

sh逻辑命令

命令说明
false

返回非零值。

usage: false

shshell命令解释器
test

通过执行测试返回true或false。没有参数时返回false。

usage: test [-bcdefghLPrSsuwx PATH] [-nz STRING] [-t FD] [X ?? Y]

true

返回零。

usage: true

yes

反复输出行直到被杀死。如果没有参数,则输出“y”。

usage: yes [args...]

系统调用操作(仅支持查询)

命令说明
hostname

获取当前主机名。

usage: hostname [-bdsf] [-F FILENAME] [newname]

nproc

打印处理器数量。

usage: nproc [--all]

printenv

打印环境变量。

usage: printenv [-0] [env_var...]

uname

打印系统信息。

usage: uname [-asnrvm]

iotop

按I/O对进程进行排名。

usage: iotop [-AaKObq] [-n NUMBER] [-d SECONDS] [-p PID,] [-u USER,]

env

设置命令调用的环境,或列出环境变量。

usage: env [-i] [-u NAME] [NAME=VALUE...] [COMMAND [ARG...]]

时间日期

命令说明
cal

打印日历。

usage: cal [[month] year]

date

获取当前日期/时间。

usage: date [-u] [-r FILE] [-d DATE] [+DISPLAY_FORMAT] [-D SET_FORMAT] [SET]

sleep

等待设置的时间后再退出。可以是小数。可选的后缀可以是“m”(分钟)、“h”(小时)、“d”(天)或“s”(秒,默认值)。

usage: sleep DURATION...

time

运行命令行并报告真实时间、用户时间和系统时间(以秒为单位)。(真实时间=时钟时间,用户时间=命令代码使用cpu的时间,系统时间=操作系统使用cpu的时间。)

usage: time [-pv] COMMAND [ARGS...]

uptime

显示当前时间,系统运行了多长时间,用户数量,以及过去1、5和15分钟的系统负载平均值。

usage: uptime [-ps]

usleep

暂停微秒。

usage: usleep MICROSECONDS

登录用户操作(仅支持查询)

命令说明
groups

打印用户所在的组。

usage: groups [user]

id

打印用户和组ID。

usage: id [-nGgru] [USER...]

logname

打印当前用户名。

usage: logname

who

打印有关已登录用户的信息。

usage: who

whoami

打印当前用户名。

usage: whoami

进程操作

hdc shell运行时,仅支持pidof/ps/watch/xargs。

应用沙箱内运行时,仅支持本应用pid namespace里的进程操作。

说明

以下命令操作权限外的进程会失效。

命令说明
kill

向进程发送信号。

usage: kill [-l [SIGNAL] | -s SIGNAL | -SIGNAL] PID...

killall

向具有给定名称的所有进程发送信号(默认:Term)。

usage: killall [-l] [-iqv] [-SIGNAL |-s SIGNAL ] PROCESS_NAME...

pidof

打印具有给定名称的所有进程的PID。

usage: pidof [-s] [-o omitpid[,omitpid...]] [NAME]...

pkill

按照进程名来杀死进程。

usage: pkill [-fnovx] [-SIGNAL|-l SIGNAL] [PATTERN] [-G GID,] [-g PGRP,] [-P PPID,] [-s SID,] [-t TERM,] [-U UID,] [-u EUID,]

ps

列出进程。

usage: ps [-AadefLlnwZ] [-gG GROUP,] [-k FIELD,] [-o FIELD,] [-p PID,] [-t TTY,] [-uU USER,]

pwdx

打印命令行中列出的进程的工作目录。

usage: pwdx PID...

timeout

创建子进程执行命令,如果子进程超时未退出,则向子进程发送一个信号。DURATION可以是小数。可选的后缀可以是“m”(分钟)、“h”(小时)、“d”(天)或“s”(秒,默认值)。

usage: timeout [-k DURATION] [-s SIGNAL] DURATION COMMAND...

top

实时显示进程信息。

usage: top [-Hbq] [-k FIELD,] [-o FIELD,] [-s SORT] [-n NUMBER] [-m LINES] [-d SECONDS] [-p PID,] [-u USER,]

iotop

实时显示进程信息(按I/O对进程进行排名)。

usage: iotop [-AaKObq] [-n NUMBER] [-d SECONDS] [-p PID,] [-u USER,]

watch

每隔-n秒运行一次参数中的命令,显示执行结果。按q退出。

usage: watch [-teb] [-n SEC] COMMAND ARGS

xargs

运行命令行一次或多次,附加标准输入设备中的参数。

usage: xargs [-0prt] [-s NUM] [-n NUM] [-E STR] COMMAND...

设备节点操作(仅支持查询)

命令说明
df

显示命令行中列出的每个文件系统的总共、已使用和空闲的磁盘空间。无参数时显示已装载的所有文件系统。

usage: df [-HPkhi] [-t type] [FILESYSTEM...]

du

显示磁盘使用情况,文件和目录占用的空间。

usage: du [-d N] [-askxHLlmc] [file...]

free

显示物理内存和交换空间的总量、可用量和已用量。

usage: free [-bkmgt]

mount

在目录上挂载新的文件系统。如果没有参数,则显示现有的挂载。

usage: mount [-afFrsvw] [-t TYPE] [-o OPTION,] [[DEVICE] DIR]

文件操作(仅支持操作本应用沙箱的文件)

命令说明
base64

通过base64算法进行加密/解密。

usage: base64 [-di] [-w COLUMNS] [FILE...]

basename

返回删除后缀的路径名的非目录部分。

usage: basename [-a] [-s SUFFIX] NAME... | NAME [SUFFIX]

cat

复制(连接)文件到标准输出设备。如果未列出任何文件,则从标准输入设备复制。“-”代表标准输入设备

usage: cat [-etuv] [FILE...]

chmod

更改列出的文件的模式(使用-R递归)。

usage: chmod [-R] MODE FILE...

cksum

对于每个文件,输出crc32的校验和、长度和文件名。如果未列出任何文件,则从标准输入设备复制。“-”代表标准输入设备

usage: cksum [-IPLN] [FILE...]

cmp

比较文件的内容(如果只给出一个,则与标准输入设备进行比较),可选在开始时跳过字节。

usage: cmp [-l] [-s] FILE1 [FILE2 [SKIP1 [SKIP2]]]

comm

读取FILE1和FILE2(这两个文件应该是有序的),并生成三个文本列作为输出:仅在FILE1中的行;仅在FILE2中的行;在两个文件中。“-”代表标准输入设备

usage: comm [-123] FILE1 FILE2

count

将标准输入设备复制到标准输出设备,将简单的进度指示器显示到标准错误输出stderr。

usage: count

cp

将文件从SOURCE复制到DEST。如果有多个源,DEST必须是一个目录。

usage: cp [--preserve=motcxa] [-adlnrsvfipRHLP] SOURCE... [DEST]

cpio

将文件复制到和从“newc”格式的cpio归档文件中。

usage: cpio -{o|t|i|p DEST} [-v] [--verbose] [-F FILE] [--no-preserve-owner] [ignored: -mdu -H newc]

crc32

输出每个文件的crc32校验和。

usage: crc32 [file...]

cut

将每个FILE中的行的选定部分打印到标准输出。每个选择列表以逗号分隔,可以是数字(从1开始计数)或破折号分隔的范围(包括,其中X-表示行尾,-X表示行尾从开始)。默认情况下,选择范围是排序和校对的,使用-D来防止这种情况的发生。

usage: cut [-Ds] [-bcCfF LIST] [-dO DELIM] [FILE...]

dd

用于转换和复制文件的命令,可以用于创建磁盘镜像、备份数据、转换字符编码等任务。

usage: dd [if=FILE] [of=FILE] [ibs=N] [obs=N] [iflag=FLAGS] [oflag=FLAGS][bs=N] [count=N] [seek=N] [skip=N][conv=notrunc|noerror|sync|fsync] [status=noxfer|none]

dirname

显示路径的目录部分。

usage: dirname PATH...

dos2unix

将换行符格式从dos“\r\n”转换为unix“\n”。如果没有列出文件,从标准输入设备获取输入。“-”代表标准输入设备。

usage: dos2unix [FILE...]

echo

将每个参数写入标准输出设备,每个参数之间有一个空格,后跟一个换行符。

usage: echo [-neE] [args...]

egrep

显示匹配正则表达式的行。如果没有-e,则第一个参数为要匹配的正则表达式。没有文件(或“-”文件名)读取标准输入设备。如果匹配,则返回0;如果找不到匹配,则返回1;如果命令错误,则返回2。

usage: egrep [-EFrivwcloqsHbhn] [-ABC NUM] [-m MAX] [-e REGEX]... [-MS PATTERN]... [-f REGFILE] [FILE]...

expand

根据制表符展开制表符为空格。

usage: expand [-t TABLIST] [FILE...]

fgrep

显示匹配正则表达式的行。如果没有-e,则第一个参数为要匹配的正则表达式。没有文件(或“-”文件名)读取标准输入设备。如果匹配,则返回0;如果找不到匹配,则返回1;如果命令错误,则返回2。

usage: fgrep [-EFrivwcloqsHbhn] [-ABC NUM] [-m MAX] [-e REGEX]... [-MS PATTERN]... [-f REGFILE] [FILE]...

file

检查给定的文件并描述其内容类型。

usage: file [-bhLs] [file...]

find

在目录中搜索匹配的文件。默认:搜索“.”,匹配所有,-print匹配。

usage: find [-HL] [DIR...] [<options>]

fmt

将输入重新格式化为给定行长的换行,保留现有的缩进级别,写入标准输出设备。

usage: fmt [-w WIDTH] [FILE...]

grep

显示与正则表达式匹配的行。

usage: grep [-EFrivwcloqsHbhn] [-ABC NUM] [-m MAX] [-e REGEX]... [-MS PATTERN]... [-f REGFILE] [FILE]...

gunzip

解压文件。如果没有文件,则将标准输入设备解压为标准输出设备。成功后,输入文件将被删除并替换为新的没有.gz后缀的文件。

usage: gunzip [-cfkt] [FILE...]

head

将文件中的第一行复制到标准输出设备中。如果未列出任何文件从标准输入设备拷贝. “-”代表标准输入设备

usage: head [-n number] [file...]

ls

查看当前目录有哪些文件/文件夹。

usage: ls [-ACFHLRSZacdfhiklmnpqrstux1] [--color[=auto]] [directory...]

lsattr

列出Linux文件系统中的文件属性。标志字母在chattr帮助中定义。

usage: lsattr [-Radlv] [Files...]

lsof

列出属于所有活动进程的所有打开的文件,或使用列出的FILE的进程。

usage: lsof [-lt] [-p PID1,PID2,...] [FILE...]

md5sum

计算每个输入文件的哈希,如果没有,则从标准输入设备读取。每个输入文件输出一行哈希后跟文件名。

usage: md5sum [-bcs] [FILE]...

mkdir

创建一个或多个目录。

usage: mkdir [-vp] [-m mode] [dirname...]

mktemp

安全地创建一个新文件“DIR/TEMPLATE”并打印其名称。

usage: mktemp [-dqu] [-p DIR] [TEMPLATE]

mv

移动或重命名文件。

usage: mv [-fivn] SOURCE... DEST

nl

输入的行数。

usage: nl [-E] [-l #] [-b MODE] [-n STYLE] [-s SEPARATOR] [-v #] [-w WIDTH] [FILE...]

od

以八进制/十六进制格式转储数据。

usage: od [-bcdosxv] [-j #] [-N #] [-w #] [-A doxn] [-t acdfoux[#]]

paste

从每个输入文件中合并相应的行。

usage: paste [-s] [-d DELIMITERS] [FILE...]

patch

将统一的diff应用于一个或多个文件。

usage: patch [-d DIR] [-i file] [-p depth] [-Rlsu] [--dry-run]

pgrep

查找进程(es)。PATTERN是检查的扩展正则表达式与命令名称对应。

usage: pgrep [-clfnovx] [-d DELIM] [-L SIGNAL] [PATTERN] [-G GID,] [-g PGRP,] [-P PPID,] [-s SID,] [-t TERM,] [-U UID,] [-u EUID,]

printf

使用C printf语法,根据Format格式化并打印(对于cdeEfgGiosuxX, \转义为abefnrtv0或\OCTAL或\xHEX)。

usage: printf FORMAT [ARGUMENT...]

pwd

打印工作(当前)目录。

usage: pwd [-L|-P]

readahead

将文件预加载到磁盘缓存中。

usage: readahead FILE...

readlink

如果没有选项,则显示symlink指向什么,如果不是symlink则返回错误。

usage: readlink FILE...

realpath

显示规范绝对路径名

usage: realpath FILE...

rev

当没有给定文件时,使用标准输入设备反向输出每一行。

usage: rev [FILE...]

rm

从文件系统中删除每个参数。

usage: rm [-fiRrv] FILE...

rmdir

删除一个或多个目录。

usage: rmdir [-p] [dirname...]

sed

流编辑器。将编辑脚本应用于输入行。

usage: sed [-inrszE] [-e SCRIPT]...|SCRIPT [-f SCRIPT_FILE]... [FILE...]

seq

从头到尾按递增计数。省略参数默认值为1。使用两个参数作为第一个和最后一个。参数可以是负数或浮点数。

usage: seq [-w|-f fmt_str] [-s sep_str] [first] [increment] last

sort

对从输入文件(或标准输入设备)到标准输出设备的所有文本行进行排序。

usage: sort [-Mbcdfginrsuz] [FILE...] [-k#[,#[x]] [-t X]] [-o FILE]

split

将输入(或标准输入设备)数据复制到一系列输出(或“x”)文件,使用按字母顺序递增的后缀(aa,ab,ac...az,ba,bb...)。

usage: split [-a SUFFIX_LEN] [-b BYTES] [-l LINES] [INPUT [OUTPUT]]

stat

显示文件或文件系统的状态。

usage: stat [-tfL] [-c FORMAT] FILE...

strings

在二进制文件中显示可打印字符串

usage: strings [-fo] [-t oxd] [-n LEN] [FILE...]

tac

以相反的顺序输出行。

usage: tac [FILE...]

tail

将文件中的最后一行复制到标准输出设备中。“-”代表标准输入设备

usage: tail [-n|c NUMBER] [-f] [FILE...]

tar

在.tar文件中创建、解压缩或列出文件。

usage: tar [-cxt] [-fvohmjkOS] [-XTCf NAME] [FILE...]

tee

将标准输入设备复制到每个列出的文件,也复制到标准输出设备。文件名“-”是标准输出设备的同义词。

usage: tee [-ai] [FILE...]

touch

更新每个FILE的访问和修改时间为当前时间。

usage: touch [-amch] [-d DATE] [-t TIME] [-r FILE] FILE...

truncate

设置文件的长度,必要时稀疏扩展。

usage: truncate [-c] -s SIZE file...

uniq

报告或过滤文件中的重复行。

usage: uniq [-cduiz] [-w MAXCHARS] [-f FIELDS] [-s CHAR] [INFILE [OUTFILE]]

unix2dos

将换行符格式从unix“\n”转换为dos“\r\n”。如果没有列出文件,从标准输入设备获取输入。“-”是标准输入设备的同义词。

usage: unix2dos [FILE...]

unlink

删除一个文件。

usage: unlink FILE

uudecode

从标准输入设备(或INFILE)解码文件。

usage: uudecode [-o OUTFILE] [INFILE]

uuencode

Uuencode 标准输入设备(或INFILE)到标准输出设备,在输出中使用ENCODE_FILENAME。

usage: uuencode [-m] [INFILE] ENCODE_FILENAME

wc

统计输入中的行数、单词和字符。

usage: wc -lwcm [FILE...]

which

在$PATH中搜索与文件名匹配的可执行文件。

usage: which [-a] filename ...

xxd

Hexdump将文件转储到标准输出设备。若没有列出任何文件,请从标准输入设备复制。

usage: xxd [-c n] [-g n] [-i] [-l n] [-o n] [-p] [-r] [-s n] [file]

zcat

将文件解压缩到标准输出设备。比如“gzip-dc”。

usage: zcat [FILE...]

最后

小编在之前的鸿蒙系统扫盲中,有很多朋友给我留言,有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)路线图、学习视频、文档用来跟着学习是非常有必要的。 

如果你是一名有经验的资深Android移动开发、Java开发、前端开发、对鸿蒙感兴趣以及转行人员

鸿蒙 NEXT 全栈开发学习笔记  希望这一份鸿蒙学习文档能够给大家带来帮助~

这份鸿蒙(HarmonyOS NEXT)包含了鸿蒙开发必掌握的核心知识要点,内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、(南向驱动、嵌入式等)鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值