【经验版】Linux相关教程(二)

news2024/11/20 9:15:58

一、参考资料

二、常用指令

1. 安装run软件包

# 可执行权限
chmod +x 软件包名.run

# 校验软件包安装文件的一致性和完整性
./软件包名.run --check

# 指定安装路径
./软件包名.run --install

如果用户未指定安装路径,则软件会安装到默认路径下,默认安装路径如下。
root用户:“/usr/local/Ascend”
非root用户:“${HOME}/Ascend”
其中${HOME}为当前用户目录。

2 解压缩相关

2.1 zip压缩文件

# 压缩/etc/目录,压缩文件名为etc.zip
zip -vr etc.zip /etc/

# 压缩多个文件夹
# 将input1,input2, input3压缩成output.zip
zip -vr output.zip input1 input2 input3

# 删除压缩文件中的指定文件
zip -d myfile.zip smart.txt

# 追加mypasww.txt文件到压缩包中
zip -u passwd.zip mypasww.txt

# 将文件和文件夹压缩成 .zip 文件
zip -q -r compress.zip [file directory]

参数解释:

-v		:可视化操作,显示压缩的执行过程,默认就是可视化
-q		: 静默操作,不显示指令执行过程
-r 		:表示递归打包包含子目录的全部内容
-d		:从压缩文件内删除指定的文件
-n		:n为一个数字,压缩级别是从 1~9 的数字,-1 代表压缩速度更快,-9 代表压缩效果更好
-e   	:加密压缩文件 
-u		:追加文件到zip压缩包中

2.2 unzip解压文件

# 解压到当前目录
unzip xxx.zip
或者
unzip -q xxx.zip

# 解压到指定目录
unzip xxx.zip -d ./xxx

2.3 tar解压文件

# 将文件和文件夹压缩成 .tar.gz 文件
tar -zcf xxx.tar.gz [file directory]

2.4 tar解压文件

# 解压.tar.gz结尾的压缩包
tar -xzvf xxx.tar.gz

# 解压 .tar.gz 文件到 /hy-nas 目录
tar -C /hy-nas -xf xxx.tar.gz

2.5 7z解压

解压 zip 或 rar 推荐使用 7z 命令

安装7z

apt-get update
apt-get install p7zip-full -y
# 如果 zip 超过 1GB 推荐使用 7z 命令解压,-o 后直接加解压缩路径
7z x compress.zip -o/hy-nas

# 解压 .rar 文件到当前目录
7z x compress.rar

3. curl下载

如何使用curl命令下载文件

下载链接:https://d7.serctl.com/downloads8/2022-10-08-14-24-38-CopyTranslator-CopyTranslator-PaddleOCR-json.v1.2.1.7z

# 下载单个文件,文件名称与url一致
curl -O [URL]

# 下载多个文件
curl -O [URL1] -O [URL2] -O [URL3] ...

# 下载连续的多张图片
# 如果url中文件带有数字,并且有顺序,可以使用正则语法
curl ftp://ftp.example.com/file[1-30].jpg

# 使用不同的名称保存多个文件
curl -o file2.pdf www.example.com/file.pdf -o file3.pdf www.example.com/file1.pdf

# 下载文件显示进度条
curl -# -O [URL]

# 限制下载速度
# 这个值可以用字节表示,k后缀为千字节,m后缀为兆字节,g后缀为千兆字节
curl --limit-rate [value] [URL]
curl --limit-rate 1m -O [URL]

4. wget下载

Linux wget 命令详解

wget命令是Linux系统用于从Web下载文件的命令行工具,支持 HTTP、HTTPS及FTP协议下载文件,而且wget还提供了很多选项,例如下载多个文件、后台下载,使用代理等等,使用非常方便。接下来就介绍一下wget的使用方法。

# 下载单个文件,文件名称为默认名称
wget [url]

# 下载单个文件,并重命名
wget -O redis.tar.gz https://download.redis.io/releases/redis-6.0.8.tar.gz

# 将文件下载到指定目录
wget -P /usr/software https://download.redis.io/releases/redis-6.0.8.tar.gz


# 断点续传
wget -c https://download.redis.io/releases/redis-6.0.8.tar.gz

# 在后台下载
wget -b https://download.redis.io/releases/redis-6.0.8.tar.gz

# 按照download_list.txt中的链接下载
# 每个url单独一行
wget -i download_list.txt

# 限制下载速度
# 这个值可以用字节表示,k后缀为千字节,m后缀为兆字节,g后缀为千兆字节
wget --limit-rate=1m https://download.redis.io/releases/redis-6.0.8.tar.gz

