当前位置: 首页 > article >正文

005__ubuntu终端说明、linux命令

[ 基本难度系数 ]:★★★☆☆

一、Linux简介

Linux最初是1991年由芬兰的Linus Torvalds发起,目的是为了避开当时的类Unix的版权问题,Linux从一开始就是开源的,由网上组织松散的开发者协作完成,并在1994年开始遵循GPL许可协议。

Linux、git创始人、技术狂人 —— 林纳斯·托瓦兹

通常谈到Linux,有两个层面的含义:

  • 一指Linux内核,它运行于整个系统内部,用户看不见摸不着,其主要功能是:
    1. 内存管理
    2. 文件管理
    3. 任务管理
    4. 网络管理
    5. 设备管理
  • 二指Linux发行版操作系统,例如Ubuntu、RedHat、Fedora、centos等。所谓的发行版指的是可直接发行给用户直接使用的操作系统,它不仅包括了上述所说的内核,且包括了诸如桌面系统、编辑编译环境、Shell、浏览器等用户日常使用必备的软件。

各种Linux发行版操作系统

作为操作系统(Operating System),目前世界范围内有影响力的有:

  1. Linux(开源系统,可定制可裁剪)
  2. HarmonyOS(华为公司,先进的分布式操作系统)
  3. Windows(微软公司,针对普通家庭用户)
  4. Mac(苹果公司,针对普通家庭用户)

Linux与其他OS最大的区别是免费、开源,因此拿到源码的开发者,原则上可以经过定制、裁剪,使得Linux可以适应任何硬件平台,所以我们看到Linux的适用领域非常宽广,从个人穿戴设备、到工业控制,从家用电视机电盒、智能路由到企业智能设备,从汽车娱乐系统、到大型服务器集群,几乎所有带智能的电子设备都可以看到Linux的身影。

二、Linux目录结构、Ubuntu终端使用说明

Linux系统的目录结构中,不同的文件夹分属不同的功能,列表如下:

目录名

功能

/

根目录,所有的分区和文件的起点

/bin

普通用户可用的命令所在路径

/sbin

超级用户可用的命令所在路径

/etc

各种配置文件所在路径

/home

所有普通用户的家目录所在路径

/lib

系统库文件所在路径

/boot

系统内核镜像文件所在路径

/dev

设备节点所在路径

/usr

第三方库和服务默认安装路径

/proc

系统进程数据在文件系统中的挂载路径

/sys

件系统中系统内核数据在文的挂载路径

/var

存放一些“易变”的文件,例如安装包、系统日志等

/mnt

默认的分区挂载路径

(1)、linux和windows系统文件系统不同

(2)、为什么Linux系统叫根路径结构呢??

(3)、ubuntu终端的使用方法:

1、打开Ubuntu终端:
快捷命令:ctrl + alt + t
2、打开同样路径的终端
快捷命令:ctrl + shift + n
3、分屏打开/关闭终端
打开分屏快捷命令:ctrl + shift + t 
关闭分屏快捷命令:ctrl + shift + w
4、全屏显示终端
全屏终端:F11
5、快速定位命令行光标位置:
快速定位到命令末尾: ctrl + e 
快速定位到命令开头: ctrl + a
6、快速复制粘贴
复制终端的文本:选中即已复制 // 快捷命令:ctrl + shift + c 
文本粘贴到终端:按下鼠标滚轮 // 快捷命令:ctrl + shift + v
7、放大和缩小终端
放大终端:ctrl + shift + "+" 
缩小终端:ctrl + "-"
8、杀死某个进程
一、杀死前台进程:
    ctrl + c(快捷键)
    
二、杀死后台进程:
    ps                 // 调出进程,显示进程号
    kill 进程号        //  轻轻地杀
    kill -9 进程号     //  狠狠地杀

// 前台:直接在终端上运行的程序

// 后台:在终端上运行的程序后面加个&符号

9、调出之前的命令快捷键
按击键盘的上下键,即可调出之前敲过的命令
10、补全命令快捷键(帮你补全命令或路径名等)

1、

2、

// 建议:在终端上每敲一个命令,都用tab键检测一下,可以让我们避免很多命令或路径错误

11、解决Ubuntu终端的的路径名的过长的问题

三、Linux命令

(1)、基本命令(12个)

1、ls命令*
  • 释义:list,列出目录中文件的信息
  • 常见用法:
