linux环境变量

java环境变量的配置

北战南征 提交于 2020-03-05 22:59:15
*************************************** 为什么要配置环境变量: 1. PATH环境变量(Window不区分大小写,Linux系统下必须大写)。 作用是指定命令搜索路径 在CMD中执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把 jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac java javadoc等待,设置好 PATH变量后,就可以在任何目录下执行javac java 等工具了。 好比path环境变量里面有个%SystemRoot%\system32是指系统根目录中的system32目录中(C:\Windows\System32),如果不设置它的话,那么你直接CMD下>notepad是召唤不出来记事本的。 测试:如果直接输入java javac 不行,就是PATH设置问题 2. CLASSPATH环境变量。 (1.8版本不需要设置,据说是自动添加本地路径,不过因为某些公司会使用不是最新版本的JDK,设置一下还是比较稳的) 作用是指定类搜索路径 要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPATH来寻找类的。我们需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然

fork和exec函数

こ雲淡風輕ζ 提交于 2020-03-05 09:29:44
#include<unistd.h> pid_t fork(void); 返回:在子进程中为0,在父进程中为子进程IO,若出错则为-1 fork最困难之处在于调用它一次,它却返回两次。它在调用进程(称为父进程)中返回一次,返回值是新派生进程(称为子进程)的进程ID号;在子进程中又返回一次,返回值为0.因此,返回值本身告知当前进程是子进程还是父进程。 fork在子进程返回0而不是父进程的进程ID的原因在于:任何子进程只有一个父进程,而子进程总是可以通过getppid取得父进程的进程ID。相反,父进程可以有许多子进程而且无法获取各个子进程的进程ID。如果父进程想要跟踪所有子进程的进程ID,那么它必须记录每次调用fork的返回值。 父进程中调用fork之前打开的所有描述符在fork返回之后由子进程分享 。我们将看到网络服务器利用了这个特性:父进程调用accept之后调用fork。所接受的已连接套接字随后就在进程与子进程之间共享。通常情况下,子进程接着读写这个已连接套接字,父进程则关闭这个已连接套接字。 fork的两个典型用法。 (1)一个进程创建一个自身的副本,这样每个副本都可以在另一个副本执行其他任务的同时处理各自的某个操作。这是网络服务器的典型用法。 (2)一个进程想要执行另一个程序。既然创建新进程的唯一方法是调用fork,该进程于是首先调用fork创建一个自身的副本

Linux下修改 JAVA环境变量

有些话、适合烂在心里 提交于 2020-03-04 13:42:48
Linux下修改 JAVA环境变量 在配置hadoop的过程中,我们可能会遇见java环境变量配置的问题, 首先是如何找到Java环境变量的位置 其次是配置Java环境变量 找到Java环境变量的位置 readlink -f /usr/bin/java | sed "s:bin/java::" 配置Java环境变量 首先查看Java环境变量 echo $PATH 临时修改 export PATH=$PATH:/usr/bin/java 永久修改 期限:永久有效 用户局限:仅针对当前用户 vim ~/.bashrc //添加此句 export PATH=/usr/local/bin:$PATH 关闭保存,执行一下命令: source ~/.bashrc 全局修改 vim /etc/profile export PATH=/usr/local/bin:$PATH 关闭保存,执行以下命令: source /etc/profile 来源: https://www.cnblogs.com/zhichun/p/12408884.html

Ubuntu Linux系统环境变量配置文件

主宰稳场 提交于 2020-03-04 04:05:32
Ubuntu Linux系统环境变量配置文件: /etc/profile : 在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。 /etc /environment : 在登录时操作系统使用的第二个文件, 系统在读取你自己的profile前,设置环境文件的环境变量。 ~/.profile : 在登录时用到的第三个文件 是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。 /etc/bashrc : 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取. ~/.bashrc : 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。 更好的使用go,需要设置环境变量 sudo vim /etc/profile 在前面添加 export GOROOT=/usr/lib/go export GOPATH=$HOME/gocode 重启系统即可 (如果要立刻生效,可以source /etc/profile) 来源: https://www.cnblogs.com/shaohef/p/6394950

linux下环境变量PATH设置错误的补救

 ̄綄美尐妖づ 提交于 2020-03-04 04:03:23
本文转自: http://blog.clzg.cn/blog-614449-740527.html 之前不小心在/etc/profile中添加了错误的PATH变量,导致几乎所有的系统命令无法使用,惊出一身冷汗,然后经过多次试验终于修复成功。以下是部分经验: 首先,PATH变量记录着各系统命令的存放路径,所以平时使用系统命令时可以直接输入命令而不需要连命令的路径一起。 比如"vi"命令,在PATH变量正常的时候直接输入"vi /etc/profile"就可以,而PATH变量出错的时候就需要输入"/bin/vi /etc/profile"才能正常使用,否则系统将提示错误。 也就是说,即使PATH变量出问题,系统命令也不会丢失,只不过使用的时候必须输入命令所在的路径。 其次,PATH变量中存储的系统命令路径是以":"分隔的,通常PATH的值为"/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"。 在把常用的非系统命令路径加入时也是以同样的方式,在变量的末尾加入":"及路径,需要注意的是路径末尾不能以"/"结尾,否则将导致整个PATH变量出错。 最后是修复PATH变量的方法。修复PATH变量其实很简单,就是重新给PATH变量赋值就可以了。至于PATH的默认值可以从其他的服务器上复制过来。 使用"echo $PATH

Linux下环境变量设置

