Linux 修改命令执行的默认版本 alternatives 软链接(symbol links)和硬链接
2018-01-07 20:27
309 查看
有时在一个系统中有多个版本程序的存在,想修改当前命令默认执行的版本。
为了实现在终端中输入命令打开程序,需要将程序可执行文件路径加入环境变量即可:
系统环境变量设置文件:对所有系统用户都有效
用户环境变量设置文件:仅对当前的用户有效
方法:
在 /etc/profile 中添加环境变量:
并执行 source /etc/profile
2、向系统原有搜索路径添加链接
Linux 在生成文件的时候,内容会为每一个文件生成一个唯一的索引节点(Inode),文件的属性都会保存在这个Inode中。链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法,有软链接(symbol links)和硬链接之分。一个文件除非链接数为0,否则不会从文件系统中被物理地删除。不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。无论是软链接还是硬链接,文件都保持同步变化。
硬链接(hard links):
为文件创建了额外的条目.使用时, 与文件没有区别; 删除时, 只会删除链接, 不会删除文件;
硬链接的局限性: 1. 不能引用自身文件系统以外的文件, 即不能引用其他分区的文件; 2. 无法引用目录;
符号链接(symbolic links):
克服硬链接的局限性, 类似于快捷方式, 使用与硬链接相同. 如果先删除文件, 则会成为坏链接(broken), ls会以不同颜色(Ubuntu, 红色)显示;符号链接也称为软链接,是将一个路径名链接到一个文件。它只是一个文本文件,其中包含它提供链接的另一个文件的路径名。另一个文件是实际包含所有数据的文件。所有读、写文件内容的命令被用于符号链接时,将沿着链接方向前进来访问实际的文件。
删除文件的软链接符号,仅会删除链接,不会删除原文件。删除目录的软连接时注意:rm dir1.soft(仅删除链接)和rm -rf dir1_1.soft/(删除的是链接的原目录下文件)的区别。
使用ls查找某文件、目录的所有软链接:
使用find查找某文件的所有硬链接:
另外一个类似的命令是
一、添加命令
1、将命令路径加入环境变量为了实现在终端中输入命令打开程序,需要将程序可执行文件路径加入环境变量即可:
系统环境变量设置文件:对所有系统用户都有效
/etc/environment /etc/profile /etc/bash.bashrc
用户环境变量设置文件:仅对当前的用户有效
~/.profile ~/.bash_profile 或者 ~./bash_login ~/.bashrc
方法:
在 /etc/profile 中添加环境变量:
#set matlab evvironment export PATH=$PATH:/usr/local/matlab/bin
并执行 source /etc/profile
2、向系统原有搜索路径添加链接
Linux 在生成文件的时候,内容会为每一个文件生成一个唯一的索引节点(Inode),文件的属性都会保存在这个Inode中。链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法,有软链接(symbol links)和硬链接之分。一个文件除非链接数为0,否则不会从文件系统中被物理地删除。不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。无论是软链接还是硬链接,文件都保持同步变化。
硬链接(hard links):
为文件创建了额外的条目.使用时, 与文件没有区别; 删除时, 只会删除链接, 不会删除文件;
硬链接的局限性: 1. 不能引用自身文件系统以外的文件, 即不能引用其他分区的文件; 2. 无法引用目录;
操作: ln file link, 只能link文件,最好使用绝对路径;
符号链接(symbolic links):
克服硬链接的局限性, 类似于快捷方式, 使用与硬链接相同. 如果先删除文件, 则会成为坏链接(broken), ls会以不同颜色(Ubuntu, 红色)显示;符号链接也称为软链接,是将一个路径名链接到一个文件。它只是一个文本文件,其中包含它提供链接的另一个文件的路径名。另一个文件是实际包含所有数据的文件。所有读、写文件内容的命令被用于符号链接时,将沿着链接方向前进来访问实际的文件。
操作: ln -s item link, 可以link文件和目录; ln -s /usr/local/MATLAB/R2017b/bin/matlab /usr/bin/matlab //最好使用绝对路径,否则可能会出现Too many levels of symbolic links 问题
删除文件的软链接符号,仅会删除链接,不会删除原文件。删除目录的软连接时注意:rm dir1.soft(仅删除链接)和rm -rf dir1_1.soft/(删除的是链接的原目录下文件)的区别。
使用ls查找某文件、目录的所有软链接:
例如:查找 /etc/目录有那些软链接 ls -lR / 2> /dev/null | grep /etc/ | grep ^l
ls -li 当前目录下文件的连接
使用find查找某文件的所有硬链接:
例如:查找/boot/grup/grup.conf的硬链接 首先使用 ls -i /boot/group/group.conf 查找出inode节点,然后使用: find / 2> /dev/null -inum 131092(查找inode节点号) 根据切点信息 找出所有硬链接文件
二、修改默认、添加链接
update-alternatives是ubuntu系统中专门维护系统命令链接符的工具。显示一个命令链接组的所有信息,当前有多少个版本 update-alternatives --display java 修改默认版本 update-alternatives --config java 删除 update-alternatives –remove java /usr/local/jre1.6.0_20/bin/java //如果所删除的链接组中还有其他链接的话,系统将会自动从其他中选择一个priority高的链接作为默认为链接
update-alternatives --install /usr/bin/matlab matlab /usr/local/MATLAB/R2017b/bin/matlab 500 update-alternatives --install link name path priority [--slave link name path] // 其中link为系统中功能相同软件的公共链接目录,比如/usr/bin/java(需绝对目录); name为命令链接符名称,如java; path为你所要使用新命令、新软件的所在目录; priority为优先级,当命令链接已存在时,需高于当前值,因为当alternative为自动模式时,系统默认启用priority高的链接; --slave为从alternative。
另外一个类似的命令是
alternatives --config java alternatives --install /usr/bin/java java /usr/java/default/bin/java 500
相关文章推荐
- Linux使用笔记4-添加用户变量(设置自己的命令,修改默认python版本等)
- Linux更新Python版本及修改python默认版本的方法
- linux下安装jdk1.6版本显示1.4,修改默认jdk版本
- Linux命令——chmod(修改读写执行等权限)
- 修改linux默认jdk版本
- linux下安装jdk1.6版本显示1.4,修改默认jdk版本
- 使用Linux的alternatives命令替换选择软件的版本方法
- 对于linux常用命令的学习与总结 附上开机默认启动的图形界面修改为字符界面以及挂载光盘的过程
- fc命令_Linux fc 命令用法详解:修改历史命令并执行
- 修改linux默认jdk版本
- 对linux中ln命令创建硬链接和软链接的分析
- PHP调用Linux的命令行执行文件压缩命令&&创建文件夹修改权限
- Linux系统修改默认pip3版本,使其关联Python3.6
- linux下安装jdk1.6版本显示1.4,修改默认jdk版本
- [整理修改] DOS 批处理命令判断操作系统版本 执行各版本对应语句
- update-alternatives——linux软件版本管理命令
- linux下安装jdk1.6版本显示1.4,修改默认jdk版本
- 让普通用户具备sudo执行权限-修改linux默认启动方式
- 学习笔记(五)——chown,chmod,chattr,lsattr,suid,sgid,stick_bit,Linux搜索文件/命令,软链接,硬链接
- Linux命令——chmod(修改读写执行等权限)