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

相關文章
相關標籤/搜索