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

【shell】常用100个shell命令使用讲解

【shell】常用100个shell命令使用讲解

  • 【一】文件操作命令
  • 【二】搜索命令
  • 【三】目录操作命令
  • 【四】权限操作命令
  • 【五】网络操作命令
  • 【六】进程和系统控制命令
  • 【七】文本操作命令
  • 【八】压缩与解压命令
  • 【九】磁盘使用管理命令
  • 【十】包管理命令
  • 【十一】进程管理命令
  • 【十二】环境变量命令
  • 【十三】系统信息发布相关命令
  • 【十四】系统控制命令
  • 【十五】文件编辑器命令
  • 【十六】其他常用命令
  • 【十七】案例
    • 【1】发布时拉取压缩包的案例
    • 【2】项目运行脚本案例
      • (1)service.sh
      • (2)stop.sh
      • (3)start.sh
      • (4)restart.sh

使用Shell脚本,你可以编写一个任务,然后让计算机去做,而你可以去忙其他的事情;你可以编写一个任务,让计算机重复执行,而不需要你每次在命令行手动输入;你可以更灵活地处理任务,比如管理用户,管理程序等。就这样,Shell脚本赋予你控制计算机的能力,在你的指尖下,一切尽在掌握。

【一】文件操作命令

以下是在Linux系统中操作文件的一些常用命令:

(1)ls:列出目录的内容

ls /home

(2)cd:改变目录

cd /home/user/Documents

(3)pwd:打印当前工作目录

pwd

(4)cat:查看文件内容

cat /etc/passwd

(5)more:分页查看文件内容

more /var/log/syslog

(6)less:反向分页查看文件内容

less /var/log/syslog

(7)touch:创建一个空文件或更改文件的访问和修改时间

touch /home/user/newfile.txt

(8)cp:复制文件或目录

cp /home/user/file.txt /home/user/Documents

(9)mv:移动或重命名文件或目录

mv /home/user/file.txt /home/user/Documents/newfile.txt

(10)rm:删除文件或目录

rm /home/user/unwantedfile.txt

(11)find:在文件系统中搜索文件或目录

find / -name "*.log"

(12)grep:在文件中搜索具有特定模式的行

grep "error" /var/log/syslog

(13)head:输出文件的开始部分

head -n 10 /var/log/syslog

(14)tail:输出文件的尾部

tail -n 20 /var/log/syslog

(15)sort:对文本文件的行进行排序

sort /etc/passwd

(16)wc:计算字数、行数和字节数

wc /var/log/syslog

(17)cut:从文件的每一行中剪切字节、字符和字段

cut -d: -f1 /etc/passwd

(18)nano,vi,emacs:常用的文本编辑器

nano /home/user/file.txt
vi /home/user/file.txt
emacs /home/user/file.txt

(19)paste:合并文件的行

paste file1.txt file2.txt

【二】搜索命令

以下命令可以帮助你搜索文件或文本:

(1)find:在文件系统中搜索文件或目录

find / -name "*.log"

(2)grep: 在文本文件中搜索决定的文本模式

grep "error" /var/log/syslog

(3)locate: 基于文件名在数据库中快速找到文件

locate myFile.txt

(4)which: 返回可执行文件的路径

which java

(5)ack:特别为程序员设计的一款文件搜索工具。默认会忽略多数版本控制文件夹(如.git, .svn等)的内容

ack "your_search_term"

(6)ag(The Silver Searcher):比ack更快的代码搜索工具,同样默认忽略 .git 等版本控制文件夹中的内容

ag "your_search_term"

(7)whereis:此命令可用于查找二进制程序、源文件、手册页以及其他文件的位置

whereis ls

(8)type:此命令用于确定某个命令是内部 shell 命令、可执行文件还是别名

type pwd

(9)apropos:如果你只记得关于某个命令的部分信息,你可以使用 apropos 命令来搜索帮助手册中的命令描述

apropos partition

(10)alias:如果你经常使用某些 Linux 命令,你可以使用 alias 命令为这些常用命令创建一个短名,以提升你的工作效率

alias l='ls -al'

【三】目录操作命令

以下是在Linux系统中操作目录的一些常用命令

(1)mkdir:创建一个新的目录

mkdir /home/user/new_directory

(2)rmdir:删除一个空目录

rmdir /home/user/empty_directory

