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

01-linux基础命令

一、linux命令概述

命令 选项 参数
  1. 命令 :就是命令名;
  2. 选项:一般以 - 开头 比如:-a -p -r 等扩展命令的功能;
  3. 参数:描述命令的目标,如我们要打开一个文件的话,参数就是要打开的文件名;
  4. 可以只有命令,没有选项和参数,选项和参数只是辅助功能,按需求加上。

二、linux常用工具命令

1.查看帮助信息

1.1 --help

要查询的命令 --help
  • 如查看 ls 命令的功能即选项等信息:
ls --help
  • 部分结果
edu@edu:~$ ls --help
用法:ls [选项]... [文件]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

必选参数对长短选项同时适用。
  -a, --all			不隐藏任何以. 开始的项目
  -A, --almost-all		列出除... 以外的任何项目
      --author			与-l 同时使用时列出每个文件的作者
  -b, --escape			以八进制溢出序列表示不可打印的字符
      --block-size=SIZE      scale sizes by SIZE before printing them; e.g.,
                               '--block-size=M' prints sizes in units of
                               1,048,576 bytes; see SIZE format below
......                               

1.2 man

man 是以章节的方式查看命令、库函数、系统调用的帮助信息,章节号 1 2 3 分别代表命令、系统调用、库函数。

man 1 ls
man 2 open
man 3 strcpy

如果省略章节号,默认为 1 ,查看系统命令的介绍。

2. tap 自动补全

键盘上按下 tap 键可以自动补全:

  • 可以对命令,文件名等就行补全;
  • 如果输入的内容只匹配到一个以输入内容开头的命令、文件名等,它会直接自动补全;
  • 如果匹配到多个,不会自动补全,需要按两下 tap 列出所有匹配的对象;如
edu@edu:~/work$ ls
a1.txt  a2.txt  stage1_study_c // 当前目录有两个a开头的文件
edu@edu:~/work$ cat a1.txt     // 输入a1按下tap可以自动补全
edu@edu:~/work$ cat a          // 输入a,因为识别到多个a开头的,不会自动补全
a1.txt  a2.txt                 // 按两下tap会列出识别到的所有
edu@edu:~/work$ cat a2.txt

3.history

用于查看历史命令,输入 history 会显示当前终端输入的历史命令,也可以使用键盘上下键在历史命令间来回切换。

edu@edu:~/work$ history
  768  gcc test.c -D BIG_TO_SMALL
  769  ./a.out
  770  gcc test.c
  771  ./a.out
  772  gcc test.c -D BIG_TO_SMALL=1
......

4.重定向

4.1 >

edu@edu:~/work$ echo "hello world"
hello world
edu@edu:~/work$ ls
stage1_study_c
edu@edu:~/work$ echo "hello world" > a.txt
edu@edu:~/work$ ls
a.txt  stage1_study_c
edu@edu:~/work$ cat a.txt
hello world
edu@edu:~/work$ echo "hello friend" > a.txt
edu@edu:~/work$ cat a.txt
hello friend    
  • 说明:
    1. echo 默认情况下将内容输出到终端;
    2. >重定向,将内容输出到指定位置,如文件,如果文件不存在,会创建文件再输入;
    3. >不会往文件末尾添加,而是将文件内容删除了再写入;
    4. cat 是查看文件内容的命令,会将文件内容输出到终端。

4.2 >>

edu@edu:~/work$ echo "hello world" >> a.txt
edu@edu:~/work$ cat a.txt
hello friend
hello world
  • 说明:>>不会删除文件原本的内容,而是在文件末尾追加。

5.管道

管道分为两部分:写端和读端,我们一般将管道左边视为读端,右边视为写端。

edu@edu:~/work$ ps -A | grep ssh
   951 ?        00:00:00 sshd
  6069 ?        00:00:00 sshd
  6079 ?        00:00:00 sshd
  6130 ?        00:00:00 sshd
  6172 ?        00:00:00 sshd
  • 说明:
    1. pa -A命令用于查看当前所有进程信息;
    2. grep 是查找命令,上面的演示是将当前运行的进程列表写入到管道,然后 grep 从中查找叫 ssh 的进程,并输出到终端;
    3. 管道命令一般用于在管道左侧进行数据的查找输出,然后在右侧对读取的数据就行处理。

三、文件操作相关的命令

1.ls 显示目录信息

ls 命令默认查看当前目录下有哪些文件和文件夹。

