📄🦌🙌🐟🏖️
日志记录
Where there is a where there is a way
随机文章
按住 Shift 横向滚动
热门文章
按住 Shift 横向滚动
函数与约束条件

函数与约束条件

本文介绍了SQL中常用的函数与约束条件。函数部分涵盖字符串函数(Concat拼接、Lower/Upper大小写转换、Lpad/Rpad填充、Trim去空格、Substring截取)、日期函数(Curdate/Curtime/Now获取当前时间、Year/Month/Day提取部分、Date_add/Datediff时间计算)、数值函数(Ceil/Floor取整、Mod取余、Rand随机数、Round四舍五入)以及流程控制函数(if、ifnull、case when多分支判断)。约束条件用于保证数据正确性、有效性和完整性,包括非空(not null)、唯一(unique)、主键(primary key)、默认(default)、检查(check)和外键(foreign key)。外键用于建立表间关联,支持级联操作(cascade、set null等),但现代微服务架构中较少使用。

SQL基础

SQL基础

SQL语言不区分大小写,分为DDL(数据库/表定义)、DML(表数据增删改)、DQL(数据查询)和DCL(权限管理)。数据类型包括整型(tinyint到bigint)、浮点型(float、double、decimal)、字符串(char固定长度、varchar可变长度)、二进制/文本类型以及日期类型(date、time、datetime等)。DDL用于创建、删除、修改数据库和表结构;DML用于插入、更新、删除数据;DQL支持基本查询、条件查询(含三值逻辑与NULL处理)、聚合函数、分组(先where过滤后having过滤)、排序和分页查询,执行顺序为from→where→group by→having→select→order by→limit。DCL管理用户(创建、修改密码、删除)和权限授予/撤销。

Spring条件注解

Spring条件注解

本文介绍了Spring条件注解的核心机制与应用。条件注解(如`@Conditional`)允许Spring根据运行时条件(如类路径、Bean存在性、配置属性、Java版本等)决定是否注册Bean,其底层依赖`Condition`接口。Spring Boot在此基础上扩展了`@ConditionalOnClass`、`@ConditionalOnMissingBean`、`@ConditionalOnProperty`等常用注解,成为自动配置的核心,体现了“约定优于配置”的设计哲学。用户也可通过实现`Condition`接口自定义条件注解(如仅Linux环境加载)。文章还分析了条件注解的失效原因(如Bean定义注册顺序、父子容器、Bean覆盖等),并建议通过开启`debug=true`查看条件评估报告来调试。最终,条件机制实现了灵活、按需的Bean装配。

VM虚拟机配置Linux网络

VM虚拟机配置Linux网络

本文介绍了在VMware中配置CentOS 7虚拟机固定IP及SSH免密登录的方法。首先,在虚拟网络编辑器中设置NAT模式,确保子网IP、网关IP前三段一致,并配置DNS。其次,修改虚拟机网络配置文件`/etc/sysconfig/network-scripts/ifcfg-xxx`,将`BOOTPROTO`改为static,并设置`HWADDR`、`IPADDR`、`GATEWAY`。若出现网卡丢失,可关闭NetworkManager服务并重启网络。最后,配置SSH免密登录:在Windows生成密钥对,将公钥追加到Linux虚拟机的`~/.ssh/authorized_keys`中,并通过`ssh 用户名@IP`测试连接。整个过程旨在解决IP变动和频繁输入密码的麻烦,提升远程连接效率。

Shell

Shell

Shell是一个命令行解释器,用于向Linux内核发送请求。脚本以`#!/bin/bash`开头,需赋予执行权限,常用`./script.sh`或`sh script.sh`执行。变量分为局部、环境、特殊、只读和数组类型,赋值时等号两侧无空格,引用用`$变量名`或`${变量名}`。运算符包括算术(`$(( ))`)、比较(`-eq`、`-gt`等)、逻辑(`&&`、`||`)、字符串和文件测试(`-f`、`-d`等)。条件判断用`if/elif/else`和`case`,循环有`for`、`while`、`until`,支持`break`、`continue`控制。控制台输入用`read`命令。函数通过`func_name() { ... }`定义,支持参数`$1`、`$#`等,返回状态用`return`,输出用`echo`。局部变量用`local`声明。

软件包管理

软件包管理

