2025年3月

基本用法:

    ls: 列出当前目录下的文件和子目录(不包括隐藏文件)。
    
    ls <目录>: 列出指定目录下的文件和子目录。例如:ls /home/user/documents
    
    ls -l: 以长格式显示文件和目录的信息,包括权限、链接数、所有者、组、大小、修改日期和文件名。

常用选项:

-a (all): 显示所有文件和目录,包括以 . 开头的隐藏文件。

ls -a: 列出当前目录下的所有文件,包括隐藏文件。

ls -al: 以长格式显示所有文件,包括隐藏文件。

-l (long): 以长格式显示文件和目录的信息。 提供更详细的输出,包括权限、链接数、所有者、组、大小、修改日期和文件名。

-t (time): 按照修改时间的先后顺序排序,最近修改的文件排在最前面。

ls -lt: 以长格式显示文件,并按照修改时间排序。

ls -ltr: 以长格式显示文件,并按照修改时间倒序排序(最近修改的文件排在最后面)。

-r (reverse): 将排序结果反转。

ls -r: 反向列出目录内容(通常按字母顺序的反向)。

ls -tr: 按修改时间反向排序。

-h (human-readable): 以人类可读的格式显示文件大小。 ls 命令默认以字节为单位显示文件大小,使用 -h 选项后,会自动选择合适的单位 (KB, MB, GB 等)。

ls -lh: 以长格式显示文件,并以人类可读的格式显示文件大小。

-S (size): 按照文件大小排序,从大到小。

ls -lS: 以长格式显示文件,并按照文件大小排序。

-d (directory): 只列出目录本身,而不是目录中的内容。

ls -ld <目录>: 显示指定目录的详细信息,而不是列出目录中的文件。

-R (recursive): 递归地列出所有子目录中的内容。

ls -R: 列出当前目录及其所有子目录下的所有文件。

-i (inode): 显示文件的 inode 编号。

ls -i: 列出当前目录下的文件和他们的inode

-F (classify): 在文件名后添加一个字符来表示文件类型。

/: 表示目录。

*: 表示可执行文件。

@: 表示符号链接。

|: 表示 FIFO (命名管道)。

=: 表示 socket。

组合使用:

可以将多个选项组合使用,以满足不同的需求。 例如:

ls -lath: 以长格式显示所有文件(包括隐藏文件),按照修改时间排序,并以人类可读的格式显示文件大小。

ls -lSrh: 以长格式显示文件,按照文件大小倒序排序,并以人类可读的格式显示文件大小。

ls -F: 列出当前目录下的文件,并用符号标识文件类型。

其他用法:

ls --color: 使用颜色来区分不同类型的文件。 大多数系统默认启用颜色显示。

ls -1: 每行只显示一个文件名。

ls -b: 将文件名中的不可打印字符替换为转义序列。

ls --version: 显示 ls 命令的版本信息。

ls --help: 显示 ls 命令的帮助信息。

高级用法 (结合其他命令):

ls | wc -l: 统计当前目录下文件和目录的数量 (不包括隐藏文件)。

ls -l | grep "^-" | wc -l: 统计当前目录下文件的数量 (不包括目录)。

ls -l | grep "^d" | wc -l: 统计当前目录下目录的数量。

find . -maxdepth 1 -type f | wc -l: 统计当前目录下文件的数量 (包括文件名包含空格的文件)。

ls -lS | head -n 10: 列出当前目录下最大的 10 个文件。

ls -lt | head -n 10: 列出当前目录下最近修改的 10 个文件。

一些技巧:

可以使用 alias 命令创建 ls 命令的别名,以便更方便地使用常用选项。 例如,alias ll='ls -l'。

可以在 shell 配置文件 (例如 .bashrc 或 .zshrc) 中设置 ls 命令的默认选项。

ls 命令非常灵活,可以根据不同的需求进行定制。 熟练掌握 ls 命令的各种选项,可以更

当前目录以M显示文件大小