edu@edu:~/work$ ls
a.txt  stage1_study_c

ls 还包含很多选项,常用的有 -a -l -h:

  1. -a 用于显示指定目录所有文件,包括隐藏文件(默认不显示);
  2. -l 以列表的形式显示,能显示文件类型,权限,大小等详细信息;
  3. -h 是将文件大小以更清晰的内存单位显示,默认是字节为单位显示;
  4. 当包含多种选项时,选项的顺序随意,也可以连在一起写,即只要一个 -;
  5. ls 还可以指定目录显示。
  • 命令演示
edu@edu:~/work$ ls
a.txt  stage1_study_c
edu@edu:~/work$ ls -a
.  ..  a.txt  stage1_study_c  .vscode
edu@edu:~/work$ ls -a -l
总用量 20
drwxrwxr-x  4 edu edu 4096 1226 14:25 .
drwxr-xr-x 23 edu edu 4096 1226 14:14 ..
-rw-rw-r--  1 edu edu   25 1226 14:30 a.txt
drwxrwxr-x  4 edu edu 4096 1030 17:46 stage1_study_c
drwxrwxr-x  2 edu edu 4096 1014 10:41 .vscode
edu@edu:~/work$ ls -a -l -h
总用量 20K
drwxrwxr-x  4 edu edu 4.0K 1226 14:25 .
drwxr-xr-x 23 edu edu 4.0K 1226 14:14 ..
-rw-rw-r--  1 edu edu   25 1226 14:30 a.txt
drwxrwxr-x  4 edu edu 4.0K 1030 17:46 stage1_study_c
drwxrwxr-x  2 edu edu 4.0K 1014 10:41 .vscode
edu@edu:~/work$ ls -alh
总用量 20K
drwxrwxr-x  4 edu edu 4.0K 1226 14:25 .
drwxr-xr-x 23 edu edu 4.0K 1226 14:14 ..
-rw-rw-r--  1 edu edu   25 1226 14:30 a.txt
drwxrwxr-x  4 edu edu 4.0K 1030 17:46 stage1_study_c
drwxrwxr-x  2 edu edu 4.0K 1014 10:41 .vscode
edu@edu:~/work$ ls /etc/
acpi                    cron.monthly         group-           ld.so.conf      network                  rc4.d              sudoers
adduser.conf            crontab              grub.d  ......

2.tree 树状显示目录信息

上面的 ls 命令只能显示当前目录里面的文件和目录,没法显示多级,tree 可以实现:

edu@edu:~/work$ clear
edu@edu:~/work$ tree
.
├── a.txt
└── stage1_study_c
    ├── 00_func.c
    ├── 00_func.i
    ├── 00_func.o
    ├── 00-the_first_code.c
    ......
  • 说明:
    1. clear 用于全屏,当终端内容太多了,通过该命令全屏;
    2. 默认 ubuntu 不支持 tree 需要安装,通过命令sudo apt-get update先更新,再通过命令sudo apt-get install tree安装tree。

3.cd 切换目录

切换到指定目录,常用的几种切换目录的方式:

cd ./目录 // 以相对路径切换到指定目录,./可以省略
cd 目录   // 以相对路径切换到指定目录
cd /目录  // 以绝对路径切换到指定目录
cd ..    // 返回上一级
cd ~     // 进入家目录
cd       // 进入家目录
cd -     //进入上一次目录
  • 命令演示
edu@edu:~/work$ cd ./stage1_study_c/ // 相对路径
edu@edu:~/work/stage1_study_c$ cd /home/edu/work/stage1_study_c/ // 绝对路径
edu@edu:~/work/stage1_study_c$ cd .. // 上一级目录
edu@edu:~/work$ cd ~ // 家目录
edu@edu:~$ cd // 家目录
edu@edu:~$ cd work/
edu@edu:~/work$ cd - // 上一次进入的目录
/home/edu
  • 说明:相对路径,从当前路径找到指定路径;绝对路径,从根目录找到指定路径。

4.pwd 显示当前目录

以绝对路径的方式,显示当前工作路径。

edu@edu:~/work$ pwd
/home/edu/work

5.cat 查看文件内容

查看文件内容,并将内容输出到终端。

  • 命令演示
edu@edu:~/study$ cat a.txt
hello world!

6.rm 删除

默认情况下用于删除指定文件:rm 文件名...

  • 命令演示