本文介绍了Linux系统中五种主要的包管理工具:RPM、YUM、APT、dpkg和DNF。RPM(底层)直接操作.rpm包,不解决依赖;YUM基于RPM,自动处理依赖,适用于Red Hat系列(如CentOS);DNF是YUM的升级版,用于Fedora、RHEL 8+等。APT是Debian/Ubuntu系列的高级工具,自动管理依赖。dpkg是Debian系列的底层工具,处理.deb包,不解决依赖。各工具均支持安装、升级、卸载、查询等操作,且可通过更换国内源加速。日常使用推荐高层工具(YUM/APT/DNF)以简化依赖管理,特定场景(如本地包操作、强制安装)则需底层工具(RPM/dpkg)。

进程管理

进程管理

在Linux中,每个执行程序都是一个进程,拥有唯一PID,分前台和后台运行。常用`ps -aux`或`ps -ef`查看进程信息,包含USER、PID、CPU/MEM占用、STAT(如S睡眠、R运行)等。进程可产生子进程,形成父子关系。使用`kill PID`或`killall 进程名`终止进程,`-9`强制停止。`pstree`以树状显示进程信息。服务管理方面,早期用`service`,CentOS7后多用`systemctl`,支持启动、停止、查看状态及开机自启设置。运行级别(如3命令行、5图形化)可通过`systemctl set-default`修改。`firewall-cmd`用于开放或关闭指定端口。动态监控使用`top`,可实时查看CPU、内存、进程排序等;网络状态用`netstat -anp`查看连接端口及进程信息。`ping`检测主机连通性。

磁盘分区,挂载

磁盘分区,挂载

Linux采用单一根目录结构,分区通过挂载关联到目录。硬盘分为IDE(hdx~)和SCSI(sdx~)两类,常用SCSI。挂载步骤:添加硬盘→用`fdisk`分区→`mkfs`格式化→`mount`临时挂载→修改`/etc/fstab`实现自动挂载。磁盘查询常用`df -h`查看整体使用,`du -h`统计目录占用。常用指令:`ls -l | grep`统计文件/目录数,`tree`以树状显示目录结构。

定时任务调度

定时任务调度

本文介绍了Linux中的两种定时任务调度工具:**crond**和**at**。 **crond**用于周期性执行任务,分为系统工作(如病毒扫描)和用户工作(如数据库备份)。基本语法为`crontab [选项]`,常用选项包括`-e`(编辑任务)、`-l`(查询任务)、`-r`(删除任务)。时间由五个占位符(分、时、日、月、周)组成,支持特殊符号如`*`(任意时间)、`,`(不连续时间)、`-`(连续范围)、`*/n`(每隔n单位)。示例:`*/1 * * * * ls -l /etc/ > tmp/to.txt`表示每分钟执行一次。建议将命令写入脚本文件,并赋予执行权限。重启服务使用`service crond restart`。 **at**用于一次性定时任务,守护进程`atd`每60秒检查作业队列。语法:`at [选项] 时间`,时间定义方式多样:`hh:mm`、`midnight`、`noon`、`teatime`、12小时制(加am/pm)、具体日期(月日或mm/dd/yy)、相对时间(`now+count minutes/hours/days/weeks`)、`today/tomorrow`。常用选项:`-m`(任务完成发邮件)、`-M`(不发邮件)、`-q`(指定队列,大写字母视为batch任务)、`-f`(从文件读入任务)。使用`atq`查看未执行任务,`atrm`删除指定任务。

组管理和权限管理

组管理和权限管理

本文介绍了Linux系统中用户与组的基本概念及文件权限管理。每个用户必须属于一个组,文件具有所有者、所在组和其他组三类权限主体。通过`ls -ahl`查看文件所有者,`chown`修改所有者,`chgrp`修改所在组。权限由十位字符表示:第1位为文件类型(d目录、-文件、l链接等),第2-4位为所有者权限,第5-7位为所在组权限,第8-10位为其他用户权限。rwx分别代表读(4)、写(2)、执行(1),作用于文件时可查看、修改、执行;作用于目录时可读取列表、创建/删除文件、进入目录。修改权限可用`chmod`符号方式(如`u=rwx,g=rx,o=x`)或数字方式(如`751`)。`chown`可同时修改所有者和组,加`-R`递归应用于子目录。`usermod`可改变用户所在组。

© 2026 日志记录