ubuntu学习-shell命令和PATH环境变量简单学习

本文介绍了Ubuntu系统中shell的概念及如何通过PATH环境变量来执行程序。包括shell的工作原理、设置环境变量的方法及其应用场景。

ubuntu学习-shell命令和PATH环境变量简单学习

参考视频资料

一、shell是什么

shell就是一个应用程序,我们可以通过键盘、串口给它发送命令,回车后它就会去执行这些命令。

ls -l命令例:

  1. 接收键盘数据并回显

    比如:我们使用键盘给shell程序发送字母l,它收到之后会在屏幕上显示出来

  2. 解析输入的字符串,寻找程序,执行程序:

    a. shell会解析字符串,这些字符串用空格分为好几部分

    ​ 第1部分就是程序名、命令名

    ​ 其它部分是参数

    b. shell回去寻找该程序,去哪里找?去PATH环境变量所指示的位置找(同样可以指定绝对路径、相对路径,shell就会直接去这些路径找到程序)

    c. 找到程序后,会启动该程序,并传入参数

环境变量查询:

执行echo $PATH 命令,shell就是去以下逐个目录寻找程序

在这里插入图片描述

执行env命令,可以看到环境变量和边境变量的值

在这里插入图片描述

二、设置环境变量

用一个应用程序来帮助学习。先创建一个hello.c文件,内容:

#include <stdio.h>

int main(int argc, char **argv)
{
	if(argc >= 2)
		printf("Hello,%s!\n",argv[1]);
	else
		printf("Hello,world!\n");
	return 0;
}

将这个文件放到桌面上

在这里插入图片描述

打开终端,进入桌面

在这里插入图片描述

将hello.c文件编译为一个名为“hello”的可执行文件,gcc -o hello hello.c

在这里插入图片描述

此时直接输入hello是无法执行的,

在这里插入图片描述

原因是在PATH环境变量路径中没有该程序,因此shell找不到该程序

在这里插入图片描述

如何执行该程序呢?有两种启动方法:

1.使用相对路径启动

在桌面的目录下输入./hello直接执行该程序

在这里插入图片描述

2.使用绝对路径启动

在任意目录下输入/home/book/Desktop/hello执行该程序

在这里插入图片描述

例如此程序执行/home/book/Desktop/hello zhangsan命令时是如何执行的呢?

输入了两个参数,第一个参数:/home/book/Desktop/hello,第二个参数:zhangsan

此时:argc = 2 argv[0] = /home/book/Desktop/hello argv[1] = zhangsan

因此会执行:Hello,zhangsan!

但是这样启动每次都要输入相对路径或者绝对路径,要想在任何目录下输入一条指令就能够执行该程序,就需要将此程序添加到环境变量中,这时shell就能够自动找寻到这个程序并执行了。就像执行ls命令一样。有三种环境变量方法:

1.临时设置环境变量(只对当前终端有效)

hello文件在/home/book/Desktop路径下,因此在终端执行指令export PATH=$PATH:/home/book/Desktop,之后在此终端直接输入hello就可以执行程序了

在这里插入图片描述

2.永久设置环境变量方法(只对当前用户有效)

修改~/.bashrc,在行尾添加或修改:export PATH=$PATH:/home/book/Desktop

执行指令gedit ~/.bashrc,在bashrc的最后一行添加上述路径,保存关闭。然后重启系统或重新登陆即可。

在这里插入图片描述

此时就可以直接执行hello指令了

在这里插入图片描述

3.永久设置环境变量方法(对所有用户有效)

执行sudo gedit /etc/environment并输入密码,在PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"的最后加上程序的路径,保存关闭。然后重启系统或重新登陆即可。

在这里插入图片描述

注:我们知道shell是echo $PATH的环境目录中去找寻程序,因此也可以不去配置环境变量,只是把hello程序复制到PATH下的一个目录即可

例如:把hello程序拷贝到环境变量中的一个路径/usr/local/bin,命名为hello2,在桌面路径下执行sudo cp hello /usr/local/bin/hello2,输入密码。此时直接输入指令hello2即可执行hello程序

在这里插入图片描述

