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