ls -al | awk '{printf "%s %s %s %s %.2f KB %s %s %s %s\n", $1,$2,$3,$4,$5/1024,$6,$7,$8,$9}'

当前目录以M显示文件大小

ls -al | awk '{printf "%s %s %s %s %.2f MB %s %s %s %s\n", $1,$2,$3,$4,$5/1048576,$6,$7,$8,$9}'

适用:CR8809 电信版 (CR8806, CR8808 等不确定能不能用,但理论上固件是通刷的,所以各位可以试试?)

首先准备如下:

1.MIWIFIRepairTool (就是官方的那个刷机工具)
2.一份和你当前型号匹配的原版固件的备份(以供恢复)
3.一份 6.2.147 版本的 CR8808 固件(可能也有别的版本有这个能开启 Telnet 的后门,我不确定,总之我确定这个版本是可以的)
4.用来连接 Telnet/SSH 的软件,Windows 自带的那个或者 PuTTY 什么的都可以
5.一台电脑(当然)

然后开始。

1.首先在电脑上打开 MIWIFIRepairTool:

2.选择8808的固件按提示刷固件

3.蓝灯刷机成功之后,拔掉电源线重新插上,等待路由器开机。
路由器开机之后进入其后台 (可能IP会变,变了的话看 ipconfig 咯),密码应该依然是背面印的默认密码。进入后台之后网址会有一段 stok,复制下来。

4.然后就是重点,访问 http://(路由器IP)/cgi-bin/luci/;stok=(你刚复制的stok)/api/misystem/set_telnet?enable=1 这个地址,就会开启 Telnet 了。
然后,打开你的 Telnet 工具连进路由器,用户名 root,密码就是机身背面贴的管理密码 (或者访问 /api/xqsystem/bdata 找 mgtpsd 字段) 。

看到 ARE U OK 之后进入下一步。

5.接下来我们固化这个 SSH。执行这个命令,打开调试模式来解除 bdata 的写保护:

zz=$(dd if=/dev/zero bs=1 count=2 2>/dev/null) ; printf '\xA5\x5A%c%c' $zz $zz | mtd write - crash

执行完用 reboot 命令重启路由器。重启之后如果 Telnet 关上了(但调试模式应该不会?不确定)那么再走一遍上面的步骤就可以。

路由器重新开机后再 Telnet 上,继续依次执行:

bdata set ssh_en=1
bdata set telnet_en=1
bdata set uart_en=1
bdata set boot_wait=on
bdata commit

完成后 reboot 重启。

重启后再一次连上,用 bdata show 命令确定一下我们刚刚加上去的参数真的写上去了之后,执行

mtd erase crash

清除掉 crash 来关掉调试模式。然后重启。不放心的话,重启完可以再确认一下参数在不在。

这样我们应该就已经把开启 telnet 的标志写入了 bdata。

6.刷回 CR8809 的固件
还是按上面的老规矩,进刷机模式,用官方刷机工具刷回 CR8809 的固件。bdata 理论上不会受到影响,所以刷回去之后 Telnet 应该也会是开启状态。

7.开启SSH

nvram set ssh_en=1
nvram set telnet_en=1
nvram set uart_en=1
nvram set boot_wait=on
nvram commit
sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear
/etc/init.d/dropbear restart
mkdir /data/auto_ssh
cd /data/auto_ssh
curl -O https://fastly.jsdelivr.net/gh/lemoeo/AX6S@main/auto_ssh.sh
chmod +x auto_ssh.sh
uci set firewall.auto_ssh=include
uci set firewall.auto_ssh.type='script'
uci set firewall.auto_ssh.path='/data/auto_ssh/auto_ssh.sh'
uci set firewall.auto_ssh.enabled='1'
uci commit firewall
uci set system.@system[0].timezone='CST-8'
uci set system.@system[0].webtimezone='CST-8'
uci set system.@system[0].timezoneindex='2.84'
uci commit

所需附件
固件
Putty

原文:原文原文2原文3