edu@edu:~/study$ ls
a.txt  b.txt  c.txt  test
edu@edu:~/study$ rm a.txt // 删除a.txt文件
edu@edu:~/study$ ls
b.txt  c.txt  test
edu@edu:~/study$ rm *.txt // 删除以.txt结尾的文件
edu@edu:~/study$ ls
test
edu@edu:~/study$ rm test/ // 删除文件夹失败
rm: 无法删除'test/': 是一个目录

rm不加选项,只能用于删除普通文件,因为文件夹里面可能还有其它文件和文件夹,因此不能直接删除,需要加-r选项,递归删除:

edu@edu:~/study$ rm -r test/
edu@edu:~/study$ ls

rm另外一个选项-f强制删除,如果某些文件没有执行权限,删除时会询问,一个个同意删除比较麻烦,可以直接强制删除:

edu@edu:~/study$ ls
a.txt  b.txt  c.txt  test
edu@edu:~/study$ rm -r -f * // 强制递归删除所有文件和文件夹
edu@edu:~/study$ ls
edu@edu:~/study$

7.cp 拷贝

7.1将文件拷贝到文件夹

cp 源文件 目的目录(目录可以理解为文件夹的意思)
  • 命令演示
edu@edu:~/study$ tree
.
├── a.txt
├── b.txt
├── c.txt
└── test
1 directory, 3 files
edu@edu:~/study$ cp a.txt test/
edu@edu:~/study$ tree
.
├── a.txt
├── b.txt
├── c.txt
└── test
    └── a.txt
1 directory, 4 files

7.2将文件夹拷贝到文件夹

cp 源目录 目的目录 -r
  • 命令演示
edu@edu:~/study$ tree
.
├── a.txt
├── b.txt
├── c.txt
├── test
│   └── a.txt
└── test2
2 directories, 4 files
edu@edu:~/study$ cp test test2 -r
edu@edu:~/study$ tree
.
├── a.txt
├── b.txt
├── c.txt
├── test
│   └── a.txt
└── test2
    └── test
        └── a.txt
3 directories, 5 files
  • 说明:这里涉及到对文件夹的拷贝的时候,需要递归拷贝,因此加-r

7.3备份文件

cp 源文件 备份文件
cp 源目录 备份目录
  • 命令演示:文件备份
edu@edu:~/study$ ls
a.txt  b.txt  c.txt  test  test2
edu@edu:~/study$ cat a.txt
hello world
edu@edu:~/study$ cat b.txt
edu@edu:~/study$ cp a.txt b.txt
edu@edu:~/study$ cat b.txt
hello world
edu@edu:~/study$ cp a.txt d.txt // 备份到已存在的文件里去
edu@edu:~/study$ ls
a.txt  b.txt  c.txt  d.txt  test  test2  test3 // 备份到不存在的文件里去
edu@edu:~/study$ cat d.txt
hello world    
  1. 会将源文件的内容拷贝到指定文件里去;
  2. 也可将源文件的内容拷贝到不存在的文件里,备份的时候会创建指定文件。
  • 命令演示
edu@edu:~/study$ cp test test3 -r
edu@edu:~/study$ ls
a.txt  b.txt  c.txt  test  test2  test3
  1. 如果目的文件不存在,就是给源目录备份;
  2. 如果目的目录存在,就是将源目录拷贝到目的目录下。

8.剪切

8.1移动

将源文件或目录移动到目的目录。

mv 源文件/目录 目的目录 // 这里目录操作也不需要加 -r
  • 命令演示
edu@edu:~/study$ ls
a.txt  b.txt  c.txt  test  test2
edu@edu:~/study$ mv c.txt test
edu@edu:~/study$ mv test2 test
edu@edu:~/study$ tree
.
├── a.txt
├── b.txt
└── test
    ├── c.txt
    └── test2
2 directories, 3 files

8.2文件重命名

mv 源文件名 新文件名
  • 命令演示
edu@edu:~/study$ ls
a.txt  b.txt  test
edu@edu:~/study$ mv a.txt d.txt // 重命名新文件名不存在
edu@edu:~/study$ ls
b.txt  d.txt  test
edu@edu:~/study$ cat d.txt
hello a.txt
edu@edu:~/study$ cat b.txt
hello b.txt
edu@edu:~/study$ mv d.txt b.txt // 重命名新文件名存在
edu@edu:~/study$ ls
b.txt  test
edu@edu:~/study$ cat b.txt
hello a.txt
  • 说明:
    1. 当重命名新文件名不存在,就是单纯实现了重命名效果;
    2. 当重命名新文件名存在,则是把新文件名以前的文件删除,再定义一个同名文件,只不过里面的内容是源文件的内容。