# 设置模拟浏览器下载
# 如果远程服务器阻止wget下载资源,我们可以通过-U选项模拟浏览器进行下载,例如下面模拟谷歌浏览器下载
wget -U 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.43 Safari/537.36' https://download.redis.io/releases/redis-6.0.8.tar.gz

# 增加重试次数
# 如果网络有问题或下载一个大文件有可能会下载失败,wget默认重试20次
wget --tries=40 https://download.redis.io/releases/redis-6.0.8.tar.gz

# 通过FTP下载如果要从受密码保护的FTP服务器下载文件,需要指定用户名和密码
wget --ftp-user=<username> --ftp-password=<password> url

5. 软链接

# 创建软链接
# Ubuntu中建立软链接运用ln命令,第一个参数是要建立软链接的文件,第二个参数是软链接名称
ln -s 源地址 目的地址
ln -s /opt/Linux/root_dir /home/lp/roo_dir

# 移除软链接
rm -rf <软链接地址>

# 修改软链接
ln -snf <新目标目录> <软链接地址>

6. 文件完整性校验

linux文件完整性校验-md5-sha256

md5校验

通过md5sum 对二进制文件 libTaskDb.so 算md5值,并将值存储在 libTaskDb.so.md5 文件中,校验文件的时候,使用 md5sum -c libTaskDb.so.md5 来校验文件,校验成功,返回0,否则返回1。

# 生成校验码
md5sum -b libTaskDB.so > libTaskDB.so.md5

# 校验文件
md5sum -c libTaskDB.so.md5 

sha256校验

# 生成校验码
sha256sum -b mindspore-lite-1.8.2-linux-x64.tar.gz > mindspore-lite-1.8.2-linux-x64.tar.gz.sha256

# 校验文件
sha256sum -c mindspore-lite-1.8.2-linux-x64.tar.gz.sha256

7. 安装ping

apt-get update
apt install iputils-ping

8. adb logcat

通过工具(如adb logcat)抓取后台日志。

9. ldd

功能:查看可执行文件的链接库情况。

用法:ldd file

yoyo@yoyo:/mnt/d/MyDocuments/CMakeDemo/build$ ldd test.cpython-38-x86_64-linux-gnu.so
        linux-vdso.so.1 (0x00007ffde1d20000)
        libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f5588e95000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f5588e75000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5588c4d000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5588b66000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f55890eb000)

三、重要技巧

1. 缺少 libxxx.solibxxx.so.1 库文件

/usr/bin/ld: cannot find -lxxx 的解决办法

编译c/c++程序的时候报错。

/usr/bin/ld: cannot find -lc
/usr/bin/ld: cannot find -lltdl
/usr/bin/ld: cannot find -lXtst
`lxxx` means `lib + lib-name + .so`

lc means libc.so, 
lltdl means libltdl.so, 
lXtst means libXts.so

说明:

-lxxx 表示 lib + lib-name + .so。例如,-lhdf5 表示 libhdf5.so

/usr/bin/ld: cannot find -lhdf5

# 这表示找不到库文件 libhdf5.so
# 若是其它库文件,则是 cannot find -lxxx ,其中 xxx 是库文件的名字。

1.1 查找 .so 文件

ld -lxxx --verbose

gcc -lxxx --verbose
locate libiconv.so

1.2 情况一

能找到 .so 文件。

  1. 查找 .so 文件

    locate libiconv.so
    
    $ locate libiconv.so
    /home/user/anaconda3/lib/libiconv.so   # <-- right here
    /home/user/anaconda3/lib/libiconv.so.2
    /home/user/anaconda3/lib/libiconv.so.2.5.1
    /home/user/anaconda3/lib/preloadable_libiconv.so
    /home/user/anaconda3/pkgs/libiconv-1.14-0/lib/libiconv.so
    /home/user/anaconda3/pkgs/libiconv-1.14-0/lib/libiconv.so.2
    /home/user/anaconda3/pkgs/libiconv-1.14-0/lib/libiconv.so.2.5.1
    
  2. 创建软连接

    Link it to the right place, usually it is /lib64 or /usr/lib64

    $ sudo ln -s /home/user/anaconda3/lib/libiconv.so /usr/lib64/
    

1.3 情况二

能找到 .so 文件,但不符合命名规则,例如:libasound.so.2,创建软链接即可。

ln -s libasound.so.2 libasound.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 /usr/lib/libboost_filesystem.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 /usr/lib/libboost_system.so

