linux环境变量和软件安装路径 小结

2023-11-04

linux环境变量和软件安装路径 小结

1. 背景:

  记得刚开始接触linux开发环境的时候,安装虚拟机,配置环境都花了很长时间,那时候看到linux全都都是命令行,搞的晕头转向,特别是啃着那本鸟叔的书,立马想放弃,都是命令,简直痛苦。给学习linux的新人一个小小的建议,不要一上来就学命令行,不要一上来就敲命令行,更不要一上来就记命令行。着绝对是从入门到放弃的做法。只要知道简单常用命令行就可以了。可以上来了解下linux结构,然后找小demo练手。哪些命令后面用到就记得了,不记得还有百度字典。又啰嗦了。。。
  言归正传,Linux玩了一段时间,虽然现在工作中开发的程序都是在linux中执行,但是更多的是在windows上编码,然后再linux上编译,安装部署。所以从这方面说我还是个菜鸟。只是业余时间自己喜欢琢磨些软件,需要学习linux环境。这之中我发现【Linux环境变量和软件安装路径】是比较简单且重要的知识,之前这里面遇到问题一直一知半解,每次百度下找个命令能解决问题就不闻不问了。今天终于下决心要和这部分的恩怨来一个了断了。

2. Linux环境变量设置:

1. 对所有用户永久生效

  在/etc/profile文件中添加变量,该变量对所有linux用户永久生效,想立马生效需执行代码:
  source /etc/profile

2. 对单一用户永久生效

  在用户目录下的.bash_profile文件中添加变量,改变量对单一linux用户永久生效,想立马生效需执行代码:
   source .bash_profile

3. 当前shell(BASH)临时有效

  在当前shell命令行中直接使用[export变量名=变量值]定义变量,只对当前shell或其子shell有效,shell关闭变量失效
  export PATH=/home/xxx/node/bin:$PATH

4. 查看环境变量:export

3. 软件 linux中软件安装路径

1. 几个重要的文件路径:/bin , /usr/bin , /usr/local/bin的区别:
  • /bin 是所有用户都可以访问并执行的可执行程序。包括超级用户及一般用户。
  • /usr/bin 是系统安装时自带的一些可执行程序。即系统程序,轻易不要动里面的东西,系统容易崩溃。
  • /usr/local/bin 是用户自行编译安装时默认的可执行程序的安装位置,这个不小心误删,影响不大。
2. linux如何找到指令的可执行程序?
  • 我们知道,正常情况下输入完整的目录命令程序是可以执行的。但是Linux中很多命令是不加地址,直接使用可执行程序,Linux系统是如何做到的。
  • 输入命令的时候,linux会查找PATH中记录的路径,在这些路径中查找此时输入的命令。其中目录与目录之间用冒号隔开。
  • 可通过which 命令来查找到命令的路径。
  • 一般情况下,开发会将程序安装在一个地方 如:/opt/ ,然后使用建然后在/usr/local/bin中建立软连接,PATH中添加/usr/local/bin,便可以执行该程序。
