shell命令解析器的功能说明

一、什么是shell?

 

shell就是一个应用程序,我们从键盘上给shell发送命令,回车之后shell就会去执行这些命令。

shell可以接收键盘上的输入数据并回显,当我们使用键盘给shell程序发送回车时,shell就知道字符输入结束了,它会解析输入的字符串,把这些字符串用空格分为几个部分,我们以ls   -h为例,第1部分就是程序名,其它部分就是参数,然后寻找程序然后执行程序。那么shell会去哪里找程序呢?shell会去PATH环境变量所指示的位置找。我们也可以指定绝对、相对路径,shell就会直接去这些路径找到程序,找到程序后,会启动该程序,并传入参数。

我们输入env命令

等号左边都是环境变量,等号右边是环境变量的值

  我们可以用echo $PATH来显示某个环境变量,里面都是各个字符串,各个字符串都是用冒号隔开,shell程序就是去这些目录里面逐个寻找看看有没有ls这个程序名,找到之后就去执行它。

也可以自己指定绝对路径和相对路径,这样shell程序就不会去PATH环境变量里面寻找。

比如我们有这样一个hello.c文件在桌面上,文件内容如下:

我们编译之后

 

 

直接输入hello是不会执行程序的,因为既没有包含相对路径也没有包含绝对路径,系统就会默认从环境变量所指示的位置里面找这个hello程序,所以提示找不到,那么我们应该怎么去设置环境变量呢?后面会讲。我们可以复制一个c文件到该环境变量的路径里面,这样就可以在环境变量里面找到该文件。

 

 

 采用相对路径执行应用程序

 采用绝对路径执行应用程序

我们输入的字符串通过空格隔开,shell会根据第一个字符串来寻找应用程序,然后把所有的字符串都传给hello程序里面的main函数。argc就是记录字符串的串数,第一个参数就会保存在argv[0]里面,第二个参数就会保存在argv[1]里面。

 

 如何设置环境变量?

临时设置:

在终端执行以下命令,这只对当前终端有效

export PATH=$PATH:/home/lxm/桌面,如果路径输入不完整就会失败。

输入 完整路径才可以

 

退出当前终端就失效了

 永久设置的方法:

方法一:

修改~/.bashrc,在行尾添加或修改:export PATH=$PATH:/home/book/桌面,然后重启终端

 

重启终端

方法二:

修改/etc/environment,比如:sudo gedit /etc/environment,然后添加下行红色部分:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值