Linux的命令都从哪儿定义
我是linux小白,有两个问题一直非常困扰我。
1、在linux里面执行的命令都是在哪里定义的,经常在网上查看一些问题的解决办法的时候,里面的命令在我的本地会报“command not found”的错误,我怎么添加这些命令,比如我想关掉apache,就会报这样的错误
sh-3.2# service httpd stop
sh: service: command not found
看网上大家的回答,感觉很多命令大家都是默认可以直接使用的,请问是否有通用配置文件,直接安装或者覆盖,这样大部分命令我本地就能直接使用呢?
2、我本地电脑的不同账户,能使用的命令是不一样的,尤其是root账户,我su过去之后,发现能用的命令特别的少,请问这是为什么呢
求指点
很多非默认命令是需要安装相应的程序包的,比如你提到的httpd,在不同的发行版下面也可能叫apache.还有一些命令是自定义产生的,比如你提到的 ll => ls -al
有时间你应该从头学一边linux,从整体上对它有一个大概的认识。
linux的命令,就相当于windows下的软件一样,你执行某个命令报不存在,就好比你win没有装这个软件一样,那么你只需要安装这个软件就好了。
第二个,那么比如你执行 curl ,linux是如何找到这个软件来执行的呢,linux有个变量 PATH 记录了一批目录,执行一个命令的时候,linux会去这些目录查找是否有这个名字的命令。
下面是我的PATH包含的目录示例(我的linux会从下面这些目录查找软件来执行):
第三个,一个linux系统,默认安装了哪些软件,是和你使用哪个发行版的linux、哪个版本,有紧密关系的(没有默认安装也没关系,自己装就好了),比如我比较熟悉的CentOS7,默认就安装了 curl、yum、tar等命令
linux 一切皆文件。 bin 翻译 “二进制” ,即 “可执行文件” ,/bin 一般普通可执行程序;/sbin system bin 多为系统管理程序和服务程序。 像 service 执行文件在/sbin/,/usr/sbin/
/etc/profile 是环境变量文件,和 window 一样,这些 bin 目录都在环境变量的 PATH 里。