3. 软连接
  • linux中软连接相当于windows中快捷方式,文件和文件夹都可创建软连接。
  • 命令: ln -s [dir1] [dir2] // dir1是真实的文件夹,dir2是dir1的软链接。
      软链接可以理解为,dir2就是dir1的快捷方式,进入了dir2,就会自动进入dir1。
  • 删除软连接:
     unlink(最保险的方式)
      unlink 链接源 原文件或目录
      unlink xxx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux环境变量和软件安装路径 小结 的相关文章

  • ansible 重新启动 2.1.1.0 失败

    我一直在尝试创建一个非常简单的 Ansible 剧本 它将重新启动服务器并等待它回来 我过去在 Ansible 1 9 上有一个可以运行的 但我最近升级到 2 1 1 0 并且失败了 我正在重新启动的主机名为 idm IP 为 192 16
  • 在 Mac OS X 上构建 Linux 内核

    我正在做一个修改Linux内核的项目 我有一台桌面 Linux 机器 在上面构建内核没有问题 不过 我要去旅行 我想在途中工作 我只有一台 MacBook 当我尝试构建 Linux 内核时 它抱怨说elf h was not found 我
  • 如何修复“iptables:没有该名称的链/目标/匹配”?

    我在我的 Linux 嵌入式系统上构建并安装了 iptables 如果我列出所有规则 则一切正常 iptables list Chain INPUT policy ACCEPT target prot opt source destinat
  • 拆分字符串以仅获取前 5 个字符

    我想去那个地点 var log src ap kernelmodule 10 001 100 但看起来我的代码必须处理 ap kernelmodule 10 002 100 ap kernelmodule 10 003 101 等 我想使用
  • bluetoothctl 到 hcitool 等效命令

    在 Linux 中 我曾经使用 hidd connect mmac 来连接 BT 设备 但自 Bluez5 以来 这种情况已经消失了 我可以使用 bluetoothctl 手动建立连接 但我需要从我的应用程序使用这些命令 并且使用 blue
  • 为什么我收到“无法进行二进制日志记录”的信息。在我的 MySQL 服务器上?

    当我今天启动 MySQL 服务器并尝试使用以下命令进行一些更改时用于 MySQL 的 Toad http www quest com toad for mysql 我收到此消息 MySQL 数据库错误 无法进行二进制日志记录 消息 交易级别
  • Elasticsearch 无法写入日志文件

    我想激活 elasticsearch 的日志 当我运行 elasticsearch 二进制文件时 我意识到我在日志记录方面遇到问题 无法加载配置 这是输出 sudo usr share elasticsearch bin elasticse
  • 是否可以在Linux上将C转换为asm而不链接libc?

    测试平台为Linux 32位 但也欢迎 Windows 32 位上的某些解决方案 这是一个c代码片段 int a 0 printf d n a 如果我使用 gcc 生成汇编代码 gcc S test c 然后我会得到 movl 0 28 e
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内
  • 无法加载 JavaHL 库。- linux/eclipse

    在尝试安装 Subversion 插件时 当 Eclipse 启动时出现此错误 Failed to load JavaHL Library These are the errors that were encountered no libs
  • 如何通过替换为空页映射来取消映射 mmap 文件

    Linux 用户空间有没有办法用空页面 映射自 dev null 或者可能是一个空页面 重复映射到从文件映射的页面的顶部 对于上下文 我想找到这个 JDK bug 的修复 https bugs openjdk java net browse
  • 如何检测并找出程序是否陷入死锁?

    这是一道面试题 如何检测并确定程序是否陷入死锁 是否有一些工具可用于在 Linux Unix 系统上执行此操作 我的想法 如果程序没有任何进展并且其状态为运行 则为死锁 但是 其他原因也可能导致此问题 开源工具有valgrind halgr
  • 使用 grep 查找包含所有搜索字符串的行

    我有一个文件 其中包含很多与此类似的行 id 2796 some model Profile message type MODEL SAVE fields account 14 address null modification times
  • 从 csv 文件中删除特定列,保持输出上的相同结构[重复]

    这个问题在这里已经有答案了 我想删除第 3 列并在输出文件中保留相同的结构 输入文件 12 10 10 10 10 1 12 23 1 45 6 7 11 2 33 45 1 2 1 2 34 5 6 I tried awk F 3 fil
  • 如何查明CONFIG_FANOTIFY_ACCESS_PERMISSIONS是否启用?

    我想利用fanotify 7 http man7 org linux man pages man7 fanotify 7 html我遇到的问题是在某些内核上CONFIG FANOTIFY ACCESS PERMISSIONS不起作用 虽然C
  • 在哪里可以找到并安装 pygame 的依赖项?

    我对 Linux 比较陌生 正在尝试安装 python 的 pygame 开发环境 当我运行 setup py 时 它说我需要安装以下依赖项 我找到并安装了其中之一 SDL 然而 其他人则更加难以捉摸 Hunting dependencie
  • Linux 内核标识符中前导和尾随下划线的含义是什么?

    我不断遇到一些小约定 比如 KERNEL Are the 在这种情况下 是内核开发人员使用的命名约定 还是以这种方式命名宏的语法特定原因 整个代码中有很多这样的例子 例如 某些函数和变量以 甚至 这有什么具体原因吗 它似乎被广泛使用 我只需
  • CentOS:无法安装 Chromium 浏览器

    我正在尝试在 centOS 6 i 中安装 chromium 以 root 用户身份运行以下命令 cd etc yum repos d wget http repos fedorapeople org repos spot chromium
  • Linux:在文件保存时触发 Shell 命令

    我想在修改文件时自动触发 shell 命令 我认为这可以通过注册 inotify 挂钩并调用来在代码中完成system 但是是否有更高级别的 bash 命令可以完成此任务 尝试 inotify 工具 我在复制链接时遇到问题 抱歉 但 Git
  • 安装J语言的JQt IDE,出现错误

    我一直按照这里的说明进行操作 http code jsoftware com wiki System Installation Linux http code jsoftware com wiki System Installation L

