Linux下.bashrc文件探索~

先骂人,再逼逼~上个环境还没有配置好,我就来写这个了.我不服!!!谁让咱们东西学的不系统呢~记录一下.bashrc文件的用途.毕竟zsh也得用不是~

1.profile/etc/profile),用于设置系统级的环境变量和启动程序,在这个文件下配置会对所有用户生效。当用户登录(login)时,文件会被执行,并从/etc/profile.d目录的配置文件中查找shell设置。

不知道为什么没有东西~

profile中添加环境变量

一般不建议在/etc/profile文件中添加环境变量,因为在这个文件中添加的设置会对所有用户起作用。当需要添加时,我们可以按以方式添加:

如,添加一个HOST值为baidu.com的环境变量:

export HOST=baidu.com

添加时,可以在行尾使用;号,也可以不使用。一个变量名可以对应多个变量值,多个变量值使用:分隔。

添加环境变量后,需要重新登录才能生效,也可以使用source命令强制立即生效:

source /etc/profile

查看是否生效可以使用echo命令:

$ echo $HOST
baidu.com

2. bashrc文件

-这个文件用于配置函数或别名。bashrc文件有两种级别:系统级的位于/etc/bashrc、用户级的~/.bashrc,两者分别会对所有用户和当前用户生效。

bashrc文件只会对指定的shell类型起作用,bashrc只会被bash shell调用。

试试!

还是不可以~

3. bash_profile文件

bash_profile只有单一用户有效,文件存储位于~/.bash_profile,该文件是一个用户级的设置,可以理解为某一个用户的profile目录下。这个文件同样也可以用于配置环境变量和启动程序,但只针对单个用户有效。

profile文件类似,bash_profile也会在用户登录(login)时生效,也可以用于设置环境变理。但与profile不同,bash_profile只会对当前用户生效。

1) .bashrc文件
在linux系统普通用户目录(cd /home/xxx)或root用户目录(cd /root)下,用指令ls -al可以看到4个隐藏文件,

.bash_history 记录之前输入的命令

.bash_logout 当你退出时执行的命令

.bash_profile 当你登入shell时执行

.bashrc 当你登入shell时执行

请注意后两个的区别:’.bash_profile’只在会话开始时被读取一次,而’.bashrc’则每次打开新的终端时,都要被读取。

这些文件是每一位用户对终端功能和属性设置,修改.bashrc可以改变环境变量PATH、别名alias和提示符。具体如何修改会在下面做介绍。

除了可以修改用户目录下的.bashrc文件外,还可以修改如“/etc/profile”文件、“/etc/bashrc”文件及目录“/etc /profile.d”下的文件。但是修改/etc路径下的配置文件将会应用到整个系统,属于系统级的配置,而修改用户目录下的.bashrc则只是限制在用户应用上,属于用户级设置。两者在应用范围上有所区别,建议如需修改的话,修改用户目录下的.bashrc,即无需root权限,也不会影响其他用户。

注意看,是个文件

空空如也~

2) PATH环境变量修改

 PATH变量决定了shell 将到哪些目录中寻找命令或程序。如果要执行的命令的目录在 $PATH 中,您就不必输入这个命令的完整路径,直接输入命令就可以了。一些第三方软件没有将可执行文件放到 Linux 的标准目录中。因此,将这些非标准的安装目录添加到 $PATH 是一种解决的办法。此外,您也将看到如何处理一般的环境变量。

首先,作为惯例,所有环境变量名都是大写。由于 Linux 区分大小写,这点您要留意。当然,您可以自己定义一些变量,如’$path’、’$pAtH’,但 shell 不会理睬这些变量。

第二点是变量名有时候以’$’开头,但有时又不是。当设置一个变量时,直接用名称,而不需要加“$”,如

PATH=/usr/bin:/usr/local/bin:/bin

假如要获取变量值的话,就要在变量名前加’$’:

echo $PA

则会显示当前设置的PATH变量“/usr/bin:/usr/local/bin:/bin”

否则的话,变量名就会被当作普通文本了:

echo PATH

显示PATH

处理 $PATH 变量要注意的第三点是:您不能只替换变量,而是要将新的字符串添加到原来的值中。

在大多数情况下,您不能用“PATH=/some /directory”,因为这将删除 $PATH 中其他的所有目录,这样您在该终端运行程序时,就不得不给出完整路径。所以,只能作添加:“PATH=$PATH:/some/directory”,假如你要添加/usr/local/arm/3.4.1/bin交叉编译命令,则操作为

PATH=$PATH:/usr/local/arm/3.4.1/bin!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

这样,PATH 被设成当前的值(以 $PATH 来表示)+新添的目录。

到目前为止,你只为当前终端设置了新的 $PATH 变量。如果您打开一个新的终端,运行 echo $PATH ,将显示旧的 $PATH 值,而看不到你刚才添加的新目录。因为你先前定义的是一个局部环境变量(仅限于当前的终端)。

要定义一个全局变量,使在以后打开的终端中生效,您需要将局部变量输出(export),可以用”export”命令:

export PATH=$PATH:/some/directory

  • 1

现在如果打开一个新的终端,输入 echo $PATH ,也能看到新设置的$PATH 了。请注意,命令’export’只能改变当前终端及以后运行的终端里的变量。对于已经运行的终端没有作用。

为了将目录永久添加到 $PATH ,只要将”export”的那行添加到.bashrc或/etc/bashrc文件中。

不知道这么回事,这样解决

3) alias别名
一般在.bashrc或/etc/bashrc文件里有几句话

alias rm=’rm -i’alias cp=’cp -i’alias mv=’mv -i’