不羁岁月 提交于 2020-03-04 04:02:55
Linux下环境变量设置 1、在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错误。 2、那么什么是环境变量?简单说,就是指定一个目录,运行软件的时候,相关的程序将会按照该目录寻找相关文件。 设置变量对于一般人最实用的功能就是: 不用拷贝某些dll文件到系统目录中了,而path 这一系统变量就是系统搜索dll文件的一系列路径 在Linux系统下,如果你下载并安装应用程序,很有可能在键入它的名称的时候出现 “command not found ” 的提示内容。 如果每次都到安装目录文件夹内,找到可执行文件来进行操作就太繁琐了。 这涉及到环境变量path的设置问题,而Path 的设置也是在Linux下定制环境变量的一个组成部分 Linux下环境变量设置的三种方法 : 如想将一个路径加入到$PATH中,可以像下面这样做: 只对当前的shell 起作用的环境变量 1、 控制台中设置,不赞成这种方式,因为他只对当前的shell 起作用,换一个shell设置就无效了: 直接控制台中输入 : $PATH="$PATH":/NEW_PATH (关闭shell Path会还原为原来的path) 对所有的用户的都起作用的环境变量 2、 修改 /etc/profile 文件

linux下安装jdk和配置环境变量

人盡茶涼 提交于 2020-03-04 04:01:38
参考博文: http://www.cnblogs.com/samcn/archive/2011/03/16/1986248.html 系统环境:linux centos 6.4_x64 软件版本:jdk-7u45-linux-x64.rpm(版本就是jdk1.7.0_45)下载网址: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 一.安装jdk 将下载的jdk-7u45-linux-x64.rpm安装文件复制到任何你放数据的文件下,在命令行模式下以root用户直接# rpm -ivh jdk-7u45-linux-x64.rpm。 然后,命令行下# java -version检测是否安装成功,如果显示java版本号就表示是安装成功。 然后你会在/usr/下发现一个刚才安装时创建的java文件夹,里面是jdk1.7.0_45文件夹(/usr/java/jdk1.7.0_45),这就是jdk的安装目录。(系统版本不一样,可能安装文件的位置不一样,这个安装目录会在下面配置的地方需要) 二. 需要配置的环境变量 1.JAVA_HOME环境变量。它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA

hadoop3.2.1+hive3.1.2+scala2.12.10+spark3.0.0+zookeeper3.5.7+hbase2.0.6安装教程(亲测成功)

吃可爱长大的小学妹 提交于 2020-03-03 18:48:15
概述:学习hadoop大数据,安装hadoop生态圈的相关软件全过程 本文是根据网上的安装教程,结合小白自身安装经历,一步一步踩坑安装成功的。在安装过程中出现了诸多问题,如环境配置、版本不一致、权限等。折腾了两天之后,成功安装了hadoop/hive/scala/spark/zookeeper/hbase,因此写此博客保存安装记录,以便后续再安装更熟练,也分享给大家安装经历。本文适合完全没有安装过hadoop及其相关组件的用户,高手请忽略。我们开始吧! 准备 安装环境: Windows10+VMWare15(ubuntu18.04) hadoop相关组件各版本: hadoop3.2.1,hive3.1.2,scala2.12.10,spark3.0.0,zookeeper3.5.7,hbase2.0.6 安装包地址: 用国内镜像源,推荐一个速度快的,清华镜像 https://mirrors.tuna.tsinghua.edu.cn/apache 注意:hadoop3.2.1,hive3.1.2,spark3.0.0,zookeeper3.5.7可以在清华镜像网中下载,而没有hbase2.0.6这个版本(下载地址 https://archive.apache.org/dist/hbase/2.0.6/ ) scala下载地址: https://www.scala-lang.org

cygwin学习

只愿长相守 提交于 2020-03-02 14:27:02
原文链接: https://www.cnblogs.com/endv/p/7674720.html 参考链接: https://zhuanlan.zhihu.com/p/56692626 根据cygwin user guide翻译整理,希望对大家有所帮助。有错误清指出。 1 引言 cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件(该公司开发了很多好东西,著名的还有eCos,不过现已被Redhat收购)。它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对cygwin产生了兴趣。本文将对其作一介绍。 --------------------------------------------------------------------- 根据cygwin user guide翻译整理,希望对大家有所帮助。有错误清指出。 1 引言 cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件(该公司开发了很多好东西,著名的还有eCos,不过现已被Redhat收购)。它对于学习unix

内存安全实验

送分小仙女□ 提交于 2020-03-02 01:30:33
实验环境: Linux ubuntu 4.15.0-47-generic #50~16.04.1-Ubuntu SMP Fri Mar 15 16:03:40 UTC 2019 i686 i686 i686 GNU/Linux 栈的保护机制 地址随机化 地址随机化 :通过随机化整个segment,比如栈,堆,或者代码区的地址对内存进行保护。 关闭该机制可使用以下命令: sudo sysctl -w kernel.randomize_va_space=0 #关闭内存地址随机化 栈不可执行和DEP保护 NX(DEP) :NX即No-eXecute(不可执行)的意思,NX(DEP)的基本原理是将数据所在内存页标识为不可执行,当程序溢出成功转入shellcode时,程序会尝试在数据页面上执行指令,此时CPU就会抛出异常,而不是去执行恶意指令。 栈保护基址 :栈溢出保护是一种缓冲区溢出攻击缓解手段,当函数存在缓冲区溢出攻击漏洞时,攻击者可以覆盖栈上的返回地址来让shellcode能够得到执行。当启用栈保护后,函数开始执行的时候会先往栈里插入cookie信息,当函数真正返回的时候会验证cookie信息是否合法,如果不合法就停止程序运行。攻击者在覆盖返回地址的时候往往也会将cookie信息给覆盖掉,导致栈保护检查失败而阻止shellcode的执行