1.4 情况三

需要用户编译生成的 .so 文件。

When you compile your program you must supply the path to the library; in g++ use the -L option:

编译c/c++程序,需要添加 -L 选项,才能生成 lib 链接库。

# c程序
g++ -L/path/foo/bar myprogram.cc -lxxx -o myprogram
# c++程序
g++ -L/home/user/myDir myprogram.cpp -lxxx -lxxx -o myprogram

1.5 情况四

如果找不到 .so 文件,则下载安装。

  • google下载;
  • 百度下载;
sudo apt-get install libfoo-dev
# 如果apt-get安装失败,先添加apt源再安装
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

1.6 其他情况

如果以上的情况都无法解决,按照以下方法:

  1. 更新 /etc/ld.so.conf 配置文件。将库文件所在的路径加入到 /etc/ld.so.conf 尾部,并使之生效:

    #libhdf5.so 在路径 /opt/biosoft/hdf5-1.8.15-patch1/lib/ 下,将该路径加添加到配置文件中
    $ sudo echo '/opt/biosoft/hdf5-1.8.15-patch1/lib/' >> /etc/ld.so.conf
    
    # 使配置生效
    $ sudo ldconfig
    
  2. 修改环境变量

    # 添加环境变量 LD_LIBRARY_PATH
    $ echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/biosoft/hdf5-1.8.15-patch1/lib/' >> ~/.bashrc
    
    # 使配置生效
    $ source ~/.bashrc
    
    # 若修改环境变量 LD_LIBRARY_PATH 不奏效,则修改变量 LIBRARY_PATH
    $ export LIBRARY_PATH=/opt/biosoft/hdf5-1.8.15-patch1/lib/:$LIBRARY_PATH
    

2. Linux环境变量

~/.bashrc 文件。该文件包含bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。该文件被修改后,打开新的terminal,配置才可生效。

为了避免旧的变量被新增的变量覆盖,应该写成如下格式:PATH=$PATH:xx,每一个 PATH 之间要用 : 分隔。在LINUX系统下用 : 作为分隔,在windows中用 ;

执行 source ~/.bashrc 使环境变量生效。

# 环境变量
export PACKAGE_ROOT_PATH={converter_path}

# 动态链接库
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${PACKAGE_ROOT_PATH}/tools/converter/lib
export PATH=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin:${PATH}

# 系统的环境变量
source /etc/profile

# 当前用户的环境变量
source ~/.bashrc

linux设置环境变量

export PATH={converter_path}:${PATH}

windows设置环境变量

set PATH={converter_path}:${PATH}

删除环境变量

export -n KUBECONFIG="/etc/kubernetes/admin.conf"
# 或者
unset KUBECONFIG

参数解释:-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。

列出当前的环境变量

# 列出当前的环境变量值
export -p 

3. glibc库

3.1 glibc简介

glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。由于 glibc 囊括了几乎所有的 UNIX 通行的标准,可以想见其内容包罗万象。而就像其他的 UNIX 系统一样,其内含的档案群分散于系统的树状目录结构中,像一个支架一般撑起整个操作系统。

3.2 重要说明

Ubuntu/Centos 为了稳定使用的glibc版本通常比较低。而安装有些程序需要依赖新版本。升级glibc需要慎重,因为升级失败后导致系统不能用了。原则上不推荐升级glibc

3.3 查询GLIBC版本

# 查询是否缺失相应的GLIBC版本
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
strings /lib/x86_64-linux-gnu/libc-2.23.so | grep GLIBC
或者
ldd --version
yoyo@yoyo:~/MyDocuments/PyProjects/example-app/build$ strings /lib/x86_64-linux-gnu/libc-2.23.so | grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_2.18
GLIBC_2.22
GLIBC_2.23
GLIBC_PRIVATE
GNU C Library (Ubuntu GLIBC 2.23-0ubuntu11.3) stable release version 2.23, by Roland McGrath et al.

3.4 升级glibc(不推荐)

Centos7 glibc库升级到2.23

系统默认的glibc版本是稳定版本,升级可能会带来各种问题,如果升级失败可能导致系统崩溃,请谨慎升级。

如果交叉编译程序,导致编译生成的可执行文件无法运行,提示glibc版本不支持,可降低交叉编译工具链的版本,用低版本的交叉编译工具链重新编译即可

