Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1368509
  • 博文数量: 185
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2664
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-01 13:46
个人简介

鸟在笼中,恨关羽不能张飞;Survival of the fittest

文章分类

全部博文(185)

分类: LINUX

2012-05-15 21:33:19

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://blog.chinaunix.net/uid-10915175-id-3209177.html

 这次主要说一下PATH路径

 
 
首先说两个概念
 
绝对路径:是从根目录写起,也就是文件的完整位置
     路径的写法『一定由根目录/ 写起』,例如: /usr/share/doc 这个目录。
 
相对路径:从当前位置写起
     路径的写法『不是由/ 写起』,例如由/usr/share/doc 要到/usr/share/man 底下时
          可以写成『cd../man』这就是相对路径的写法
 
 
为什么我可以在任何地方直接执行ls 就一定可以显示出一些讯息而不会说找不到该命令呢?
这是因为环境变量PATH 的帮助所致 当我们在执行一个命令的时候,系统会依照PATH 的设定
的每个PATH路径下搜寻命令,先搜寻到的命令命令先被执行之!echo $PATH 
echo 有『显示、印出』的意思,而PATH 前面加的$ 表示后面接的是变量
所以即会显示出目前的PATH 了
 
 
如果你将ls 移动到/home 底下的话,然后你自己本身也在/home 底下,但是当你执行ls 的时候
会告诉你,没有这个文件,这是因为PATH路径里 没有/home 这个目录,而你又将ls 移动到/home 底下了
自然系统就找不到可执行文件了
 
 
有两个方法可以解决这种问题
一种方式是使用完整档名,亦即直接使用相对或绝对路径来执行,例如:
 
/home/ls   绝对路径
./ls     相对路径
『.』代表当前目录  『..』上一级目录 
 
 
 
不建议将『.』加入PATH 的搜寻当中  至于为什么,自己想下
 
一种方式是直接将/home 的路径加入PATH 当中!可以使用 
PATH=$PATH:/home
这样就可以了,无论在什么位置都可以直接ls了
 
 
 
可是这样的话,重新登录又需要再设一次,怎么办呢?怎么样才能设置一次就可以永久的生效呢?
那就需要配置一下当前用户的配置文件了
/home没有了,所以要再设一次,但很麻烦啊
 
 
这个文件在个人家目录的几个隐藏文件当中
 
分别会使用到底下的几个文件( 注意!底下的文件都是隐藏档,需要使用ls -al 方能显示出来) 
另外,注意一下 底下那个『~ 』代表的是『个人家目录,也就是宿主目录』的意思
 
~/.bash_profile:里面定义了个人的路径(PATH)与环境变量的文件名称!你可以在这里修改你
的个人路径!当然!也可以在~/.bashrc 这个个人设定的变量里头修改!有的时候会有~/.profile
或~/.bash_login 等文件来取代这个文件!
 
~/.bashrc:这个档案对于个人喜好的bash 设定来说,是最重要的啦!因为我都是在这里设定我的
个人化变量!例如命令别名的设定!路径的重新定义等等,都是在这里完成的!
 
 ~/.bash_history:这个档案的用途在于将你曾经使用过的命令记录下来,而当你再次的以上下键搜
寻或者直接以history 搜寻的时候,就可以找到曾经使用过的指令啰!需要注意的是
1. 在这一次的执行过程中的指令,将在你离开shell 之后才会被纪录到这个档案中,否则将只
会先被写到暂存内存中(Cache);
2. 可以藉由history 这个指令来将里头的纪录搜寻出来;
3. 这个档案的指令记录笔数,与HISTFILE 有关,你可以自行在~/.bashrc 里头设定,或者直
接由root 在/etc/profile 里面统一设定大小!
 
~/.bash_logout:这个档案则是在『你注销shell 的时候, BASH 会为你所做的事情!』通常预设
是只有clear 清除屏幕这件事情而已,不过,你也可以将一些备份或者是其它你认为重要的工作写
在这个文件中(例如清空暂存盘),那么当你离开Linux 的时候,就可以解决一些烦人的事情!
大致上的个人设定就是如同上面说的!不过,我个人觉得比较重要的是~/.bashrc 这一个档案!
我喜欢将自己的相关设定写在里头!这样可以很轻易的将个人的设定写好!尤其是命令别名与变量
的设定等等!
 
看,这回不论你重新登录多少次,在任何位置都可以ls了
 
 
 
以上说的是个人的设定
还有系统的设定,这里不再详细说明,自己看下
所谓的系统设定值,也就是说每个使用者进入到bash shell 之后,会先读取的设定档案!
预设的设定档案有下列几个:
/etc/profile:这个档案设定了几个重要的变量,例如:
『PATH、USER、MAIL、HOSTNAME、HISTSIZE、umask』等等,也同时规划出/etc/inputrc 这个针对
键盘热建设定的档案的数据内容。你可以在这里设定总体的PATH 等等的信息!同时,这个file
也规划出/etc/profile.d 及/etc/inputrc 这两个文件,其中, inputrc 是用在history (历
史记录)的作用上的!总之,你可以了解到刚刚我们学会的变量设定方式,在这个档案中也可以设
定呢!但是设定上需要特别小心,因为所有的使用者皆会使用到这个档案的信息。
请注意一下,可以将HISTSIZE 的大小改变一下,改成50 就可以,这样比较安全
 
 
/etc/bashrc:这个文件是规划umask的功能
 
/etc/man.config:这个文件或许跟bash shell 较没相关性,但是对于系统管理员来说,却也是很
重要的一个文件!这的文件的内容『规范了使用man 的时候, man page 的路径到哪里去寻找!』
所以说的简单一点,这个文件规定了下达man 的时候,该去哪里查看数据的路径设定!那么什么时
候要来修改这个文件呢?如果你是以tar包的方式来安装你的数据,那么你的man page(命令说明文件)
可能会放置在/usr/local/softpackage/man 里头,那个softpackage 是你的套件名称,
这个时候你就得以手动的方式将该路径加到/etc/man.config 里头,否则使用man 的时候就会找
不到相关的说明
这就是系统在设定的时候常常会使用的文件!需要特别留意的是,通常设定完了这几个文件之后,都需要
先logout 在login 之后才会将设定整个启动起来!
 
 
 
 
 
 
 
 
 
命令别名(alias)设定功能:
 
假如我需要知道这个目录底下的所有档案(包含隐藏档)及所有的档案属性,那么我就必须要
ls -al 这样的命令,唉!真麻烦,有没有更快方法呢?就使用命令别名。
 
例如以ls 这个自订的命令来取代上面的命令,也就是说, ls 会等于ls -al 这样的
一个功能.那么要如何作呢?就使用alias 。你可以在指令列输入alias 就可以知道目
前的命令别名有哪些了!也可以直接下达命令来设定别名
alias ls='ls -al'
 
看,ls的功能和 ls -al的功能一样了
可是重新登录的话...
没了,又要重新设了
应该在那里设,想一下吧
 
 
 
成功!!!!!!!!!!!!!!!!!!!!!
 

本文出自 “单身贵族” 博客,请务必保留此出处http://blog.chinaunix.net/uid-10915175-id-3209177.html

附件下载:

 PATH路径.part1.rar    PATH路径.part2.rar   

阅读(1793) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~