8.3重命名文件夹

mv 源目录 新目录
  • 命令演示
edu@edu:~/study$ ls
b.txt  test
edu@edu:~/study$ mv test test_plus
edu@edu:~/study$ ls
b.txt  test_plus
  1. 当新目录名存在,是实现的剪切功能;
  2. 当新目录名不存在,实现的重命名功能。

9.创建文件和目录

9.1 touch 创建文件

touch 文件1 文件2...
  • 命令演示
edu@edu:~/study$ ls
edu@edu:~/study$ touch a.txt b.txt
edu@edu:~/study$ ls
a.txt  b.txt
  • 说明:
    1. 未指定目录,默认都是在当前目录创建的;
    2. 可以一次创建一个或多个文件,文件间用空格隔开。

9.2 mkdir 创建目录

mkdir 目录1 目录2...
  • 命令演示
edu@edu:~/study$ ls
a.txt  b.txt
edu@edu:~/study$ mkdir test
edu@edu:~/study$ ls
a.txt  b.txt  test
edu@edu:~/study$ mkdir a/b/c
mkdir: 无法创建目录"a/b/c": 没有那个文件或目录
edu@edu:~/study$ mkdir a/b/c -p
edu@edu:~/study$ tree
.
├── a
│   └── b
│       └── c
├── a.txt
├── b.txt
└── test
4 directories, 2 files
  • 说明:
    1. 可以一次创建一个或多个同级目录,目录间用空格隔开;
    2. 如果一次创建多级目录,外层目录不存在是会创建失败的,需要加 -p创建。

10.查找命令

10.1 find 查找

find 路径 -name 文件名
  • 命令演示