在遇到glibc库问题时候,可以先考虑下为什么要升级GLIBC库,能够通过其他影响性相对小的方式:

  • 在低版本的系统编译自己的产品,如果自己的产品确实不需要新版才支持的新特性。
  • 用版本高的系统来编译,比如ubuntu,和centos的新版,但可能需要部署到较低版本,那么可以考虑用mock等技术制作更好的安装包,把依赖打入包内。
  • 利用容器技术,如Docker,在低版本的操作系统内,轻量级的隔离出一个虚拟运行环境,适应你的程序。

4. tmpfs

linux下的tmpfs和devtmpfs分别是什么啊?

4.1 tmpfs简介

默认的linux发行版中的内核配置都会开启tmpfs,映射到了 /dev/ 下的shm目录。/dev/shm/是linux下一个非常有用的目录,因为这个目录不在硬盘上,而是在内存里。因此在linux下,就不需要大费周折去建ramdisk,直接使用 /dev/shm/ 就可达到很好的优化效果。默认系统就会加载 /dev/shm ,它就是所谓的tmpfs,有人说跟ramdisk(虚拟磁盘),但不一样。象虚拟磁盘一样,tmpfs 可以使用您的 ram,但它也可以使用您的交换分区来存储。

# 查看tmpfs
df -h
[forlinx@ok3568:~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       5.9G  1.2G  4.5G  21% /
devtmpfs        978M     0  978M   0% /dev
tmpfs           986M     0  986M   0% /dev/shm
tmpfs           986M  460K  986M   1% /tmp
tmpfs           986M  280K  986M   1% /run
/dev/mmcblk0p7  124M   13M  106M  11% /oem
/dev/mmcblk0p8  8.4G  501M  7.6G   7% /userdata

4.2 tmpfs优势

  1. 动态文件系统的大小,/dev /shm/需要注意的一个是容量问题,在linux下,它默认最大为内存的一半大小,使用df -h命令可以看到。但它并不会真正的占用这块内存,如果 /dev/shm/ 下没有任何文件,它占用的内存实际上就是0字节;如果它最大为1g,里头放有 100m文件,那剩余的900m仍然可为其它应用程序所使用,但它所占用的100m内存,是绝不会被系统回收重新划分的。
  2. tmpfs 的另一个主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 ram 中,读写几乎可以是瞬间的。
  3. tmpfs 数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。

4.3 修改 /dev/shm 大小

临时修改

默认的最大一半内存大小在某些场合可能不够用,并且默认的inode数量很低一般都要调高些,这时可以用mount命令来管理它。

mount -o size=1500m -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm

参数解释

  • size=1500m,在2g的机器上,将最大容量调到1.5g;
  • nr_inodes=1000000,inode数量调到1000000,这意味着最多可存入一百万个小文件。

永久修改

如果需要永久修改 /dev/shm 的值,需要修改 /etc/fstab

tmpfs /dev/shm tmpfs defaults,size=1.5g 0 0
mount -o remount /dev/shm

四、FAQ

Q:缺少symbolic link软链接

/sbin/ldconfig.real: /usr/local/cuda/lib64/libcudnn.so.7 is not a symbolic link
错误原因:
缺少软连接

解决办法:
创建软连接

sudo ln -sf /usr/local/cuda/lib64/libcudnn.so.7.0.5 /usr/local/cuda/lib64/libcudnn.so.7

Q:找不到libxxx

unable to locate libjasper-dev
# 解决办法:
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main" 
sudo apt update 
sudo apt install libjasper1 libjasper-dev

Q:No space left on device磁盘空间不足

no space left on device 磁盘空间不足原因及排查方法

[ai@localhost 360Downloads]$ yum repolist
Error: Could not set cachedir: [Errno 28] No space left on device: '/var/tmp/dnf-ai-adixssq3'
Exception ignored in: <function MainConf.__del__ at 0x7f9a56160280>
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/dnf/conf/config.py", line 254, in __del__
    for file_name in self.tempfiles:
  File "/usr/lib/python3.9/site-packages/dnf/conf/config.py", line 67, in __getattr__
    option = getattr(self._config, name)
AttributeError: 'ConfigMain' object has no attribute 'tempfiles'
错误原因:
在linux中,有两个概念,block和inode
block:用于存放实际数据 df -h
inode:存放文件属性 df -i
只要这两个其中一个占满空间了,都会导致提示报错"No space left on device"磁盘空间不足。

解决办法:
查找删除垃圾文件,并删除

Q:[ai@localhost 360Downloads]$ yum -y install epel-release

[ai@localhost 360Downloads]$ yum -y install  epel-release
Error: This command has to be run with superuser privileges (under the root user on most systems).
[ai@localhost 360Downloads]$ sudo yum -y install epel-release
[sudo] password for ai:
ai is not in the sudoers file.  This incident will be reported.
错误原因:
此命令必须以超级用户权限(在大多数系统上以root用户权限)运行。

解决办法:
切换root用户

Q:bash:/build.sh:/bin/bash^M:bad interpreter:No such file or directory

bash:/build.sh:/bin/bash^M:bad interpreter:No such file or directory报错解决方法

错误原因:
build.sh文件格式为dos格式导致

解决办法:
vi build.sh
:set ff
:set fileformat=unix
:wq

Q:无法打开磁盘/U盘

一行命令解决Ubuntu不能挂载移动硬盘问题Error mounting /dev/sda1 at /media/XXXX: Command-line `mount -t “ntfs” -o

两种方法解决Ubunto不能挂载u盘问题 Error mounting /dev/sdc1 at /media/pc01/U盘: Command-line `mount -t “exfat“ -o “

在这里插入图片描述

错误原因:
磁盘挂载失败

解决办法:
# 查看分区
sudo fdisk -l

# 修复分区
sudo ntfsfix /dev/sda2

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/76999.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kafka一致性保证

1、概念 水位标记&#xff1a; 水位或水印&#xff08;watermark&#xff09;一词&#xff0c;表示位置信息&#xff0c;即位移&#xff08;offset&#xff09;。Kafka源码中使用的名字是高水位&#xff0c;HW&#xff08;high watermark&#xff09;。 副本角色&#xff1a;…

华硕编程竞赛11月JAVA专场 E题太空漫步 题解

作者主页&#xff1a;Designer 小郑 作者简介&#xff1a;Java全栈软件工程师一枚&#xff0c;来自浙江宁波&#xff0c;负责开发管理公司OA项目&#xff0c;专注软件前后端开发&#xff08;Vue、SpringBoot和微信小程序&#xff09;、系统定制、远程技术指导。CSDN学院、蓝桥云…

cleanmymac4.12最新版下载安装教程

cleanmymac2023的“智能扫描”功能略不同于两外两款软件。除垃圾扫描以外&#xff0c;它还连带有搜索mac潜在威胁以及寻找提升系统性能方案的功能。在垃圾文件分类方面&#xff0c;它将垃圾首先分为系统垃圾、iTunes垃圾、照片垃圾3大类&#xff0c;每一类再做具体细分。但这样…

AUTOSAR OTA升级

一、OTA技术概念 随着高级辅助驾驶的发展和自动驾驶的引入&#xff0c;汽车变得越来越智能&#xff0c;这些智能汽车被软件控制&#xff0c;装有巨量的软件程序&#xff0c;当出现一个软件程序问题或者更新时&#xff0c;如果 按照传统的解决方式 &#xff0c;那都将是一项很繁…

美腾科技科创板上市:预计年营收4.7亿到5.7亿 市值44亿

雷递网 雷建平 12月9日天津美腾科技股份有限公司&#xff08;简称&#xff1a;“美腾科技”&#xff0c;股票代码为&#xff1a;“688420”&#xff09;今日在科创板上市。美腾科技此次发行2211万股&#xff0c;发行价为48.96元&#xff0c;募资总额为10.83亿元。美腾科技开盘价…

Leetcode 1691. 堆叠长方体的最大高度 [Java/C++] 排序+动态规划(附详细证明过程)

给你 n 个长方体 cuboids &#xff0c;其中第 i 个长方体的长宽高表示为 cuboids[i] [widthi, lengthi, heighti]&#xff08;下标从 0 开始&#xff09;。请你从 cuboids 选出一个 子集 &#xff0c;并将它们堆叠起来。如果 widthi < widthj 且 lengthi < lengthj 且 h…

计算机网络(自顶向下)—第八章习题

在下面的空格中填入“谁的什么密钥”&#xff1a; &#xff08;1&#xff09; A 向 B 发送一个一次性会话密钥&#xff0c;A 用B的公钥加密该会话密钥。 &#xff08;2&#xff09; Certifier.com 用Certifier.com的私钥 为 foo.com 签发公钥证书。 &#xff08;3&#xff…

红队隧道应用篇之Neo-reGeorg实现内网穿透(四)

简介 reGeorg是一个能够实现内网穿透的工具&#xff0c;基于socks5协议&#xff0c;且能支持众多脚本 由于此工具使用率过高&#xff0c;导致容易被杀毒软件拦截, 现有一个项目是由reGeorg修改而来, 而且做了加密和免杀处理, 这款工具的名字就叫Neo-reGeorg Neo-reGeorg下载…

Python+Selenium+Unittest 之selenium1--环境搭建

对于学习一个新东西来说&#xff0c;最开始就是要搭建环境了&#xff0c;关于python的环境搭建这里就不说了&#xff0c;主要说下selenium的环境搭建相关内容和安装过程中可能遇到的坑&#xff0c;细节不太一致的可以自行百度解决下&#xff0c;本章所使用的版本为python3.9sel…

Xcode安装特定版本系统的模拟器(不支持断点下载所以总是下载失败)

Xcode里下载太慢就算了&#xff0c;他不支持断点下载&#xff0c;一直一直一直下载失败&#xff0c;根本就装不上嘛&#xff01;&#xff01;&#xff01; 添加模拟器、下载需要的iOS版本 添加模拟器 没有要的iOS版本则点击Download more 然而因为Xcode不支持断点下载&…

【C语言】内存操作函数

目录 一、memcpy函数 1、memcpy函数的用途 2、memcpy函数的使用 3、memcpy函数的模拟实现 二、memmove函数 1、memmove函数的用途 2、memmove函数的使用 3、memmove函数的模拟实现 三、memset函数 1、memset函数的用途 2、memset函数的使用 3、memset函数的模拟实现 四、memcmp…

React 入门:实战案例 TodoList 修改 Todo Item的状态

文章目录目标实现效果实现思路实现步骤第一步&#xff1a;定义更改 Todo 状态的方法&#xff0c;以供调用第二步&#xff1a;App 组件传递更改 Todo 状态的方法给子组件 List第三步&#xff1a;List 组件传递更改 Todo 状态的方法给子组件 Item第四步&#xff1a;Item 调用更改…

Spring 6.0 正式发布,一文了解新特性

正式发布 Spring Framework 6.0 首个 RC 版本正式发布&#xff0c;可以开始使用了。 新特性 我们一起来看看这次6.0版本带来了哪些特性&#xff1f;需要注意的是该版本整个框架代码库现在基于 Java 17 源代码级别&#xff0c;所以如果你想使用需要升级版本到 JDK 17 才可以&a…

什么是FPGA fpga的核心作用

fpga名词解释&#xff1a;FPGA是英文Field Programmable Gate Array的缩写&#xff0c;即现场可编程门阵列&#xff0c;它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。 fpga核心做用&#xff1a;它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的&#…

【吴恩达机器学习笔记】十七、总结

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 &#x1f4e3;专栏定位&#xff1a;为学习吴恩达机器学习视频的同学提供的随堂笔记。 &#x1f4da;专栏简介&#xff1a;在这个专栏&#xff0c;我将整理吴恩达机器学习视频的所有内容的笔记&…

计算机毕业设计springboot+vue基本医院公众号建设推动医疗卫生服务现状研究

项目介绍 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,医院公众号建设推动医疗卫生服务就是信息时代变革中的产物之一。 任…

从零开始学Java之eclipse的安装配置与使用,看这篇就够了

前言 在上一篇文章中&#xff0c;壹哥给大家介绍了Notepad这个更高级点的记事本&#xff0c;它进行Java开发相比windows自带的记事本要更方便一些。但是即便如此&#xff0c;用这种记事本进行Java开发效率依然很低。如果是少量的代码编写还好说&#xff0c;大量代码的开发&…

计算机毕业设计springboot+vue基本微信小程序的电子书阅读器小程序

项目介绍 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,电子书阅读器小程序就是信息时代变革中的产物之一。 任何系统都要遵循…

【云原生】Kubernetes(k8s)Istio Gateway 介绍与实战操作

文章目录一、概述二、Istio 架构三、通过 istioctl 部署 Istio1&#xff09;安装istioctl 工具2&#xff09;通过istioctl安装istio3&#xff09;检查四、Istio Gateway五、Istio VirtualService 虚拟服务六、示例演示&#xff08;bookinfo&#xff09;1&#xff09;安装bookin…

MATLAB | 一起来感受数学之美,第一届迷你黑客大赛回顾

Hey真的是好久不见&#xff0c;最近确实是比较忙更新频率也下来了&#xff0c;过段时间应该能恢复正常更新速度&#xff0c;之前给大家解说过今年举办的math is beautiful迷你黑客大赛&#xff0c;但这其实是第二届大赛&#xff0c;本期推送带大家回顾一下第一期大赛&#xff0…