Linux系统学习—环境变量和Shell简介(四)

  • Post author:
  • Post category:linux




环境变量

在Linux系统中,环境变量按照其作用范围不同大致可以分为系统级环境变量和用户级环境变量。


系统级环境变量

:每一个登录到系统的用户都能够读取到系统级的环境变量


用户级环境变量

:每一个登录到系统的用户只能够读取属于自己的用户级的环境变量

环境变量的配置文件也相应的被分成了系统级和用户级两种


系统级:

  • /etc/environment 是系统在登录时读取的第一个文件,用于为所有进程设置环境变
  • /etc/profile是系统登录时执行的第二个文件,可以用于设定针对全系统所有用户的环境变量。该文件一般是调用/etc/bash.bashrc文件
  • /etc/bash.bashrc:系统级的bashrc文件,为每一个运行bash shell的用户执行此文件。此文件会在用户每次打开shell时执行一次


用户级

  • ~/.profile: 是对应当前登录用户的profile文件,用于定制当前用户的个人工作环境。

    每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次! 默认情况下,它设置一些环境变量,执行用户的.bashrc文件
  • ~/.bashrc: 是对应当前登录用户的bash初始化文件,当用户每次打开shell时,系统都会执行此文件一次。平时设置这个文件就可以了。


常用环境变量:

  • HOME

    表示用户的根目录,
  • SHELL

    记录当前环境使用的shell是什么
  • HISTSIZE

    历史命令记录的条数
  • MAIL

    mail命令去收邮件时使用
  • PATH

    执行文件的查找目录(按顺序查找),不同目录之间使用:隔开
  • LANG

    语系数据
  • RANDOM

    随机数变量,读取这个变量可以得到0~32767之间的一个随机数



PATH 环境变量


一定是 大写

我们的命令之所以可以在任意目录下执行,就是因为环境变量PATH里写了很多目录,我们输入命令后,系统会去这些目录里面找这个命令,如果有同名命令 则执行最先搜索到的命令

每个用户有自己独立的PATH环境变量

查看当前环境变量 命令: echo $PATH

在这里插入图片描述

不同目录是用:隔开的


添加PATH环境变量


临时改动:

export PATH = "${PATH}:/mulu_name"

这样子修改只是临时改动,下次登录时,不会生效


永久改动


需要去修改Shell的配置文件,命令:

vim ~/.bashrc

在这里插入图片描述

在文件的最后加上,然后按Esc键,输入 :wq! (包括 :)保存退出

最后需要重启或者使用如下命令使配置文件生效

source .bashrc
或者
. .bashrc

如果我们要执行一个程序,例如执行自己写的hello程序

./hello

./ 表示在当前目录找程序

如果没有 ./ ,Shell 将去 PATH环境变量记录的路径内寻找




Shell


这里只简单介绍shell,不详细介绍shell编程,shell编程以后出一篇专门的文章



简介

shell也叫壳程序,是在内核之外 使 用户和内核沟通的程序,因为一般用户没有直接控制内核的能力,所以需要通过shell来控制内核达到我们的操作,可以将我们输入的命令翻译为内核可以执行的指令。

系统内我们可以用的shell 记录在/etc/shells 这个文件内 如

/bin/sh (目前大多由bash替换)

/bin/bash (主流)

/bin/tcsh (整合了 c shell,提供更多功能)

/bin/csh (已经被tcsh 替换)

用户使用的shell记录在/etc/passwd 文件中的每行的最后一个字段

这里主要介绍bash bash是GNU计划的工具软件之一,兼容sh



bash优点特性

  • 1、支持历史命令

    可提供上下键查看之前运行过的命令,最多记录1000个命令,这些命令都存在家目录 的.bash_history内(记录的是前一次登录的执行命令),这一次登录执行的命令都缓存在内存中,注销登录后,就会存到上述文件

  • 2、命令和文件补齐

    按【 tab】键就是补齐功能,使用这个按键还可以检查我们是否输入错误

    按两下可以输出全部选项

  • 3、命令别名设置

    就是给一个命令起另外一个名字,可以包括选项一起起名 例如

    ls -l 起名为ll

    别名命令: alias ll=‘ls -l’

  • 4、任务管理、前后台控制

  • 5、程序化脚本

  • 6、通配符


内置命令


bash内置了很多命令,例如cd、umask等等

查看是否是bash的内置命令 : type 【选项】 name

选项:

-t 显示为: file (外部命令) alias (别名命令) builtin(内置命令)

-p 为外部命令时,才显示完整的文件名

-a 列出在PATH中定义的路径所含的name的命令都列出来


执行命令


格式:命令 【选项】 【参数1】 【参数2】……

选项前一般会带 – 如果是完整的选项名一般带 –

参数、选项之间以空格来隔开,无论多少个空格都只会被视为一个空格

回车键代表一个命令的开始

如果命令太长 可以输入 \ 再输入回车,\会将回车转义,使命令连续到下一行,\和回车之间不能有其他字符因为\只转义接下来的一个字符

linux中大小写是区分的


快捷键:


[ tab ] 按一下命令或文件补齐,按两下输出可以选择的选项

[ ctrl ] + c 终止命令的执行

[ ctrl ] + d 输入结束,可以代替 exit

[ ctrl ] + u 删除光标之前的已经输入的命令

[ ctrl ] + k 删除光标之后的已经输入的命令

[ ctrl ] + a 光标移动到最前面

[ ctrl ] + e 光标移动到最后面

[ shift ] + [ page up ] 前翻页

[ shift ] + [ page down ] 后翻页



别名 aliae

可用于给一个命令设置别名


格式:alias 别名=’原命令 -选项/参数’


这样子是临时设置,关机生效

例如:

alias test='ls -lt'

设置以后输入test就是执行ls -lt命令


查看别名

直接输入alias即可显示已有的别名

在这里插入图片描述


删除别名

unalias 别名

例如:

unalias test


永久设置别名

使用alias test=’ls -lt’设置的的test别名只作用于当前会话窗口,其他窗口会话无法使用。如果想每次登入都能使用这些命令的别名,则可以把相应的alias命令存放在 /root/.bashrc 文件中。

vi /root/.bashrc,添加要用的别名alias命令,比如alias test=‘ls -lt’ 保存。

然后运行source /root/.bashrc 即可立即使用。

如果不运行source读取,需要重新登陆会话窗口才能使用。



echo

用于向窗口输出文本。



配置文件


全局配置(系统配置):

  • /etc/profile
  • /etc/prfile.d/*.sh
  • /etc/bashrc


个人配置:

  • ~/.bash_profile
  • ~/.bashrc

profile类:为交互式登录的shell提供配置

bashrc类:为非交互式登录的shell提供配置


profile类:


全局:/etc/profile,/etc/profile.d/*.sh

个人:~/.bash_profile

功用:

(1) 用于定义环境变量

(2) 运行命令或脚本


bashrc类:


全局:/etc/bashrc

个人:~/.bashrc

功用:

(1) 定义命令别名

(2) 定义本地变量


编辑配置文件定义的新配置的生效方式


(1) 重新启动shell进程

(2) 使用source或.命令执行进程



版权声明:本文为GuanFuXinCSDN原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。