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