必威官网登录-betway必威官网|体育在线

热门关键词: 必威体育,betway必威官网,必威官网登录,必威app下载

我们知道export的作用域是后面的shell子进程,一

作者: 计算机网络  发布:2019-10-24

(1)Linux如何通过命令行进行远程调用?通过google和百度,终于让我找到一个简单的方法,其实一条语句就好:

操作Linux系统环境变量的使用方法,linux环境变量

一.使用environ指针输出环境变量

代码如下:

#include

#include

#define MAX_INPUT 20

/* 引用指针 */

extern char** environ;

int main(int argc, char** argv)

{

char *temp = NULL;

char** env = environ;

char buf[MAX_INPUT] = {0};

/* 输出全部环境变量 */

while(*env)

printf(" %s n", *env++);

printf("nEnter the variable you want to find : n");

scanf("%s", buf);

printf("The output contains the contents of %s :n", buf);

/* 重新赋值 */

env = environ;

/* 输出你要查找的内容 */

while(*env)

if(temp = strstr(*env++, buf))

printf("%s n", temp);

return 0;

}

二.使用函数

首先要说明的是,通过此函数并不能添加或修改 shell 进程的环境变量,或者说通过 setenv() 函数设置的环境变量只在本进程,而且是本次执行中有效。

/* 通过变量名返回环境变量的内容 */

char *getenv(const char *name);

/* 改变或增加环境变量 */

int setenv(const char *name, const char *value, int overwrite);

/* 改变或增加环境变量,其中参数必须以 "name=value" 的形式给出 */

int putenv(char *string);

/* 删除name的定义,即使不存在也不算出错 */

int unsetenv(const char *name);

/* 删除全部的环境变量,并将environ设置为NULL */

int clearenv(void);

三.命令行操作

用命令行修改PATH,只针对当前shell有用,关了终端就失效了,命令如下:

echo $PATH #输出PATH环境变量

export PATH = xxx #设置环境变量

unset PATH #删除环境变量

env #显示所有环境变量

四.修改系统文件

登陆root,在家目录(root)的 .bashrc 添加如下语句就可以设置PATH变量

export PATH = xxx

要使修改生效的话需要重启或执行

source .bashrc

.bashrc 中的修改对于当前账户的每次登陆都有效,

也可以修改 /etc/profile 文件,使其对所有用户生效。

几个文件的介绍:

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置.

/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bashshell被打开时,该文件被读取.

~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,它设置一些环境变量,执行用户的.bashrc文件.

~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取.

~/.bash_betway必威官网,logout:当每次退出系统(退出bash shell)时,执行该文件.

/root/.bash_profile root用户的配置

一.使用environ指针输出环境变量 代码如下: #include #include #define MAX_INPUT 20 /* 引用指针 */...

我们在Linux下安装系统软件的时候,经常遇到一些系统环境变量配置的问题。什么是环境变量?如何定制环境变量?我将在下面做一些介绍。

$ssh  ip  “command”

一、什么是环境变量?
Linux是一个多用户的操作系统。多用户意味着每个用户登录系统后,都有自己专用的运行环境。而这个环境是由一组变量所定义,这组变量被称为环境变量。用户可以对自己的环境变量进行修改以达到对环境的要求。

或者是$ssh  ip  ‘ command‘

二、定制环境变量 
环境变量是和Shell紧密相关的,它是通过Shell命令来设置的。环境变量又可以被所有当前用户所运行的程序所使用。对于bash来说,可以通过变量名来访问相应的环境变量。
下面通过几个实例来说明

例如: ssh  100.100.100.100  “mkdir   -p   /home/zhangliuhang/zz/zz/zz”

1.显示环境变量HOME 
$ echo $HOME
/home/admin

(2)在远程调用中一个个人认为很重要的问题是环境变量怎么传过去?我们知道export的作用域是后面的shell子进程,当前shell进行export设置好环境变量后在次重启shell时,原先通过export设置的环境变量会被清除。除非将export语句写在特殊的文件中。例如 .bash_profile或者.bashrc文件中。

2.设置一个新的环境变量NAME
$ export NAME="RaidCheng"
$ echo $NAME
RaidCheng

 

3.使用env命令显示所有的环境变量 
$ env
HOSTNAME=test
TERM=vt100
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=202.xxx.xxx.xxx 53694 22
CATALINA_BASE=/usr/local/jakarta-tomcat
SSH_TTY=/dev/pts/0
ANT_HOME=/usr/local/ant
JAVA_OPTS=-server
USER=admin
...

     那么我们在启动远程进程时该如何将当前进程的env传过去给远程进程使用?

