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

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

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

【一】文件操作命令

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

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

powershell 复制代码
ls /home

(2)cd:改变目录

powershell 复制代码
cd /home/user/Documents

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

powershell 复制代码
pwd

(4)cat:查看文件内容

powershell 复制代码
cat /etc/passwd

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

powershell 复制代码
more /var/log/syslog

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

powershell 复制代码
less /var/log/syslog

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

powershell 复制代码
touch /home/user/newfile.txt

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

powershell 复制代码
cp /home/user/file.txt /home/user/Documents

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

powershell 复制代码
mv /home/user/file.txt /home/user/Documents/newfile.txt

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

powershell 复制代码
rm /home/user/unwantedfile.txt

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

powershell 复制代码
find / -name "*.log"

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

powershell 复制代码
grep "error" /var/log/syslog

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

powershell 复制代码
head -n 10 /var/log/syslog

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

powershell 复制代码
tail -n 20 /var/log/syslog

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

powershell 复制代码
sort /etc/passwd

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

powershell 复制代码
wc /var/log/syslog

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

powershell 复制代码
cut -d: -f1 /etc/passwd

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

powershell 复制代码
nano /home/user/file.txt
vi /home/user/file.txt
emacs /home/user/file.txt

(19)paste:合并文件的行

powershell 复制代码
paste file1.txt file2.txt

【二】搜索命令

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

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

powershell 复制代码
find / -name "*.log"

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

powershell 复制代码
grep "error" /var/log/syslog

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

powershell 复制代码
locate myFile.txt

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

powershell 复制代码
which java

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

powershell 复制代码
ack "your_search_term"

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

powershell 复制代码
ag "your_search_term"

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

powershell 复制代码
whereis ls

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

powershell 复制代码
type pwd

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

powershell 复制代码
apropos partition

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

powershell 复制代码
alias l='ls -al'

【三】目录操作命令

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

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

powershell 复制代码
mkdir /home/user/new_directory

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

powershell 复制代码
rmdir /home/user/empty_directory

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

powershell 复制代码
tree /home/user/

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

powershell 复制代码
du -sh /home/user/Documents

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

powershell 复制代码
df -h

【四】权限操作命令

在Linux系统中,文件和目录的访问可以通过权限操作命令进行控制

(1)chmod:更改文件或目录的权限

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

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

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

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

powershell 复制代码
chgrp newgroup /home/user/file.txt
表示将/home/user/file.txt的所属的组更改为newgroup。

【五】网络操作命令

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

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

powershell 复制代码
ping www.google.com

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

powershell 复制代码
ifconfig eth0

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

powershell 复制代码
netstat -ntlp
``

(4)ssh:远程登录或执行远程命令