1. ls        ==> 列出当前目录的文件名
2. ls -l     ==> 列出文件详情
3. ls -a     ==> 列出文件名(含隐藏文件(.开头的文件))
4. ls -la    ==> 列出文件详情(含隐藏文件(.开头的文件))
5. ls /etc   ==> 列出指定目录 /etc 的文件
2、alias命令
  • 释义:给一个命令取一个别名
  • 常见用法:
1. alias l='ls -l'  ==> 给ls -l取个别名叫l
3、cd命令*
  • 释义:change directory,切换当前路径
  • 常见用法:
1. cd /etc   ==> 切换到 /etc
2. cd        ==> 切换到家目录
3. cd -      ==> 切换到刚刚去过的地方
4. cd ..     ==> 切换到上一级目录
5. cd ../../ ==> 切换到上上级目录
4、clear命令*
  • 释义:清屏
  • 常见用法:
1. clear
5、date命令
  • 释义:设置或查看日期时间
  • 常见用法:
1. date                 ==> 查看当前日期时间
2. date -s "2020/12/12" ==> 设置日期

dpkg

  • 释义:手工安装 deb 软件包
  • 常见用法:
1. dpkg -i x.deb ==> 安装x.deb软件包

6、echo命令*
  • 释义:回显,即将字符打印到屏幕上
  • 常见用法:
1. echo abcd ==> 输出字符串"abcd" 
2. echo $PATH ==> 输出环境变量PATH的值
7、man命令*
  • 释义:manual,帮助手册
  • 常见用法:
1. man ls ==> 查阅关于 ls 的帮助信息 
2. man -f read ==> 列出所有有关 read 的帮助手册 
3. man 2 read ==> 查阅第2册中 read 的帮助信息

注意:man手册总共有9册,Ubuntu默认只安装了1册,其余的需要手工安装,指令如下:

sudo apt install manpages

sudo apt install manpages-dev

sudo apt install manpages-posix

sudo apt install manpages-posix-dev
8、pwd命令*
  • 释义:present work directory(printf working directory),显示当前工作路径
  • 常见用法:
gec@ubuntu:~$ pwd ==> 显示当前路径,简单易用,童叟无欺
9、sort命令
  • 释义:对文件内容按行排序并输出
  • 常见用法:
gec@ubuntu:~$ sort file.txt ==> 按默认ASCII码升序排列
gec@ubuntu:~$ sort file.txt -r ==> 按ASCII码降序排列
gec@ubuntu:~$ sort file.txt -n ==> 按数值升序排列
gec@ubuntu:~$ sort file.txt -nr ==> 按数值降序排列
10、uniq命令
  • 释义:unique,去除文件中重复的相邻的行(包括空格行)
  • 常见用法:
gec@ubuntu:~$ uniq file.txt
11、which命令*
  • 释义:查看命令所在路径(除了cd)
  • 常见用法:
1. 查看默认命令 ls 所在路径
gec@ubuntu:~$ which ls

2. 查看命令 qmake 的所有可能路径
gec@ubuntu:~$ which -a qmake

(2)、文件管理命令(13个)

1、文件显示

a、 cat命令*
  • 释义:catch,显示文本文件的内容
  • 常见用法:
gec@ubuntu:~$ cat file.txt ==> 显示文本文件内容
gec@ubuntu:~$ cat -n a.c   ==> 显示文本文件内容(并显示行号)
gec@ubuntu:~$ cat -A a.c   ==> 显示文本文件内容(含不可见字符)
  • 注意:

在某些情况下,我们可能需要检测文件中那些不可见的字符。比如在Windows系统中编辑了程序源文件,放到Ubuntu系统中编译可能会出现字符错误,这是因为Windows系统中的某些回车符、制表符跟Ubuntu系统的不一致,导致无法编译,而这些字符是不可见的,因此可以使用上述 cat -A 来识别。

b、head/tail
  • 释义:查看指定文件的头部/尾部内容
  • 常见用法:
gec@ubuntu:~$ head file.txt
gec@ubuntu:~$ head -n file.txt         //  n是查看前面几行
gec@ubuntu:~$ tail file.txt    
gec@ubuntu:~$ tail -n file.txt         //  n是查看后面几行
c、less/more命令
  • 释义:以分页方式查看长文件
  • 常见用法:
gec@ubuntu:~$ less file.txt    // 无百分比,但是可以看到输入,输入q退出
gec@ubuntu:~$ more file.txt    // 有百分比,不可以看到输入,输入q退出
d、od命令*
  • 释义:查看二进制文件
  • 常见用法:
gec@ubuntu:~$ od -x file  ==> 以十六进制查看file
gec@ubuntu:~$ od -o file  ==> 以八进制查看file
gec@ubuntu:~$ od -d file  ==> 以十进制查看file
gec@ubuntu:~$ od -b file  ==> 以二进制查看file

2、文件复制

a、cp命令*
  • 释义:copy,复制文件或者复制整个目录
  • 常见用法:
gec@ubuntu:~$ cp file1 file2    ==> 将文件file1复制为file2
gec@ubuntu:~$ cp dir1/ dir2/ -r ==> 将目录dir1/复制为dir2/
gec@ubuntu:~$ cp file1 dir2/   ==> 将目录dir1/复制为dir2/
  • 注意:
    1. 如果file2或者dir2已存在,那么它们将会被覆盖
    2. 目录名称 dir1/ 和 dir2/ 末尾的"/"是可选的,可写可不写,写上去只是为了强调 dir1 和 dir2 是目录,别无他意
b、scp命令*
  • 释义:security copy,跨网络复制文件或者复制整个目录
  • 常见用法:
# 将远程主机x.x.x.x中的文件a.txt复制到当前目录下
gec@ubuntu:~$ scp user@x.x.x.x:/home/gec/a.txt ./
  • 注意:
    1. user是源文件所在主机的用户名。
    2. x.x.x.x是源文件所在主机的IP地址。
    3. 成功执行上述命令后,需要输入主机x.x.x.x中用户user的密码方可复制文件。

3、创建与删除

a、touch命令*
  • 释义(创建文件):
    1. 在文件存在的情况下:将文件最近修改时间更新为当前时间
    2. 在文件不存在的情况下:创建一个空文件
  • 常见用法:
#假设文件a.txt已存在
gec@ubuntu:~$ touch a.txt ==> 更新a.txt的最近修改时间到当前时间

#假设文件b.txt不存在
gec@ubuntu:~$ touch b.txt ==> 创建b.txt
b、mkdir/rmdir命令*
  • 释义(创建目录):make/remove directory,创建/删除空目录
  • 常见用法:
gec@ubuntu:~$ mkdir a      ==> 创建空目录a
gec@ubuntu:~$ mkdir b/c -p ==> 创建嵌套空目录b/c
gec@ubuntu:~$ rmdir a      ==> 删除空目录a
  • 注意:

如果目录不为空,则不能用rmdir删除,而只能用rm,比如上述的目录b,由于b中有c,因此b不是空目录,此时只能这么删除:

gec@ubuntu:~$ rm b -r
c、rm命令*
  • 释义:remove,删除文件或目录
  • 常见用法:
gec@ubuntu:~$ rm file
gec@ubuntu:~$ rm dir/ -r

4、查找*****

a、find命令*
  • 释义:在指定目录中,按指定条件寻找文件
  • 常见用法:
gec@ubuntu:~$ find /usr -name "*.h" ==> 在/usr中查找以.h结尾的文件
gec@ubuntu:~$ find /tmp -type s     ==> 在/tmp中查找类型为套接字的文件
b、grep命令*
  • 释义:在指定文件或目录中,按指定条件寻找字符串
  • 常见用法:
gec@ubuntu:~$ grep 'apple' /usr -rn ==> 在/usr中查找包含apple的文件

5、其它

a、diff命令
  • 释义:difference,检测两个文件或目录的差异信息
  • 常见用法:
gec@ubuntu:~$ diff file1 file2      ==> 检测文件file1和file2的差异信息
gec@ubuntu:~$ diff dir1/ dir2/ -urN ==> 检测目录dir1/和dir2/的差异信息
b、file命令*
  • 释义:检测指定文件的格式信息
  • 常见用法:
gec@ubuntu:~$ file a.tar.bz2 ==> 检测文件a.tar.bz2的格式
gec@ubuntu:~$ file a.out     ==> 检测文件a.out的格式
c、mv命令*
  • 释义:move,移动文件,或给文件重命名
  • 常见用法:
gec@ubuntu:~$ mv file dir/
gec@ubuntu:~$ mv file1 file2
d、wc命令
  • 释义:计算字符数、单词数和行数
  • 常见用法:
gec@ubuntu:~$ wc          ==> 计算从键盘输入的数据,以ctrl+d结束
gec@ubuntu:~$ wc file.txt ==> 计算文件file.txt的数据

(3)、压缩与解压命令(3个)

Linux下最常用的压缩包格式是:

  • gz
  • bz2
  • zip
  • xz

其中,gz和bz2格式一般都是通过tar命令来控制的,xz和zip格式各自由它们的同名命令控制。

1、tar命令
  • 释义:归档、释放与压缩、解压
  • 常见用法:
第一,归档与释放:
gec@ubuntu:~$ tar -cf a.tar dir/*  ==> 将目录dir中的所有文件归档成a.tar
gec@ubuntu:~$ tar -tf a.tar        ==> 查看归档文件a.tar
gec@ubuntu:~$ tar -xf a.tar        ==> 释放归档文件a.tar

第二,压缩与解压:
gec@ubuntu:~$ tar -czf a.tar.gz dir/*   ==> 将目录dir中的所有文件归档并压缩为gz格式
gec@ubuntu:~$ tar -tf a.tar.gz          ==> 查看压缩文件a.tar.gz
gec@ubuntu:~$ tar -xzf a.tar.gz         ==> 解压压缩文件a.tar.gz

gec@ubuntu:~$ tar -cjf a.tar.bz2 dir/*  ==> 将目录dir中的所有文件归档并压缩为bz2格式
gec@ubuntu:~$ tar -tf a.tar.bz2         ==> 查看压缩文件a.tar.bz2
gec@ubuntu:~$ tar -xjf a.tar.bz2        ==> 解压压缩文件a.tar.bz2

第三,指定路径:
gec@ubuntu:~$ tar -xf a.tar -C /tmp      ==> 将文件释放到/tmp
gec@ubuntu:~$ tar -xzf a.tar.gz -C /tmp  ==> 将文件解压到/tmp
gec@ubuntu:~$ tar -xzf a.tar.bz2 -C /tmp  ==> 将文件解压到/tmp
  • 注意:
    1. 归档只是简单的将文件归拢到一起,不涉及压缩算法,文件不会变小
    2. 压缩会用到压缩算法,文件总体会变小。
    3. 指令说明

x: 解压/释放

c: 压缩/归档

t: 查看

f: 表明其是个文件

z: 解压/压缩都为gz格式

j: 解压/压缩都为bz2格式

-C: 指定解压的路径

2、xz命令
  • 释义:压缩与解压
  • 常见用法:
gec@ubuntu:~$ xz a.tar                 ==> 将文件a.tar压缩成a.tar.xz
gec@ubuntu:~$ xz --decompress a.tar.xz ==> 解压a.tar.xz
  • 注意:

xz只能压缩单个文件,因此xz一般与tar配合使用,即:先用tar将要压缩的若干文件或目录归档成一个tar包,然后用xz将tar包压缩成xz格式压缩包。

3、zip命令

zip不是系统自带的命令,一般需要自己手工安装:

gec@ubuntu:~$ sudo apt install zip
  • 释义:压缩与解压
  • 常见用法:
gec@ubuntu:~$ zip a.zip file dir/  ==> 将指定的文件和目录压缩成a.zip
gec@ubuntu:~$ unzip a.zip          ==> 解压a.zip

(4)、权限和用户管理命令(10个)

1、权限管理命令

a、chmod命令*
  • 释义:修改文件权限
  • 常见用法:
gec@ubuntu:~$ chmod 644 file ==> 将文件权限改为644
gec@ubuntu:~$ chmod 755 dir/ ==> 将目录权限改为755

在Linux中,文件的权限一般用rwx来表示:

  • r 代表read,可读
  • w 代表write,可写
  • x 代表excute,可执行
  • - 代表没有权限

对于某个文件而言,系统中的所有用户被分成三类,它们是文件的所有者文件的所属组成员其他人。这三类用户对这个文件的rwx权限,可以由命令 ls -l 来查看:

gec@ubuntu:~$ ls -l
-rw-rw-r-- 1 gec gec 127  Oct 30 14:41 a.c
-rwxrwxr-x 1 gec gec 8768 Oct 30 14:41 a.out

在上述列子中,rwx三组权限对应了三种用户。当我们需要修改这些权限的时候,为了便于描述,一般用三个八进制数来对应这些权限为,如下表所示:

如此,权限 644 就代表了 rw-r–r–,权限 755 就代表了 rwxr-xr-x。

b、chown命令
  • 释义:change owner,修改文件的所有者
  • 常见用法:
gec@ubuntu:~$ sudo chown jack a.txt ==> 将文件a.txt的所有者修改为jack

注意:

修改文件所有者信息,须以管理员身份才能执行,因此在命令的前面要加sudo,并在随后执行是要输入管理员密码。另外要注意,输入管理员密码时系统默认是不回显的。

c、chgrp命令
  • 释义:change group,修改文件的所属组
  • 常见用法:
gec@ubuntu:~$ sudo chgrp gec a.txt ==> 将文件a.txt的所属组修改为gec

2、用户管理命令

a、adduser/deluser命令*
  • 释义:添加/删除系统用户
  • 常见用法:
gec@ubuntu:~$ sudo adduser jack ==> 添加用户jack
gec@ubuntu:~$ sudo deluser jack ==> 删除用户jack

提醒:

gec@ubuntu:~$ 系统所有的用户清单统一放在 /etc/passwd 中

gec@ubuntu:~$ 删除用户后,默认会残留用户的家目录,如果想要连带家目录也一锅端,可以使用这个命令:

sudo deluser --remove-home jack

b、addgroup/delgroup命令
  • 释义:添加/删除系统用户组
  • 常见用法:
gec@ubuntu:~$ sudo addgroup gec ==> 添加用户组gec
gec@ubuntu:~$ sudo delgroup gec ==> 删除用户组gec

提醒:

系统所有的用户组清单统一放在 /etc/group 中

c、whoami/id命令
  • 释义:查看当前用户/相关ID
  • 常见用法:
gec@ubuntu:~$ whoami ==> 显示当前用户名
gec@ubuntu:~$ id     ==> 显示与当前用户相关的ID信息
d、usermod
  • 释义:修改用户相关信息
  • 常见用法:
gec@ubuntu:~$ usermod jack -a -G gec ==> 将jack添加入用户组gec中

(5)、进程管理命令(3个)

1、ps命令(静态)*
  • 释义:process state,获取进程当前状态
  • 常见用法:
gec@ubuntu:~$ ps -ef            // 详细将所有进程列出来
gec@ubuntu:~$ ps aux
gec@ubuntu:~$ ps ajx
2、top命令(动态)*
  • 释义:持续跟踪进程状态
  • 常见用法:
gec@ubuntu:~$ top              // 将所有动态进程列出来
gec@ubuntu:~$ top -p PID       // 单独将某个动态进程列出来,PID是进程号
  • 注意:

top可以通过左右箭头翻页 // 旧版Ubuntu系统可能需要加上ctrl

3、kill命令*
  • 释义:向指定进程发送信号
  • 常见用法:
gec@ubuntu:~$ kill -l            ==> 查看系统所支持的所有的信号列表
gec@ubuntu:~$ kill -s SIGXXX PID ==> 向进程PID发送信号SIGXXX
gec@ubuntu:~$ kill -n PID        ==> 向进程PID发送第n号信号

(6)、系统管理命令(4个)

1、df命令*
  • 释义:查看系统分区信息
  • 常见用法:
gec@ubuntu:~$ df -h
文件系统      总大小  已用   剩余 使用率% 挂载点
udev         916M     0  916M   0%   /dev
tmpfs        188M   11M  178M   6%   /run
/dev/vda1    50G   6.8G   40G  15%   /
tmpfs        937M   48K  936M   1%   /dev/shm
tmpfs        5.0M     0  5.0M   0%   /run/lock
tmpfs        937M     0  937M   0%   /sys/fs/cgroup
cgmfs        100K     0  100K   0%   /run/cgmanager/fs
tmpfs        188M     0  188M   0%   /run/user/500

2、du命令*
  • 释义:查看当前系统分区信息
  • 常见用法:
gec@ubuntu:~$ du            // 列出当前空间各个文件的大小
gec@ubuntu:~$ du -sh        // 查看当前空间占多大空间
3、fdisk命令*
  • 释义:查看/设置硬盘分区
  • 常见用法:
gec@ubuntu:~$ sudo fdisk -l  ==> 查看当前系统已识别的分区。

提醒:

df只能查看已经识别且挂载了的分区,而fdisk可以查看未挂载的分区

实际上,在系统识别出了分区之后,一般需要使用fdisk来查看分区的名称,然后才能使用mount来挂载,然后才能使用df查看到。

4、mount / umount命令*
  • 释义:挂载/卸载分区
  • 常见用法:
1、格式化未挂载的分区/dev/mmcblk0p7
mkfs.vfat   /dev/mmcblk0p7

2、在根目录中创建一个新目录,作为挂载的目录
cd /                // 进入根目录
mkdir my_dir        // 创建my_dir文件夹

3、挂载分区:
mount -t vfat /dev/mmcblk0p7  /my_dir    
// 如果要永久挂载,需要将上面的挂载命令写在/etc/profile文件中

4、卸载分区:
gec@ubuntu:~$ umount /dev/mmcblk0p7             ==> 将分区sdb卸载
gec@ubuntu:~$ umount  /my_dir                   ==> 将挂载点/mnt/u卸载

提醒:

卸载分区名,或卸载挂载点两种方式是等价的。

(7)、网络管理命令(5个)

1、hostname命令
  • 释义:查看系统主机名
  • 常见用法:
gec@ubuntu:~$ hostname
ubuntu
gec@ubuntu:~$ 
2、ifconfig命令*
  • 释义:查看/设置系统IP地址
  • 常见用法:
# 查看当前活跃的网络接口
gec@ubuntu:~$ ifconfig

# 查看所有的网络接口
gec@ubuntu:~$ ifconfig -a

# 设置指定的网络接口的IP地址
gec@ubuntu:~$ ifconfig ens33 192.168.1.100    // ens33是虚拟网卡名

使用ifconfig设置的IP是临时的,如要使得设置效果永久有效,则需要修改系统的 /etc/networking/interfaces 文件,将IP地址设置进去。例如:

// 命令方式设置ip地址

gec@ubuntu:~$ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto ens33
iface ens33 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
3、ifup / ifdown命令
  • 释义:启停指定网络接口卡
  • 常见用法:
gec@ubuntu:~$ sudo ifdown ens33  ==> 禁用网络接口卡ens33
gec@ubuntu:~$ sudo ifup ens33    ==> 启用网络接口卡ens33
4、ping命令*
  • 释义:向指定主机发送要求回应的ICMP数据包
  • 常见用法:
gec@ubuntu:~$ ping 192.168.1.200     // ping内网(局域网)
gec@ubuntu:~$ ping www.qq.com        // ping外网(看看能不能上网)

提醒:

一般而言,如果网络是畅通的,那么ping命令将会看到数据包返回的延迟时间,否则如果看不到延迟时间,那么网络就是不通的。


http://www.kler.cn/a/503363.html

相关文章:

  • 《使用人工智能心脏磁共振成像筛查和诊断心血管疾病》论文精读
  • Kylin: `GLIBC_2.34‘ not found
  • 《使用 YOLOV8 和 KerasCV 进行高效目标检测》
  • SOME/IP 协议详解——服务发现
  • Apache JMeter 压力测试使用说明
  • MySQL Binlog 同步工具go-mysql-transfer Lua模块使用说明
  • 《重生到现代之从零开始的C++生活》—— 入门基础语法
  • 【算法】复制含有随机指针节点的链表
  • 源码安装httpd2.4
  • 【AI游戏】基于OpenAI打造自动生成剧情的 Python 游戏
  • 14.STM32F407ZGT6-SPI
  • 什么是 XSS(跨站脚本攻击)?
  • 理解STC15F2K60S2单片机的最小电路
  • 当comfyui-reactor-node 安装失败urllib.error.HTTPError: HTTP Error 403: Forbidden解决方法
  • 空指针:HttpSession异常,SpringBoot集成WebSocket
  • tmux 中鼠标滚动异常:^[[A和^[[B是什么以及如何解决
  • 51c~Pytorch~合集4
  • 【按钮防抖】el-button和普通按钮防抖,点击一次禁用一秒再恢复
  • 9分布式微服务架构
  • Windows安装HDC工具及鸿蒙手机开启HDC调试
  • Java开发关键步骤:Windows与macOS系统环境变量详细配置指南
  • 一种ESP8266+OLED时间天气显示
  • 前端进程和线程及介绍
  • 初阶数据结构【双链表及其接口的实现】
  • 安装MySQL在Linux环境下
  • 深入解析Alertmanager启动命令行参数及其作用