有了这几句话,当在终端中输入“mv test.c led.c”实际上输入的是“mv -i test.c led.c”,所以说alias是一个别名。你可以在该配置文件中添加自己风格的别名,如“alias ll=’ls -l’”,只需要在终端中输入“ll”就实现了“ls -l”的功能。还可以添加其他语句,随自己喜好。

4) 提示符

当打开一个控制台(console) 时,最先看到的就是提示符(prompt),如:[root@localhost ~]#

在默认设置下,提示符将显示用户名、主机名(默认是’localhost’)、当前所在目录(在 Unix 中,’~’表示您的 home 目录)。

按照传统,最后一个字符可以标识普通用户($),还是’root’(#)。

可以通过 $PS1 变量来设置提示符。

命令“echo $PS1”,将显示当前的设定。其中可用字符的含义在 man bash 的’PROMPTING(promping)’部分有说明。

如何才能完成理想的设置呢?对于健忘的初学者来讲,默认设定有些不友好,因为提示符只显示当前目录的最后一部分。如果你看到象这样的提示符

当然可以。这里我将提到的设定,包括提示符,大都包含在文件’/etc/bashrc’中。您可以通过编辑各自 home 目录下的’.bash_profile’和’.bashrc’来改变设置。

在 man bash 中的’PROMPTING’部分,对这些参数(parameter)有详细说明。您可以加入一些小玩意,如不同格式的当前时间,命令的历史记录号,甚至不同的颜色。

一种更适当的设定:

PS1=”[\u: \w]$

这个地方有待商量,因为我没有搞成功~

这样,提示符就变成:
[wsf: /usr/bin]$
你可以通过命令 export 来测试不同的设置(比如,export PS1=”\u: \w\$ “)。如果找到了适合的提示符,就将设置放到您的’.bashrc”中。这样,每次打开控制台或终端窗口时,都会生效。

(5)举例,生效方式
这个文件主要保存个人的一些个性化设置,如命令别名、路径等。下面是个例子:

# User specific aliases and functions

PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"

LANG=zh_CN.GBK

export PATH LANG

alias rm='rm -i'

alias ls='/bin/ls -F --color=tty --show-control-chars'

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

例子中定义了路径,语言,命令别名(使用rm删除命令时总是加上-i参数需要

用户确认,使用ls命令列出文件列表时加上颜色显示)。

每次修改.bashrc后,使用source ~/.bashrc(或者 . ~/.bashrc)

就可以立刻加载修改后的设置,使之生效。

一般会在.bash_profile文件中显式调用.bashrc。登陆linux启动bash时首先会

去读取~/.bash_profile文件,这样~/.bashrc也就得到执行了,你的个性化设

置也就生效了。

(0)

相关推荐

  • Linux 环境变量的所有知识

    今天详细聊聊环境变量吧.这个十分常见而基础的问题,想必经常困扰初学者,属于众多"我问了,人家也答了,我还看了帖子,但始终没搞明白"的问题之一.岛主试试用写科普的啰嗦风格解释一下.今 ...

  • Linux 环境变量配置全攻略

    来自:悠悠i 链接:https://www.cnblogs.com/youyoui/p/10680329.html Linux环境变量配置 在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种 ...

  • linux bash变量作用域

    一,思考一个问题,当在shell里执行某个程序时,shell是怎么找到这个程序的? shell会去$PATH环境变量定义的目录里去找这个命令.环境变量里一般包括/usr/local/sbin:/usr ...

  •  linux下.bashrc文件修改和生效

     linux下.bashrc文件修改和生效

  • linux 下删除文件夹(文件夹不为空时)

    方法一: rmdir folderName  // 说明:这指适合在folder为空的时候 方法二: rm -rf folderName  //推荐使用,说明: -r  向下递归,不管多少级目录,一并 ...

  • linux下,文件的权限和数字对应关系详解

    命令 chmod ABC file 其中A.B.C各为一个数字,分别表示User.Group.及Other的权限. A.B.C这三个数字如果各自转换成由"0"."1&qu ...

  • Linux下文件搜索、查找、查看命令

    Linux下文件搜索、查找、查看命令

  • Linux(C/C++)下的文件操作open、fopen与freopen

    open是linux下的底层系统调用函数,fopen与freopen c/c++下的标准I/O库函数,带输入/输出缓冲. linxu下的fopen是open的封装函数,fopen最终还是要调用底层的系 ...

  • linux(ubuntu)根目录下各文件夹的功能

    Ubuntu的根目录下存在着很多的文件夹,但你知道他们都存放着哪些文件呢?这些是深入了解Ubuntu系统必不缺少的知识,本文就关于此做一下介绍吧. /bin/    用以存储二进制可执行命令文件. / ...

  • Linux下gcc编译生成动态链接库*.so文件并调用它

    动态库*.so在linux下用c和c++编程时经常会碰到,最近在网站找了几篇文章介绍动态库的编译和链接,总算搞懂了这个之前一直不太了解得东东,这里做个笔记,也为其它正为动态库链接库而苦恼的兄弟们提供一 ...

  • 教你Linux下如何使用inode删除文件 | 《Linux就该这么学》

    导读 文件的inode定义了文件的大小.所有人等文件的特征.每个文件和目录都有自己唯一的inode数字.但是为什么用inode来删除文件,而不是用常用的rm -rf命令呢?原因是,如果你不小心创建了含 ...

  • Linux下 通过删除inode来删除文件

    linux下有一些文件比较特别,无法直接删除或者容易误删除成其他文件. 删除这类文件时,可以不通过文件名,可以通过inode号进行删除. 例如,这里有一个文件名为"-" ,可以通过 ...