之前讲gcc编译的时候,提到过静态库和共享库,那时只是简单的讲了下它们相关的编译链接,接下来就该详细介绍它们了。不过再讲解之前还需了解一下编程相关的环境变量。
一、环境变量
环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。
环境变量时在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用的信息。
1、Windows下的环境变量
(1)环境变量配置
右击我的电脑->属性->高级系统设置->高级->环境变量->系统变量->选中Path 点击编辑->在Path变量值的最后增加分号(;),再增加新的路径。
注意:(千万不要改动之前的变量值)->一路点击确定即可
(2)常见环境变量:(了解)
%ALLUSERSPROFILE% 局部 返回所有“用户配置文件”的位置。
%APPDATA% 局部 返回默认情况下应用程序存储数据的位置。
%CD% 局部 返回当前目录字符串。
%CMDCMDLINE% 局部 返回用来启动当前的 Cmd.exe 的准确命令行。
%CMDEXTVERSION% 系统 返回当前的“命令处理程序扩展”的版本号。
%COMPUTERNAME% 系统 返回计算机的名称。
%COMSPEC% 系统 返回命令行解释器可执行程序的准确路径。
%DATE% 系统 返回当前日期。使用与 date /t 命令相同的格式。由 Cmd.exe 生成。有关 date 命令的详细信息,请参阅 Date。
%ERRORLEVEL% 系统 返回使用过的命令的错误代码。通常用非零值表示错误。
%HOMEDRIVE% 系统 返回连接到用户主目录的本地工作站驱动器号。基于主目录值的设置。用户主目录是在“本地用户和组”中指定的。
%HOMEPATH% 系统 返回用户主目录的完整路径。基于主目录值的设置。用户主目录是在“本地用户和组”中指定的。
%HOMESHARE% 系统 返回用户的共享主目录的网络路径。基于主目录值的设置。用户主目录是在“本地用户和组”中指定的。
%LOGONSEVER% 局部 返回验证当前登录会话的域控制器的名称。
%NUMBER_OF_PROCESSORS% 系统 指定安装在计算机上的处理器的数目。
%OS% 系统 返回操作系统的名称。Windows 2000 将操作系统显示为 Windows_NT。
%PATH% 系统 指定可执行文件的搜索路径。
%PATHEXT% 系统 返回操作系统认为可执行的文件扩展名的列表。
%PROCESSOR_ARCHITECTURE% 系统 返回处理器的芯片体系结构。值: x86,IA64。
%PROCESSOR_IDENTIFIER% 系统 返回处理器说明。
%PROCESSOR_LEVEL% 系统 返回计算机上安装的处理器的型号。
%PROCESSOR_REVISION% 系统 返回处理器修订号的系统变量。
%PROMPT% 局部 返回当前解释程序的命令提示符设置。由 Cmd.exe 生成。
%RANDOM% 系统 返回 0 到 32767 之间的任意十进制数字。由 Cmd.exe 生成。
%SYSTEMDRIVE% 系统 返回包含 Windows XP 根目录(即系统根目录)的驱动器。
%SYSTEMROOT% 系统 返回 Windows XP 根目录的位置。
%TEMP% and %TMP% 系统和用户 返回对当前登录用户可用的应用程序所使用的默认临时目录。有些应用程序需要 TEMP,而其它应用程序则需要 TMP。
%TIME% 系统 返回当前时间。使用与 time /t 命令相同的格式。由 Cmd.exe 生成。有关 time 命令的详细信息,请参阅 Time。
%USERDOMAIN% 局部 返回包含用户帐户的域的名称。
%USERNAME% 局部 返回当前登录的用户的名称。
%UserProfile% 局部 返回当前用户的配置文件的位置。
%WINDIR% 系统 返回操作系统目录的位置。
2、Linux下的环境变量(重点)
linux是一个多用户的操作系统,每个用户登录系统之后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的。这个默认的环境实际上就是一组环境变量的定义,用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。
在linux中,环境变量一般用大写加下划线命名(例如,PATH、ORACLE_HOME)。环境变量就相当于一个指针,当我们要查看指针所指向的值的时候需要解引用。同样的,当我们想要查看环境变量里面的值的时候,需要在前面加 $引用。
linux的变量分为环境变量和本地变量:
环境变量:是一种全局变量,存在所有的shell中,在登录的时候就有系统定义的环境变量了。linux的环境变量具有继承性,即shell会继承父shell的环境变量。
本地变量:当前shell中的变量,本地变量中包含环境变量。Linux的本地变量的非环境变量不具备继承性。
在Linux下面的变量按照生存周期可分为两类:
永久的:需要修改配置文件,变量永久生效。
临时的:使用export命令声明即可,变量在关闭shell时失效。
修改和查看环境变量的指令
(1)echo:查看单个环境变量
例如,显示环境变量HOME
# echo $HOME
/root
(2)env:查看所有环境变量
例如,查看所有的环境变量,可以看一下都有哪些环境变量。
# env
LC_PAPER=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
SSH_AGENT_PID=1768
LC_MONETARY=en_US.UTF-8
GPG_AGENT_INFO=/tmp/keyring-rB9csr/gpg:0:1
TERM=xterm
SHELL=/bin/bash
XDG_SESSION_COOKIE=619793d1806621208703bfca00000005-1489544306.787815-2133755939
WINDOWID=31457285
LC_NUMERIC=en_US.UTF-8
GNOME_KEYRING_CONTROL=/tmp/keyring-rB9csr
USER=root
…..
也可以和grep一起使用查看某一类的环境变量
# env | grep SH
SSH_AGENT_PID=1768
SHELL=/bin/bash
SSH_AUTH_SOCK=/tmp/keyring-rB9csr/ssh
SHLVL=1
(3)set:查看本地定义的环境变量
root@ubuntu:~# set
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:histappend:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]=”4″ [1]=”2″ [2]=”24″ [3]=”1″ [4]=”release” [5]=”i686-pc-linux-gnu”)
BASH_VERSION=’4.2.24(1)-release’
(4)export:设置一个新的环境变量 (临时的,重启后消失)
注意,一般环境变量都用大写加下划线来命名。
例如,新建环境变量HELLO
# export HELLO=”hello”
# echo $HELLO
hello
(5)unset:清除环境变量
例如,清除环境变量HELLO,清除后再查看为空
# unset HELLO
# echo $HELLO
(6)readonly:设置只读环境变量
例如,将环境变量HELLO设为只读,再修改或者清除该环境变量时会提示为只读变量,不能再对它进行操作。但是因为它是一个临时性的环境变量,所以用户退出登录以后就会自动失效。
# export HELLO=”hello”
# readonly HELLO=”hello”
# export HELLO=”hello” world
bash: HELLO: 只读变量
# unset HELLO
bash: unset: HELLO: 无法反设定: 只读 variable
Linux系统常用的环境变量
(1)PATH:决定了shell将到哪些目录中寻找命令或程序
[cpp] view plain copy 在CODE上查看代码片派生到我的代码片
# echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/tarena/workdir/toolchains/o
我们可以看到在当前目录下,默认的PATH的值。它表示当我们在当前目录下执行一条命令时命令的搜索路径。每一个目录都是以冒号隔开的。例如:export PATH=$PATH:/opt/arm-2009q1-203/bin:
当我们执行一个可执行的程序时,系统就会到这些目录下面去找,在这些目录下找到的话才执行,否则不执行。
(2)HOME:指定用户的主目录(即用户登录到Linux系统时的默认目录)
环境变量是一个变量,会随着用户的不同,它的值也就不同。
普通用户下的主目录:
# echo $HOME
/home/admin
root超级用户下的主目录:
# echo $HOME
/root
(3)HISTSIZE:保存历史命令记录的条数
在linux中可以查找以前输入的命令,HISTSIZE这个环境的值就表示最多保存的记录的数目。
# echo $HISTSIZE
1000
可以看到,上面显示能够保存1000条。
(4)LOGNAME:显示当前用户的登录名 (同 指令logname)
echo $LOGNAME
root
(5)HOSTNAME:显示主机的名字 (同 指令hostname)
echo $HOSTNAME
ubuntu
(6)SHELL:指当前用户使用的shell类型
echo $SHELL
/bin/bash
(7)LANG/LANGUGE:语言相关的环境变量,多语言可以修改此环境变量
echo $LANG
zh_CN.UTF-8
(8)MAIL:当前用户的邮件存放的目录 (无邮件)
# echo $MAIL
(9)PS1:命令基本提示符,对root是 #,对普通用户是 $
# echo $PS1
e]0;u@h:wa
${debian_chroot:+($debian_chroot)}u@h:w$
(10)PS2:附属提示符,默认是 >
# echo $PS2
学习编程(C语言/C++)并不难各位可以加下群466572167(资料和视频),一起交流提升。
限时特惠:本站每日持续更新海量各大内部网赚创业教程,会员可以下载全站资源点击查看详情
站长微信:11082411