linux当中的命令可以是内嵌在shel1中
命令的本质是程序或者可执行脚本(命令的集合)
一定要清楚
内部外部
内部是系统自带的内嵌进shell当中外部是后天安装,或者自行编写的命令
内部要大于外部
内部系统内存外部是放在硬盘当中
绝对路径>别名>内部>hash(缓存执行过外部命令后,外部命令的路径会被缓存下来)>外部之后学习的脚本外部命令
windows中后台安装的程序一定要有一个.exe文件外部命令也一定要有一个绿色可执行的文件
变量可以变化的量
第一次我定义a=1第二次再定义a=2那么这个a就是变量
系统去执行命令―如果是内部命令在内存可以直接运行,如果第一次执行一个外部命令
ls先去/usr/local/sbin里面寻找如果找到就直接执行―如果找不到就下一个文件夹/usr/local/bin如此继续直到$PATH 里的路径找完,
如果在$PATH找不到对应的1s文件会如何?提示没有这个命令
$PATH这个变量定义了命令的文件存放的位置
系统自带的变量变量就是可以修改
$PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
$PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin: /mnt
变量的范围
bash进入有一个新的bash环境―你可以理解为﹑相当于在windows 中多开了一个桌面
系统定义的变量一般全局变量
全局变量简单只要在我的系统里就生效,无论你在哪个bash中
bash程序新打开
局部变量只对当前的bash环境生效
[root@localhost bin]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /bin/tcsh /bin/csh
在 shell 脚本,#!
告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 解释器。
#!
决定了脚本可以像一个独立的可执行文件一样执行,而不用在终端之前输入sh
, bash
, python
, php
等。
# 以下两种方式都可以指定 shell 解释器为 bash,第二种方式更好 #!/bin/bash #!/usr/bin/env bash
注释可以说明你的代码是什么作用,以及为什么这样写。
shell 语法中,注释是特殊的语句,会被 shell 解释器忽略。
#
开头,到行尾结束。被注释的语句在脚本运行时是不会被执行。:< 开头,到
EOF` 结束。