4.使用set命令显示所有本地定义的Shell变量 
$ set
BASH=/bin/bash
BASH_VERSINFO=([0]="2" [1]="05b" [2]="0" [3]="1" [4]="release" [5]="i386-redhat-linux-gnu")
BASH_VERSION='2.05b.0(1)-release'
CATALINA_BASE=/usr/local/jakarta-tomcat
CATALINA_HOME=/usr/local/jakarta-tomcat
...

我们可以这么做:

5.使用unset命令来清除环境变量 
$ export NAME="RaidCheng"
$ echo $NAME
RaidCheng
$ unset NAME
$ echo $NAME

   $ssh 100.100.100.100  “export ZZZ=100;echo $ZZZ”

6.使用readonly命令设置只读变量 
$ export NAME="RaidCheng"
$ readonly NAME
$ unset NAME
-bash: unset: NAME: cannot unset: readonly variable
$ NAME="New" #会发现此也变量不能被修改
-bash: TEST: readonly variable

但是当我们需要传递整个env时,并且要传递的env中存在诡异的环境变量名的时候,这种做法就行不通了。。。

三、常见的环境变量 
PATH      决定了shell将到哪些目录中寻找命令或程序
HOME      当前用户主目录
HISTSIZE    历史记录数
LOGNAME     当前用户的登录名 
HOSTNAME    指主机的名称
SHELL      前用户Shell类型 
LANGUGE     语言相关的环境变量,多语言可以修改此环境变量
MAIL      当前用户的邮件存放目录 
PS1       基本提示符,对于root用户是#,对于普通用户是$
PS2       附属提示符,默认是“>”

我们知道使用export时,环境变量名具有特殊要求,比如对于如下情况会报错

四、通过C程序来访问和设置环境变量 
对于C程序的用户来说,可以使用下列三个函数来设置或访问一个环境变量。 

$export  java.tmp.dir=/home/zhangliuhang/tmp

getenv()访问一个环境变量。输入参数是需要访问的变量名字,返回值是一个字符串。如果所访问的环境变量不存在,则会返回NULL

因为‘java.tmp.dir’是一个非法的变量名,也许你会问这个非法的变量名怎么可能出现在env中。。。恩。。。通过java或者c语言程序是可以的。比如:

setenv()在程序里面设置某个环境变量的函数

Java中:

unsetenv()清除某个特定的环境变量的函数

      Map<String,String>env=new HashMap<String,String>();

另外,还有一个指针变量environ,它指向的是包含所有的环境变量的一个列表。下面的程序可以打印出当前运行环境里面的所有环境变量:

      env.put(“java.tmp.dir”,”/home/zhangliuhang/tmp”)

#include 
extern char**environ;
int main ()
{
char**var;
for (var =environ;*var !=NULL;++var)
printf ("%s n ",*var);
return 0;
}

      ProcessBuilder builder=new

五、环境变量文件
通过修改一些相关的环境定义文件来修改环境变量,比如对于RedHat,与环境相关的文件有/etc/profile和~/.bash_profile等。修改完毕后重新登录一次或运行命令source xxx就生效了。 

                    ProcessBuilder(“bash”,”/home/zhangliuhang/program”);

许多在linux下进行Java开发的人员,都会碰到jdk**环境变量的设置**,对于初学者,这篇文章很有必要.在Linux下Jdk的安装和Java环境变量的设置

      Builder.environment().putAll(env);

1**、**到www.sun.com下载最新版本的j2sdk for linux

      Builder.start();

2**、**安装jdk1.4.2 for linux,以下是在Redhat Linux 9下为例:

 

   以root身份登录

C语言中:

   (1)打开一个终端

     #include “stdio.h”

   (2)输入命令ls -l 查看安装文件的权限

     #include “stdlib.h”

   (3)输入命令chmod a+x j2sdk-1_4_2_01-linux-i586-rpm.bin,给所有的用户添加执行的权限。

     Int main (int argc,char* args[])

   (4)安装jdk

        {

      ./j2sdk-1_4_2_01-linux-i586-rpm.bin

              setenv(“java.tmp.dir”,”/zhangliuhang/tmp”,1);

      此步完成后,会生成j2sdk-1_4_2_01-linux-i586.rpm的文件

        system(args[1]);

       查看权限

        return 0;

      ls -l

        }

      给j2sdk-1_4_2_01-linux-i586.rpm赋执行权限

 

      chmod +x j2sdk-1_4_2_01-linux-i586.rpm

本文由betway必威官网发布于计算机网络,转载请注明出处:我们知道export的作用域是后面的shell子进程,一

关键词:

上一篇:没有了
下一篇:没有了