(3)tree:以树形结构列出目录的内容

tree /home/user/

(4)du:估计文件和目录的磁盘使用空间

du -sh /home/user/Documents

(5)df:显示磁盘使用空间

df -h

【四】权限操作命令

在Linux系统中,文件和目录的访问可以通过权限操作命令进行控制
(1)chmod:更改文件或目录的权限

chmod 755 /home/user/file.txt
表示设置文件的主用户有读,写和执行权限(rwx = 7),同组的用户和其他用户有读和执行权限(rx = 5)。

(2)chown:更改文件或目录的所有者和所属的组

chown newuser:newgroup /home/user/file.txt
表示将/home/user/file.txt的所有者更改为newuser,所属的组更改为newgroup。 

(3)chgrp:更改文件或目录的所属组

chgrp newgroup /home/user/file.txt
表示将/home/user/file.txt的所属的组更改为newgroup。

【五】网络操作命令

以下是在Linux系统中与网络相关的一些常用命令

(1)ping:发送网络请求以测试网络连接

ping www.google.com

(2)ifconfig:显示或配置网络接口

ifconfig eth0

(3)netstat:显示网络连接、路由表等网络状态信息

netstat -ntlp
``(4)ssh:远程登录或执行远程命令```powershell
ssh user@remote_host

(5)scp:在本地和远程系统之间安全地复制文件

scp /path/to/file user@remote_host:/remote/path/

(6)curl:获取网络资源

curl www.google.com

(7)telnet:远程登录工具

telnet remote_host 23

(8)nslookup:查询 DNS 名称服务器的记录

nslookup www.google.com

(9)ftp:在本地主机和FTP服务器之间建立FTP连接

ftp ftp_server

(10)wget:获取网络资源

wget www.google.com -o google.html 

【六】进程和系统控制命令

以下是在Linux系统中管理进程和控制系统的一些常用命令

(1)ps:显示当前进程的状态

ps aux

(2)top:动态显示运行中的进程
(3)kill:发送信号以终止进程

kill 1234

(4)shutdown:关闭机器

shutdown -h now

(5)reboot:重启机器
(6)logout:退出登录会话

【七】文本操作命令

在编写或处理文本文件时,下列命令可以帮助你完成各种复杂任务:

(1)echo:打印信息到终端。

echo "Hello, World!"

(2)printf:格式化并打印信息。

printf "Name: %s\nAge: %d\n" "Alice" 20

(3)sed:流编辑器,用于对文本文件进行特定的行处理和替换。

echo "Hello, World!" | sed 's/World/Shell/g'

(4)awk:在文本文件中进行模式扫描和处理语言。

echo -e "name\tage\nAlice\t20\nBob\t22" | awk '{if ($2 >= 21) print $1}'

【八】压缩与解压命令

以下命令主要用于管理和操作文件压缩及解压

(1)tar:创建、展开及管理tar包

tar -cvf archive.tar folder

(2)gzip:用于文件压缩或解压

gzip file

(3)gunzip:用于解压gzip压缩的文件

gunzip file.gz

(4)zip/unzip:创建和解压zip格式的压缩包

zip -r archive.zip folder
unzip archive.zip

【九】磁盘使用管理命令

管理和查看磁盘使用情况

(1)df:报告文件系统磁盘空间使用情况

df -h

(2)du:估计并报告文件及文件夹的磁盘使用情况

du -sh folder

(3)fdisk:对磁盘进行分区管理

sudo fdisk -l

(4)hdparm:查看或修改SATA/ATA磁盘参数

sudo hdparm -i /dev/sda

【十】包管理命令

(1)apt-get:APT包处理工具,用于处理包

sudo apt-get install package

(2)dpkg:Debian包管理器

sudo dpkg -i package.deb

(3)yum:高级软件包管理器,用于处理rpm包

sudo yum install package

(4)rpm:RPM包管理器

sudo rpm -i package.rpm

【十一】进程管理命令

查看和管理正在运行的进程

(1)ps:报告进程当前状态

ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND 
root 1 0.0 0.4 225848 7836 ? Ss Nov10 4:05 /lib/systemd/systemd --system --deserialize 39 
root 2 0.0 0.0 0 0 ? S Nov10 0:00 [kthreadd] 
root 4 0.0 0.0 0 0 ? I< Nov10 0:00 [kworker/0:0H]

(2)top:动态显示当前耗费系统资源最多的进程
(3)htop:比top更友好的动态进程查看工具

htop

(4)kill: 终止或者发送一个信号到指定进程
(5)pkill:条件地终止或者发送一个信号到指定进程

pkill process_name

【十二】环境变量命令

查看或设置环境变量

(1)env:显示当前所有的环境变量

输入:env
输出:PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binSHELL=/bin/bashPWD=/home/user

(2)set:显示当前shell所有的环境变量及函数

 输入:set
输出:展示所环境变量以及函数

(3)export:设置或显示环境变量

输入:
export VARName="Value"
echo $VARName
输出结果:
Value

【十三】系统信息发布相关命令

有时,你可能想要查看有关你的系统或硬件的信息。以下命令可以帮助你做到这一点

(1)uname:会打印操作系统的名称

输入:
uname
输出:
Linux

(2)hostname:打印系统的主机名

输入:
hostname
输出:
myhostname

(3)dmesg:打印或控制内核环形缓冲区

输入:
dmesg | less

(4)df:展示文件系统的磁盘空间使用情况

输入:df -h
输出:Filesystem      Size  Used Avail Use% Mounted onudev            962M     0  962M   0% /devtmpfs           200M  4.3M  196M   3% /run/dev/sda1        30G  4.7G   24G  17% /

(5)free:展示系统中未使用和已经使用的物理和swap内存

输入:free -h
输出:total        used        free      shared  buff/cache   availableMem:           3.8G        487M        1.9G        122M        1.4G        3.0GSwap:            0B          0B          0B

(6)uptime:展示系统已经运行了多久,有多少用户正在登录,以及系统负载

输入:uptime
输出:    16:14:30 up 43 min,  1 user,  load average: 0.34, 0.36, 0.40

(7)last:查看系统的重启和关机记录

输入:last reboot

(8)w: 展示哪些用户正在登录

输入:w
输出:    16:17:51 up  1:42,  1 user,  load average: 0.45, 0.47, 0.38USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHATuser     tty1                      14:36    1:42m  1.55s  0.06s w

(9)who:展示哪些用户正在登录,和w命令相似但信息更少

输入:who
输出:    user     tty1         2022-01-28 14:36

(10)id:展示当前用户的UID、GID以及所在的组

 输入:id输出:uid=1000(user) gid=1000(user) groups=1000(user),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)

【十四】系统控制命令

在一些特殊情况下,你可能需要进行一些系统控制操作。以下命令可以帮助你做到这一点

(1)halt:关机

输入:sudo halt

(2)reboot:重启系统

输入:sudo reboot

(3)shutdown:关机或者重启,和上述两个命令一样,但是提供更多的选项

关闭系统:sudo shutdown -h now
重启系统:sudo shutdown -r now

(4)passwd:更改用户密码

更改密码:passwd

【十五】文件编辑器命令

Linux提供了多种命令行文本编辑器。以下这些可能是你需要知道的:

(1)vi/vim:vi是一个文本编辑器,而vim是vi的改进版,提供了更多的功能。
(2)nano:一个简单易用的命令行文本编辑器。
(3)emac:一个强大的文本编辑器,也是一个定制化的计算环境。

【十六】其他常用命令

(1)man:查看命令的帮助文档
(2)whatis:显示一个命令的简单描述

输入:whatis ls
输出:    ls (1)               - list directory contents

(3)whereis:查找命令的二进制文件、源文件及帮助文档位置

输入:whereis ls
输出:    ls: /bin/ls /usr/share/man/man1/ls.1.gz

(4)which:查找并显示给定命令的完整路径

输入:which ls
输出:/bin/ls

(5)whoami:打印当前有效的用户名

输入:whoami
输出:user

(6)date:显示或设置系统日期和时间

输入:date
输出: Tue Dec 21 02:16:12 UTC 2021

(7)cal:显示日历

输入:cal
输出:January 2022      Su Mo Tu We Th Fr Sa  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15  16 17 18 19 20 21 22  23 24 25 26 27 28 29  30 31                 

(8)alias:创建命令别名
(9)unalias:删除别名
(10)history:显示命令历史
(11)clear:清除屏幕或窗口内容
(12)watch:用于实时查看当前命令打印信息

输入:watch -n 2 date
解释:watch`命令会每2秒运行一次`date`命令,并实时显示输出