<think> 首先,用户查询是:“我想查找在Ubuntu系统中将CMake加入PATH环境变量的方法”。系统指令要求我生成相关问题,并使用中文回答。 回顾引用内容: - 引用[1]:提到在Linux中添加目录到PATH变量有两种方法:暂时的永久的。 - 引用[2]:关于OpenCV的编译,使用g++CMake,但没有直接关于将CMake加入PATH的信息。 - 引用[3]:关于Qt的安装配置。 - 引用[4]:在Qt项目中包含第三方库的路径。 用户明确说:“上述引用仅供参考,并不是用户真正的需求”,所以我不能直接依赖这些引用。用户最后一次问题是关于将CMake加入PATH环境变量的方法。 我的任务是根据用户查询提供清晰的回答,并生成相关问题。回答结构要清晰,确保真实可靠。 关键点:将CMake加入PATH环境变量。CMake是一个构建工具,通常安装后其可执行文件路径需要添加到PATH中,以便在终端中直接运行`cmake`命令。 在Ubuntu系统中,添加目录到PATH的方法: 1. 暂时的:通过export命令在当前终端会话中添加。 2. 永久的:通过修改配置文件如`.bashrc`、`.profile`或`.bash_profile`。 CMake通常安装在`/usr/bin`或用户自定义路径。如果用户安装了CMake,但`cmake`命令不可用,说明其路径不在PATH中。 标准步骤: - 首先,确认CMake的安装路径。例如,运行`which cmake`或`whereis cmake`来查找。如果未安装,用户需要先安装CMake。 - 然后,添加路径到PATH。 从引用[1],它提到添加目录到PATH的两种方法:暂时的永久的。 回答结构: - 解释什么是PATH环境变量- 提供添加目录到PATH的方法。 - 具体到CMake:假设用户已经安装了CMake,但路径未加入PATH- 使用中文。 生成相关问题:在回答末尾添加相关问题,如系统指令所示。 可能的步骤: 1. **检查CMake是否已安装**:运行`cmake --version`。如果命令未找到,说明需安装或添加路径。 2. **查找CMake可执行文件路径**:使用`whereis cmake`或`find`命令。 3. **添加路径到PATH**: - 暂时的:`export PATH=$PATH:/path/to/cmake/directory` - 永久的:编辑`~/.bashrc`文件,添加`export PATH=$PATH:/path/to/cmake/directory`,然后运行`source ~/.bashrc` 确保语法正确:在回答中,数学表达式用`$...$`,但这里可能不涉及数学,所以不需要。 生成相关问题示例: 1. 如何安装CMake在Ubuntu上? 2. 什么是环境变量PATH的作用? 3. 如何永久添加路径到PATH在其他Linux发行版? 最终回答框架: - 引言:解释PATH环境变量- 步骤:逐步指导如何添加CMake路径。 - 结尾:生成相关问题。 </think> ### 在Ubuntu系统中将CMake加入PATH环境变量的方法 在Ubuntu系统中,环境变量`PATH`决定了终端可以搜索可执行文件的目录列表。如果您安装了CMake(一个常用的构建工具),但无法直接在终端运行`cmake`命令(例如提示“command not found”),可能是因为其安装路径未添加到`PATH`中。下面我将逐步引导您完成添加过程,分为两种方法:**暂时添加(仅当前会话有效)****永久添加(重启后仍有效)**。操作前,请确保您已安装CMake(如果未安装,可参考相关问题1)。 #### 步骤1: 确认CMake安装路径 在添加之前,您需要找到CMake可执行文件的路径。CMake通常安装在系统默认目录(如`/usr/bin`)或自定义路径(如果您编译安装)。运行以下命令查找: ```bash # 查找CMake路径(常见位置) whereis cmake # 或使用find命令更全面搜索(可能需要sudo) sudo find / -name cmake 2>/dev/null | grep '/bin/cmake' ``` 输出示例(假设路径为`/usr/local/bin/cmake`或`/opt/cmake/bin/cmake`): ``` cmake: /usr/bin/cmake ``` - 如果输出为空,说明CMake未安装,您可能需要先安装它(参考相关问题1)。 - 记录路径的父目录(例如,如果路径是`/usr/bin/cmake`,则目录为`/usr/bin`)。 #### 步骤2: 添加路径到PATH变量 根据您的需求选择暂时或永久方法: - **暂时添加(适合临时使用)**: 使用`export`命令在当前终端会话中添加路径(会话关闭后失效)。假设CMake路径为`/usr/bin`(替换为您实际的目录): ```bash export PATH=$PATH:/usr/bin ``` 验证是否生效: ```bash echo $PATH # 检查新路径是否在输出中 cmake --version # 确认CMake命令可用 ``` - **永久添加(推荐)**: 通过修改用户配置文件(如`~/.bashrc`)使更改永久生效: 1. 使用文本编辑器(如nano或vim)打开配置文件: ```bash nano ~/.bashrc ``` 2. 在文件末尾添加一行(确保路径正确): ```bash export PATH=$PATH:/usr/bin # 替换为您的CMake目录 ``` 3. 保存并退出(nano中按`Ctrl+O`保存,`Ctrl+X`退出)。 4. 应用更改: ```bash source ~/.bashrc ``` 5. 验证: ```bash echo $PATH cmake --version ``` - 如果系统使用其他shell(如zsh),配置文件可能为`~/.zshrc`,方法类似[^1]。 #### 注意事项 - **安全性**:确保添加的路径可信,避免恶意脚本执行。 - **权限问题**:普通用户可修改`~/.bashrc`;如需添加系统级路径(如对所有用户生效),编辑`/etc/environment`并添加路径(需sudo权限)。 - **路径冲突**:如果PATH中已有CMake路径(如默认`/usr/bin`),添加多余路径不会影响功能。 - **验证安装**:通过`cmake --version`确认版本。 通过以上步骤,您应该能在Ubuntu系统中成功将CMake加入PATH环境变量。如果遇到问题,可从引用中借鉴环境变量管理的基本原则[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

studyingdda

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值