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

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

目录

  • ubuntu学习-shell命令和PATH环境变量简单学习
    • 一、shell是什么
    • 二、设置环境变量

参考视频资料

一、shell是什么

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

ls -l命令例:

  1. 接收键盘数据并回显

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

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

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

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

    ​ 其它部分是参数

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

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

环境变量查询:

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

ubuntu学习-shell命令和PATH环境变量简单学习_第1张图片

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

ubuntu学习-shell命令和PATH环境变量简单学习_第2张图片

二、设置环境变量

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

#include 

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

将这个文件放到桌面上

ubuntu学习-shell命令和PATH环境变量简单学习_第3张图片

打开终端,进入桌面

ubuntu学习-shell命令和PATH环境变量简单学习_第4张图片

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

ubuntu学习-shell命令和PATH环境变量简单学习_第5张图片

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

ubuntu学习-shell命令和PATH环境变量简单学习_第6张图片

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

ubuntu学习-shell命令和PATH环境变量简单学习_第7张图片

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

1.使用相对路径启动

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

ubuntu学习-shell命令和PATH环境变量简单学习_第8张图片

2.使用绝对路径启动

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

ubuntu学习-shell命令和PATH环境变量简单学习_第9张图片

例如此程序执行/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就可以执行程序了

ubuntu学习-shell命令和PATH环境变量简单学习_第10张图片

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

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

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

ubuntu学习-shell命令和PATH环境变量简单学习_第11张图片

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

ubuntu学习-shell命令和PATH环境变量简单学习_第12张图片

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

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

ubuntu学习-shell命令和PATH环境变量简单学习_第13张图片

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

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

ubuntu学习-shell命令和PATH环境变量简单学习_第14张图片

你可能感兴趣的:(嵌入式,ubuntu,学习,linux)