【十七】案例

【1】发布时拉取压缩包的案例

#!/bin/bash# 设置根目录
BASE_DIR="/home/damp/server/services"# 获取当前时间,格式为 YYYYMMDD_HHMM(年、月、日、时、分)
CURRENT_TIME=$(date +"%Y%m%d_%H%M")# 以当前时间为父目录
TARGET_DIR="$BASE_DIR/bushu_$CURRENT_TIME"
TARGET_IND_DIR="$TARGET_DIR/server-ind"
TARGET_WEB_DIR="$TARGET_DIR/sub-ind"# 创建目标目录
mkdir -p "$TARGET_IND_DIR"
mkdir -p "$TARGET_WEB_DIR"echo "已创建目录: $TARGET_DIR"# 进入目标目录
cd "$TARGET_IND_DIR" || exit
echo "进入目录: $TARGET_IND_DIR"# 设置源目录
SOURCE_DIR="/home/damp/server/services/damp-xingye-ind/lib"
SOURCE_WEB_DIR="/home/damp/web/pages/subapp/sub-ind"# 复制以damp开头且包含ind的jar文件到当前目录
cp "$SOURCE_DIR"/damp*ind*.jar "$TARGET_IND_DIR"
echo "后端包复制成功"# 复制前端包
cp -rf "$SOURCE_WEB_DIR"/* "$TARGET_WEB_DIR"
echo "前端包复制成功"# 返回到根目录,以便打包
cd "$BASE_DIR" || exit# 打包当前创建的目录为 .tar.gz 文件
TAR_FILE="bushu_${CURRENT_TIME}.tar.gz"
tar -czvf "$TAR_FILE" "bushu_$CURRENT_TIME"# 获取当前路径并输出完整的打包文件路径
FULL_PATH="$(pwd)/$TAR_FILE"
echo "已将目录 $CURRENT_TIME 打包为文件: $FULL_PATH"# 打包完成后返回到根目录
echo  "打包文件父目录: $BASE_DIR"

【2】项目运行脚本案例

(1)service.sh

#!/usr/bin/env bash
source /etc/profile
source ~/.bash_profileprojectName=$2
skywalking_service_ip=$3
current=`date "+%Y%m%d%H%M%S"`
skywalking_agent_dir="./skywalking/agent-msp/agent8.4"
# 脚本运行目录的父目录
serviceDir=$(cd $(dirname $0)/..; pwd)
logs="$serviceDir/logs"
# 进入脚本目录
cd $(dirname $0)port=`cat ../conf/bootstrap.yml | grep "port" | cut -c 9-`
if [[ ${#port[@]} == 0 ]]; thenecho "未找到端口"exit 1
elif [[ ${#port[@]} > 1 ]]; thenecho "找到多个端口 $port"exit 1
fihealth_url="http://127.0.0.1:$port/actuator/health"
up_url="http://127.0.0.1:$port/actuator/serviceregistry?status=UP"
down_url="http://127.0.0.1:$port/actuator/serviceregistry?status=DOWN"# 生成启动文件
if [ -n "$skywalking_service_ip" ]; thenecho "sh ./service.sh start $projectName $skywalking_service_ip" > start.shecho "sh ./service.sh stop $projectName $skywalking_service_ip" > stop.shecho "sh ./service.sh restart $projectName $skywalking_service_ip" > restart.sh
elseecho "sh ./service.sh start $projectName" > start.shecho "sh ./service.sh stop $projectName" > stop.shecho "sh ./service.sh restart $projectName" > restart.sh
fi
chmod +x start.sh
chmod +x stop.sh
chmod +x restart.sh#if [ -n "$skywalking_service_ip" ]; then
#  if [[ $target =~ "dev" ]]; then
#    skywalking_service_ip="10.99.137.136:11800"
#  else
#    skywalking_service_ip="12.99.76.69:11800"
#  fi
#fistart() {pid=`ps -ef | grep 'java' | grep $projectName | grep $port | awk '{print $2}'`if [ -n "$pid" ]; thenecho "服务已存在,请停止后再启动"exit 1fiportLock=`netstat -untlp | awk '{print $4}' | grep ":$port$"`if [ -n "$portLock" ]; thenecho "端口$port被占用,请停止占用端口的进程或者更换端口"exit 1fimkdir -p "$logs/gc"JAVA_PATH="../../../jdk/jre/bin/java"if [ -f javaPath.txt ]; thenJAVA_PATH=`cat javaPath.txt`fiJAVA_OPTS=""if [ -f jvmOpts.txt ]; thenjvmOpts=`cat jvmOpts.txt`JAVA_OPTS="$JAVA_OPTS $jvmOpts"elseJAVA_OPTS="$JAVA_OPTS -Xms256m -Xmx256m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:SurvivorRatio=8"fijavaVersion=`echo $( $JAVA_PATH -version 2>&1 |awk 'NR==1{gsub(/"/,"");print $3}')`if [[ $javaVersion == 11* ]]; thenJAVA_OPTS="$JAVA_OPTS -Xlog:gc*:file=$logs/gc/gc-$current.log:time,uptime,level,tags"elseJAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:$logs/gc/gc-$current.log"fiJAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump"
#  JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=$target -Dserver.port=$port"JAVA_OPTS="$JAVA_OPTS -Dserver.port=$port"JAVA_AGENT_OPTS=""# -javaagent:/home/cloud/iast_agent.jar
# 如果为sit环境且存在iast的jar包,则在启动参数中加入调用iast_agent.jar的命令#  case $target in
#    sit* | uat*)
#      if [ -x "/home/cloud/iast_agent.jar" ]; then
#        JAVA_AGENT_OPTS="$JAVA_AGENT_OPTS -javaagent:/home/cloud/iast_agent.jar"
#      fi
#    ;;
#    *)
#    ;;
#  esacif [ -n "$skywalking_service_ip" ]; thenJAVA_AGENT_OPTS="$JAVA_AGENT_OPTS -javaagent:$skywalking_agent_dir/skywalking-agent.jar"JAVA_OPTS="$JAVA_OPTS -Dskywalking.agent.service_name=$projectName -Dskywalking.collector.backend_service=$skywalking_service_ip"
finohup $JAVA_PATH $JAVA_AGENT_OPTS $JAVA_OPTS -cp ../conf/:../../../driver/*:../../../ext/*:../lib/* com.hzyatop.xingye.Application --spring.config.additional-location=../../../conf/bootstrap.yml > /dev/null 2>&1 &sleep 5for ((i=0;i<90;i++))docurl -s -X GET ${health_url} > healthhealth=`cat health | grep status | grep UP`if [ ${#health} -gt 10 ]; thenbreakelsepidNew=`ps -ef | grep 'java' | grep $projectName | grep $port | awk '{print $2}'`if [ -n "$pidNew" ]; thenecho "Waiting for start ..."sleep 3elseecho "Deploy Fail,项目启动失败,请到项目日志目录查看启动日志,默认日志目录为$serviceDir/logs"exit 1fifidonesleep 5curl -s -X POST -H "Content-Type:application/vnd.spring-boot.actuator.v2+json;charset=UTF-8"  $up_urlsleep 5if [ ${#health} -gt 10 ]; thenecho "Deploy Success"exit 0elseecho "Deploy Fail"exit 1fi
}stop() {pid=`ps -ef | grep 'java' | grep $projectName | grep $port | awk '{print $2}'`if [ -n "$pid" ]; thenecho "正在下线服务..."elseecho "服务已下线"return 0fi#  curl -s -X POST -H "Content-Type:application/vnd.spring-boot.actuator.v2+json;charset=UTF-8" $down_url
#  if [ -n "$skywalking_service_ip" ]; then
#    sleep 60
#  else
#    sleep 30
#  fiecho "尝试 kill -15 $pid 旧服务"kill -15 $pidsleep 5for ((i=0;i<20;i++))dopid=`ps -ef | grep 'java' | grep $projectName | grep $port | awk '{print $2}'`if [ -n "$pid" ];then sleep 1elseecho "服务下线成功"return 0fidonepid=`ps -ef | grep 'java' | grep $projectName | grep $port | awk '{print $2}'`if [ -n "$pid" ]; thenecho "尝试 kill -9 $pid 旧服务"kill -9 $pidsleep 5fipidA=`ps -ef | grep 'java' | grep $projectName | grep $port | awk '{print $2}'`if [ -n "$pidA" ]; thenecho "停止旧服务失败,请手工停止"exit 1fi
}help(){echo "---------------sh service.sh [options] [project] [env] [port] [skywalking_service_ip]----------------"echo "---------------options: start | stop | restart ------------------------------------------------------"echo "---------------project: 工程名称,jar包前缀 ---------------------------------------------------------"echo "---------------env:环境  dev | sit | uat | prod-----------------------------------------------------"echo "---------------skywalking_service_ip:IP地址 --------------------------------------------------------"
}# 操作命令
case "$1" in"start")start;;"stop")stop;;"restart")stopstart;;
*)help;;
esac

(2)stop.sh

sh ./service.sh stop damp-xingye-ind

(3)start.sh

sh ./service.sh start damp-xingye-ind

(4)restart.sh

sh ./service.sh restart damp-xingye-ind

相关文章:

【shell】常用100个shell命令使用讲解

【shell】常用100个shell命令使用讲解 【一】文件操作命令【二】搜索命令【三】目录操作命令【四】权限操作命令【五】网络操作命令【六】进程和系统控制命令【七】文本操作命令【八】压缩与解压命令【九】磁盘使用管理命令【十】包管理命令【十一】进程管理命令【十二】环境变…...

Git-分支(branch)常用命令

分支 我们在做项目开发的时候&#xff0c;无论是软件项目还是其他机械工程项目&#xff0c;我们为了提高效率以及合理的节省时间等等原因&#xff0c;现在都不再是线性进行&#xff0c;而是将一个项目抽离出诸进行线&#xff0c;每一条线在git中我们就叫做分支&#xff0c;bran…...

谈谈es6 Map 函数

发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【宝藏入口】。 Map 是 ES6 中引入的一种新的数据结构&#xff0c;它类似于对象&#xff08;Object&#xff09;&#xff0c;但与对象相比&#…...

微信小程序:实现节点进度条的效果;正在完成的节点有动态循环效果;横向,纵向排列

参考说明 微信小程序实现流程进度功能 - 知乎 上面的为一个节点进度条的例子&#xff0c;但并不完整&#xff0c;根据上述代码&#xff0c;进行修改完善&#xff0c;实现其效果 横向效果 代码 wxml <view classorder_process><view classprocess_wrap wx:for&quo…...

【Unity3D】无限循环列表(扩展版)

基础版&#xff1a;【Unity技术分享】UGUI之ScrollRect优化_ugui scrollrect 优化-CSDN博客 using UnityEngine; using UnityEngine.UI; using System.Collections.Generic;public delegate void OnBaseLoopListItemCallback(GameObject cell, int index); public class BaseLo…...

MacOS 命令行详解使用教程

本章讲述MacOs命令行详解的使用教程&#xff0c;感谢大家观看。 本人博客:如烟花般绚烂却又稍纵即逝的主页 MacOs命令行前言&#xff1a; 在 macOS 上,Terminal&#xff08;终端) 是一个功能强大的工具&#xff0c;它允许用户通过命令行直接与系统交互。本教程将详细介绍 macOS…...

redis集群安装部署 redis三主三从集群

redis集群安装部署 redis三主三从集群 1、下载redis2、安装redis集群 三主三从3、配置redis开机自启动3.1、建立启动脚本3.2、复制多份redis启动脚本给集群使用3.3、添加可执行权限3.4、配置开机自启动 1、下载redis 本次redis安装部署选择当前最新的稳定版本7.4.1 下载链接: …...

第十二课 Unity 内存优化_内存工具篇(Memory)详解

内存&#xff08;Memory&#xff09; unity 内存部分也是优化过程中非常重要的一个环节&#xff0c;也会影像渲染过程中的同步等待与带宽问题。因此内存的优化也可能会给我们渲染开销带来精简&#xff0c;今天我们先来了解unity中的内存与使用到的内存工具。 Unity中的内存 托…...

达梦8-达梦数据的示例用户和表

1、示例库说明&#xff1a; 创建达梦数据的示例用户和表&#xff0c;导入测试数据。 在完成达梦数据库的安装之后&#xff0c;在/opt/dmdbms/samples/instance_script目录下有用于创建示例用户的SQL文件。samples目录前的路径根据实际安装情况进行修改&#xff0c;本文将达梦…...

数据可视化-1. 折线图

目录 1. 折线图适用场景分析 1. 1 时间序列数据展示 1.2 趋势分析 1.3 多变量比较 1.4 数据异常检测 1.5 简洁易读的数据可视化 1.6 特定领域的应用 2. 折线图局限性 3. 折线图代码实现 3.1 Python 源代码 3.2 折线图效果&#xff08;网页显示&#xff09; 1. 折线图…...

【现代服务端架构】传统服务器 对比 Serverless

在现代开发中&#xff0c;选择合适的架构是至关重要的。两种非常常见的架构模式分别是 传统服务器架构 和 Serverless。它们各有优缺点&#xff0c;适合不同的应用场景。今天&#xff0c;我就带大家一起对比这两种架构&#xff0c;看看它们的差异&#xff0c;并且帮助你选择最适…...

论文学习—VAE

VAE----Auto-Encoding Variational Bayes 2024年12月17日-2024年12月18日摘要引言方法例子&#xff1a;变分自动编码器 2024年12月17日-2024年12月18日 从今天开始&#xff0c;我准备记录自己学习的内容以此来检验我每天的学习量&#xff0c;菜鸡一枚&#xff0c;希望能够与大…...

AI 智能体(AI Agent)到底什么原理?能干什么事情

智能体应用有哪些&#xff1f; 智能体在千行百业中有着广泛的应用&#xff0c;目前已经在 600 多个项目落地和探索&#xff0c;广泛应用于政府与公共事业、交通、工业、能源、金融、医疗、科研等行业。智能体是模拟人类智能的计算机系统&#xff0c;能自主感知环境、智能决策并…...

【mysql】如何查看大表记录行数

目录 1. 使用 ANALYZE TABLE 和 SHOW TABLE STATUS2. 查询 INFORMATION_SCHEMA 表3. 使用索引统计信息4. 维护行数缓存5. 使用分区计数 1. 使用 ANALYZE TABLE 和 SHOW TABLE STATUS 1.ANALYZE TABLE 可以更新表的统计信息&#xff0c;然后使用 SHOW TABLE STATUS 来查看估算的…...

Linux之网络配置

一、检查虚拟机和本机通不通 测试虚拟机和本机是否通不通 winR&#xff0c;运行本机cmd&#xff0c;输入ipconfig&#xff0c;拿到本机ip地址 在虚拟机上ping一下这个地址(ctrlshitv)可以把复制的文本粘贴进虚拟机。 可以看到&#xff0c;不通&#xff0c;解决方法在最后&am…...

SpringBoot集成JWT和Redis实现鉴权登录功能

目前市面上有许多鉴权框架&#xff0c;鉴权原理大同小异&#xff0c;本文简单介绍下利用JWT和Redis实现鉴权功能&#xff0c;算是抛砖引玉吧。 主要原理就是“令牌主动失效机制”&#xff0c;主要包括以下4个步骤&#xff1a; (1)利用拦截器LoginInterceptor实现所有接口登录拦…...

LabVIEW热电偶传感器虚拟仿真实验系统

在教学和科研领域&#xff0c;实验设备的更新和维护成本较高&#xff0c;尤其是在经济欠发达地区&#xff0c;设备的短缺和陈旧化严重影响了教学质量。基于LabVIEW的热电偶传感器虚拟仿真实验系统能够通过模拟实验环境&#xff0c;提供一个成本低廉且效果良好的教学和研究平台。…...

Centos7 部署ZLMediakit

1、拉取代码 #国内用户推荐从同步镜像网站gitee下载 git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit cd ZLMediaKit #千万不要忘记执行这句命令 git submodule update --init 2、安装编译器 sudo yum -y install gcc 3、安装cmake sudo yum -y install cmake 4…...

Docker搭建kafka环境

系统&#xff1a;MacOS Sonoma 14.1 Docker版本&#xff1a;Docker version 27.3.1, build ce12230 Docker desktop版本&#xff1a;Docker Desktop 4.36.0 (175267) 1.拉取镜像 先打开Docker Desktop&#xff0c;然后在终端执行命令 docker pull lensesio/fast-data-dev …...

wsl2-ubuntu安装docker后无法拉取镜像

如上是报错全部信息, 这个实际上是因为网络不通导致的, 由于我实在公司使用, 而公司上网需要使用代理, 因此把代理加上就行了. # 为docker服务添加代理 mkdir /etc/systemd/system/docker.service.d cat > /etc/systemd/system/docker.service.d/http-proxy.conf <<…...

Invalid bound statement (not found) 错误解决

出现这个错误提示&#xff1a;Invalid bound statement (not found): com.xxx.small_reservior.dao.WaterRainMapper.getWaterRainByRegion&#xff0c;通常表示 MyBatis 框架无法找到与给定的 getWaterRainByRegion 方法匹配的 SQL 映射语句。这种问题通常发生在以下几种情况中…...

深度学习的下一站:解锁人工智能的新边界

引言&#xff1a;新边界的呼唤 深度学习的诞生&#xff0c;犹如人工智能领域的一次革命&#xff0c;激发了语音助手、自动驾驶、智能医疗等前沿技术的飞速发展。然而&#xff0c;面对现实世界的复杂性&#xff0c;现有的深度学习模型仍然存在数据依赖、可解释性差、环境适应力不…...

搭建Tomcat(三)---重写service方法

目录 引入 一、在Java中创建一个新的空项目&#xff08;初步搭建&#xff09; 问题&#xff1a; 要求在tomcat软件包下的MyTomcat类中编写main文件&#xff0c;实现在MyTomcat中扫描myweb软件包中的所有Java文件&#xff0c;并返回“WebServlet(url"myFirst")”中…...

跟着AI 学AI开发二,本地部署自己的Chat GPT

这里要安装的是Open Web UI &#xff0c;用一张架构图说明AI 前端与后端的关系。 之前的Python 的方法已经做过多次介绍&#xff0c;这里不做赘述。 顺序&#xff1a;1&#xff0c;Ollama。 2&#xff0c;Docker。 3&#xff0c;Open WebUI。 Ollama 安装下载地址&#xff1…...

XXE靶机漏洞复现通关

1.扫描XXE靶机的ip地址 将kali虚拟机和XXE靶机部署在同一局域网中&#xff0c;都采用NAT网络模式 搭建好后在kali终端中进行扫描XXE靶机的ip arp-scan -l 根据常识我们可以推断192.168.27.153为靶机的ip地址 2.访问靶机页面并扫描附录 进入页面后我们可以打开御剑扫描网页中…...

XS9922B 同轴RX芯片 四通道 多合一模拟高清解码器

XS9922B 是一款 4 通道模拟复合视频解码芯片&#xff0c;支持 HDCCTV 高清协议和 CVBS 标 清协议&#xff0c;视频制式支持 720P/1080P 高清制式和 960H/D1 标清制式。芯片将接收到的高清 模拟复合视频信号经过模数转化&#xff0c;视频解码以及 2D 图像处理之后&#xff0c;转…...

如何在谷歌浏览器中设置电子邮件通知

在现代互联网生活中&#xff0c;电子邮件已成为我们日常沟通的重要工具。为了更高效地管理邮件&#xff0c;您可以在谷歌浏览器中设置电子邮件通知。本文将详细介绍如何实现这一功能&#xff0c;并附带一些相关的Chrome使用技巧。&#xff08;本文由https://chrome.google64.cn…...

利用Java获取淘宝商品详情API接口的深入指南引言

引言 在电商领域&#xff0c;数据的价值日益凸显&#xff0c;尤其是在淘宝这样的大型电商平台上。淘宝商品详情API接口允许开发者通过编程方式获取商品的详细信息&#xff0c;这对于市场分析、竞争对手研究等方面至关重要。本文将详细介绍如何使用Java编写爬虫程序&#xff0c…...

3D工具显微镜的测量范围

一、测量尺寸范围 样品尺寸&#xff1a; 3D工具显微镜通常能够测量各种尺寸和形状的样品&#xff0c;从小至微米级别的微小结构到大至几厘米甚至更大的物体。具体的测量尺寸范围取决于显微镜的载物台大小、镜头焦距以及软件处理能力。测量精度&#xff1a; 3D工具显微镜的测量…...

WPF DataTemplate 数据模板

DataTemplate 顾名思义&#xff0c;数据模板&#xff0c;在 wpf 中使用非常频繁。 它一般用在带有 DataTemplate 依赖属性的控件中&#xff0c;如 ContentControl、集合控件 ListBox、ItemsControl 、TabControls 等。 1. 非集合控件中使用 <UserControl.Resources>&l…...