📄🦌🙌🐟🏖️
日志记录
Where there is a where there is a way
随机文章
按住 Shift 横向滚动
热门文章
按住 Shift 横向滚动
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`可改变用户所在组。

Linux常用指令

Linux常用指令

本文总结了Linux常用命令的核心用法,涵盖文件与目录操作(如`cd`、`ls`、`cp`、`mv`、`rm`)、内容查看(`cat`、`more`、`less`、`head`、`tail`)、搜索过滤(`find`、`locate`、`grep`、`wc`)、压缩解压(`gzip`、`zip`、`tar`)以及系统工具(`history`、`which`)等。重点提示慎用`rm -rf`,并介绍了管道符`|`串联命令的技巧。各命令均附有语法和实用示例,便于快速查阅。

开关机和用户管理指令

开关机和用户管理指令

本文介绍了Linux系统中常用的命令行操作,涵盖关机与重启(如`shutdown`、`poweroff`、`reboot`)、登录与注销(`su`、`logout`)、用户管理(`useradd`、`passwd`、`userdel`、`id`、`su`、`whoami`)、用户组(`groupadd`、`groupdel`、`usermod`)及关键配置文件(`/etc/passwd`、`/etc/shadow`、`/etc/group`)。还说明了运行级别(0~6)及切换指令`init`,以及帮助指令`man`和`help`。强调操作需root权限,多用户环境建议提前通知,生产服务器优先使用`shutdown`计划操作。

© 2026 日志记录