• Linux(四)- Linux常用基本命令(帮助命令、文件目录类、搜索查找类、进程管理类)


    Shell 可以看作是一个命令解释器,为我们提供了交互式的文本控制台界面。我们可以
    通过终端控制台来输入命令,由shell 进行解释并最终交给内核执行。

    一、帮助命令

    1. man 获得帮助信息

    1)基本语法

    man [命令或配置文件] (功能描述:获得帮助信息)

    2)显示说明

    信息功能
    NAME命令的名称和单行描述
    SYNOPSIS怎样使用命令
    DESCRIPTION命令功能的深入讨论
    EXAMPLES怎样使用命令的例子
    SEE ALSO相关主题(通常是手册页)

    3)案例实操

    # 查看ls 命令的帮助信息
    [root@lwk ~]# man ls
    
    • 1
    • 2

    2. help 获得shell 内置命令的帮助信息

    一部分基础功能的系统命令是直接内嵌在shell 中的,系统加载启动之后会随着shell一起加载,常驻系统内存中。这部分命令被称为“内置(built-in)命令”;相应的其它命令被称为“外部命令”。

    1)基本语法

    help 命令(功能描述:获得shell 内置命令的帮助信息)

    2)案例实操

    # 查看cd 命令的帮助信息
    [root@lwk ~]# help cd
    
    • 1
    • 2

    3. 常用快捷键

    常用快捷键功能
    ctrl + c停止进程
    ctrl+l清屏,等同于clear;彻底清屏是:reset
    善于用 tab 键提示(更重要的是可以防止敲错)
    上下键查找执行过的命令

    二、文件目录类

    1. pwd 显示当前工作目录的绝对路径

    pwd:print working directory 打印工作目录

    1)基本语法

    pwd (功能描述:显示当前工作目录的绝对路径)

    2)案例实操

    # 显示当前工作目录的绝对路径
    [root@lwk ~]# pwd
    /root
    
    • 1
    • 2
    • 3

    2. ls 列出目录的内容

    ls:list 列出目录内容

    1)基本语法

    ls [选项] [目录或是文件]

    2)选项说明

    选项功能
    -a全部的文件,连同隐藏档( 开头为. 的文件) 一起列出来(常用)
    -l长数据串列出,包含文件的属性与权限等等数据;(常用)等价于“ll”

    3)显示说明

    每行列出的信息依次是: 文件类型与权限、链接数、文件属主、文件属组、文件大小用byte来表示、建立或最近修改的时间、名字

    4)案例实操

    # 查看当前目录的所有内容信息
    [root@lwk ~]# ll
    总用量 12
    文件类型与权限、链接数、文件属主、文件属组、文件大小用byte来表示、建立或最近修改的时间、名字
    drwxr-xr-x.     2     root     root         238             31 18:06     shelltest
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3. cd 切换目录

    cd:Change Directory 切换路径

    1)基本语法

    cd [参数]

    2)参数说明

    参数功能
    cd 绝对路径切换路径
    cd 相对路径切换路径
    cd ~或者cd回到自己的家目录
    cd -回到上一次所在目录
    cd . .回到当前目录的上一级目录
    cd -P跳转到实际物理路径,而非快捷方式路径

    3)案例实操

    (1)使用绝对路径切换到root 目录

    [root@lwk ~]# cd /root/
    
    • 1

    (2)使用相对路径切换到/usr目录

    [root@lwk ~]# cd /usr
    [root@lwk usr]#
    
    • 1
    • 2

    (3)cd ~ 回到自己的家目录,亦即是/root 这个目录

    [root@lwk usr]# cd ~
    [root@lwk ~]#
    
    • 1
    • 2

    (4)cd- 回到上一次所在目录

    [root@lwk ~]# cd -
    /usr
    [root@lwk usr]#
    
    • 1
    • 2
    • 3

    (5)cd . . 表示回到当前目录的上一级目录,亦即是“/root/usr”的上一级目录的意思

    [root@lwk usr]# cd ..
    [root@lwk /]#
    
    • 1
    • 2

    4. mkdir 创建一个新的目录

    mkdir:Make directory 建立目录

    1)基本语法

    mkdir [选项] 要创建的目录

    2)选项说明

    选项功能
    -p创建多层目录

    3)案例实操

    (1)创建一个目录

    [root@lwk /]# mkdir test
    
    • 1

    (2)创建一个多级目录

    [root@lwk /]# mkdir -p java/test/helloword
    
    • 1

    5. rmdir 删除一个空的目录

    rmdir:Remove directory 移除目录

    1)基本语法

    rmdir 要删除的空目录

    2)案例实操

    (1)删除一个空的文件夹

    [root@lwk /]# rmdir helloword
    
    • 1

    6. touch 创建空文件

    1)基本语法

    touch 文件名称

    2)案例实操

    [root@lwk /]# touch 1.txt
    
    • 1

    7. cp 复制文件或目录

    1)基本语法

    cp [选项] source dest (功能描述:复制source文件到dest)

    2)选项说明

    选项功能
    -r递归复制整个文件夹

    3)参数说明

    参数功能
    source源文件
    dest目标文件

    4)经验技巧

    强制覆盖不提示的方法:\cp

    5)案例实操

    (1)复制文件

    [root@lwk /]# cp 1.txt helloword/
    
    • 1

    (2)递归复制整个文件夹

    # helloWord文件夹中包含1.txt、2.txt文件,将整个helloWord文件夹复制到java文件夹下
    [root@lwk /]# cp -r helloword/ java/
    
    # 复制后,查看java文件夹
    [root@lwk /]# ll java/helloword/
    总用量 0
    -rw-r--r--. 1 root root 0 81 11:08 1.txt
    -rw-r--r--. 1 root root 0 81 11:08 2.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    8. rm 删除文件或目录

    1)基本语法

    rm [选项] deleteFile (功能描述:递归删除目录中所有内容)

    2)选项说明

    选项功能
    -r递归删除目录中所有内容
    -f强制执行删除操作,而不提示用于进行确认。
    -v显示指令的详细执行过程

    3)案例实操

    (1)删除文件中的内容

    [root@lwk helloword]# rm  1.txt
    rm:是否删除普通文件 "1.txt"?y
    
    • 1
    • 2

    (2)递归删除目录中所有内容

    [root@lwk java]# rm -r  helloword/
    rm:是否进入目录"helloword/"? y
    rm:是否删除普通空文件 "helloword/2.txt"?y
    rm:是否删除目录 "helloword/"?y
    
    • 1
    • 2
    • 3
    • 4

    9. mv 移动文件与目录或重命名

    1)基本语法

    (1)mv oldNameFile newNameFile (功能描述:重命名)
    (2)mv /temp/movefile /targetFolder (功能描述:移动文件)

    2)案例实操

    (1)重命名

    [root@lwk java]# mv 3.txt 4.txt
    
    • 1

    (2)移动文件

    [root@lwk java]# mv 4.txt helloword/
    
    • 1

    10. cat 查看文件内容

    查看文件内容,从第一行开始显示。

    1)基本语法

    cat [选项] 要查看的文件

    2)选项说明

    选项功能
    -n显示所有行的行号,包括空行。

    3)经验技巧

    一般查看比较小的文件,一屏幕能显示全的。

    4)案例实操

    (1)查看文件内容并显示行号

    [root@lwk helloword]# cat 4.txt
    
    • 1

    11. more 文件内容分屏查看器

    more 指令是一个基于VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件
    的内容。more 指令中内置了若干快捷键,详见操作说明。

    1)基本语法

    more 要查看的文件

    2)操作说明

    操作功能
    空白键(space)代表向下翻一页
    Enter代表向下翻『一行』
    q代表立刻离开more ,不再显示该文件内容。
    Ctrl+F向下滚动一屏
    Ctrl+B返回上一屏
    =输出当前行的行号
    :f输出文件名和当前行的行号

    3)案例实操

    (1)采用more查看文件

    [root@lwk helloword]# more 4.txt
    
    • 1

    2. less 分屏显示文件内容

    less 指令用来分屏查看文件内容,它的功能与more 指令类似,但是比more 指令更加强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。

    1)基本语法

    less 要查看的文件

    2)操作说明

    操作功能
    空白键向下翻动一页
    [pagedown]向下翻动一页
    [pageup]向上翻动一页
    /字串向下搜寻『字串』的功能;n:向下查找;N:向上查找
    ?字串向上搜寻『字串』的功能;n:向上查找;N:向下查找
    q离开less 这个程序

    3)经验技巧

    用SecureCRT时[pagedown]和[pageup]可能会出现无法识别的问题。

    4)案例实操

    (1)采用less查看文件

    [root@lwk helloword]# less 4.txt
    
    • 1

    13. echo

    echo 输出内容到控制台

    1)基本语法

    echo [选项] [输出内容]
    选项:
    -e: 支持反斜线控制的字符转换

    控制字符作用
    \输出\本身
    \n换行符
    \t制表符,也就是Tab 键

    2)案例实操

    [root@lwk helloword]# echo  "hello\tword"
    hello\tword
    [root@lwk helloword]# echo -e  "hello\tword"
    hello   word
    
    • 1
    • 2
    • 3
    • 4

    14. head 显示文件头部内容

    head 用于显示文件的开头部分内容,默认情况下head 指令显示文件的前10 行内容。

    1)基本语法

    head 文件(功能描述:查看文件头10行内容)
    head -n 5 文件(功能描述:查看文件头5行内容,5可以是任意行数)

    2)选项说明

    选项功能
    -n<行数>指定显示头部内容的行数

    3)案例实操

    (1)查看文件的头2行

    [root@lwk helloword]# head -n 2 4.txt
    
    • 1

    15. tail 输出文件尾部内容

    tail 用于输出文件中尾部的内容,默认情况下tail 指令显示文件的后10 行内容。

    1) 基本语法

    (1)tail 文件(功能描述:查看文件尾部10行内容)
    (2)tail -n 5 文件(功能描述:查看文件尾部5行内容,5可以是任意行数)
    (3)tail -f 文件(功能描述:实时追踪该文档的所有更新)

    2) 选项说明

    选项功能
    -n<行数>输出文件尾部n 行内容
    -f显示文件最新追加的内容,监视文件变化

    3)案例实操

    (1)查看文件尾1 行内容

    [root@lwk helloword]# tail -n 1 4.txt
    
    • 1

    (2)实时追踪该档的所有更新

    [root@lwk helloword]# tail -f 4.txt
    
    • 1

    16. > 输出重定向 和 >> 追加

    1)基本语法

    (1)ls -l > 文件(功能描述:列表的内容写入文件 中(覆盖写))
    (2)ls -al >> 文件(功能描述:列表的内容追加到文件的末尾)
    (3)cat 文件1 > 文件2 (功能描述:将文件1 的内容覆盖到文件2)
    (4)echo “内容” >> 文件 (功能描述:将“内容”追加到文件中)

    2)案例实操

    (1)将ls 查看信息写入到文件中

    [root@lwk helloword]# ll > 4.txt
    
    • 1

    (2)将cat查看的文件追加到另一个文件中

    [root@lwk helloword]# cat 4.txt  >> 5.txt
    
    • 1

    (3)采用echo 将 hello 单词追加到文件中

    [root@lwk helloword]# echo hello >> 4.txt
    
    • 1

    17. ln 软链接

    软链接也称为符号链接,类似于windows 里的快捷方式,有自己的数据块,主要存放了链接其他文件的路径。

    1)基本语法

    ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)

    2)经验技巧

    删除软链接: rm -rf 软链接名,而不是rm -rf 软链接名/
    如果使用rm -rf 软链接名/ 删除,会把软链接对应的真实目录下内容删掉
    查询:通过ll 就可以查看,列表属性第1 位是l,尾部会有位置指向。

    3)案例实操

    (1)创建软连接

    [root@lwk java]# ln -s ./helloword/4.txt ./
    [root@lwk java]# ll
    总用量 0
    lrwxrwxrwx. 1 root root 17 81 14:05 4.txt -> ./helloword/4.txt
    drwxr-xr-x. 2 root root 32 81 14:04 helloword
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (2)删除软连接(注意不要写最后的/)

    [root@lwk java]# rm -rf 4.txt
    
    • 1

    18. history 查看已经执行过历史命令

    1)基本语法

    history (功能描述:查看已经执行过历史命令)

    2)案例实操

    (1)查看已经执行过的历史命令

    [root@lwk helloword]# history
    
    • 1

    三、搜索查找类

    1. find 查找文件或者目录

    find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。

    1)基本语法

    find [搜索范围] [选项]

    2)选项说明

    选项功能
    -name<查询方式>按照指定的文件名查找模式查找文件
    -user<用户名>查找属于指定用户名的所有文件
    -size<文件大小>按照指定的文件大小查找文件,单位为:
    								b —— 块(512 字节)
    								c —— 字节
    								w —— 字(2 字节)
    								k —— 千字节
    								M —— 兆字节
    								G —— 吉字
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3)案例实操

    (1)根据名称查找文件

    [root@lwk helloword]# find 4.txt
    
    • 1

    (2)查找属于指定用户名的所有文件

    [root@lwk helloword]# find -user lwk
    
    • 1

    (3)查找小于200m的文件(+n 大于 -n小于 n等于)

    [root@lwk helloword]# find -size -204800
    
    • 1

    2. locate 快速定位文件路径

    locate 指令利用事先建立的系统中所有文件名称及路径的locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate 时刻。

    1)基本语法

    locate 搜索文件

    2)经验技巧

    由于locate 指令基于数据库进行查询,所以第一次运行前,必须使用updatedb 指令创建locate 数据库。

    3)案例实操

    (1)查询文件夹

    [root@lwk helloword]# updatedb
    [root@lwk helloword]# locate tmp
    
    • 1
    • 2

    3. grep 过滤查找及“|”管道符

    管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理

    1)基本语法

    grep 选项查找内容源文件

    2)选项说明

    选项功能
    -n显示匹配行及行号。

    3)案例实操

    (1)查找某文件在第几行

    [root@lwk helloword]# ll
    总用量 8
    -rw-r--r--. 1 root root 65 81 13:57 4.txt
    -rw-r--r--. 1 root root 59 81 13:56 5.txt
    [root@lwk helloword]# ls | grep -n 4.txt
    1:4.txt
    [root@lwk helloword]# ls | grep -n 5.txt
    2:5.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    四、进程管理类

    进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

    1. ps 查看当前系统进程状态

    ps:process status 进程状态

    1)基本语法

    ps aux | grep xxx (功能描述:查看系统中所有进程)
    ps -ef | grep xxx (功能描述:可以查看子父进程之间的关系)

    2)选项说明

    选项功能
    a列出带有终端的所有用户的进程
    x列出当前用户的所有进程,包括没有终端的进程
    u面向用户友好的显示风格
    -e列出所有进程
    -u列出某个用户关联的所有进程
    -f显示完整格式的进程列表

    3)功能说明

    (1)ps aux 显示信息说明

    USER:该进程是由哪个用户产生的
    PID:进程的ID号
    %CPU:该进程占用CPU 资源的百分比,占用越高,进程越耗费资源;
    %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
    VSZ:该进程占用虚拟内存的大小,单位KB;
    RSS:该进程占用实际物理内存的大小,单位KB;
    TTY:该进程是在哪个终端中运行的。对于CentOS 来说,tty1 是图形化终端,tty2-tty6 是本地的字符界面终端。pts/0-255 代表虚拟终端。
    STAT:进程状态。常见的状态有:R:运行状态、S:睡眠状态、T:暂停状态、
    Z:僵尸状态、s:包含子进程、l:多线程、+:前台显示
    START:该进程的启动时间
    TIME:该进程占用CPU 的运算时间,注意不是系统时间
    COMMAND:产生此进程的命令名

    (2)ps -ef 显示信息说明

    UID:用户ID
    PID:进程ID
    PPID:父进程ID
    C:CPU 用于计算执行优先级的因子。数值越大,表明进程是CPU 密集型运算,执行优先级会降低;数值越小,表明进程是I/O 密集型运算,执行优先级会提高
    STIME:进程启动的时间
    TTY:完整的终端名称
    TIME:CPU 时间
    CMD:启动进程所用的命令和参数

    4)经验技巧

    如果想查看进程的CPU占用率和内存占用率,可以使用aux;
    如果想查看进程的父进程ID,可以使用ef;

    5)案例实操

    [root@lwk /]# ps aux
    
    USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root          1  0.0  0.3 128304  5892 ?        Ss   10:02   0:09 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
    root          2  0.0  0.0      0     0 ?        S    10:02   0:00 [kthreadd]
    root          3  0.0  0.0      0     0 ?        S    10:02   0:00 [ksoftirqd/0]
    root          5  0.0  0.0      0     0 ?        S<   10:02   0:00 [kworker/0:0H]
    root          7  0.0  0.0      0     0 ?        S    10:02   0:01 [migration/0]
    root          8  0.0  0.0      0     0 ?        S    10:02   0:00 [rcu_bh]
    root          9  0.0  0.0      0     0 ?        S    10:02   0:06 [rcu_sched]
    root         10  0.0  0.0      0     0 ?        S<   10:02   0:00 [lru-add-drain]
    root         11  0.0  0.0      0     0 ?        S    10:02   0:00 [watchdog/0]
    root         12  0.0  0.0      0     0 ?        S    10:02   0:00 [watchdog/1]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    [root@lwk /]# ps -ef
    
    UID         PID   PPID  C STIME TTY          TIME CMD
    root          1      0  0 10:02 ?        00:00:09 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
    root          2      0  0 10:02 ?        00:00:00 [kthreadd]
    root          3      2  0 10:02 ?        00:00:00 [ksoftirqd/0]
    root          5      2  0 10:02 ?        00:00:00 [kworker/0:0H]
    root          7      2  0 10:02 ?        00:00:01 [migration/0]
    root          8      2  0 10:02 ?        00:00:00 [rcu_bh]
    root          9      2  0 10:02 ?        00:00:07 [rcu_sched]
    root         10      2  0 10:02 ?        00:00:00 [lru-add-drain]
    root         11      2  0 10:02 ?        00:00:00 [watchdog/0]
    root         12      2  0 10:02 ?        00:00:00 [watchdog/1]
    root         13      2  0 10:02 ?        00:00:01 [migration/1]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    2. kill 终止进程

    1)基本语法

    kill [选项] 进程号(功能描述:通过进程号杀死进程)
    killall 进程名称(功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)

    2)选项说明

    选项功能
    -9表示强迫进程立即停止

    3)案例实操

    (1)杀死浏览器进程

    [root@lwk /]# kill -9 5102
    
    • 1

    (2)通过进程名称杀死进程

    [root@lwk /]# killall firefox
    
    • 1

    3. pstree 查看进程树

    1)基本语法

    pstree [选项]

    2)选项说明

    选项功能
    -p显示进程的PID
    -u显示进程的所属用户

    3)案例实操

    (1)显示进程pid

    [root@lwk /]# pstree -p
    
    • 1

    (2)显示进程所属用户

    [root@lwk /]# pstree -u
    
    • 1

    4. top 实时监控系统进程状态

    1)基本命令

    top [选项]

    2)选项说明

    选项功能
    -d 秒数指定 top 命令每隔几秒更新。默认是3 秒在 top 命令的交互模式当中可以执行的命令
    -i使 top 不显示任何闲置或者僵死进程。
    -p通过指定监控进程 ID 来仅仅监控某个进程的状态。

    3) 操作说明

    操作功能
    P以 CPU 使用率排序,默认就是此项
    M以内存的使用率排序
    N以 PID 排序
    q退出top

    4)查询结果字段解释

    第一行信息为任务队列信息

    内容说明
    12:26:46系统当前时间
    up 1 day, 13:32系统的运行时间,本机已经运行1 天13 小时32 分钟
    2 users当前登录了两个用户
    load average: 0.00, 0.00, 0.00系统在之前1 分钟,5 分钟,15 分钟的平均负载。一般认为小于1 时,负载较小。如果大于1,系统已经超出负荷。

    第二行为进程信息

    内容说明
    Tasks: 95 total系统中的进程总数
    1 running正在运行的进程数
    94 sleeping睡眠的进程
    0 stopped正在停止的进程
    0 zombie僵尸进程。如果不是0,需要手工检查僵尸进程

    第三行为CPU 信息

    内容说明
    Cpu(s): 0.1%us用户模式占用的CPU 百分比
    0.1%sy系统模式占用的CPU 百分比
    0.0%ni改变过优先级的用户进程占用的CPU 百分比
    99.7%id空闲CPU 的CPU 百分比
    0.1%wa等待输入/输出的进程的占用CPU 百分比
    0.0%hi硬中断请求服务占用的CPU 百分比
    0.1%si软中断请求服务占用的CPU 百分比
    0.0%st st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU 等待实际CPU 的时间百分比。

    第四行为物理内存信息

    内容说明
    Mem: 625344k total物理内存的总量,单位KB
    571504k used已经使用的物理内存数量
    53840k free空闲的物理内存数量,我们使用的是虚拟机,总共只分配了628MB 内存,所以只有53MB 的空闲内存了
    65800k buffers作为缓冲的内存数量

    第五行为交换分区(swap)信息

    内容说明
    Swap: 524280k total交换分区(虚拟内存)的总大小
    0k used已经使用的交互分区的大小
    524280k free空闲交换分区的大小
    409280k cached作为缓存的交互分区的大小

    5)案例实操

    [root@lwk /]# top -d 1
    [root@lwk /]# top -i
    [root@lwk /]# top -p 2575
    执行上述命令后,可以按PMN 对查询出的进程结果进行排序。
    
    • 1
    • 2
    • 3
    • 4

    5. netstat 显示网络状态和端口占用信息

    1)基本语法

    netstat -anp | grep 进程号(功能描述:查看该进程网络信息)
    netstat –nlp | grep 端口号(功能描述:查看网络端口号占用情况)

    2)选项说明

    选项功能
    -a显示所有正在监听(listen)和未监听的套接字(socket)
    -n拒绝显示别名,能显示数字的全部转化成数字
    -l仅列出在监听的服务状态
    -p表示显示哪个进程在调用

    3)案例实操

    (1)通过进程号查看sshd进程的网络信息

    [root@lwk /]# netstat -anp | grep sshd
    
    • 1

    (2)查看某端口号是否被占用

    [root@lwk /]# netstat -nltp | grep 22
    
    • 1
  • 相关阅读:
    【Linux进程间通信】mmap共享存储映射
    33. 搜索旋转排序数组 ●● & 81. 搜索旋转排序数组 II ●●
    专用/独享代理与共享代理有何区别?如何选择?
    天津五家受欢迎的python培训机构 python凭什么这么火?
    【洛谷P2258】子矩阵【DFS+DP】
    git + docker + docker-compose + Jenkins+Linux 自动化构建、部署、测试过程
    Linux服务器部署Spring Boot项目的一些shell命令脚本
    【综述】推荐系统偏差问题 & 去偏最新研究进展(Bias and Debias in Recommender System)
    我的2022面试总结(已拿BAT头条网易滴滴亚马逊offer)
    算术编码(Arithmetic coding)
  • 原文地址:https://blog.csdn.net/qq_36602071/article/details/126095581