随机推荐

  • Visual C++ 运行窗口一闪而过的解决方法

    本文简单介绍了Visual C 编写运行程序的步骤 解决Visual C 2010开发环境中运行程序时运行窗口一闪而过的问题 总结了 断点调试 F5 方法 开始执行 Ctrl F5 方法 调试工具条方法 暂停语句或者输入等待方法 共4种方法
  • jvisualvm远程监控centos上虚拟机的状态

    要使用jvisualvm监视远程主机需要先再远程主机上运行jstatd 1 在 JAVA HOME bin目录下新建jstatd all policy文件 内容如下 grant codebase file java home lib too
  • 符号优先级误区一:移位运算符优先级比加减运算符低

    目录 移位运算符优先级比加减运算符低 误区 发现问题 实际结果 举例子证实 代码如下 实际结果 移位运算符优先级比加减运算符低 这是我在做二分查找时发现的问题 误区 发现问题 直接除2 int mid start end start 2 移
  • message from server: “Host is not allowed to connect to this MySQL server“问题的解决办法

    数据库安装完成后 默认是不能远程登陆的 只能在本地用localhost 或者127 0 0 1登录访问 如果需要远程登录 则需要修改mysql设置 具体修改方式 1 本地登录mysql root localhost mysql u root
  • Java的网络编程

    网络编程是指编写运行在多个设备 计算机 的程序 这些设备都通过网络连接起来 java net 包中 J2SE 的 API 包含有类和接口 它们提供低层次的通信细节 你可以直接使用这些类和接口 来专注于解决问题 而不用关注通信细节 java
  • react生命周期---参考学习20220726

    react生命周期笔记 笔记 react生命周期 链接 react生命周期 https projects wojtekmaj pl react lifecycle methods diagram 1 挂载时 挂载时调用四个生命周期函数 2
  • Nginx高可用实战

    来源 jingfengjiaoyu Nginx的特点 跨平台 Nginx 可以在大多数 Unix like OS编译运行 而且也有Windows的移植版本 配置异常简单 非常容易上手 配置风格跟程序开发一样 神一般的配置 非阻塞 高并发连接
  • [QT编程系列-42]: QT定时器

    目录 第1章 QT下的定时器 1 1 主要的对象 1 2 QTTimer定时的特点 1 3 QT高精度定时器QElapsedTimer 计时 第2章 Windows操作系统下的高性能定时器 2 1 时钟分辨率 2 2 两种来实现高性能定时器
  • 使用阿里云日志服务来分析日志

    随着云服务技术越来越成熟 作为一枚运维 不得不感慨云计算的发展对我的职业生涯起了积极推动的作用 一方面我可以通过云服务来提高我的工作效率 另一方面我节省了更多时间来学习 在提高我专业度的同时 个人能力也越来越强 在此我就以阿里云日志服务 给
  • μCOS-II系统之时间管理函数OSTimeDlyHMSM()

    上次学习了OSTimeDly 函数 了解了OSTimeDly 基本应用 同时 COS II还提供了另一个系统延时函数OSTimeDlyHMSM 函数 下面来说说这个函数的基本应用 这个函数是以小时 H 分 M 秒 S 和毫秒 m 四个参数来
  • 二分查找算法c语言函数,BinarySearch 经典二分查找算法

    前言 二分查找算是最经典也最入门的算法了 大一新生刚学C语言就开始写 但是看似简单的二分算法 想要考虑周全写得完美也是要费点功夫 比如java库里的二分查找 一个溢出的bug还存在了很久 更有号称90 程序员写不出无BUG的二分查找程序 夸
  • 亲测有效!帮你更方便更舒服使用ubuntu20.04!!!

    今天要记录的是如何更舒服的使用ubuntu20 04 全部内容就在上面这张图里 包括三方面 1 ubuntu美化 2 ubuntu扩展 3 必备软件 1 ubuntu美化 这部分内容可以直接参考 这位大佬 讲的很详细也很清楚 需要做一点补充
  • 【JVM 内存结构

    内存结构 前言 简介 程序计数器 定义 作用 特点 示例 应用场景 主页传送门 传送 前言 Java 虚拟机的内存空间由 堆 栈 方法区 程序计数器和本地方法栈五部分组成 简介 JVM Java Virtual Machine 内存结构包括
  • 异常相关面试题

    1 java中的异常继承体系及常见运行时异常 Throwable类是所有异常或错误的超类 它有两个子类 Error和Exception 分别表示错误和异常 其中异常Exception 分为运行时异常 RuntimeException 和编译
  • js合并数组对象(将数组中具有相同属性对象合并到一起,组成一个新的数组)

    一 根据数组对象中某一key值 合并相同key值的字段 到同一个数组对象中 组成新的数组 1 原数组 var array id 1 name Alice id 2 name Bob id 1 age 25 id 3 name Charlie
  • 机器学习 | Sklearn中的朴素贝叶斯全解

    前期文章介绍了朴素贝叶斯理论 掌握理论后如何去使用它 是数据挖掘工作者需要掌握的实操技能 下面来看看Sklearn中都有哪些朴素贝叶斯 朴素贝叶斯是运用训练数据学习联合概率分布 及
  • uniapp微信小程序实现对H5的全屏适配(@莫成尘)

    复制代码您将看到和一下截图一样的效果 我们将适配全屏至正常h5下的所以页面大小 您再此处将依然使用rpx作为开发单位
  • Linux网络编程 - 基于TCP的服务器端/客户端(1)

    一 理解 TCP 和 UDP 根据数据传输方式的不同 基于网络传输协议的套接字一般分为TCP套接字和UDP套接字 因为TCP是面向连接的 因此又称为基于流 stream 的套接字 TCP Transmission Control Proto
  • Android recyclerView只显示一条数据

    recyclerView的数据集合里明明很多条数据 为什么只显示了一条数据 代码里一顿debug过后 还去翻onBindViewHolder的注释文档 你是不是还是死活找不到原因 骚年 该扇自己耳光了 把item的高度设置成了match p
  • linux环境变量和软件安装路径 小结

    linux环境变量和软件安装路径 小结 目录 linux环境变量和软件安装路径 小结 1 背景 2 Linux环境变量设置 1 对所有用户永久生效 2 对单一用户永久生效 3 当前shell BASH 临时有效 4 查看环境变量 expor