❶ linux下的set、export和env命令,在设置shell的变量时作用一样吗
Shell脚本基本知识概述:shell其实是内核与用户之间的一个接口, shell脚本如果有一系列经常使用的linux命令,你可以把它们存储在一个文件肿。shenll可以读取这个文件,并执行其中的命令。这样的文件成为脚本文件。执行shell脚本 要创建一个shell脚本,你要使用任何编辑器比如vi在文本文件中编写他。 为了使用bash shell赖执行脚本magic,其命令是:bash magic或者./magic echo命令: echo “this is an example of the echo command!” 屏幕上就会回显“this is an example of the echo command!”#符号 用于在shell脚本肿可以包含注解入口 echo “hello” #this is a comment line. this would not proce any output! echo “world!”第二行是一个注解的例子。它将被shell忽略,而且不产生任何消息变量: 可以在任何时间通过简单的赋值来创建。 语法: <variable name>-<value> Linux 中的所有变量都被当作字符串引用变量: $符号用于引用一个变量的内容 variable1 = $读入值给变量 在执行shell脚本时,shell还允许用户直接从键盘读入一个值给变量,还可以使用read命令来作。 $read fname本地和全局shell变量 局部变量 当引用shell时,只有创建它的shell能够知道变量的存在 全局变量 称为子shell shell中创建的变量局部于创建它的shell,除非使用export命令特别指出是全局的。 环境变量: 通过改变这些变量的值,用户能够定制此环境 一些环境变量的例子是HOME,PATH,PS1,PS2,LOGNAME,SHLVL,及SHELL HOME变量 Linux系统中的每个用户都有一个相关的称作HOME的目录 当一个用户登录后,进入相应的HOME的目录 $ echo $HOME PATH变量 包含一列用冒号定界的目录的路径名字,便于可执行程序的搜索。 PS1变量 PS1(Prompt String 1)变量包含了shell提示符,$符号 $ PS1 = “HELLO>” HELLO>PS2变量 是为第二个提示符设置值的环境变量 LOGNAME变量 包含用户的注册名字 $echo “$” SHLVL 变量 该变量包含当前工作的shell level SHELL变量 环境变量存储了用户缺省的shell env命令 可用来查看所有的已移出的环境变量表和它们各自的值!命令替换 在单个命令行中使用多个命令的另外一种方法(非Pipes)是通过命令替换 echo “the data is `date`” expr命令 用于求之算术表达式。该命令的输出被送到标准输出 $ expr 4 + 5 将在屏幕上显示9 算术展开: 你可以在$((…)) 中括一个表达式,用下面的命令来计算它的值; $((expression)) example1编写一个shell脚本用于计算呼叫中心未应答的询问的数量。该脚本应该接受一天那所报告的询问的总数和应答的询问的数量,以便计算未应答的询问的数量。 所有未应答的询问总数=所有询问的总数-应答的询问的数量<!–[if !supportLists]–>※ <!–[endif]–>※※※※※※※※※※※※※※※※※※※※※※※条件执行 test和[] 求值表达式,并返回true(0)或false() 数值测试:-eq 等于则为真 -ne 不等于则为真 -gt 大于则为真 -ge 大于等于则为真 -lt 小于则为真 -le 小于等于则为真 if构造 Linux shell提供了循环和判定的构造,可以在shell脚本中使用 算术测试 结合if构造,它可以用于测试变量的数字值 串测试 test命令也可以用于字符串 = 等于则为真 != 不相等则为真 -z 字符串 长度为零则为真 -n 字符串 长度不为零则为真 文件测试 test命令也可以用于检查文件的状态 -e 文件存在则为真 -r 文件存在并且可读则为真 -w 文件存在并且可写则为真 -x 文件存在并且可执行则为真 -s 文件存在并且至少有一个字符则为真 -d 文件存在并且为目录则为真 -f 文件存在并且为普通文件则为真 -c 文件存在并且为字符型文件则为真 -b 文件存在并且为块特殊文件则为真 -a并且 -o或者 !非 exit命令 用于终止shell脚本的执行并返回到$提示符下case 。。。esac shell脚本中使用的这个构造依据变量的值而执行一组特定指令 当变量的值和其中的一个值匹配的时候,就执行写在该值下的一组命令。 example3迭代 while构造 while <条件> do <命令(s)> done 只有条件为真的时候,才能执行do与done之间的命令 until构造 until循环构造的求值模式于while循环相反 until循环将继续执行直到求值的条件为真的时候 for构造 for variable_name in <list_of_values> do … donefor循环取一列值作为输入并对循环中每个值执行循环 break和contineu命令 同其他语言中的用法 example4控制进程的执行 请求后台处理 用于请求后台进程的符号是 (&) $ wc tempfile & [1] 2082 $ vi newfile 检查后台进程 ps(进程状态)命令为每个当前的活动的每个进程产生一行入口。 终止后台进程 可用kill,如下所示 kill 278 查看完成一个命令所花的时间 你可以使用time命令来查看一个命令从开始到结束所花的时间 time fine /etc –name “passwd” 2> /dev/null /dev/null表明忽略错误信息。管道的介绍 垂直条(|)是管道字符 它只是shell:“|”前面命令的输出作为“|”之后命令的输入发送ls –l | more用管道组合命令,功能强大
❷ linux 下 houdini.env在什么地方
export例如:export $HOME=$HOME:YOUR_DIR set 显示当前shell的变量,包括当前用户的变量env 显示当前用户的变量export 显示当前导出成用户变量的shell变量每个shell有自己特有的变量(set)显示的变量,这个和用户变量是不同的,当前用户变量和你用什么shell无关,不管你用什么shell都在,比如 HOME,SHELL等这些变量,但shell自己的变量不同shell是不同的,比如BASH_ARGC,BASH等,这些变量只有set才会显示,是bash特有的,export不加参数的时候,显示哪些变量被导出成了用户变量,因为一个shell自己的变量可以通过export “导出”变成一个用户变量。如用户想增加一目录到PATH中,操作如下:1.vim .bashrc增加sbin目录到PATH中$export PATH=$PATH:/sbin 或者export PATH=/sbin:$PATH2.source到环境变量中$source3.查验set|grep PATH 或env|grep PATH 或 export|grep PATH这个set 和export很重要:set env export区别set 显示当前shell的变量,包括当前用户的变量env 显示当前用户的变量export 显示当前导出成用户变量的shell变量每个shell有自己特有的变量(set)显示的变量,这个和用户变量是不同的,当前用户变量和你用什么shell无关,不管你用什么shell都在,比如 HOME,SHELL等这些变量,但shell自己的变量不同shell是不同的,比如BASH_ARGC, BASH等,这些变量只有set才会显示,是bash特有的,export不加参数的时候,显示哪些变量被导出成了用户变量,因为一个shell自己的变量可以通过export “导出”变成一个用户变量。如用户想增加一目录到PATH中,操作如下:1.vim .bashrc增加sbin目录到PATH中$export PATH=$PATH:/sbin 或者export PATH=/sbin:$PATH2.source到环境变量中$source3.查验set|grep PATH 或env|grep PATH 或 export|grep PATH.bashrc和.bash_profile区别.bash_profile会用在login shell.bashrc 使用在interactive non-login shellBash下每个用户都可以配置两个初始文件:.bash_profile和.bashrc。man bash中的相关解释如下:,————————————————————| ~/.bash_profile| The personal initialization file, executed for login shells| ~/.bashrc| The indivial per-interactive-shell startup file`————————————————————* 每次bash作为login shell启动时会执行.bash_profile。* 每次bash作为普通的交互shell(interactive shell)启动时会执行.bashrc** 注意1, 在shell脚本中“#!/usr/bin/bash”启动的bash并不执行.bashrc。因为这里的bash不是interactive shell。2, bash作为login shell(login bash)启动时并不执行.bashrc。虽然该shell也是interactive shell,但它不是普通的shell。* 一般.bash_profile里都会调用.bashrc尽管login bash启动时不会自动执行.bashrc,惯例上会在.bash_profile中显式调用.bashrc。.bashrc 使用在interactive non-login shell。意思是你每次运行一个bash脚本的话,.bashrc就会被执行一次。有个简单的方法,你在.bash_profile和.bashrc里都用echo打印点什么东西。你就可以看到着两个文件都是什么时候被执行的了.显示环境变量HOME$ echo $HOME设置一个新的环境变量hello$ export HELLO="Hello!"$ echo $HELLO使用env命令显示所有的环境变量$ env使用set命令显示所有本地定义的Shell变量$ set还可以使用export设置如:#export DISPLAY=127.0.0.1:0.0编辑/etc/profile修改全局环境变量编辑.bash_profile修改当前用户的环境变量
❸ linux配置hadoop问题:修改hadoop-env.sh文件
export java_HOME=/usr/java/jdk1.6.0_45 提示 bash: export:'/user/java/jdk1.7.0_67':not a value identifier为什么不一样?
❹ linux,关于命令env,cat等命令的问题
| 管道符转发出去。比如 cat aaa.txt | less 。这样输出就又 less 进行控制。其次,还可以用 more 。用 cat 查看大文本文件,真不如用编辑器看。
❺ Linux下setenv和set的区别
ls:列目录。 用法:ls或ls dirName,参数:-a显示所有文件,-l详悉列出文件。 mkdir:建目录。 用法:mkdir dirName,参数:-p建多级目录,如:mkdir a/b/c/d/e/f -p mount:挂载分区或镜像文件(.iso,.img)文件。 用法: a.磁盘分区:mount deviceName mountPoint -o options,其中deviceName是磁盘分区的设备名,比如/dev/hda1,/dev/cdrom,/dev/fd0,mountPoint是挂载点,它是一个目录,options是参数,如果分区是linux分区,一般不用-o options,如果是windows分区那options可以是iocharset=cp936,这样windows分区里的中文文件名就能显示出来了。用例:比如/dev/hda5是linux分区,我要把它挂到目录a上(如没目录a那就先mkdir a),mount /dev/hda5 a,这样目录a里的东西就是分区hda5里的东西了,比如hda1是windows分区,要把它挂到b上,mount /dev/hda1 b -o iocharset=cp936。 b.镜像文件:mount fileName mountPoint -o loop,fileName是镜像文件名(*.iso,*.img),其它的不用说了,跟上面一样。用例:如我有一个a.iso光盘镜像文件,mount a.iso a -o loop,这样进入目录a你就能浏览a.iso的内容了,*.img文件的用法一样。 find:查找文件。 用法:find inDir -name filename,inDir是你要在哪个目录找,filename是你要找的文件名(可以用通配符),用通配符时filename做好用单引号引起来,否则有时会出错,用例:find . -name test*,在当前目录查找以test开头的文件。 grep:在文件里查找指定的字符串。 用法:grep string filename,在filename(可用通配符)里查找string(最好用双引号引起来)。参数:-r在所有子目录里的filename里找。用例:grep hello *.c -r在当前目录下(包括子目录)的所有.c文件里查找hello。 vi:编辑器。不用说,用linux的话,这个东西一定要会用。 用法:(只能简单说一下),vi filename。filename就是你要编辑的文本文件。用了执行vi filename后,你可能会发现你无法编辑文本内容,不要着急,这是因为vi还没进入编辑状态,按a或i就可以进入编辑状态了,进入编辑状态后你就可以编辑文本了。要退出编辑状态按Esc键就可以了。以下操作均要在非编辑状态下。查找文本:输入/和你要查找的文本并回车。退出: 输入: 和q并回车,如果你修改了文本,那么你要用:q!回车才能退出。保存:输入: w回车,如果是只读文件要用: w!。保存退出:输入: wq回车,如果是只读就: wq!回车。取消: 按u就可以了,按一次就取消一步,可按多次取消多步。复制粘贴一行文本:把光标移到要复制的行上的任何地方,按yy(就是连按两次y),把光标移到要粘贴地方的上一行,按p,刚才那行文本就会被插入到光标所在行的下一行,原来光标所在行后面所有行会自动下移一行。复制粘贴多行文本:跟复制一行差不多,只是yy改成先输入要复制的行数紧接着按yy,后面的操作一样。把光标移到指定行:输入:和行号并回车,比如移到123行:123回车,移到结尾回车。
❻ 在linux里怎么设置环境变量啊,用env可以看
设置Linux的环境变量的方法是这样的,首先可以在终端直接输入:变量名=内容 的方式来临时设置,但是这种方式设置的效果在重新登录后就失效了。所以环境变量的设置一般是写在配置文件中,那对环境变量的修改应该写在哪个配置文件中呢?如果想让设置只对当前用户有效,就需要在~/.bashrc文件中添加设置,以修改PATH这个环境变量为例,需要在~/.bashrc这个配置文件添加的内容格式就像是如下两行这样:PATH="$PATH":/rootexport PATH也可以将两行设置写成一行:export PATH="$PATH":/root如果想让环境变量的设置对所有用户都有效,则需要把设置添加到/etc/profile这个全局配置文件中,添加的格式和~/.bashrc这个文件一样。最后,修改完配置文件后,如果想让设置马上生效,还需要运行source命令,比如:source ~/.bashrc,否则设置只在下次登录时才会生效(也就是说要重新登录)。
❼ linux怎么通过setenv命令修改环境变量
在应用程序中按需要对文件进行修改后,再用dd烧回去。开机,结果出现crc错误,好吧,原来u-boot为了保证环境变量的正确性,在环境变量的前四个字节储存了crc效验码。开机搬运环境变量到内存中时如果发现储存的crc和开机计算的不同时就认为环境变量错误,会恢复默认变量。把u-boot中相关的crc代码到应用程序里,这下应该搞定了吧?理想是美好的,现实是残酷的,这次是时好时坏,不太稳定。正当焦头烂额的时候,在网上看到了u-boot的env工具。在u-boot源码的tools文件夹下有个env文件夹。进入修改那个配置文件,改成自己板子上nand的块大小,到u-boot的顶层目录,makeenv,在env下就生成了fw_printenv程序,那网上说的setenv的工具呢?查看相关的makefile,只有clean部分出现了,env部分是没有的,那到底在哪里呢?原来只要cpfw_printenvfw_setenv就可以了,真的狠神奇。这样就可以达到目的了。
❽ Linux下如何设置和查看环境变量
在shell里面抄输入env,可以查看环袭境变量。想设置某个临时文件变量,在shell里面输入exportxxx=xxxx就行。想永久地设置的话,可以改/etc/bashrc,这个是系统变量,也是在文件里加上exportxxx=xxxx,改用户变量的话,就在你用户的文件夹里面的.bashrc
❾ Linux 如何设置环境变量
在shell里面输入env,可以查看环境变量。想设置某个临时文件变量,在shell里面输入版export xxx=xxxx就行。想永久地设置的话,可权以改/etc/bashrc,这个是系统变量,也是在文件里加上export xxx=xxxx,改用户变量的话,就在你用户的文件夹里面的.bashrc
❿ Linux中以用户下,查看我用env|grep ****查看到其环境变量的配置信息,但是在该用户下的.bashrc 或者
你要查找哪个环境变量,如果要做到那点,用grep加你的名称就可以搜索(时间问题)。如果你只是想改这个环境变量的值,用命令就可以改了,无需查找该变量所在的文件
未经允许不得转载:山九号 » linux配置env文件|Linux 如何设置环境变量