linux环境变量

which ls(就能够查看ls的具体位置,ls是一个文件)bash

ls ==>  ls --color=autoide

alias (别名)ui

which命令:用来查找某个命令的绝对路径spa

[root@qiangge ~]# which lsip

alias ls='ls --color=auto'it

/bin/lsclass

ls 是一个特殊的命令,使用alias命令作了别名。咱们用的ls其实是/bin/ls--color=auto',加上--color=auto后,就带有了颜色,不然所有是黑底白字变量

alias能够设置命令的别名也能够设置文件的别名配置

alias的用法,平时在工做中咱们常常会用到一些命令比较长,每次打出来都须要好一会,这时就能够用alias作一个简短的别名,加快速度。network

例:(更改网卡配置文件的命令  vi /etc/sysconfig/network-scripts/ifcfg-eth0)

[root@qiangge ~]# alias vieth='vi /etc/sysconfig/network-scripts/ifcfg-eth0'

[root@qiangge ~]# vieth

运行以后就出现网卡的配置文件

DEVICE=eth0

HWADDR=00:0C:29:BF:07:DA

TYPE=Ethernet

UUID=454cbf99-9d6c-40a7-a8f7-646870324602

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=static

IPADDR=192.168.1.103

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

DNE1=192.168.1.1

DNS2=8.8.8.8

~

~

~

Type  :quit<Enter>  to exit Vim

这样就直接编辑了该配置文件,再用which来看一下。

[root@qiangge ~]# which vieth

alias vieth='vi /etc/sysconfig/network-scripts/ifcfg-eth0'

/bin/vi

这样,下次再编辑该网卡配置文件时,就能够直接用vieth命令来操做了,简单方便。想要取消这个别名,只须要 unalias vieth便可。

which这个命令平时只用来查询某个命令的绝对路径,不常常使用。

alias(别名),/bin/ls(ls的绝对路径)

为何咱们输入不少命令时是直接打出了命令,而没有去使用这些命令的绝对路径?

这是由于环境变量PATH在起做用。

请输入 echo $PATH,这里的echo其实就是打印的意思,而PATH前面的$表示后面接的是变量

[root@qiangge ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

由于/bin在PATH的设定中,因此天然就能够找到ls了。若是将ls移动到/root底下的话,而后本身自己也在/root底下,但当执行ls的时候,他就是不理你,怎么办?

这是由于坏境变量PATH没有/root这个目录,而又将ls移动到/root底下了,天然系统就找不到可执行文件了,所以就会提示:command not found!(没有找到该命令)

[root@qiangge ~]# mv /bin/ls /root/

[root@qiangge ~]# ls

-bash: /bin/ls: 没有那个文件或目录

mv用来移动文件或目录,还能够重命名

那么怎么克服这个问题呢?

有两种方法,一种方法是直接将/root这个路径加入$PATH当中!

如何增长?

增长命令可使用命令 PATH=$PATH:/root:

[root@qiangge ~]# PATH=$PATH:/root

[root@qiangge ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root

[root@qiangge ~]# ls

anaconda-ks.cfg  install.log  install.log.syslog  ls

而另外一种方法就是使用绝对路径

[root@qiangge ~]# /root/ls

anaconda-ks.cfg  install.log  install.log.syslog  ls