分类
- .net (22)
- adf (11)
- android (3)
- article (236)
- astronomy (1)
- block chain (8)
- C# Code (9)
- c/c++ (2)
- cache (8)
- cloud (2)
- consensus (3)
- css (2)
- cve (1)
- db (55)
- digest (1)
- english (1)
- finance (2)
- go (3)
- gps (2)
- hardware (1)
- html (2)
- http (2)
- info (19)
- iot (1)
- it (3)
- java (32)
- javascript (7)
- jsp (2)
- linux (76)
- mail (14)
- math (1)
- message (8)
- mood (4)
- mq (2)
- network (22)
- php (9)
- protocol (4)
- push/pull (2)
- python (5)
- rpc (2)
- search (4)
- servlet (1)
- space (24)
- storage (15)
- technologys (103)
- templete (1)
- virtual machine (7)
- web server (37)
- windows (12)
-
近期文章
其他操作
链接
现代88星座
1928年国际天文学联合会正式公布国际通用的88个星座方案。
同时规定以1875年的春分点和赤道为基准。
根据88个星座在天球上的不同位置和恒星出没的情况,又划成五大区域,即北天拱极星座(5个)、黄道十二星座(天球上黄道附近的12个星座)、赤道带星座(10个)、南天星座(-30~-90°,42个)、北天星座(40~90°,19个)。
全天的88个星座是:
黄道十二星座(12个):白羊座、金牛座、双子座、巨蟹座、狮子座、室女座、天秤座、天蝎座、人马座、摩羯座、宝瓶座、双鱼座。
赤道带星座(10个):蛇夫座、天鹰座、麒麟座、小马座、小犬座、巨蛇座、六分仪座、长蛇座、猎户座、鲸鱼座。
南天星座(共42个):半人马座、凤凰座、天鹤座、天坛座、绘架座、苍蝇座、山案座、印第安座、天燕座、飞鱼座、矩尺座、剑鱼座、时钟座、杜鹃座、南三角座、圆规座、蝘蜓座、望远镜座、水蛇座、南十字座(小星座)、孔雀座、南极座、网罟座,南冕座、豺狼座、大犬座、天鸽座、乌鸦座、南鱼座、天兔座,船底座、船尾座、罗盘座、船帆座、玉夫座、波江座、盾牌座、天炉座、唧筒座、雕具座、显微镜座、巨爵座。
北天星座(19个):飞马座、天鹅座、蝎虎座、仙女座、鹿豹座、御夫座、猎犬座、狐狸座、小狮座、英仙座、牧夫座、武仙座、后发座、北冕座、天猫座、天琴座、海豚座、三角座(小星座)、天箭座(小星座)。
北天拱极星座(5个):小熊座(最靠近北天极)、大熊座、仙后座、天龙座、仙王座。
参考:
百科
发表在 info
现代88星座已关闭评论
卫星分类
按类型分
军事卫星 | s_js |
气象卫星 | s_qx |
资源卫星 | s_zy |
通讯卫星 | s_tx |
导航卫星 | s_dh |
遥感卫星 | s_yg |
科学卫星 | s_kx |
侦察卫星 | s_zc |
截击卫星 | s_jj |
光学卫星 | s_gx |
中继卫星 | s_zj |
空间站 | s_ss |
按高度分
高轨道/地球同步轨道/静止轨道(GEO):高度约36000km,
优点:
通信距离远,覆盖面积大,3颗便可覆盖全球。
地球站不需要复杂的跟踪系统即可对准。
缺点:
高度高,因此信号衰减和时延大。
地球的两极为通信盲区,而且高纬度地区通信效果较差。
地球静止轨道只有一条,轨道上所能容纳的卫星数量有限。
高椭圆轨道(HEO):远地点约40000km,
优点:
可覆盖高纬度地区
地球站可工作在大仰角上,减小大气影响
可用简单的高增益非跟踪天线
发射成本较低
在业务时间内不会发生掩蔽现象
缺点:
需考虑卫星切换问题
需要多普勒频移补偿功能
卫星天线必须有波束定位控制系统
当近地点过低时,卫星会经过范·艾伦带,需要防辐射措施
全球覆盖一般需星间链路
中轨道(MEO):高度约2000km或3000km~20000km
优点:
传输损耗较小、传播时延也大约为GEO卫星的四分之一
降低了卫星切换的频率,
需要较少的卫星就能实现全球覆盖,降低了系统设计和管理的难度。
低轨道(LEO):高度500 km ~2000km
优点:
可覆盖全球
传播时延短,服务质量好
频率资源可多次再用
抗毁性能好
传播损耗小,卫星和地面终端设备简单,适合个人移动卫星通信。
缺点:
复杂的网络设计,投资浩大
一般需要星上处理和星间通信等技术
较大的多普勒频移,需要频率补偿功能
需考虑卫星切换问题
。
发表在 space
卫星分类已关闭评论
Gitlab 用户五种权限
Gitlab权限管理
Gitlab用户在组中有五种权限:Guest、Reporter、Developer、Master、Owner
Guest:可以创建issue、发表评论,不能读写版本库
Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限
Developer:可以克隆代码、开发、提交、push,RD可以赋予这个权限
Master:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限
Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限
Gitlab中的组和项目有三种访问权限:Private、Internal、Public
Private:只有组成员才能看到
Internal:只要登录的用户就能看到
Public:所有人都能看到
开源项目和组设置的是Internal
发表在 it
Gitlab 用户五种权限已关闭评论
关闭edge推荐设置默认浏览器的弹窗
访问 edge://flags/#edge-show-feature-recommendations
设置成 Disable
发表在 windows
关闭edge推荐设置默认浏览器的弹窗已关闭评论
CI/CD
名词
- CI: Continuous Integration(持续集成)
- CD: Continuous Delivery(连续交付)
- CD: Continuous Deployment(持续部署)
.
发表在 it
CI/CD已关闭评论
Go install
下载
https://golang.google.cn/dl/
UNIX/Linux/Mac OS X, 和 FreeBSD 安装
1、下载二进制包:go1.4.linux-amd64.tar.gz。
2、将下载的二进制包解压至 /usr/local目录。
tar -C /usr/local -xzf go1.4.linux-amd64.tar.gz
3、将 /usr/local/go/bin 目录添加至 PATH 环境变量:
export PATH=$PATH:/usr/local/go/bin
以上只能暂时添加 PATH,关闭终端下次再登录就没有了。
我们可以编辑 ~/.bash_profile 或者 /etc/profile,并将以下命令添加该文件的末尾,这样就永久生效了:
export PATH=$PATH:/usr/local/go/bin
添加后需要执行:
source ~/.bash_profile 或 source /etc/profile
MAC 系统下你可以使用 .pkg 结尾的安装包直接双击来完成安装,安装目录在 /usr/local/go/ 下。
Windows 系统下安装
Windows 下使用 .msi 后缀的安装包来安装。
默认情况下 .msi 文件会安装在 c:\Go 目录下。你可以将 c:\Go\bin 目录添加到 Path 环境变量中。添加后需要重启命令窗口才能生效。
安装测试
创建工作目录 C:\>go-workSpace。
test.go 文件:
package main import "fmt" func main() { fmt.Println("Hello, World!") }
使用 go 命令执行以上代码输出结果如下:
c:\go_workSpace>go run test.go Hello, World!
.
发表在 go
Go install已关闭评论
Apache Log4j2远程代码执行漏洞(CVE-2021-44228)
简介
ApacheLog4j2是一个开源的Java日志框架,被广泛地应用在中间件、开发框架与Web应用中。
漏洞概述
该漏洞是由于Apache Log4j2某些功能存在递归解析功能,未经身份验证的攻击者通过发送特定恶意数据包,可在目标服务器上执行任意代码。
影响范围
Apache Log4j 2.x <= 2.15.0-rc1
漏洞编号: CVE-2021-44228,名称为Log4Shell或者LogJam
漏洞类型: Remote Code Execution (RCE)
组件名称: Apache log4j2
影响范围: 2.0.0 ≤ Apache Log4j2 ≤ 2.15.0-rc1
利用难度: 容易
威胁等级: 严重
解决方案
1.目前,Apache软件基金会已发布最新版本,建议受影响的用户及时更新升级到最新版本log4j-2.15.0-rc2:
https://logging.apache.org/log4j/2.x/security.html
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2
2.对于该漏洞还有一个临时的缓解措施:
设置log4j2.formatMsgNoLookups=true
.
发表在 cve
Apache Log4j2远程代码执行漏洞(CVE-2021-44228)已关闭评论
航天/天文常用坐标系
一、英文缩写说明
CIO:国际协议原点(考虑极移与章动)
CRF:协议天球参考框架
CTS:协议地球坐标系
ECEF:地心地固坐标系
ECI:地心惯性坐标系 (Earth Center Inertial Coordinates | 地球中心的惯性坐标系)
ECSF:地心空间坐标系
ECEI:地心椭球惯性坐标系(地心黄道惯性坐标系)
ECF: 地心固定坐标系
TEME:真赤道平春分点坐标系(True Equator Mean Equinox)(适用TLE的坐标系)
MEME:历元平赤道平春分点地心坐标系(Mean Equator Mean Equinox)(卫星常用)
J2000:地心赤道坐标系(卫星常用/MEME坐标系)
GCRS:地心天球参考系
ITRS:国际地球参考系
WGS84:WGS-84坐标系(World Geodetic System一1984 Coordinate System)
二、坐标系解析
1. 笛卡尔坐标系
01—笛卡尔坐标系有两种:
右手系和左手系;其中,
右手系分为:CTS(包括ECEF, 其中ECEF可以是直角系或椭球系或大地坐标系)、
CRF(包括ECI、ECSF和ECEI)和星固坐标系;
左手系有:当地坐标系(站星坐标系)!
2. ECEF 地心地固坐标系
02—ECEF:
1)原点-地球几何中心(地球质心);
2)Z轴-地球平均自转极点(CIO);
3)X轴-子午线与赤道交点;
4)Y轴-右手系决定!
3. ECI 地心惯性坐标系
03—ECI:
1)原点-地球质心;
2)Z轴-地球平均自转极点(CIO);
3)X轴-春分点(每年春分点均会发生变动,参考J2000.0);
4)Y轴-右手系决定!
地心惯性坐标系(ECI×J2000历元坐标系)
地心惯性坐标系是太阳系内的一个惯性坐标系,不随地球而转动,也不受地球、DAC6574IDGS太阳运行的章动和岁差的影响。其坐标原点位于地心0e;OeX轴位于赤道平面内,指向特定某一年(历元时刻)的太阳春分点位置;Oez轴指向某一年(历元时刻)地球北极的平均位置处;Ocy轴位于赤道平面内,与0eX轴垂直,且与0cX、9ez构成满足右手定则的笛卡儿直角坐标系。由于采用的历元时间不同,可以有各种不同的地心惯性坐标系,目前国际上通用的地心惯性坐标系是12.000历元坐标系,它是以公元20.OO年的春分点为基准的历元坐标系。
在空间保持静止或匀速直线运动(无加速度)的坐标系称为惯性坐标系。所有惯性器件在测量轴方向产生的都是惯性系下的测量结果。此外,还需要在惯性系下完成卫星绕地球的位置和速度的估计。对于近地卫星,通常采用地心惯性(ECI)坐标系。
4. ECSF 地心空间坐标系
04—ECSF==ECI!
5. ECEI 地心椭球惯性坐标系(地心黄道惯性坐标系)
05—ECEI:1)原点-地球几何中心(地球质心);2)Z轴-椭球极轴(黄道极-地球公转 轨迹在地球表面投影轨迹形成);3)X轴-春分点
(每年春分点均会发生变动,参考J2000.0);4)Y轴-右手系决定!
6. ECF 地心固定坐标系
地心固定坐标系(ECF)(WGS84坐标系)
地心固定坐标系的坐标原点位于地心0c,Oez轴指向地球北极,Oe凭轴位于赤道平面内指向地理经度的零点,Oey轴根据右手定则确定。地心固
定坐标系为笛卡尔直角坐标系,该坐标系在宇宙空间中相对地球静止,伴随地球自转和公转。
7.星固坐标系
06—星固坐标系:1)原点-卫星质心;2)Z轴-指向地心或者与天线指向平行方向;3) Y轴-平行太阳能面板(若面板不对称,Y轴指向何
方?);4)X轴-右手系决定!
8. 当地坐标系
07—当地坐标系:1)Z轴-垂直水平面向上;2)X轴-指向大地北;3)Y轴-指东;4)X- Y面构成水平面!
9. 坐标系转换
08—若原点相同的系可以归属为同一类笛卡尔坐标系!
09—不同的笛卡尔坐标系转换公式:X(new)=X(原点坐标差)+U * R * X(old)!
10—X(ECEF) = R(M) * R(S) * R(N) * R§ * X(ECI)
11—X(ECEI) = R1(-ems) * X(ECI)
12—IAU 2000框架下:X(ECEF0 = R(M) * R(S) * R(NP) * X(ECI)
13—不同的坐标可以通过R1、R2、R3矩阵进行转换!
astropy根据TLE计算的卫星位置用TEME坐标(表中的第四种)表示,做卫星的覆盖分析,需要经纬度则需要转换坐标。
转换包:
https://www.osgeo.cn/astropy/index.html
一、参心坐标系
reference-ellipsoid-centric coordinate system
是以 参考椭球的几何中心为原点的 大地坐标系。“参心”意指参考椭球的中心。
通常分为:参心空间直角坐标系(以x,y,z为其坐标元素)和参心大地坐标系(以B,L,H为其坐标元素)。参心坐标系是在参考椭球内建立的O-XYZ坐标系。原点O为参考椭球的几何中心,X轴与赤道面和首子午面的交线重合,向东为正。Z轴与旋转椭球的短轴重合,向北为正。Y轴与XZ平面垂直构成右手系。在测量中,为了处理观测成果和传算地面控制网的坐标,通常须选取一参考椭球面作为基本参考面,选一参考点作为大地测量的起算点(大地原点),利用大地原点的天文观测量来确定参考椭球在地球内部的位置和方向。
参心大地坐标的应用十分广泛,它是经典大地测量的一种通用坐标系。根据地图投影理论,参心大地坐标系可以通过高斯投影计算转化为平面直角坐标系,为地形测量和工程测量提供控制基础。由于不同时期采用的地球椭球不同或其定。
北京54和西安80均为参心坐标系。
二、地心坐标系
geocentric coordinate system
以地球质心为原点建立的空间直角坐标系,或以球心与地球质心重合的地球椭球面为基准面所建立的大地坐标系。
以地球质心(总椭球的几何中心)为原点的大地坐标系。通常分为:
地心空间直角坐标系(以x,y,z为其坐标元素)
和地心大地坐标系(以B,L,H为其坐标元素)(L(经),B(维),H(高)表示)。
地心坐标系是在大地体内建立的O-XYZ坐标系。
原点O设在大地体的质量中心,用相互垂直的X,Y,Z三个轴来表示,X轴与首子午面与 赤道面的交线重合,向东为正。
Z轴与地球 旋转轴重合,向北为正。Y轴与XZ平面垂直构成 右手系。
产生的背景
20世纪50年代之前,一个国家或一个地区都是在使所选择的参考椭球与其所在地区的大地水准面最佳拟合的条件下,按弧度测量方法来建立各自的局部大地坐标系的。由于当时除海洋上只有稀疏的重力测量外,大地测量工作只能在各个大陆上进行,而各大陆的局部大地坐标系间几乎没有联系。不过在当时的科学发展水平上,局部大地坐标系已能基本满足各国大地测量和制图工作的要求。但是,为了研究地球形状的整体及其外部重力场以及地球动力现象;特别是50年代末,人造地球卫星和远程弹道武器出现后,为了描述它们在空间的位置和运动,以及表示其地面发射站和跟踪站的位置,都必须采用地心坐标系。因此,建立全球地心坐标系(也称为世界坐标系)已成为大地测量所面临的迫切任务。
WGS-84、CGCS2000,都是属于地心坐标系。
三、地心坐标系
四:常见常量
ref:
https://www.osgeo.cn/astropy/constants/index.html
名字 | 价值 | 单位 | 描述 |
---|---|---|---|
G | 6.6743e-11号 | m3/(kg s2) | 引力常数 |
N_A | 6.02214076e+23 | 1/(摩尔) | 阿伏加德罗数 |
R | 8.31446262 | J/(千摩尔) | 气体常数 |
黑麦 | 10973731.6 | 1/(米) | 里德堡常数 |
a0 | 5.29177211e-11 | 米 | 玻尔半径 |
阿尔法 | 0.00729735257 | 精细结构常数 | |
自动取款机 | 101325 | 宾夕法尼亚州 | 标准大气 |
b_wien | 0.00289777196 | m千 | 维恩波长位移定律常数 |
C | 299792458 | 米/(秒) | 真空中的光速 |
E | 1.60217663e-19 | C | 电子电荷 |
eps0 | 8.85418781e-12号 | F/m公司 | 真空介电常数 |
g0号 | 9.80665 | 米/秒2 | 标准重力加速度 |
H | 6.62607015e-34 | J s | 普朗克常数 |
糖化血红蛋白 | 1.05457182e-34 | J s | 约化普朗克常数 |
k_B | 1.380649e-23 | J/(K) | 玻尔兹曼常数 |
m_e | 9.1093837e-31 | 公斤 | 电子质量 |
m_n | 1.6749275e-27 | 公斤 | 中子质量 |
m_p | 1.67262192e-27 | 公斤 | 质子质量 |
mu0单位 | 1.25663706e-06 | N/A2 | 真空磁导率 |
muB公司 | 9.27401008e-24 | J/T公司 | 玻尔磁子 |
sigma_T | 6.65245873e-29 | 平方米 | 汤姆逊散射截面 |
sigma_sb | 电话:4208-745 | W/(K4平方米) | 斯特凡玻尔兹曼常数 |
U | 1.66053907e-27 | 公斤 | 原子质量 |
GM_earth | 3.986004e+14 | m3/(s2) | 标称地球质量参数 |
GM_jup | 1.2668653e+17 | m3/(s2) | 名义木星质量参数 |
GM_sun | 1.3271244e+20 | m3/(s2) | 标称太阳质量参数 |
L_bol0 | 3.0128e+28 | W | 绝对辐射量0的光度 |
L_sun | 3.828e+26 | W | 标称太阳光度 |
M_earth | 5.97216787e+24 | 公斤 | 地球质量 |
M_jup | 1.8981246e+27 | 公斤 | 木星质量 |
M_sun | 1.98840987e+30 | 公斤 | 太阳质量 |
R_earth | 6378100 | 米 | 标称地球赤道半径 |
R_jup | 71492000 | 米 | 木星名义赤道半径 |
R_sun | 695700000 | 米 | 标称太阳半径 |
澳大利亚 | 1.49597871e+11 | 米 | 天文单位 |
科索沃保护团 | 3.08567758e+19 | 米 | 千帕 |
个人电脑 | 3.08567758e+16 | 米 | 帕塞克 |
参考图:
注:资料来源于网络
参考:
http://www.rivermap.cn/docs/show-1829.html
.
发表在 space
航天/天文常用坐标系已关闭评论
mybatis 多数据源
1.定义多个数据源的mybatis配置
application.properties mybatis.mapper-locations=mappers/*.xml mybatisLog.mapper-locations=mappersLog/*.xml ## datasource master # spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url= jdbc:mysql://localhost:3306/test1?characterEncoding=UTF-8 spring.datasource.username=root spring.datasource.password=466 ## datasource log # spring.datasourceLog.type=com.alibaba.druid.pool.DruidDataSource spring.datasourceLog.driver-class-name=com.mysql.jdbc.Driver spring.datasourceLog.url= jdbc:mysql://localhost:3306/log?characterEncoding=UTF-8 spring.datasourceLog.username=root spring.datasourceLog.password=466
2.定义多个数据源
@Configuration public class DatasourceConfig { @Bean(destroyMethod = "close", name = DataSources.MASTER_DB) @ConfigurationProperties(prefix = "spring.datasource") public DataSource dataSource() { return DataSourceBuilder.create() .type(DruidDataSource.class) .build(); } @Bean(destroyMethod = "close", name = DataSources.LOG_DB) @ConfigurationProperties(prefix = "spring.datasourceLog") public DataSource dataSourceLog() { return DataSourceBuilder.create() .type(DruidDataSource.class) .build(); } }
3.分别配置多个数据源
@Configuration @MapperScan(basePackages = {"com.example.mapper.orders"}) public class MybatisConfig { @Autowired @Qualifier(DataSources.MASTER_DB) private DataSource masterDB; @Bean @Primary @ConfigurationProperties(prefix = "db.order") public SqlSessionFactoryBean sqlSessionFactoryBean() { SqlSessionFactoryBean sqlSessionFactoryBean; sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(masterDB); return sqlSessionFactoryBean; } }
.
@Configuration @MapperScan(basePackages = {"com.example.mapper.users"} , sqlSessionFactoryRef = "logSqlSessionFactory") public class MybatisLogConfig { @Autowired @Qualifier("user") private DataSource userSource; @Bean(name = "logSqlSessionFactory") @ConfigurationProperties(prefix = "db.user") public SqlSessionFactoryBean sqlSessionFactoryBean() { SqlSessionFactoryBean sqlSessionFactoryBean; sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(userSource); return sqlSessionFactoryBean; } }
关键
- 1)Configuration 扫描不同的前缀,取不同包下的sql对应的xml文件
- 2)SqlSessionFactoryBean 实例化时,默认的额外添加了 @Primary注解
- 3)MapperScan 扫描的不同的包,如果扫描相同的包也能做,但是还需要做额外的配置,可以自己尝试
- 4)不同的数据源使用不同的SqlSessionFactoryBean实例
.
发表在 java
mybatis 多数据源已关闭评论
Kubernetes 常见问题 / K8S
Q: K8S 删除pv一直处于terminating 的方法
A: 使用kubectl patch
kubectl patch pv {pv name} -p '{"metadata":{"finalizers":null}}'
.
发表在 cloud
Kubernetes 常见问题 / K8S已关闭评论
雪花算法 / SnowFlake
算法生成id的结果是一个64bit大小的整数,它的结构如下图:
- 1bit,不用,因为二进制中最高位是符号位,1表示负数,0表示正数。生成的id一般都是用整数,所以最高位固定为0。
- 41bit-时间戳,用来记录时间戳,毫秒级。
- 41位可以表示个数字,
- 如果只用来表示正整数(计算机中正数包含0),可以表示的数值范围是:0 至,减1是因为可表示的数值范围是从0开始算的,而不是1。
- 也就是说41位可以表示个毫秒的值,转化成单位年则是年
- 10bit-工作机器id,用来记录工作机器id。
- 可以部署在个节点,包括5位datacenterId和5位workerId
- 5位(bit)可以表示的最大正整数是,即可以用0、1、2、3、....31这32个数字,来表示不同的datecenterId或workerId
- 12bit-序列号,序列号,用来记录同毫秒内产生的不同id。
- 12位(bit)可以表示的最大正整数是,即可以用0、1、2、3、....4094这4095个数字,来表示同一机器同一时间截(毫秒)内产生的4095个ID序号。
SnowFlake算法生成的id就是64位整型uint64来存储的。
SnowFlake可以保证:
- 所有生成的id按时间趋势递增
- 整个分布式系统内不会产生重复id(因为有datacenterId和workerId来做区分)
.
发表在 technologys
雪花算法 / SnowFlake已关闭评论
Linux环境变量
Linux 的变量可分为两类:环境变量和本地变量
环境变量:或者称为全局变量,存在于所有的shell 中,在你登陆系统的时候就已经有了相应的系统定义的环境变量了。Linux 的环境变量具有继承性,即子shell 会继承父shell 的环境变量。
本地变量:当前shell 中的变量,很显然本地变量中肯定包含环境变量。Linux 的本地变量的非环境变量不具备继承性。
Linux 中环境变量的文件
当你进入系统的时候,Linux 就会为你读入系统的环境变量,Linux 中有很多记载环境变量的文件,它们被系统读入是按照一定的顺序的。
1. /etc/profile
此文件为系统的环境变量,它为每个用户设置环境信息,当用户第一次登录时,该文件被执行,执行时并从 /etc/profile.d 目录的配置文件中搜集 shell 的设置。这个文件,是任何用户登陆操作系统以后都会读取的文件(如果用户的 shell 是csh 、tcsh 、zsh ,则不会读取此文件),用于获取系统的环境变量,只在登陆的时候读取一次。 (假设用户使用的是BASH )
2. /etc/bashrc
在执行完/etc/profile 内容之后,如果用户的SHELL 运行的是bash ,那么接着就会执行此文件。另外,当每次一个新的bash shell 被打开时, 该文件被读取。每个使用bash 的用户在登陆以后执行完/etc/profile 中内容以后都会执行此文件,在新开一个bash 的时候也会执行此文件。因此,如果你想让每个使用bash 的用户每新开一个bash 和每次登陆都执行某些操作,或者给他们定义一些新的环境变量,就可以在这个里面设置。
3. ~/.bash_profile
每个用户都可使用该文件输入专用于自己使用的shell 信息。当用户登录时,该文件仅仅执行一次,默认情况下,它设置一些环境变量,并执行用户的 .bashrc 文件。单个用户此文件的修改只会影响到他以后的每一次登陆系统。因此,可以在这里设置单个用户的特殊的环境变量或者特殊的操作,那么它在每次登陆的时候都会去获取这些新的环境变量或者做某些特殊的操作,但是仅仅在登陆时。
4. ~/.bashrc
该文件包含专用于单个人的bash shell 的bash 信息,当登录时以及每次打开一个新的shell 时, 该该文件被读取。单个用户此文件的修改会影响到他以后的每一次登陆系统和每一次新开一个bash 。因此,可以在这里设置单个用户的特殊的环境变量或者特殊的操作,那么每次它新登陆系统或者新开一个bash ,都会去获取相应的特殊的环境变量和特殊操作。
5. ~/.bash_logout
当每次退出系统( 退出bash shell) 时, 执行该文件。
用户登录后加载profile和bashrc的流程如下:
1) /etc/profile --->/etc/profile.d/*.sh
2) $HOME/.bash_profile --->$HOME/.bashrc --->/etc/bashrc
bash首先执行/etc/profile脚本, /etc/profile脚本先依次执行/etc/profile.d/*.sh
随后 bash 会执行用家目录下的 .bash_profile脚本, .bash_profile脚本会执行家目录下的 .bashrc脚本,
而.bashrc脚本会执行 /etc/bashrc 脚本
至此, 所有的环境变量和初始化设定都已经加载完成.
bash 随后调用 terminfo 和 inputrc,完成终端属性和键盘映射的设定.
.
发表在 linux
Linux环境变量已关闭评论