edu@edu:~/study$ find ./* -name a.txt // 从当前目录查找
./a.txt
./test/a.txt
edu@edu:~/study$ sudo find /* -name a.txt // 从绝对路径查找
[sudo] edu 的密码:
/home/edu/study/a.txt
/home/edu/study/test/a.txt
/home/edu/work/stage1_study_c/day10_test/a.txt
/home/edu/work/a.txt
find: `/run/user/1000/gvfs': 权限不够
  • 注意:从绝对路径查找时需要加sudo获取管理员权限。

10.2 grep 查找

10.2.1终端输入内容中查找
grep 要查找的内容
  • 命令演示
edu@edu:~/study$ grep hello
hello world
hello world
^C
  • 说明:
    1. 被查找到的内容会高亮显示;
    2. 键盘按下 ctrl + c退出查找。
10.2.2从指定的文件中查找
grep 查找信息 指定文件或路径 -n(显示内容所在行号)
  • 命令演示
edu@edu:~/study$ grep bb a.txt -n // 从a.txt查找
1:dgywbbcw
2:cucbbxbvhqv
4:bbqvxvwqxwqx
edu@edu:~/study$ grep bb *.txt -n // 从当前路径使用.txt文件中查找
a.txt:1:dgywbbcw
a.txt:2:cucbbxbvhqv
a.txt:4:bbqvxvwqxwqx
b.txt:1:fbecbb
b.txt:3:xbwhb hb bb
b.txt:4:swcwqce4bbc865
  • 说明:
    1. 找到以后会显示文件名及行号,会显示整行,将要找的内容高亮显示;
    2. grep 还可与管道结合使用,前面已经介绍过,这里不做演示。

11. ln 链接文件

11.1软链接

ln 源文件名 链接文件名 -s
  • 命令演示
edu@edu:~/study$ ls
a.txt
edu@edu:~/study$ ln a.txt a_s.txt -s // 创建软连接
edu@edu:~/study$ ls
a_s.txt  a.txt
edu@edu:~/study$ echo "hello world" >> a.txt
edu@edu:~/study$ cat a.txt
hello world
edu@edu:~/study$ cat a_s.txt
hello world
edu@edu:~/study$ ls -lh
lrwxrwxrwx  1 edu edu    5 1226 16:39 a_s.txt -> a.txt // 软链接
-rw-rw-r--  1 edu edu   12 1226 16:39 a.txt // 源文件
edu@edu:~/study$ rm a.txt
edu@edu:~/study$ cat a_s.txt
cat: a_s.txt: 没有那个文件或目录
  • 说明:
    1. 软链接可以理解为就是一个快捷方式;
    2. 通过文件名和软链接都能查看文件信息;
    3. 源文件和软链接间数据是同步的;
    4. 删除软链接,对源文件没有影响,但是删除源文件,软链接就没用了。

11.2硬链接

ln 源文件名 链接问名
  • 命令演示
edu@edu:~/study$ ls
a.txt
edu@edu:~/study$ ln a.txt a // 创建硬链接
edu@edu:~/study$ ls -lh
总用量 0
-rw-rw-r-- 2 edu edu 0 1226 16:47 a // 硬链接
-rw-rw-r-- 2 edu edu 0 1226 16:47 a.txt // 源文件
edu@edu:~/study$ echo "hello world!" >> a
edu@edu:~/study$ cat a.txt
hello world!
edu@edu:~/study$ cat a
hello world!
edu@edu:~/study$ rm a.txt
edu@edu:~/study$ ls
a
edu@edu:~/study$ cat a
hello world!
  • 说明:
    1. 源文件和硬链接间数据是同步的,通过文件名和硬链接都能查看文件信息;
    2. 删除硬链接,对源文件没有影响,同样删除源文件,硬链接也没有影响,它们是相互独立又数据同步的存在。

12. tar 压缩与解压

tar 是一个打包的命令,需要加上选项才能完成压缩或解压的功能。打包可以理解为我们将一堆衣服放进包装袋打包,压缩是将包装里的空气抽空,把体积压缩到尽可能小。

12.1 gzip 格式

12.1.1 gzip 压缩
tar zcvf 压缩包包名 文件 1 文件 2 ...
  • 说明:

    1. z:代表是 gzip 格式的压缩方式;
    2. c:代表创建压缩文件,即执行压缩功能;
    3. v:代表显示压缩进度;
    4. f:代表设置压缩包包名;
    5. 上面选项 zcv 可以调换顺序,但 f 必须在最后。
  • 命令演示

edu@edu:~/study$ ls
a.txt  b.txt  c.txt
edu@edu:~/study$ tar zcvf myFile.tar.gz *.txt
a.txt
b.txt
c.txt // 压缩进度
edu@edu:~/study$ ls
a.txt  b.txt  c.txt  myFile.tar.gz
  • 说明:对于linux系统而言,压缩包名可以不加后缀,但这里加后缀myFile.tar.gz主要是告诉用户,这是通过tar压缩的gzip格式的压缩包。
12.1.2 gzip 解压
tar zxvf 压缩包的名字
  • 命令演示
edu@edu:~/study$ ls
myFile.tar.gz
edu@edu:~/study$ tar zxvf myFile.tar.gz // 解压缩
a.txt
b.txt
c.txt
edu@edu:~/study$ ls
a.txt  b.txt  c.txt  myFile.tar.gz
  • 说明:
    1. x:代表执行解压缩动作,其它同压缩;
    2. 如果不指定解压缩到哪个目录,默认解压到当前目录。
    3. 解压到指定目录见下面操作:
tar zxvf 压缩包的名字 -C 指定的目录
  • 命令演示
edu@edu:~/study$ mkdir test // 创建一个test目录
edu@edu:~/study$ tree
.
├── a.txt
├── b.txt
├── c.txt
├── myFile.tar.gz
└── test

1 directory, 4 files
edu@edu:~/study$ tar zxvf myFile.tar.gz -C test // 解压到test目录
a.txt
b.txt
c.txt
edu@edu:~/study$ tree
.
├── a.txt
├── b.txt
├── c.txt
├── myFile.tar.gz
└── test
    ├── a.txt
    ├── b.txt
    └── c.txt

1 directory, 7 files
  • 说明:-C 为大写。

12.2 bz2 格式

12.2.1 bz2 压缩
tar jcvf 压缩包包名 文件 1 文件 2 ...
  • 命令演示
edu@edu:~/study$ ls
a.txt  b.txt  c.txt
edu@edu:~/study$ tar jcvf myFile.tar.bz2 *.txt // bz2压缩
a.txt
b.txt
c.txt
edu@edu:~/study$ ls
a.txt  b.txt  c.txt  myFile.tar.bz2
  • 说明:和 gzip 压缩步骤完全一样,这是 z 换成了 j ,还有压缩包后缀换了。
12.2.2 bz2解压
tar jxvf 压缩包包名
  • 命令演示
edu@edu:~/study$ ls
myFile.tar.bz2
edu@edu:~/study$ tar jxvf myFile.tar.bz2 // 解压缩
a.txt
b.txt
c.txt
edu@edu:~/study$ ls
a.txt  b.txt  c.txt  myFile.tar.bz2
  • 也可以解压到指定目录,和 gzip 差不多,不做过多演示。

还有一种暴力解压缩,就是无视压缩格式,直接解压。

tar xvf 压缩包名
  • 命令演示
edu@edu:~/study$ ls
myFile.tar.bz2
edu@edu:~/study$ tar xvf myFile.tar.bz2
a.txt
b.txt
c.txt
edu@edu:~/study$ ls
a.txt  b.txt  c.txt  myFile.tar.bz2

四、编译器

1.gedit 编译器

geditlinux 下文本编辑器。

gedit 文件名 // 就可打开文件进行编译

2.vim 编译器

2.1安装 vim 编译器

sudo apt-get update
sudo apt-get install vim
sudo apt-get install ctags

2.2 vim 的三种模式

  1. 编辑模式:修改代码,复制、粘贴、剪贴、查找,编辑模式,左下角什么也没有;
  2. 插入模式:用户写代码,插入模式,左下角显示 --插入–;
  3. 命令行模式:保存退出,左下角显示 :。
  • 三种模式的切换:
    1. vim 打开一个已经存在的文件,默认进入编辑模式;
    2. vim 打开一个不存在的文件,先创建文件,默认进入插入模式;
    3. 编辑模式到插入模式,按键盘的 i 或 o,i 代表在当前行插入,o 是在下一行插入;插入模式进入编辑模式按esc;
    4. 编辑模式到命令行模式,按shift + :,命令行模式进入编辑模式按esc;
    5. 插入模式和命令行模式不能直接切换,要回到编辑模式再切换。

2.3编辑模式下的常用命令

  1. u 撤消前面多次修改。 ctl + r 反撤销
  2. [n]x 删除光标后 n 个字符。3x 表示删除光标后 3 个字符
  3. [n]X 删除光标前 n 个字符。3X 表示删除光标前 3 个字符
  4. [n]dd 删除从当前行开始的 n 行
  5. [n]yy 复制从当前行开始的 n 行
  6. p 粘贴
  7. dw 删除一个单词
  8. yw 复制一个单词
  9. . 执行上一次操作
  10. shift + zz保存退出当前文件
  11. [n]G:将光标定位到第 n 行开始处。5G 将光标移动第 5 行开始处
  12. G:将光标定位到文件结束处
  13. gg:将光标定位到文件开始处
  14. /字符串:从光标开始处向文件尾查找字符串
    • n:同一方向重复上一次查找命令
    • N:反方向重复上一次查找命令
  15. :nohls 取消高亮
  16. :set hls 设置高亮

2.4命令行模式常用命令

  1. q 退出 w 保存 !强制执行
  2. wq! 强制保存并退出
  3. w! 强制保存不退出
  4. w 文件名,另存
  5. 打开多文件:vim a.c b.c c.c
  6. 切换某个文件:open c.c 切换到 c.c 中
  7. !linux 命令,等价在终端上运行

2.5编辑模式的扩展命令

在这里插入图片描述


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

相关文章:

  • 使用Grafana中按钮插件实现收发HTTP请求
  • 在 RK3568 Linux 系统上使用 TUN 设备:详细教程
  • centos制作离线安装包
  • golang连接jenkins构建build
  • 网络安全词云图与技术浅谈
  • 使用helm安装canal-server和canal-admin
  • Android 13 非 Launcher 应用开机启动:通过监听开机广播实现
  • linux下搭建lamp环境(dvwa)
  • Qt 应用程序转换为服务
  • MySQL基础-事务
  • 代码随想录算法【Day2】
  • Docker Run使用方法及参数详细说明
  • 【mysql】id主键列乱了之后,重新排序(可根据日期顺序)
  • 4.5 数据表的外连接
  • 【c++笔试强训】(第四十五篇)
  • 基于c语言的union、字符串、格式化输入输出
  • 【Golang 面试题】每日 3 题(六)
  • 学习C++:书写hello world
  • 什么是微分
  • OCR实践-Table-Transformer
  • 【人工智能】用Python实现情感分析:从简单词典到深度学习方法的演进
  • 15 break和continue
  • Dockerfile的用法
  • 基于OpenCV和Python的人脸识别系统_django
  • Python------Pandas的数据结构
  • vue搭建简易前端