- 铁血嘟嘟
-
1.Linux的变量种类
按变量的生存周期来划分,Linux变量可分为两类:
1. 永久的:需要修改配置文件,变量永久生效。
2. 临时的:使用export命令声明即可,变量在关闭shell时失效。
2.设置变量的三种方法
1. 在/etc/profile文件中添加变量【对所有用户生效(永久的)】
用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。
例如:编辑/etc/profile文件,添加CLASSPATH变量
# vi /etc/profile
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
注:修改文件后要想马上生效还要运行# source /etc/profile不然只能在下次重进此用户时生效。
2. 在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】
用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。
例如:编辑guok用户目录(/home/guok)下的.bash_profile
$ vi /home/guok/.bash.profile
添加如下内容:
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
注:修改文件后要想马上生效还要运行$ source /home/guok/.bash_profile不然只能在下次重进此用户时生效。
3. 直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】
在shell的命令行下直接使用[export 变量名=变量值]
定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。
bash的环境变量的可在什么和什么这两个配置文件中修改,也可用什么命令进行临?
在Linux操作系统中,有时候跟着教程安装了一些软件,安装成功后,很高兴的准备运行该软件相应命令,但是偶尔会遇到”Command not found…“的提示。原因是因为你安装的软件需要设置环境变量才能运行。接下来跟着小编一起学习在Linux操作系统中修改环境变量的方法。方法一:在/etc/profile文件中添加变量【对所有用户生效(永久的)】 用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。 要让刚才的修改马上生效,需要执行以下代码复制代码代码如下:# source /etc/profile方法二:在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】 用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。 要让刚才的修改马上生效,需要在用户目录下执行以下代码复制代码代码如下:# source .bash_profile方法三:直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】 在shell的命令行下直接使用[export变量名=变量值]定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。方法四:直接赋值在命令行中输入复制代码代码如下:PATH=$PATH:/usr/lib64/ruby/gems/2.1.0/gems/jekyll-2.5.3/bin使用这种方法,只对当前会话有效,也就是说每当登出或注销系统后,PATH设置就会失效。方法五:修改/ect/profile文件在文件末尾添加复制代码代码如下:export PATH=$PATH:/usr/lib64/ruby/gems/2.1.0/gems/jekyll-2.5.3/bin//注意:"="号的两边不能有任何空格 这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变。方法六:修改.bachrc/.bash_profile文件在文件末尾添加复制代码代码如下:export PATH=$PATH:/usr/lib64/ruby/gems/2.1.0/gems/jekyll-2.5.3/bin这种方法是针对当前用户起作用的,当你注销系统后也会失效注:对于2和3方法,想让PATH生效,必须重新登陆才能实现,以下方法可以简化工作: 如果修改了/etc/profile,那么编辑结束后执行 source profile 或执行点命令./profile PATH的值就会立即生效了。 这个方法的原理就是再执行一次/etc/profile shell脚本,注意如果用sh /etc/profile是不行 的,因为sh是在子shell进程中执行的,即使PATH改变了也不会反应到当前环境中,但是source是 在当前 shell进程中执行的,所以我们能看到PATH的改变。2023-06-12 04:27:511
查看bash变量值正确方法是
通过使用命令。1、首先用set命令查看当前shell中的所有变量值以及函数定义。2、用env(或export-p)命令查看那些被导出的、可用于子shell的变量。3、在bash4或更高版本中,也可以使用declare-p命令。2023-06-12 04:27:581
如何定义bash环境变量
声明一个环境变量:export AA="hello world",相对普通变量而言,只需在前面加上export即可查看环境变量有两种方法:方法一,使用set命令,这种方法会显示普通变量和环境变量,方法二:使用env命令,这种方法只显示环境变量删除环境变量:使用unset 变量名即可查看常见环境变量路径:echo $PATH添加常用常用环境变量路径: 使用PATH="$PATH":/root/,拼接即可,但是一旦退出当前系统,需要重新定义如果需要长期使用该路径,需要在配置文件下配置。/etc/profile和/etc/bashrc文件对所有用户有效,~/bashrc和~/.bash_profile只对当前用户有效,下面举一个在linux环境下配置JDK的环境变量的例子2023-06-12 04:28:141
bash如何在一个脚本里引用另一个脚本定义的变量?
灵活运用"."即可例如:文件a.sh内容name=aowner=userA文件b.sh内容. a.shecho ow=$owner即可得到ow=userA2023-06-12 04:28:222
bash中怎么进行变量赋值和调用
可选变量一般用在类或结构体中,就是说在创建对象时,不想或不能为该数据成员赋值,将其设置为可选。可选就是可为nil,在构造函数中,如果是可选变量,就可以先不对其进行赋值,其他非可选变量,则必须赋值或者在生命时,要有初始值;否则报错。可选变量在使用前,必须赋值,否则也报错。在使用可选变量时,系统都需要先确定这个变量不为nil,有两种方式:1.直接使用!,人为的为系统打包票,说这个可选变量不为nil; 比较简单粗暴;2.使用if else,判断是否为nil,作为不出错得保证。上面是我的 ? option 的实际使用方法,如果有哪位有更深入的认识,请补充或更改。2023-06-12 04:28:281
怎么用命令清空Bash环境变量怎么办
你可以在 Linux 或类 Unix 系统中使用 env 命令设置并打印环境。env 命令可以按命令行指定的变量来修改环境,之后再执行程序。列出所有环境变量统计环境变量数目输入下面的命令:env | wc -lprintenv | wc -l # 或者输出样例:20临时清除所有 bash/ksh/zsh 环境变量并运行 wget 程序:env -i /usr/local/bin/wget www.cyberciti.bizenv -i wget www.cyberciti.biz # 或者-i 选项使 env 命令完全忽视它继承的环境。但是,它并不会阻止你的命令(例如 wget 或 curl)设置新的变量。同时,也要注意运行 bash/ksh shell 的副作用:env -i env | wc -l ## 空的 ### 现在运行 bash ##env -i bash## bash 设置了新的环境变量 ##env | wc -l例子:设置一个环境变量语法如下:env var=value /path/to/command arg1 arg2 ...## 或 ## var=value /path/to/command arg1 arg2 ...例如设置 http_proxy:env http_proxy="http://USER:PASSWORD@server1.cyberciti.biz:3128/" /usr/local/bin/wget www.cyberciti.biz2023-06-12 04:28:361
bash shell 里面有全局变量这个概念吗
有。函数内部的变量默认是全局的,定义时,前面加上local就是局部的。你执行下面的命令:1)bash2)help3)help local4)help declare命令1)保证你进入bash环境;命令2)查看bash的内置命令列表,你应该可以看见local ; 命令3)的作用是查看local 命令的帮助,例如某函数内,local x,表明x是局部变量,它只在函数内有效,函数外如果有x变量和函数内的不是同一个x。命令4)是查看declare 命令的帮助,你可以看见declare -g 用来定义全局变量,例如某函数内,declare -g x,表明x是全局变量。供参考,谢谢!2023-06-12 04:28:531
bash使用间接变量eval
bash使用间接变量eval 使用场景 定义一个函数foo接收一个参数,打印出参数对应的变量的值。 例如 我们希望打印出V1的值,即"abc",而不是"V1" case 1: 运行结果是 看到打印出来的是V1,而不是V1的值。 case 2: 运行结果 这才是想要的结果。2023-06-12 04:29:001
bash 在程序中输出环境变量
pp=/Desktopr=$pp 这里得用变量echo $r2023-06-12 04:29:291
Mac下配置.bash_profile(环境变量)
最近开始学习react-native,在调试安卓程序时报错,然后为了解决错误不小心改了.bash_profile这个文件,也就是配置环境变量,结果导致终端很多基本命令都不能使用,在网上找到一些解决办法,亲测有效。 1. 在命令行中输入: export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin 这样可以保证命令行命令暂时可以使用。命令执行完之后先不要关闭终端。 如果你的命令行命令可以使用,请直接跳到第2步。 2. 进入当前用户的home目录: cd ~/ 3. 创建.bash_profile文件: touch .bash_profile 4. 打开.bash_profile并编辑: open .bash_profile 5. 这样就打开了一个记事本,会显示你之前配置过的path,修改记事本,强烈建议先备份下,然后根据自己需要配置。 上面是我配置好的java和android环境变量; 由于自己之前没有备份,最后一行 export PATH=/usr/local/bin:/usr/local/sbin:~/bin:$PATH 是在网上找的,据说是系统默认的环境变量配置,但是自己配置好后删了这一行并没有什么影响,姑且参考第1点的解释,有机会再验证。 补充:最后面两行也是系统默认配置,不要误删了,否则很多命令会失效比如pod,网上搜索会提示重装rvm什么的,你会崩溃的,不要问我是怎么知道的【泪奔】。 6.command+s保存关闭文件 7.使修改后的配置生效命令: source .bash_profile 8.验证环境变量是否配置成功: 如果是java,在终端输入以下命令 java -version Android adb version 最后,希望这篇文章能帮到你。2023-06-12 04:29:421
关于bash shell的变量设置功能,如何去掉文件路径中的字符
tar -czvf2023-06-12 04:29:494
Linux中的Bash编程如何定义一个能保存字符串的变量,系统提示输入字符串到变量中,手动输入字符串到变量中
#!/bin/bashecho "Please enter a string to variables:"read varecho "the variables is $var."2023-06-12 04:30:051
哪个命令可以观察目前bash什么环境下的所有变量
echo $PATH2023-06-12 04:30:192
如何在shell脚本中设置环境变量
如何通过shell脚本设置全局的环境变量-bash-3.00# envHZ=100LC_MONETARY=en_US.ISO8859-1SHELL=/usr/bin/bashTERM=ansiLC_NUMERIC=en_US.ISO8859-1MAIL=/var/mail/pcPATH=/usr/sbin:/usr/bin:.LC_MESSAGES=CLC_COLLATE=en_US.ISO8859-1PWD=/export/home/pcTZ=PRCSHLVL=1HOME=/export/home/pcLOGNAME=pcLC_CTYPE=en_US.ISO8859-1LC_TIME=en_US.ISO8859-1_=/usr/bin/env如果只想看指定的变量设置,如路径PATH的设置,可以用 "echo $PATH"或 “ env | grep PATH"或” env | grep -i path"来查询。前面的适合知道全名的,后面2种适合只知道部分字段或者部分关键字母(甚至不确定字符大小写)的。-bash-3.00# echo $PATH/usr/sbin:/usr/bin:.-bash-3.00# env | grep PATHPATH=/usr/sbin:/usr/bin:.2023-06-12 04:30:261
bash 切换到 zsh 环境变量丢失问题
前几天将shell从bash切换到zsh之后, 发现以前的在bash配置的环境变量失效了 ,pyenv,node等没法加载到。 1 、在bash下面执行: echo $PATH 查看系统路径,复制路径。 2、然后切换到zsh, sudo vim ~/.zshrc 在 If you come from bash you might have to change your $PATH. 下面添加刚才的路径: export PATH=" you path copy just now " 3、退出文件,在zsh下执行: source ~/.zshrc 初始化配置文件。 搞定,以上。2023-06-12 04:30:551
请问ubuntu中的bash在哪儿啊?修改环境变量怎么修改啊?还有,交叉编译软件怎么用啊?
1> 点dash home(左上角),键入ter,会出现Terminal,这个就是bash的emualtor了,可以在这里键入bash命令。2> 环境变量有很多,你大概想问的是PATH:这个。你可以echo $PATH,打出目前的路径,路径以":"区隔。添加的话,可以使用PATH=$(PATH):(your new path)3> 交叉编译环境的设置,是个大问题,需要找到对应的manual,最好先找个现成的例子,看懂他们。PS:bash manualhttp://www.gnu.org/software/bash/manual/bash.html2023-06-12 04:31:021
Linux下su拿不到root权限了,chsh命令修改了root:x:0:0:root:/root:/bin/bash变量,如何修改恢复?谢谢了~!
su root然后在改回bash2023-06-12 04:31:113
10 分钟学会Linux常用 bash命令
显示所有的环境变量,如果你想获取某个变量的详细信息,使用 echo $VARIABLE_NAME . Example: whereis使用系统自动构建的数据库来搜索可执行文件,源文件和手册页面。 Example: 它在环境变量PATH指定的目录中搜索可执行文件。此命令将打印可执行文件的完整路径。 Example: 清除窗口上的内容。 列出您的文件。 ls 有很多选项: -l 列出“长格式”的文件,其中包含文件的确切大小,拥有该文件的人员,有权查看该文件,以及何时进行上次修改。 -a 列出所有文件,包括隐藏文件。有关此命令的更多信息,请检查此链接。 Example: 创建或更新您的文件。 Example: 它可以在UNIX或Linux下用于以下目的。 显示文件的第一部分(用空格移动并键入q以退出)。 输出文件的前10行。 输出最后10行文件。用于-f在文件增长时输出附加数据。 将文件从一个位置移动到另一个位置。 filename1 文件的源路径, filename2 是目标路径。 将文件从一个位置复制到另一个位置。 filename1 文件的源路径, filename2 是目标路径。 删除文件。在目录上使用此命令会给您显示一个错误: rm: directory: is a directory 。 为了删除目录,你必须传递 -rf 去递归删除目录中的所有内容。 比较文件,并列出他们的差异。 让您更改文件的读取,写入和执行权限。 压缩文件。 解压缩gzip压缩的文件。 让你查看gzip压缩文件,而不需要gunzip它。 打印文件。 查看打印机队列。 Example: 从打印队列移除某些内容。 awk是处理文本文件最有用的命令。它一行一行地在整个文件上运行。默认情况下,它使用空格分隔字段。awk命令最常用的语法是 让我们采取以下文件 /etc/passwd 。以下是此文件包含的示例数据: 所以现在让我们从这个文件只获取用户名。 -F 指定在我们要基于哪个分隔字段。在我们的例子中 : 。 { print $1 } 意味着打印出第一个匹配字段。 运行上述命令后,您将获得以下输出。 有关如何使用 awk 的更多细节,请查看以下链接。 查找文件内的文本。您可以使用grep搜索与一个或多个正则表达式匹配的文本行,并仅输出匹配的行。 Example: 您还可以通过使用 -i 选项强制grep忽略单词大小写。 -r 可用于搜索指定目录下的所有文件,例如: -w 只搜索单词。有关 grep 详细信息,请查看以下链接。 告诉你一个文件中有多少行,多少单词和多少字符。 Example: 7459 是行数, 15915 是单词数, 398400 是字符数. 用于过滤和转换文本的流编辑器。 example.txt 用连字符替换所有空格 使用"d"替换所有的数字 排序文本文件的行 example.txt sort example.txt 随机化一个排序的example.txt 报告或省略重复的行 example.txt 只显示example.txt的唯一行(首先你需要排序,否则看不到重叠) 显示每行的唯一项,并告诉我找到了多少个实例 从每行文件中删除部分。 example.txt 显示第2,7和9栏的空格作为分隔符 显示一行文字 显示 "Hello World" 用字母之间的换行显示 "Hello World" 简单的最佳文本格式化程序 example: example.txt (1 line) 将example.txt的行输出为20个字符的宽度 翻译或删除字符 example.txt 把所有小写字母变成为大写 把所有的空格变成换行符 显示文件的行数 example.txt 带行号显示 example.txt 打印匹配模式的行 - 扩展表达式(别名为:"grep -E") example.txt 在其中显示“Lorem”或“dolor”的行 打印匹配模式到的行 - FIXED模式匹配(别名为:"grep -F") example.txt 在example.txt中找到具体的字符串"(Lorem | doloar)" 生成一个新的目录。 执行这个,从一个目录转移到另外一个目录。 将你移动到主目录。此命令接受可选的 dirname ,将你移动到该目录。 告诉你你目前所在的目录。 ssh (SSH client) 是一个用来在登录到远程机器并执行的命令的程序。 此命令还接受 -p 可用于连接到特定端口的选项。 返回当前登录用户名。 允许当前登录的用户更改其密码。 显示您的磁盘配额。 显示当前日期和时间。 显示月份的日历。 显示当前的正常运行时间。 显示谁在线 Displays information about user. 显示内核信息。 显示指定命令的手册。 显示磁盘使用情况。 显示文件名中文件和目录的磁盘使用情况(du -s只给出一个总数)。 列出您最后登录的指定用户。 列出您的进程。 使用您所提供的ID杀死(结束)进程。 用名称杀死所有进程。 显示当前活动的进程。 列出停止的或后台工作的Job; 恢复在后台停止的Job。 前台化最近的Job。 Brings the most recent job in the foreground. Pings主机并输出结果。 获取域的whois信息。 获取域的DNS信息。 下载文件。 在本地主机和远程主机之间或两台远程主机之间传输文件。 从本地主机复制到远程主机 从远程主机复制到本地主机 此命令还接受 -P 选项可用于连接到特定的端口。 在bash中你将编写第一行脚本文件,被叫做 shebang 。任何脚本中的这一行来确定脚本的执行能力,如独立的可执行文件,而不是在终端中预先键入sh,bash,python,php等。 Example: 上面的一行创建一个变量str并给它赋值“hello world”。通过 $ 放在变量名的开头来检索变量的值。 Example: 像其他语言一样,bash也有数组。数组是包含多个值的变量。数组的大小没有最大限制。bash中的数组为零。第一个元素被索引为元素0.在bash中创建数组有几种方法。以下给出了哪些。 Examples: 要在特定索引处显示值,请使用以下语法: 如果没有提供索引,则假定为数组元素0。要了解数组中有多少值,请使用以下语法: Bash也支持三元条件。下面是一些例子。 检查一些关于如何操作字符串的语法 Example: 当您运行上述示例时,该hello函数将输出“world!”。上述两个功能 hello 和 say 是相同的。主要区别是功能 say 。此功能打印其接收到的第一个参数。函数内的参数以与给脚本的参数相同的方式进行处理。 bash中的条件语句与其他编程语言相似。条件有许多形式,如最基本的形式是 if 表达式 then 语句,其中语句只有在表达式为真时执行。 有时,如果条件变得混乱,所以你可以使用相同的条件 case statements 。 Expression Examples: bash 中有三种不同类型的循环。 for , while 和 until . for 语法: while 语法: until 语法: bash_profile 可以通过运行后面的命令打开。 nano ~/.bash_profile nano ~/.bashrc source ~/.bashrc cd hotellogs 您可以通过传递不同的选项来轻松地调试bash脚本bash。例如-n,不会运行命令并仅检查语法错误。-vecho命令在运行它们之前。-x命令行处理后的echo命令。2023-06-12 04:31:271
Mac执行了source ~/.bash_profile环境变量不生效
自己在 ~/.bash_profile 中配置环境变量, 可是每次重启终端后配置的不生效.需要重新执行 : $source ~/.bash_profile 发现zsh加载的是 ~/.zshrc文件,而 ‘.zshrc" 文件中并没有定义任务环境变量。 解决办法 在~/.zshrc文件最后,增加一行: source ~/.bash_profile2023-06-12 04:31:331
如何在 Bash 中将字符串计算为数字?
就像 Linux 中的一切都是文件一样,bash 中的一切都是字符串。 从技术上讲,Bash 中没有数据类型,本质上,Bash 变量只是字符串。 当您尝试在 bash 中进行算术运算时,这会产生问题,您尝试添加的数字会给您带来奇怪的结果。 要在 bash 中将字符串转换为整数,请将它们包装在 $((X)) 中,像这样: 如果字符串有一个可识别的数字,它将被视为一个数字,我上面显示的示例可以更正为: 让我们更详细地看一下字符串到数字的转换,以便您可以在 bash 中使用算术计算。 您可以检查分配的号码: 现在让我们尝试将两个数字相加并将值存储在第三个变量中c: 正如您在上面的输出中看到的,c 也被视为字符串。 要使加法成功,您需要通过算术展开“转换”它: 请注意,c它实际上仍然是一个字符串,直到您再次隐式使用相同的算术扩展来进行我稍后将讨论的另一个操作。 以上等价于: d让我们为另一个操作使用第三个变量: 现在进行第二次操作: 在上面的表达式中,首先计算 b 和 c 的乘积,最后计算加法和减法。 正如我之前提到的,您在 $((...)) 之间所做的任何事情都被认为是算术运算。 混合字符串和整数仍然比混合可乐和薄荷更安全。不过,它确实会产生一个奇怪的结果。 它仅在有数字(作为字符串)时才有效,如果是纯字符串,就不会神奇地转换成一些数字,相反,它会被忽略,如您在上面的示例中所见。 您也可以使用该expr工具进行评估,但请注意它不是“本机” Bash 程序,因为您需要coreutils安装(默认情况下在 Ubuntu 上)作为单独的包。2023-06-12 04:31:391
在bash shell里 $0 $? $* $@ 各表示什么意思?
$0就是该bash文件名$?是上一指令的返回值$*所有位置参数的内容:就是调用调用本bash shell的参数。$@基本上与上面相同。只不过是“$*”返回的是一个字符串,字符串中存在多外空格。“$@”返回多个字符串。还有$#返回所有位置参数的个数。2023-06-12 04:31:473
Bash怎么逐行读取一个文件
在 Linux、OSX、 *BSD 或者类 Unix 系统下你可以使用 u200bu200bwhile..do..done 的 bash 循环来逐行读取一个文件。下面跟着我一起来了解一下在 Linux 或类 UNIX 系统下如何使用 KSH 或 BASH shell 逐行读取一个文件吧。 Bash逐行读取一个文件 方法 对于 bash、ksh、 zsh 和其他的 shells 语法如下 while read -r line; do COMMAND; done < input.file 通过 -r 选项传递给 read 命令以防止阻止解释其中的反斜杠转义符。 在 read 命令之前添加 IFS= 选项,来防止首尾的空白字符被去掉。 while IFS= read -r line; do COMMAND_on $line; done < input.file 这是更适合人类阅读的语法: #!/bin/bashinput="/path/to/txt/file"while IFS= read -r vardo echo "$var"done < "$input" 示例 下面是一些例子: #!/bin/kshfile="/home/vivek/data.txt"while IFS= read linedo # display $line or do somthing with $line echo "$line"done <"$file" 在 bash shell 中相同的例子: #!/bin/bashfile="/home/vivek/data.txt"while IFS= read -r linedo # display $line or do somthing with $line printf "%s " "$line"done <"$file" 你还可以看看这个更好的: #!/bin/bashfile="/etc/passwd"while IFS=: read -r f1 f2 f3 f4 f5 f6 f7do # display fields using f1, f2,..,f7 printf "Username: %s, Shell: %s, Home Dir: %s " "$f1" "$f7" "$f6"done <"$file" 示例输出: 图01:Bash 脚本:读取文件并逐行输出文件Bash 脚本:逐行读取文本文件并创建为 pdf 文件 我的输入文件如下(faq.txt): 我的 bash 脚本: 技巧:从 bash 变量中读取 让我们看看如何在 Debian 或者 Ubuntu Linux 下列出所有安装过的 php 包,请输入: 示例输出: 你现在可以从 $list 中看到它们,并安装这些包: 示例输出:2023-06-12 04:32:581
linux jdk 配置环境变量 -bash: /java/jdk1.6.0_45/bin: is a directory
时间过去的有些久了,请问最后是怎么解决的啊,新人跪求答案2023-06-12 04:33:145
bash shell如何比较变量var与字符串abc123是否相等? 如果相等则执行echo va
if ([ $a -eq $b ])2023-06-12 04:33:502
linux下修改环境变量问题
export2023-06-12 04:33:584
linux里面bash是什么?
这应该是一个软件编程,里面的一个编码,然后的话,这个意思就是需要你重新编辑的意思2023-06-12 04:34:077
linux oracle 安装完成后 .bash_profile环境变量丢失
直接运行一下这个文件看看,如下:bash .bash_profile或者你可以把环境变量的定义写在.bashrc文件中,这样更方便。因为.bash_profile是用户登录时运行,而.bashrc文件是每次进入bash这个shell环境都会执行。2023-06-12 04:34:332
查看bash变量值正确的方法是?
查看bash变量值正确的方法如下。1、我们先创造一个简单的脚本。将HelloWorld。。输出到控制台。使用vi命令创建新文件。2、打开编辑器后,按如下所示编写。#。/usr/bin/bashecho"HelloWorld。。"exit0第一行上的#。/usr/bin/bash表示它是使用bash的shell脚本。3、使用exit0退出bash。参数0表示正常结束。2023-06-12 04:35:011
如何在 Linux 上运行命令前临时清空 Bash 环境变量
export设置只对当前的bash登录session有效。这是存在内存里面的。 你可以写入文件一般的文件。之后source它。或者放到/etc/profile 等等的位置里,不同的地方效果不同。2023-06-12 04:36:171
如何在 Linux 上运行命令前临时清空 Bash 环境变量
export设置只对当前的bash登录session有效。这是存在内存里面的。 你可以写入文件一般的文件。之后source它。或者放到/etc/profile 等等的位置里,不同的地方效果不同。2023-06-12 04:36:241
如何查看当前shell的所有环境变量?
如果要查看当前所有环境变量的设置,可以用env命令,例子如下:-bash-3.00# envHZ=100LC_MONETARY=en_US.ISO8859-1SHELL=/usr/bin/bashTERM=ansiLC_NUMERIC=en_US.ISO8859-1MAIL=/var/mail/pcPATH=/usr/sbin:/usr/bin:.LC_MESSAGES=CLC_COLLATE=en_US.ISO8859-1PWD=/export/home/pcTZ=PRCSHLVL=1HOME=/export/home/pcLOGNAME=pcLC_CTYPE=en_US.ISO8859-1LC_TIME=en_US.ISO8859-1_=/usr/bin/env如果只想看指定的变量设置,如路径PATH的设置,可以用 "echo $PATH"或 “ env | grep PATH"或” env | grep -i path"来查询。前面的适合知道全名的,后面2种适合只知道部分字段或者部分关键字母(甚至不确定字符大小写)的。-bash-3.00# echo $PATH/usr/sbin:/usr/bin:.-bash-3.00# env | grep PATHPATH=/usr/sbin:/usr/bin:.2023-06-12 04:37:001
如何重新设置linux环境变量
方法一: 在/etc/profile文件中添加变量【对所有用户生效(永久的)】 用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。 要让刚才的修改马上生效,需要执行以下代码 # source /etc/profile 方法二: 在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】 用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。 要让刚才的修改马上生效,需要在用户目录下执行以下代码 # source .bash_profile 方法三: 直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】 在shell的命令行下直接使用[export变量名=变量值]定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。 例如:export PATH=/usr/local/webserver/php/bin:$PATH2023-06-12 04:37:081
zsh和bash
1、bash 的环境变量是.bash_profile文件 2、zsh 的环境变量是.zshrc文件 1、zsh 设置alias 2、bash 设置alias 3、设置带参数alias2023-06-12 04:37:251
如何在shell脚本中设置环境变量
如何通过shell脚本设置全局的环境变量-bash-3.00#envHZ=100LC_MONETARY=en_US.ISO8859-1SHELL=/usr/bin/bashTERM=ansiLC_NUMERIC=en_US.ISO8859-1MAIL=/var/mail/pcPATH=/usr/sbin:/usr/bin:.LC_MESSAGES=CLC_COLLATE=en_US.ISO8859-1PWD=/export/home/pcTZ=PRCSHLVL=1HOME=/export/home/pcLOGNAME=pcLC_CTYPE=en_US.ISO8859-1LC_TIME=en_US.ISO8859-1_=/usr/bin/env如果只想看指定的变量设置,如路径PATH的设置,可以用"echo$PATH"或“env|grepPATH"或”env|grep-ipath"来查询。前面的适合知道全名的,后面2种适合只知道部分字段或者部分关键字母(甚至不确定字符大小写)的。-bash-3.00#echo$PATH/usr/sbin:/usr/bin:.-bash-3.00#env|grepPATHPATH=/usr/sbin:/usr/bin:.2023-06-12 04:37:341
怎么在bash_profile文件中修改PATH变量
export PATH="${PATH};/sbin"echo $path2023-06-12 04:37:421
shell脚本中可以设置全局变量么
可以的,设定后在脚本运行中会一直生效2023-06-12 04:38:143
Linux shell脚本中${BASH_SOURCE%/*}
这是一个字符串替换,搜linux shell 字符串替换就知道了2023-06-12 04:38:222
Linux基础测试试题及答案
一、选择题(非单选) 1、在正则表达式当中下面那一个字符集表示非空格字符( ) a. [:graph:] b. [:digit:] c. [:space:] d. [:alpha:] 参考答案:A 2、关于b.sh变量论述正确的是:( ) a. 可以在/etc/porfile里面设置对所有用户生效,永久 b. 在用户家目录下的.bash_profile文件中添加变量对单一用户生效,临时生效 c. 可以使用export 定义,只对当前shell生效,永久有效 d. 以上说法都不对 参考答案:A 3、当登录linux后,登录的shell将查不同启动文件来处理其中的命令,处理文件的顺序是( ) a. /etc/profile --> ~/.bash_profile --> ~/.profile --> ~/.bash_login b. /etc/profile --> ~/.bash_profile --> ~/.bash_login --> ~/.profile a. ~/.bash_profile -->/etc/profile --> ~/.profile --> ~/.bash_login a. ~/.bash_login --> ~/.profile --> ~/.bash_profile -->/etc/profile 参考答案:B 4、创建多级目录命令是( ) A、mkdir -p B、mkdir -v C、mkdir -m D、mkdir -Z 参考答案:A 5、有一些文件root用户也无法直接修改,可使用说明命令看看其权限( ) A、ls -lh B、file C、stat D、lsattr 参考答案:D 6、linux上为了使用更多简洁操作,可以使用别名来简化命令,以下别名定义正确的是( ) A、LS=u2018ls -lhu2019 B、set cnet u2018cd /etc/sysconfig/network-scripts/ifcfg-eth0u2019 C、alias die=u2018rm -fru2019 D、unalias die=u2018rm -fru2019 参考答案:C 7、常见的文本编辑器工具有哪些( ) A、nano B、cat C、cut D、vim 参考答案:AD 8、使用find命令查找文件时,以下哪个选项代表套接字文件( ) A. d B. l C. p D. s 参考答案:D 9、如一个文本文件的各权限位是这样的:-rw-r--r--,对该文件执行chmod g+s 后,其权限位应显示为( ) A. -rw-r-Sr-- B. -rw-r-sr-- C. -rw-r--r-- D. -rw-r-xr-- 参考答案:A 10、使用fdisk对磁盘进行分区时,LVM分区的类型为( ) A. l B. lvm C. 9e D. 8e 参考答案:D 11、使用tar命令对一个目录只打包,不压缩,应该使用如下哪条命令( ) A. tar -cvf B. tar -zcvf C. tar -jvf D. tar -jcvf 参考答案:A 12、shell脚本的哪个位置参数可以表示脚本本身( ) A. $0 B. $1 C. $# D. $@ 参考答案:A 13、通常我常说的四层负载和七层负载对应OSI模型分别是? A. 传输层,表示层 B. 网络层,应用层 C. 传输层,应用层 D. 网络层,表示层 参考答案:C 14、系统中存在两个进程, 其pid分别为 110, 119, 此时希望当119需要占用CPU时总是要优于110, 应如何做?( ) A. 调整进程119的nice值, nice -5 119 B. 调整进程119的nice值, renice -5 119 C. 调整进程110的nice值, nice -5 110 D. 调整进程119的nice值, renice -5 110 参考答案:B 15、如何在非交互式的情况下为用户magedu添加一条crontab任务? A. 将任务写入到/var/spool/cron/root B. 将任务写入到/var/spool/cron/magedu C. 将任务写入到/var/spool/root/cron D. 将任务写入到/var/spool/magedu/cron 参考答案:B 16、CentOS7系统中启动网络服务的命令是: A. service network start B. /etc/init.d/network start C. systemctl start network.service D. /etc/init.d/rc.d/init.d start 参考答案:C 17、kernel实现自身初始化时,实现的任务为( ) A.探测可识别的所有硬件; B.以只读方式装载“真正根文件系统” C.按次序查找各引导设备,第一个有引导程序的设备即为启动系统用到的设备 D.启动用户空间的第一个应用程序:/sbin/init 参考答案:C 18、CentOS 6系统中,Linux系统运行级别,关系对应不正确的是( ) A.4--维护模式,多用户模式,需要用户认让,会启动网络功能,但不支持使用NFS; B.1--维护模式,单用户模式,sigle模式;此级别可允许root用户直接登录而无须认证; C.3--正常级别,完全多用户模式,文本界面; D.5--正常级别,完全多用户模式,图形界面; 参考答案:A 19、下面命令,可以输出/etc/passwd文件中root用户所在行的`是( ) A.awk "{if($1=/root/) print }" /etc/passwd B.awk -F: "{if($1==/root/) print }" /etc/passwd C.awk -F: "{if($1=/root/) print }" /etc/passwd D.awk -F: "{if($1~/root/) print }" /etc/passwd 参考答案:D 20、以下不是/ect/rc.d/rc.sysinit的功能的是() A.根据配置文件中的设定来设定主机名 B.配置服务器ip地址 C.打印文本欢迎信息 D.激活LVM和RAID设备 参考答案:B 判断题(如有兴趣的同学可以分析为什么对错) 1、在对称加密中,加密与解密使用同一密钥,主要算法有md5,sha1。 参考答案:错 解析:md5与sha1算法是单向加密的算法,并非对称加密的算法 2、两块硬盘实现RAID1之后,整体写性能会变差 参考答案:对 3、做RAID5至少需要3块磁盘。 参考答案:对 4、keepalived 是基于VRRP协议为基础实现的。 参考答案:对 5、进程A在启动时,系统的可打开的最大文件描述符个数为1024, 此时将系统的可打开的最大文件描述符个数设置为65535, 之后如果进程A创建子进程后, 那么子进程可打开的最大文件描述符个数为1024, 对吗? 参考答案:错 问答题 1、找出当前目录下10天没有改变,大小大于4K的普通文件或目录 参考答案: find ./ -type d -o -type f -size +4k ! -mtime -10 2、使用ss命令, 查看当前系统上处于time_wait 状态的连接 参考答案: ss -4 state time-wait 或者 ss -o state time-wait 3、请简述centos6的启动流程 参考答案: POST --> BIOS(boot sequence) --> MBR (bootloader) --> kernel(ramdisk) --> /sbin/init 设定默认运行级别 --> 使用/etc/rc.d/rc.sysinit脚本进行系统初始化 -->分别关闭和启动对应级别的所有服务 --> 启动字符终端 --> 启动图形终端(如果默认级别为5)--> 显示登录提示; 4、 yum update和yum upgrade有什么区别? 参考答案: yum update:升级软件包的同时也升级软件和系统内核 yum upgrade:只升级软件包,不升级软件和系统内核 5、在每周二的凌晨1点5分执行脚本/data/get_username.sh,并将脚本的输出写至/tmp/get_username.log日志文件中 参考答案: 5 1 * * 2 /bin/sh /data/get_username.sh &>> /tmp/get_username.log 或者 5 1 * * 2 /bin/sh /data/get_username.sh >> /tmp/get_username.log 2>&12023-06-12 04:38:391
- 要想对整个系统有效,就编辑/etc/profile。在这里的更改对于用户使用何种shell(csh,bash等)是无关的如果使用的shell是bash,那就编辑~/.bash_profile文件,这个文件在用户登录的时候被执行一遍~/.bashrc一般是用来存放alias等设置的,这个文件在每次启动bash的时候都会执行一遍2023-06-12 04:38:451
linux配置oracle的环境变量.bash_profile?? 求解决
你把ORACLE_HOME改为: ORACLE_HOME=$ORACLE_BASE/oracle/product/10.2.0把PATH、TNS后面涉及到$前面的号去掉2023-06-12 04:38:532
bash中$和$*的区别
$是bash中的特殊符号,一般放在变量名前面表示引用这个变量,其他还有很多用处,比如字符串处理等;$*一般用来表示传递给脚本或函数的所有参数。但是也可以用来表示变量分词之后的上下文内容。2023-06-12 04:39:011
我用的Linux系统,改变了他的某些环境变量之后,比如修改.bash_profile文件里的某个变
你的意思是里面的内容又恢复原来的样子了吗?这个文件是用户自己的私人配置,只存在于这个用户的默认工作目录下,如/home/user/.bash_profile 改完保存后source 一下立刻生效,或重启生效,只要这些做正确应该不会无效。你保存后有马上用cat确认已经保存了吗?如果只是你一个人用这个系统,改针对所有用户的/etc/bashrc也可以2023-06-12 04:39:151
$vim /home/oracle/.bash_profile在安装oracle时编辑这个变量意思!
/home/oracle/.bash_profile这个文件在每次以oracle身份登录时都会执行一次,这个文件中都是环境变量的设置export ORACLE_BASE和ORACLE_HOME,ORACLE_OWNER是确认ORACLE的基础目录,家目录和用户。path是为了定义oracle用户下的各种执行命令的路径。LD_LIBRARY_PATHCLASSPATH主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。2023-06-12 04:39:241
linux脚本文件中怎么从文件中读取数据并赋值给变量?
linux脚本文件中,从文件中读取数据并赋值给变量的操作方法和步骤如下:1、首先,创建一个名为shell.sh的文件:vi shell.sh,如下图所示。2、其次,完成上述步骤后,输入头文件#!/bin/bash,如下图所示。3、接着,完成上述步骤后,保存并打开权限(chmod +x shell.sh)并运行:./shell.sh,如下图所示。4、然后,完成上述步骤后,输入一个字符串,如下图所示。5、随后,完成上述步骤后,要计算乘以5的值,需要按如下方式编辑shell.sh(vi shell.sh)脚本命令,如下图所示。6、最后,保存,开权限运行:输出一个整数,如下图所示。这样,问题就解决了。2023-06-12 04:39:511
在bash下执行命令set,env有什么区别
env是显示变量set和export是设置变量set用于csh环境export用于bash环境格式:set DISPLAY 192.168.1.1:0 export DISPLAY=192.168.1.1:02023-06-12 04:39:581
为什么linux下输入nmap命令一直都是bash:nmap:commandnotfound环境变量配置如图,系统为redhat5,求教
解决方法很多!nmap一般在/usr/bin/nmap,查看有没有这个文件。再说了查看环境变量有没有设置成功只需要输入echo$PATH,把这条命令输出结果拿出来看才有用。一般修改.bash_profile需要logout后重新登录才会起效,个人觉得你的系统应该是没有安装这个工具,你需要yuminstallnmap....2023-06-12 04:40:061
bash编程中"$1"是什么意思
bash里面awk命令中存在预留的 变量$1,它代表一条记录中的第一列数据,比如:echo "a b 10" |awk "{print $1}"打印出来的就是a,这条记录由空格(默认字段分隔符)分成了3列(或者说3个字段),$1就是第一个字段。同理$2, $3分别是 b、10.另一个变量 $0 代表整个记录。2023-06-12 04:41:181
bash的基本功能-bash基本功能-历史命令与补全
1.历史命令 history [选项][历史命令保存文件] 选项: -c: 清空历史命令 -w:把缓存中的历史命令写入历史命令保存文件 ~/.bash_history 一般是正常退出后把历史命令保存在 /.bash_history,使用-w之后强制马上保存到 /.bash_history 历史命令默认会保存1000条,可以在环境变量配置文件/etc/profile中进行修改 历史命令的调用 使用上,下箭头调用以前的历史命令 使用“!n”重复执行第n条历史命令 使用“!!”重复执行上一条命令 使用“!字串”重复执行最后一条以该字串开头的命令 2.命令与文件补全 在bash中,命令与文件补全是非常方便与常用的功能,我们只要在输入命令或文件时,按“Tab”键就会自动进行补全2023-06-12 04:41:251
linux中 . .bash_profile是什么意思
相当于source .bash_profile,就是让里面的设置生效2023-06-12 04:41:413
linux环境变量配置
Shell变量有局部变量、环境变量之分。局部变量就是指在某个Shell中生效的变量,只在此次登录中有效。环境变量通常又称“全局变量”,虽然在Shell中变量默认就是全局的,但是为了让子Shall继承当前Shell的变量,需要使用export内建命令将其导出为环境变量。 按变量的生存周期划分: 永久的:需要修改配置文件,变量永久生效。 临时的:使用export命令声明即可,变量在关闭shell时失效。 在配置永久的环境变量时,又可以按照作用范围分为: 用户环境变量 系统环境变量。 系统环境变量对所有系统用户都有效,用户环境变量仅仅对当前的用户有效。 全局(公有)配置,不管是哪个用户,登录时都会读取该文件。 它也是全局(公有)的 bash执行时,不管是何种方式,都会读取此文件。 不要轻易修改此文件 用户环境变量通常被存储在下面的文件中: 若bash是以login方式执行时,读取 ~/.bash_profile ,若它不存在,则读取 ~/.bash_login ,若前两者不存在,读取 ~/.profile 。 若bash是以login方式执行时,读取 ~/.bash_profile ,若它不存,则读取 ~/.bash_login ,若前两者不存在,读取 ~/.profile 。 只有bash是以login形式执行时,才会读取.bash_profile,Unbutu默认没有此文件,可新建。 通常该配置文件还会配置成去读取 ~/.bashrc 。 当bash是以non-login形式执行时,读取此文件。若是以login形式执行,则不会读取此文件。 ~/.bash_profile 是交互式、login 方式进入 bash 运行的 ~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。 如想将一个路径加入到环境变量(例如$PATH)中,可以像下面这样做(修改/etc/profile): 你可以自己加上指定的路径,中间用冒号隔开。环境变量更改后,在用户下次登陆时生效,如果想立刻生效,则可执行下面的语句: bash会在用户登录时,读取下列四个环境配置文件: 全局环境变量设置文件: /etc/profile 、 /etc/bashrc 。 用户环境变量设置文件: ~/.bash_profile 、 ~/.bashrc 。 读取顺序:① /etc/profile 、② ~/.bash_profile 、③ ~/.bashrc 、④ /etc/bashrc 。 2 .bashrc 和 .bash_profile 的区别 .bash_profile 会用在登陆shell, .bashrc 使用在交互式非登陆 shell 。简单说来,它们的区别主要是 .bash_profile 是在你每次登录的时候执行的; .bashrc 是在你新开了一个命令行窗口时执行的。 当通过控制台进行登录(输入用户名和密码):在初始化命令行提示符的时候会执行.bash_profile 来配置你的shell环境。但是如果已经登录到机器,在Gnome或者是KDE也开了一个新的终端窗口(xterm),这时,.bashrc会在窗口命令行提示符出现前被执行。当你在终端敲入/bin/bash时.bashrc也会在这个新的bash实例启动的时候执行。 所以对于我自己,我写了一个 .pathrc 文件 然后在 .bashrc , .zshrc , .bash_profile , /etc/profile 中都加了 下面是 .pathrc 文件 现在,当你从控制台登录机器的时候,.bashrc就会被执行。 四、常用的环境变量 BASH Bash Shell的全路径 CDPATH 用于快速进入某个目录。 PATH 决定了shell将到哪些目录中寻找命令或程序 HOME 当前用户主目录 HISTSIZE 历史记录数 LOGNAME 当前用户的登录名 HOSTNAME 指主机的名称 SHELL 当前用户Shell类型 LANGUGE 语言相关的环境变量,多语言可以修改此环境变量 MAIL 当前用户的邮件存放目录 PS1 基本提示符,对于root用户是#,对于普通用户是$ Reference [1] /etc/profile、/etc/bashrc、 /.bash_profile、 /.bashrc http://blog.chinaunix.net/uid-26435987-id-3400127.html [2] Linux如何修改env看到的环境变量? .bashrc和.bash_profile区别 http://blog.csdn.net/xifeijian/article/details/13355031 [3] linux环境变量,bashrc与bashprofile http://blog.sina.com.cn/s/blog_43e5ad4e0101ei43.html2023-06-12 04:41:481