环境变量PATH、which、type、alias

printenv:打印环境变量

我们每一次输入一个命令,bash会从环境变量的PATH去寻找,从第一个到最后一个,第一个找到的就执行。

[[email protected] ~]# printenv

PATH=/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

但是我们每次执行完以后,会在缓存里面缓存这个命令,下一次使用该命令,会直接从缓存里面查找是否有该命令,如果有就执行。

从缓存中寻找命令比在路径中寻找速度要快N倍,该思想会贯穿整个系统调优的过程。缓存为王!

hash:查看缓存中命中使用命令的次数

[[email protected] ~]# hash

hits    command

1    /sbin/ifconfig

1    /usr/bin/printenv

6    /bin/ls

which:寻找bash命令的完整路径

[[email protected] ~]# which ifconfig

/sbin/ifconfig

[[email protected] ~]# which ls

alias ls=‘ls --color=auto‘

/bin/ls

type:查看一个命令的类型

[[email protected] ~]# type mount

mount is /bin/mount<>外部命令

[[email protected] ~]# type type

type is a shell builtin<>bash内置命令

[[email protected] ~]# type ls

ls is aliased to `ls --color=auto‘<>命令别名

alias:设置指令的别名

语  法:alias[别名]=[指令名称]

[[email protected] ~]# alias la=‘ls -al‘

[[email protected] ~]# la

total 120

dr-xr-x---. 13 root root  4096 Apr 28 19:40 .

dr-xr-xr-x. 24 root root  4096 Apr 28 03:56 ..

-rw-------.  1 root root 16261 Apr 28 22:33 .bash_history

-rw-r--r--.  1 root root    18 May 20  2009 .bash_logout

-rw-r--r--.  1 root root   176 May 20  2009 .bash_profile

unalias:取消命令别名

[[email protected] ~]# unalias la

[[email protected] ~]# la

-bash: la: command not found

参  数 :若不加任何参数,则列出目前所有的别名设置。

[[email protected] ~]# alias

alias cp=‘cp -i‘

alias l.=‘ls -d .* --color=auto‘

alias ll=‘ls -l --color=auto‘

alias ls=‘ls --color=auto‘

alias mv=‘mv -i‘

alias rm=‘rm -i‘

alias which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde‘

若要每一个用户的每次登录命令别名都生效,需要将配置写入到配置文件

[[email protected] ~]# tail -3 /etc/bashrc

fi

# vim:ts=4:sw=4

alias la=‘ls -al‘

[[email protected] ~]# la

total 120

dr-xr-x---. 13 root root  4096 Apr 28 19:40 .

dr-xr-xr-x. 24 root root  4096 Jun  6 01:37 ..

-rw-------.  1 root root 15334 Apr 29 03:58 .bash_history

若要给某一个单独的用户配置命令别名,每次登录都生效,需要将配置写入到该用户家目录下的bashrc文件中

[[email protected] ~]# tail ~/.bashrc

alias rm=‘rm -i‘

alias cp=‘cp -i‘

alias mv=‘mv -i‘

alias la=‘ls -al‘

# Source global definitions

if [ -f /etc/bashrc ]; then

. /etc/bashrc

fi

时间: 2024-10-10 17:02:55

环境变量PATH、which、type、alias的相关文章

MAC 设置环境变量path的几种方法

mac 一般使用bash作为默认shell Mac系统的环境变量,加载顺序为: /etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc 当然/etc/profile和/etc/paths是系统级别的,系统启动就会加载,后面几个是当前用户级的环境变量.后面3个按照从前往后的顺序读取,如果~/.bash_profile文件存在,则后面的几个文件就会被忽略不读了,如果~/.bash_profile文件不存在,

shell 脚本实战笔记(2)--环境变量PATH的恩怨情仇

在linux环境下, 相信大家对环境变量PATH, 多多少少有所接触, 这边讲讲PATH的在linux的前世因缘. 先讲讲一个列子 假如我们在为一个新的应用配置其PATH路径中时,  不小心忽略了原先的$PATH内容, 把原本的PATH=/path/to/newcmd:$PATH, 写成了PATH=/path/to/newcmd, 并不小心写入了~/.bashrc, 并且source ~/.bashrc. 这时会发生什么? 我们如何去处理这种情况? 所有的命令都不能用了, 想回去编辑~/.bas

linux下环境变量PATH的用法

echo $PATH  可以查看系统的环境变量PATH的值,使用which命令可以查看某个命令所在的绝对路径: [[email protected] ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin [[email protected] ~]# whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz [[email protect

2.10环境变量PATH

2.10环境变量PATH 环境变量 指定了命令的查询路径which 可以查看到 命令的所在路径 有没有别名 [[email protected] ~]# which rmalias rm='rm -i'/usr/bin/rm[[email protected] ~]# which rmdir/usr/bin/rmdir 从下面目录查找命令所在路径 [[email protected] ~]# echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/

Linux下修改环境变量PATH

1.什么是环境变量(PATH) 在Linux中,在执行命令时,系统会按照PATH的设置,去每个PATH定义的路径下搜索执行文件,先搜索到的文件先执行. 我们知道查阅文件属性的指令ls 完整文件名为:/bin/ls(这是绝对路径), 那你会不会觉得很奇怪:"为什么我可以在任何地方执行/bin/ls这个指令呢? " 为什么我在任何目录下输入 ls 就一定可以显示出一些讯息而不会说找不到该 /bin/ls 指令呢? 这是因为环境变量 PATH 的帮助所致呀! 当我们在执行一个指令癿时候,举例

变量的声明及其作用域、脚本、修改环境变量$PATH【:VALUE】

变量的声明及其作用域 本地变量 VARNAME=VALUE:作用域为整个bash进程[打开新的shell进程,没有该变量] [root@jiakang a]# A=123 [root@jiakang a]# bash [root@jiakang a]# echo $A [root@jiakang a]# 局部变量 local VARNAME=VALUE:作用域为当前代码段 环境变量 作用域为当前shell及其子进程[打开一个shell就是一个进程] export VARNAME=VALUE或者

hash和环境变量PATH

hash命令和$PATH bash命令补全: 在linux中用户键入命令时敲TAB键的时候,它会去查找以用户所给定的起始字符串或开头字符串在PATH的环境变量所指明的各路径下,自左而右,逐一去搜索是否有一个应用程序的名称被用户给定的字符串打头的字符串唯一进行标示,如果有则把后面剩余的字符进行补全,如果无法唯一被标示,两次TAB列出所有的以此打头的的内容.而hash命令就是为了缓存此前命令的查找结果! hash 简介:记录或显示程序位置: shell通过环境变量PATH来定义应用程序文件查找路径,

Ubuntu修改环境变量PATH方法

在LINUX安装一些软件通常要添加环境变量.环境变量通俗的讲就是把程序的路径"备案"到系统中,这样执行这些程序时就不需要输入完整路径,直接在bash输入程序名就可以执行.比如常用的ls命令就是添加好了环境变量才可以直接执行ls 环境变量的名字是PATH,$符号用于读取变量的值,终端输入echo $PATH返回如下,各路径用:隔开 echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/ga

Linux系统下修改环境变量PATH路径的三种方法

比如要把/etc/apache/bin目录添加到PATH中,方法有三: 1.#PATH=$PATH:/etc/apache/bin 使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效 2.#vi /etc/profile 在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格) 这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变 3.#vi ~/.bash_profile 修改PATH行,把/et

黑马程序员——java环境变量path和classpath

1.path的作用 path是用来指定java可执行文件的完整路径的,其实即使不在path中设置JDK的路径也可以执行java文件,但必须写下完整路径,如D:\Program Files\Java\jdk1.6.0_10\bin\javac Test.java,如果设置了环境变量path,如:path=D:\Program Files\Java\jdk1.6.0_10\bin,当执行java命令的时候操作系统会自动去该路径下寻找这个可执行程序,大大的方便书写. 2.classpath的作用 cl