Linux的命令都从哪儿定义

我是linux小白,有两个问题一直非常困扰我。
1、在linux里面执行的命令都是在哪里定义的,经常在网上查看一些问题的解决办法的时候,里面的命令在我的本地会报“command not found”的错误,我怎么添加这些命令,比如我想关掉apache,就会报这样的错误
sh-3.2# service httpd stop
sh: service: command not found
看网上大家的回答,感觉很多命令大家都是默认可以直接使用的,请问是否有通用配置文件,直接安装或者覆盖,这样大部分命令我本地就能直接使用呢?

2、我本地电脑的不同账户,能使用的命令是不一样的,尤其是root账户,我su过去之后,发现能用的命令特别的少,请问这是为什么呢
Linux的命令都从哪儿定义

求指点

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 6
xiaochong0302

很多非默认命令是需要安装相应的程序包的,比如你提到的httpd,在不同的发行版下面也可能叫apache.还有一些命令是自定义产生的,比如你提到的 ll => ls -al

1年前 评论

有时间你应该从头学一边linux,从整体上对它有一个大概的认识。

linux的命令,就相当于windows下的软件一样,你执行某个命令报不存在,就好比你win没有装这个软件一样,那么你只需要安装这个软件就好了。
第二个,那么比如你执行 curl ,linux是如何找到这个软件来执行的呢,linux有个变量 PATH 记录了一批目录,执行一个命令的时候,linux会去这些目录查找是否有这个名字的命令。

下面是我的PATH包含的目录示例(我的linux会从下面这些目录查找软件来执行):

[root@brad ~]# echo $PATH
/home/core/docker/shell:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/git/bin:/root/bin

第三个,一个linux系统,默认安装了哪些软件,是和你使用哪个发行版的linux、哪个版本,有紧密关系的(没有默认安装也没关系,自己装就好了),比如我比较熟悉的CentOS7,默认就安装了 curl、yum、tar等命令

1年前 评论
Helen2022 (楼主) 1年前
Helen2022 (楼主) 1年前

linux 一切皆文件。 bin 翻译 “二进制” ,即 “可执行文件” ,/bin 一般普通可执行程序;/sbin system bin 多为系统管理程序和服务程序。 像 service 执行文件在/sbin/,/usr/sbin/

- 用户可执行文件:/bin、/usr/bin、/usr/local/bin
- 系统可执行文件:/sbin、/usr/sbin、/usr/local/sbin

/etc/profile 是环境变量文件,和 window 一样,这些 bin 目录都在环境变量的 PATH 里。

1年前 评论
php_yt (作者) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!