linux执行命令----搜索顺序

第一优先级

绝对路径相对路径指定的目录中查找

#相对路径
./test
#绝对路径
/home/lauf/test

例如:
创建一个.py文件,可以在其目录下执行。

vim a.py
#!/usr/bin/python3
#identify file type and must as first line
#this is a soft link
print("a.py is running....")

赋予当前文件可执行权限:

$ chmod u+x a.py
$ ./a.py   #相对路径执行,需在当前目录
$ /home/lauf/a.py  #绝对路径执行

那么怎么让a.py文件在哪个目录下都可以执行呢?
方法1. 指定别名

$ alias lauf='python3 /home/lauf/a.py'
$ lauf  #到处都可以执行该lauf 命令
$ unalias lauf

方法2. Bash内部命令

#计划在/usr/bin内部创建软连接
$ sudo ln -s /home/lauf/a.py /usr/bin/lauf
$ lauf  # 到处可以执行,通过Bash内部命令查找到

#删除软连接
$ sudo rm /usr/bin/lauf

普通用户,在bash中搜索命令时,只能到:
/usr/bin/xxxx
超级权限用户可以搜索:
/bin/xxxx
/sbin/xxxx
/usr/bin
/usr/local/bin/xxx

方法3. PATH环境变量

$ cd 
$ vim .bashrc

export PATH=.:/home/lauf:$PATH

$ source .bashrc

$ a.py  #到处可以执行,也可以在当前目录建立一个软链接,指向该文件

#最后搜索PATH 中的路径 /home/lauf。。。。。

第二优先级

别名指定的命令,让复杂的命令变简单,保护原来敏感的命令。

  1. 查看已有的别名
    alias
  2. 设置别名
    alias myCMD=“ls -l ~/”
    输入myCMD就可以执行字符串中的内容
  3. 取消别名
    unalias myCMD
    以上命令在终端输入,仅仅设置临时的别名,系统重启后即不存在;设置永久的别名,需在~/.bashrc中为当前用户配置上述命令(且source .bashrc生效)或者在/etc/profile为所有用户配置
    然后就可以在终端中使用。
    但是还不能在shell脚本中使用,shell脚本默认是不启动alias别名的。
#查看当前存在的别名
tarena@master:~/Lauf$ alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias lauf_spider='
	cd /home/tarena/Lauf
	scrapy crawl lauf	
'
alias ll='ls -alF'
alias ls='ls --color=auto'

tarena@master:~/Lauf$ alias uu='ls -la'
tarena@master:~/Lauf$ uu
#取消别名
$ unalias uu

如下:在shell中使用别名

#!/bin/bash
#在shell中开启alias扩展,默认不开启
shopt -s expand_aliases
#查看
shopt expand_aliases

#使用别名
source /etc/profile
#source ~/.bashrc 目前没成功

#使用别名 
lauf_spider

#成功

第三优先级

Bash内部命令
普通用户只能搜索/usr/bin/xxxx

/bin/xxx
/usr/bin
/usr/local/bin

第四优先级

PATH环境变量定义的目录,顺序查找,直到找到的第一个命令

$ cd ~
$ vim .bashrc
export PAHT=.:/usr/local/xxxx:$PATH

$ source .bashrc   #使配置生效
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

laufing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值