Mac 上每次都需要执行 `source ~/.bash_profile` 的解决方案
如果您在 Mac 上设置了环境变量,并发现每次打开终端都需要手动执行 source ~/.bash_profile 才能生效,这可能是因为您的终端没有自动加载配置文件。以下是解决这一问题的几种方法。
1. 确认使用的 Shell
首先,检查您正在使用的 Shell。macOS 默认使用 zsh,但如果您手动切换到 bash,则需要确保配置文件正确。
检查当前 Shell
在终端中运行以下命令:
echo $SHELL
如果输出为 /bin/zsh,您正在使用 zsh,那么需要修改 ~/.zshrc 文件。如果是 /bin/bash,则修改 ~/.bash_profile 文件。
2. 对于 Zsh 用户
如果您使用的是 zsh,请将环境变量配置添加到 ~/.zshrc 文件中,而不是 ~/.bash_profile。
编辑 ~/.zshrc
nano ~/.zshrc
在文件末尾添加您的环境变量配置,例如:
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
保存文件后,执行以下命令使更改生效:
source ~/.zshrc
3. 对于 Bash 用户
如果您使用的是 bash,并且仍然需要手动执行 source ~/.bash_profile,请确保您在 ~/.bash_profile 中的配置是正确的。
编辑 ~/.bash_profile
nano ~/.bash_profile
添加您的环境变量配置,例如:
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
确保 ~/.bash_profile 被加载
在某些情况下,您可能需要确保 ~/.bashrc 被加载到 ~/.bash_profile 中。可以在 ~/.bash_profile 中添加以下内容:
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
4. 重新打开终端
配置完成后,关闭并重新打开终端,查看环境变量是否自动生效。您可以运行以下命令检查:
echo $PATH
5. 总结
通过将环境变量配置添加到正确的 Shell 配置文件中,您可以避免每次打开终端后手动执行 source 命令。确保使用相应的配置文件(~/.bash_profile 或 ~/.zshrc)并正确设置环境变量。
分割PHP配置文件 php.ini
分割PHP配置文件 的方法
编译php 时 增加如下参数
./configure --with-config-file-scan-dir=PATH --wi...
这个是指定附加的ini配置文件的目录位置,此目录下的ini文件会被追加到php.ini配置中。
我们可以在 PATH 目录下 创建分割配置文件
$ cat redis.ini
extension=/usr/local/php7/lib/php/extensions/no-debug-non-zts-20180731/redis.so
yum 安装 Redis
yum 安装Redis:
由于Centos官方yum源里面没有Redis,我们需要安装一个第三方的yum源,这里用了Fedora的epel仓库,执行命令安装,这里要注意一点,yum 安装的redis 版本不一定是最新的,可以用yum search redis 来查询安装源中的redis 版本,默认情况,版本较老。
安装epel仓库:
yum install -y epel-release
然后使用 yum install -y redis 安装redis,yum 安装操作非常简单。
下面使用 cetnos7 systemctl 启动 redis,命令如下:
systemctl start redis
Go 语言中的下划线( `_`)
在 Go 语言中,下划线(_)具有特殊的含义和用途。它被称为“空白标识符”,主要用于丢弃不需要的值。以下是一些常见的用法和示例。
1. 丢弃不需要的值
在接收多个返回值的函数中,如果您只关心某些返回值,可以使用下划线来丢弃不需要的值。
示例
package main
import (
"fmt"
)
func getValues() (int, int) {
return 42, 99
}
func main() {
a, _ := getValues() // 丢弃第二个返回值
fmt.Println(a) // 输出:42
}
2. 忽略导入的包
在导入包时,如果您只想执行包中的初始化代码,而不使用包中的任何标识符,可以使用下划线。
示例
package main
import (
_ "github.com/lib/pq" // 导入但不使用
)
func main() {
// 这里可以使用 pq 包的初始化代码
}
3. 作为占位符
在某些情况下,下划线可以用作占位符,表示某个变量存在但不需要使用。
示例
package main
import "fmt"
func main() {
for i := 0; i < 5; i++ {
_, err := doSomething(i)
if err != nil {
fmt.Println("Error:", err)
}
}
}
func doSomething(i int) (int, error) {
return i * 2, nil // 返回一个值和一个错误
}
4. 作为类型别名
在类型定义中,下划线可以用来创建不需要使用的类型。
示例
type myInt int
func (m myInt) DoSomething() {
// 方法实现
}
func main() {
var _ myInt = 10 // 确保 myInt 实现了某些接口
}
5. 注意事项
- 下划线不能被用作变量名,不能被重复赋值。
- 使用下划线可以提高代码的可读性,明确哪些返回值是被忽略的。
总结
在 Go 语言中,下划线(_)是一个非常有用的空白标识符,主要用于丢弃不需要的值、忽略导入的包和作为占位符等。通过合理使用下划线,可以使代码更加简洁和清晰。
在 Mac 上升级到 Go 1.18 的步骤
如果您希望在 Mac 上升级到 Go 1.18,可以按照以下步骤进行操作:
1. 检查当前 Go 版本
在终端中运行以下命令,检查当前安装的 Go 版本:
go version
2. 卸载旧版本(可选)
如果您是通过 Homebrew 或直接下载的方式安装的 Go,建议先卸载旧版本。
使用 Homebrew 卸载
如果您是通过 Homebrew 安装的,可以使用以下命令卸载:
brew uninstall go
手动卸载
如果您是手动安装的,您可以删除 Go 目录(通常在 /usr/local/go):
sudo rm -rf /usr/local/go
3. 下载 Go 1.18
前往 Go 的官方网站下载 Go 1.18 的安装包:
Go Downloads
选择适合 macOS 的版本(通常为 .pkg 文件)。
4. 安装 Go 1.18
5. 验证安装
安装完成后,在终端中运行以下命令,确认 Go 已成功升级:
go version
您应该看到输出类似于:
go version go1.18 darwin/amd64
6. 配置环境变量(如有必要)
如果您之前手动设置了 Go 的环境变量,确保它们仍然正确。通常需要设置 GOPATH 和将 Go 的 bin 目录添加到 PATH 中。
在 ~/.bash_profile 或 ~/.zshrc 文件中添加:
export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
然后运行以下命令以使更改生效:
source ~/.bash_profile # 对于 bash 用户
# 或
source ~/.zshrc # 对于 zsh 用户
7. 更新 Go Modules(如使用)
如果您在项目中使用 Go Modules,可以更新依赖项:
go get -u