linux虽然工作中一直有接触,但是一直缺乏系统了解,都是遇到问题,查资料,解决,过,下次遇到的时候往往又忘了,所以稍微整理一下.

文件颜色的含义

颜色 含义
蓝色 目录
绿色 可执行文件
红色 压缩文件
浅蓝色 链接文件
白色 其他文件

文件权限

链接文件

linux里分硬链接和符号链接.通过ln命令可以创造链接文件. 详细介绍参考这里

硬链接ln f1 f2

硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

符号链接ln -s f1 f3

另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

设置全局变量

在linux下安装的软件,执行命令必须要到其bin或者sbin目录下才能执行,想要全局可以执行就要配置环境变量.以nginx为例
在/etc/profile里加上

#nginx
PATH=$PATH:/usr/local/nginx/sbin

这样就可以全局调用nginx的指令了

设置环境变量

设置环境变量有以下几种方式

shell

在shell中对$PATH进行修改,但是这种修改是暂时的,只在shell里有效

/etc/profile

该文件登录操作系统时,为每个用户设置环境信息,当用户第一次登录时,该文件被执行。也就是说这个文件对每个shell都有效,用于获取系统的环境信息。

/etc/bashrc:

为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。也就是说,当用户shell执行了bash时,运行这个文件。

~/.bashrc

该文件存储的是专属于个人bash shell的信息,当登录时以及每次打开一个新的shell时,执行这个文件。在这个文件里可以自定义用户专属的个人信息。
在刚登录Linux时,首先启动 /etc/profile 文件,然后再启动用户目录下的 ~/.bash_profile、 ~/.bash_login或 ~/.profile文件中的其中一个,执行的顺序为:~/.bash_profile、 ~/.bash_login、 ~/.profile。如果 ~/.bash_profile文件存在的话,一般还会执行 ~/.bashrc文件。

profile

什么是EUID
就是决定用户访问权限的
profile的内容解析

