Linux环境配置

博客围绕CentOS系统展开,介绍了bash和zsh自启动文件及执行优先级,阐述了PATH环境变量的使用和常见问题解决方法。还提及应用安装方式,如平台自带app store、源码编译等。重点讲解了Java下载地址、CentOS系统Java安装及多版本配置,同时涉及nodejs环境、maven配置等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# bash 自启动文件:

  • 系统级初始化文件:/etc/profile
  • 登陆用户特定初始化文件:~/.bash_profile
  • bash 初始化文件:~/.bashrc

各初始化文件的执行优先级顺序:

交互登录shell交互非登录shell脚本
/etc/profileA
/etc/bash.bashrcA
~/.bashrcB
~/.bash_profileB1
~./bash_loginB2
~/.profileB3
source $BASH_ENVA
logout only
~/.bash_logoutC

例如操作一个交互式登录的shell,那么就会先执行/etc/profile 文件,之后寻找B中的三个文件,找到一个则停止寻找,并执行找到的文件,(优先级为B1,B2,B3),再之后寻找C文件;

由上表可以看到登录和非登录shell的初始化文件是完全错开的,所以会产生一个问题:当从非登陆shell进到登录shell后,之前配置在非登录shell初始化文件中的内容将不再生效(反之同理);为避免出现这种情况,一般会在bash_profile文件中显式加载bashrc,这样可以加载非登录shell中设置的环境变量等信息,用来使用;

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

# zsh自启动文件

  • 系统级初始化文件 /etc/zprofile
  • 登陆用户特定初始化文件 ~/.zprofile
  • shell 初始化文件 ~/.zshrc

各初始化文件的执行优先级顺序:

交互登录非交互登录脚本
/etc/zshenvAAA
~/.zshenvBBB
/etc/zprofileC
~/.zprofileD
/etc/zshrcEC
~/.zshrcFD
/etc/zloginG
~/.zloginH
~/.zlogoutI
/etc/zlogoutJ

# PATH 环境变量

  • PATH 变量是一个路径列表,以 : 隔开
  • 如果可执行程序所在的目录在PATH变量的路径列表里,那么输入命令时可以省略路径
  • 路径列表前面的路径为优先匹配路径,可以用来实现新老版本程序的命令更换

 环境变量列表:

通过which ls我们可以看到ls命令所在的/bin目录在环境变量的列表里,所以我们可以直接使用ls命令,也可以使用/bin/ls来使用,如果不在环境变量的列表,我们只能/bin/ls来使用;

环境变量常见问题:

1. python2 和python3的指定问题:

可能会遇到安装了python3,但是系统还是默认使用python2,这时我们就可以使用which python的命令来找到系统当前使用的python是哪个路径下的python,然后将python3覆盖放在当前路径下即可将系统的默认python更换为python3,也可以打印出系统的环境变量后,查看当前python路径在环境变量中的位置,将python3放在比当前python路径更靠前的路径中,系统在读取时就会优先读取到python3所在的路径;

2. 安装过的命令找不到问题:

将所安装命令的bin目录添加到环境变量中即可;

PATH变量的使用:

export CHROMEDRIVER_HOME=$HOME/projects/chromedriver/91
export PATH=$CHROMEDRIVER_HOME:$PATH

export VSCODE_HOME=/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin
export PATH=$VSCODE_HOME:$PATH

export SONAR_HOME=/usr/local/Cellar/sonar-scanner/4.2.0.1873
export PATH=$SONAR_HOME/bin/:$PATH
export SONARQUBE_TOKEN=c7a93fb6bb1e3268f7099b0f26672ba43c117bb9

export ANDROID_HOME=$HOME/Library/Android/sdk/
export PATH=$ANDROID_HOME/emulator/:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:~/bin/:$PATH

# 应用安装

  • 使用平台自带的app store
    • yum @centos/redhat
    • apt-get @ubuntu debian
    • scoop winget @windows
  • 特定平台版本管理工具  pyenv nvm
  • 安装包安装 pkg dmg
  • 源码编译安装 make make install

平台自带app store安装示例:

centos/redhat:

  • yum search $package
  • yum install $package
  • yum remove $package

ubuntu/debian:

  • apt-cache search $package
  • apt-get install $package
  • apt-get uninstall $package

源码安装实例:

#提前安装对应的各种开发库依赖,每个版本的要求可能都不同

curl -O https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz 下载源码

tar -zxvf Python-3.10.0.tgz  解压源码

cd Python-3.10.0  切换到解压的源码目录

./configure make 对源码进行编译

sudo make install  安装编译好的程序

开源镜像站

  • 华为:https://mirrors.huaweicloud.com/

  • 阿里云:https://developer.aliyun.com/mirror/

# nodejs 环境配置

  • nodejs:https://nodejs.org/zh-cn/
  • npm:node 的包管理工具
  • cnpm:国内镜像版客户端

npm包管理工具使用:

        npm install -g $package   -g 安装模块到全局,可以作为系统命令去调用,不会在项目node_modules目录中保存模块包

        npm list -g 查看已安装的全局包

        npm uninstall $package

        npm install  安装模块到项目node_modules目录下 (常用于项目管理)

centos java 多版本配置

sudo alternatives --list  # 查看所有安装的java工具
sudo alternatives --config java  # 设置默认的java版本 

mvn 常用命令

mvn clean test
mvn package install
mvn test -DskipTests
mvn clean \
  org.jacoco:jacoco-maven-plugin:0.8.5:prepare-agent \
  test \
  org.jacoco:jacoco-maven-plugin:0.8.5:report \
  -Dmaven.test.failure.ignore=true \
  -Dmaven.test.skip=false

mvn编译项目

git clone https://github.com/spring-guides/gs-spring-boot.git
cd gs-spring-boot/complete
mvn package
java -Dserver.port=8888 -jar target/spring-boot-complete-0.0.1-SNAPSHOT.jar
#SERVER_PORT=8888 mvn spring-boot:run

maven 的配置

  • The Maven install: ${maven.home}/conf/settings.xml  全局配置文件 MAVEN安装目录下的conf下的settings.xml文件
  • A user’s install: ${user.home}/.m2/settings.xml  用户配置文件  用户目录下的m2/settings.xml文件 (可能没有)

Android SDK 路径配置

#*unix,长期使用放入到~/.bash_profile中

#ANDROID_HOME官方不推荐使用,但是仍然生效
#export ANDROID_HOME=/Users/seveniruby/Library/Android/sdk
export ANDROID_SDK_ROOT=/Users/seveniruby/Library/Android/sdk
export PATH=$ANDROID_SDK_ROOT/emulator:$ANDROID_SDK_ROOT/platform-tools:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/tools/bin:$PATH

#windows 长期使用放入到系统属性里
set ANDROID_SDK_ROOT=E:\Android\sdk\

java 下载地址

  • java https://www.java.com/zh-CN/
  • oracle jdk http://www.oracle.com/technetwork/java/javase/downloads/index.html
  • openjdk https://openjdk.java.net/

centos java 安装

yum search jdk
yum install -y java-11-openjdk

centos java 多版本配置

sudo alternatives --list
sudo alternatives --config java

 当存在多个java版本时,使用sudo alternatives --list 查看所有的java版本,

然后使用sudo alternatives --config java 来选择要使用的java版本;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值