```powershell
ssh user@remote_host

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

powershell 复制代码
scp /path/to/file user@remote_host:/remote/path/

(6)curl:获取网络资源

powershell 复制代码
curl www.google.com

(7)telnet:远程登录工具

powershell 复制代码
telnet remote_host 23

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

powershell 复制代码
nslookup www.google.com

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

powershell 复制代码
ftp ftp_server

(10)wget:获取网络资源

powershell 复制代码
wget www.google.com -o google.html 

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

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

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

powershell 复制代码
ps aux

(2)top:动态显示运行中的进程

(3)kill:发送信号以终止进程

powershell 复制代码
kill 1234

(4)shutdown:关闭机器

powershell 复制代码
shutdown -h now

(5)reboot:重启机器

(6)logout:退出登录会话

【七】文本操作命令

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

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

powershell 复制代码
echo "Hello, World!"

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

powershell 复制代码
printf "Name: %s\nAge: %d\n" "Alice" 20

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

powershell 复制代码
echo "Hello, World!" | sed 's/World/Shell/g'

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

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

【八】压缩与解压命令

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

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

powershell 复制代码
tar -cvf archive.tar folder

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

powershell 复制代码
gzip file

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

powershell 复制代码
gunzip file.gz

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

powershell 复制代码
zip -r archive.zip folder
unzip archive.zip

【九】磁盘使用管理命令

管理和查看磁盘使用情况

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

powershell 复制代码
df -h

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

powershell 复制代码
du -sh folder

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

powershell 复制代码
sudo fdisk -l

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

powershell 复制代码
sudo hdparm -i /dev/sda

【十】包管理命令

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

powershell 复制代码
sudo apt-get install package

(2)dpkg:Debian包管理器

powershell 复制代码
sudo dpkg -i package.deb

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

powershell 复制代码
sudo yum install package

(4)rpm:RPM包管理器

powershell 复制代码
sudo rpm -i package.rpm

【十一】进程管理命令

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

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

powershell 复制代码
ps aux
 USER 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更友好的动态进程查看工具

powershell 复制代码
htop

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

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

powershell 复制代码
pkill process_name

【十二】环境变量命令

查看或设置环境变量

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

powershell 复制代码
输入:env
输出:
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    SHELL=/bin/bash
    PWD=/home/user

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

powershell 复制代码
 输入:set
输出:展示所环境变量以及函数

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

powershell 复制代码
输入:
export VARName="Value"
echo $VARName
输出结果:
Value

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

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

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

powershell 复制代码
输入:
uname
输出:
Linux

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

powershell 复制代码
输入:
hostname
输出:
myhostname

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

powershell 复制代码
输入:
dmesg | less

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

powershell 复制代码
输入:df -h
输出:
    Filesystem      Size  Used Avail Use% Mounted on
    udev            962M     0  962M   0% /dev
    tmpfs           200M  4.3M  196M   3% /run
    /dev/sda1        30G  4.7G   24G  17% /

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

powershell 复制代码
输入:free -h
输出:
                  total        used        free      shared  buff/cache   available
    Mem:           3.8G        487M        1.9G        122M        1.4G        3.0G
    Swap:            0B          0B          0B

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

powershell 复制代码
输入:uptime
输出:    16:14:30 up 43 min,  1 user,  load average: 0.34, 0.36, 0.40

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

powershell 复制代码
输入:last reboot

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

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

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

powershell 复制代码
输入:who
输出:    user     tty1         2022-01-28 14:36

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

powershell 复制代码
 输入: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:关机

powershell 复制代码
输入:sudo halt

(2)reboot:重启系统

powershell 复制代码
输入:sudo reboot

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

powershell 复制代码
关闭系统:sudo shutdown -h now
重启系统:sudo shutdown -r now

(4)passwd:更改用户密码

powershell 复制代码
更改密码:passwd

【十五】文件编辑器命令

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

(1)vi/vim:vi是一个文本编辑器,而vim是vi的改进版,提供了更多的功能。

(2)nano:一个简单易用的命令行文本编辑器。

(3)emac:一个强大的文本编辑器,也是一个定制化的计算环境。

【十六】其他常用命令

(1)man:查看命令的帮助文档

(2)whatis:显示一个命令的简单描述

powershell 复制代码
输入:whatis ls
输出:    ls (1)               - list directory contents

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

powershell 复制代码
输入:whereis ls
输出:    ls: /bin/ls /usr/share/man/man1/ls.1.gz

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

powershell 复制代码
输入:which ls
输出:/bin/ls

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

powershell 复制代码
输入:whoami
输出:user

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

powershell 复制代码
输入:date
输出: Tue Dec 21 02:16:12 UTC 2021

(7)cal:显示日历

powershell 复制代码
输入: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:用于实时查看当前命令打印信息

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

【十七】案例

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

powershell 复制代码
#!/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

powershell 复制代码
#!/usr/bin/env bash
source /etc/profile
source ~/.bash_profile

projectName=$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 ]]; then
  echo "未找到端口"
  exit 1
elif [[ ${#port[@]} > 1 ]]; then
  echo "找到多个端口 $port"
  exit 1
fi

health_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" ]; then
  echo "sh ./service.sh start $projectName $skywalking_service_ip" > start.sh
  echo "sh ./service.sh stop $projectName $skywalking_service_ip" > stop.sh
  echo "sh ./service.sh restart $projectName $skywalking_service_ip" > restart.sh
else
  echo "sh ./service.sh start $projectName" > start.sh
  echo "sh ./service.sh stop $projectName" > stop.sh
  echo "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
#fi

start() {
  pid=`ps -ef | grep 'java' | grep $projectName | grep $port | awk '{print $2}'`
  if [ -n "$pid" ]; then
    echo "服务已存在,请停止后再启动"
        exit 1
  fi

  portLock=`netstat -untlp | awk '{print $4}' | grep ":$port$"`
  if [ -n "$portLock" ]; then
    echo "端口$port被占用,请停止占用端口的进程或者更换端口"
    exit 1
  fi

  mkdir -p "$logs/gc"

  JAVA_PATH="../../../jdk/jre/bin/java"
  if [ -f javaPath.txt ]; then
    JAVA_PATH=`cat javaPath.txt`
  fi

  JAVA_OPTS=""
  if [ -f jvmOpts.txt ]; then
    jvmOpts=`cat jvmOpts.txt`
    JAVA_OPTS="$JAVA_OPTS $jvmOpts"
  else
    JAVA_OPTS="$JAVA_OPTS -Xms256m -Xmx256m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:SurvivorRatio=8"
  fi
  javaVersion=`echo $( $JAVA_PATH -version 2>&1 |awk 'NR==1{gsub(/"/,"");print $3}')`
  if [[ $javaVersion == 11* ]]; then
    JAVA_OPTS="$JAVA_OPTS -Xlog:gc*:file=$logs/gc/gc-$current.log:time,uptime,level,tags"
  else
    JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:$logs/gc/gc-$current.log"
  fi
  JAVA_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
#    ;;
#    *)
#    ;;
#  esac

if [ -n "$skywalking_service_ip" ]; then
  JAVA_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"
fi

nohup $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 5
  for ((i=0;i<90;i++))
  do
    curl -s -X GET ${health_url} > health
    health=`cat health | grep status | grep UP`
    if [ ${#health} -gt 10 ]; then
      break
  else
      pidNew=`ps -ef | grep 'java' | grep $projectName | grep $port | awk '{print $2}'`
      if [ -n "$pidNew" ]; then
        echo "Waiting for start ..."
        sleep 3
      else
        echo "Deploy Fail,项目启动失败,请到项目日志目录查看启动日志,默认日志目录为$serviceDir/logs"
        exit 1
      fi
    fi
  done

  sleep 5
  curl -s -X POST -H "Content-Type:application/vnd.spring-boot.actuator.v2+json;charset=UTF-8"  $up_url

  sleep 5

  if [ ${#health} -gt 10 ]; then
    echo "Deploy Success"
    exit 0
  else
    echo "Deploy Fail"
    exit 1
  fi
}

stop() {
  pid=`ps -ef | grep 'java' | grep $projectName | grep $port | awk '{print $2}'`
  if [ -n "$pid" ]; then
    echo "正在下线服务..."
  else
    echo "服务已下线"
        return 0
  fi

#  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
#  fi

  echo "尝试 kill -15 $pid 旧服务"

  kill -15 $pid
  sleep 5
  for ((i=0;i<20;i++))
  do
    pid=`ps -ef | grep 'java' | grep $projectName | grep $port | awk '{print $2}'`
    if [ -n "$pid" ];
      then sleep 1
    else
          echo "服务下线成功"
      return 0
    fi
  done

  pid=`ps -ef | grep 'java' | grep $projectName | grep $port | awk '{print $2}'`
  if [ -n "$pid" ]; then
    echo "尝试 kill -9 $pid 旧服务"
    kill -9 $pid
    sleep 5
  fi

  pidA=`ps -ef | grep 'java' | grep $projectName | grep $port | awk '{print $2}'`
  if [ -n "$pidA" ]; then
    echo "停止旧服务失败,请手工停止"
    exit 1
  fi
}

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")
    stop
    start
  ;;
*)
  help
  ;;
esac

(2)stop.sh

powershell 复制代码
sh ./service.sh stop damp-xingye-ind

(3)start.sh

powershell 复制代码
sh ./service.sh start damp-xingye-ind

(4)restart.sh

powershell 复制代码
sh ./service.sh restart damp-xingye-ind
相关推荐
学编程的小程2 分钟前
无公网IP也能远程控制Windows:Linux rdesktop内网穿透实战
linux·windows·tcp/ip
Arbori_262156 分钟前
linux 命令sed
linux·运维·服务器
ZhifeiDlut8 分钟前
ubuntu 安装 Zotero
linux·ubuntu·zotero
獨枭8 分钟前
Ubuntu 22.04 升级到 Ubuntu 24.04 全流程指南
linux·运维·ubuntu
me83216 分钟前
【Linux docker】关于Docker 守护程序配置远程访问,安全认证以及idea连接。
linux·安全·docker
初次见面我叫泰隆18 分钟前
Linux常见指令
linux·运维·服务器
User_芊芊君子20 分钟前
【JAVA】之路启航——初识Java篇
java·开发语言
陌灵林夕33 分钟前
Spring Task 实现超时未支付的订单自动取消
java·后端
雷渊33 分钟前
mysql为什么需要两阶段提交呢?
java·后端·面试