# /etc/profile# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
#系统环境和启动程序,为了登录安装
#功能和别名去 /etc/bashrc# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
#除非你知道你要做什么,不然改这个文件不是个好主意.
#在/etc/profile.d/下创建一个custom.sh的shell脚本来定制你的环境是更合适的做法,
#这样会避免以后更新需要合并内容#判断路径在环境变量(PATH)里,第一个参数是路径,第二个参数是位置.
pathmunge () {case ":${PATH}:" in   *:"$1":*)     #如果路径在环境变量里;;        #什么也不做*)                              #路径不在环境变量里                              if [ "$2" = "after" ] ; then    #如果第二个参数为after,则PATH=$PATH:$1               #在环境变量后面追加路径else                            #否则PATH=$1:$PATH               #在前面追加路径fiesac
}if [ -x /usr/bin/id ]; then #如果文件/usr/bin/id存在且可执行if [ -z "$EUID" ]; then     #如果 EUID的长度为0# ksh workaround      EUID=`id -u`UID=`id -ru`fiUSER="`id -un`"LOGNAME=$USERMAIL="/var/spool/mail/$USER"
fi# Path manipulation
#路径控制
if [ "$EUID" = "0" ]; then          #如果EUID等于0pathmunge /sbin                     #把/sbin加到环境变量里pathmunge /usr/sbin                 #把/usr/sbin加到环境变量里pathmunge /usr/local/sbin           #把/usr/local/sbin加到环境变量里
else                                #否则pathmunge /usr/local/sbin after     #把/usr/local/sbin追加到环境变量里pathmunge /usr/sbin after           #把/usr/sbin追加到环境变量里pathmunge /sbin after               #把/sbin追加到环境变量里
fiHOSTNAME=`/bin/hostname 2>/dev/null`
HISTSIZE=1000       #HISTSIZE 定义了 history 命令输出的记录数,即输出.bash_history文件中的最后HISTSIZE行
if [ "$HISTCONTROL" = "ignorespace" ] ; then   #如果HISTCONTROL值等于ignorespaceexport HISTCONTROL=ignoreboth                   #设置环境变量HISTCONTROL为ignoreboth
elseexport HISTCONTROL=ignoredups                   #设置环境变量HISTCONTROL为ignoredups
fiexport PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL  #定义一系列环境变量# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
#默认情况下,我们想要umask被设置.登录shell里会设置它
#系统保留的uid/gids的当前阈值是200
#你应该在/usr/share/doc/setup-*/uidgid文件里检测 uidgid 的保留效力
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then  #如果UID大于199同时group和user的名字相同 umask 002                                               #设umask值为002(目录775,文件664)
elseumask 022                                               #设umask值为022(目录755,文件644)
fifor i in /etc/profile.d/*.sh ; do           #遍历/etc/profile.d/的shell文件if [ -r "$i" ]; then                        #如果文件可读if [ "${-#*i}" != "$-" ]; then              #如果文件的shell选项与当前的shell选项不相等. "$i"                                          #执行脚本       else    . "$i" >/dev/null 2>&1                          #执行脚本不输出结果 (/dev/null 2>&1 "常用来避免shell命令或者程序等运行中有内容输出)fifi
done#java_path
JAVA_HOME=/usr/local/jdk1.8.0_112
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin:/usr/bin#nginx
#PATH=$PATH:/usr/local/nginx/sbin
#maven
export M2_HOME=/usr/local/mavenPATH=$PATH:$M2_HOME/binexport PATH JAVA_HOME CLASSPATH  #使这几个环境变量生效unset i                 #删除变量 i
unset -f pathmunge      #删除函数 pathmunge

转载于:https://www.cnblogs.com/saias/p/6929385.html

linux的环境变量相关的小记相关推荐

  1. Linux下环境变量配置方法梳理(.bash_profile和.bashrc的区别)

    博客园 首页 新随笔 联系 管理 订阅 <div class="blogStats"><!--done--> 随笔- 556  文章- 38  评论- 77 ...

  2. linux环境变量管理器,运维 - linux(ubuntu) 环境变量管理 (持续更新)

    运维 - linux(ubuntu) 环境变量管理 (持续更新) 注: 本教程以 Ubuntu16.04 操作, 请细看. 如果看完还不明白, 联系我, 我给你发红包. 一, 查看环境变量: 方法 1 ...

  3. Linux下环境变量设置

    1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错误. 2.那么什么是环境变 ...

  4. Linux设置环境变量小结

    1.总结背景 在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现"command not found"的提示内容.如果每次都到安装目标文件夹内,找到可执行 ...

  5. linux LD_LIBRARY_PATH环境变量

    linux LD_LIBRARY_PATH环境变量 (2011-09-22 17:59:35) 转载▼ 标签: 杂谈 分类:技术文章 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 ...

  6. liunx创建php环境变量,linux添加环境变量的方法总结

    linux添加环境变量的方法总结 linux对环境变量有无双引号.或者变量用不用{}括起来并不敏感,小小的看了下profile文件,似乎系统如果发现变量没有引号,会自动加上. 但变量前必须加$符号,类 ...

  7. Linux设置环境变量小结:设置永久变量临时变量 全局变量局部变量

    1.总结背景 在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现"command not found"的提示内容.如果每次都到安装目标文件夹内,找到可执行 ...

  8. LINUX PATH环境变量

    设置PATH环境变量: 第一种方法: 在用户主目录下有一个 .bashrc 文件,可以在此文件中加入 PATH 的设置如下: export PATH="$PATH:/your path1/: ...

  9. linux设置为lunux文件夹,Linux设置环境变量时如何修改文件

    Linux系统下,设置环境变量的同时还需要修改文件,因为Linux环境变量分为系统级和用户级,所以修改文件的方法有所区别,下面小编就给大家详细介绍下Linux环境变量修改文件的方法. 环境变量是和Sh ...

  10. Windows和Linux的环境变量

    参考  Windows和Linux的环境变量 - 云+社区 - 腾讯云 环境变量概述 环境变量(Environment Variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如: ...

最新文章

  1. sharding-jdbc源码解析之sql解析
  2. IOS多线程开发其实很简单
  3. 和 的运算(值)结果 及 Boolean结果
  4. C#使用百度API通过IP获取地理位置和坐标
  5. Git分支简介与使用——Git的学习与使用(五)
  6. Python学习笔记: 闭包
  7. pandas如何去掉时间列的小时只保留日期
  8. python学习笔记十——异常处理
  9. MATLAB工具包安装步骤
  10. 李彦宏的搜索技术传奇
  11. 怎么都2200年了,还有人不愿意交社保???
  12. JAVA 纯数字/金额数字转中文大写
  13. modbus tcp主站和从站_Modbus-RTU 一主多从PLC无线通讯经典案例
  14. 对接阿里云短信平台报错
  15. Angular页面出不来,显示空白页面。。。
  16. 无法启用IE代理,EasyConnect不支持自动检测设置,请手动配置代理服务器的IP和端口后重试
  17. python爬取启信宝_requests,lxml爬启信宝
  18. MATLAB显示剪切板不可用,电脑剪切板不能正常启动或者使用。
  19. Android之自定义Dialog(Layout引入布局)
  20. python玫瑰花数量的含义_玫瑰花的数量代表的意义

热门文章

  1. 《树莓派开发实战(第2版)》——1.2 封装树莓派
  2. Tornado部署时那些奇怪的错误
  3. Codeforces 18C C. Stripe
  4. asp.net 从客户端中检测到有潜在危险的Request.Form值
  5. 这样让你的采集内容变原创seo出来的伪原创
  6. null和空的区别 oracle,Oracle中NULL与空字符串''的区别的总结
  7. java用户注册模块_用户注册登录模块设计方案报告.docx
  8. 所有进程的信息 linux,LINUX下获取所有进程信息
  9. glassfish启动后不能进入部署页面_使用Jenkins实现项目持续集成部署
  10. 木桶问题MATLAB,物理实验绪论-喻小强.ppt