1.脚本:指一种不经过编译而直接被解释和执行的程序,如JavaScript脚本。
2.shell脚本:一种以shell脚本语言编写并通过shell来解释和执行的程序,本质上还是一种文本文件。
3.shell:一种解释器,解释shell脚本,对shell脚本进行解释并执行shell脚本;Linux的外壳。Linux默认的shell:bash
Linux内核:kernel。
4.每个字符终端都有一个bash进程负责处理用户输入的命令。
编辑:
#!/bin/bash # 用于告诉系统指出,执行的shell脚本所用的shell类型,是bash
echo 'shell' #test.sh
echo "PID:$$" # $$:执行当前脚本的进程的进程号(PID)。
执行:
. test.sh或source test.sh #包含,引用
#bash进程不创建子进程,直接调用.sh脚本并执行脚本。
sudo chmod 777 ./test.sh
./test.sh或bash test.sh #bash作为父进程,创建子进程用来执行脚本.sh。
${PATH}:系统环境变量 ${HOME}:用户家目录 ${SHELL}:当前系统使用的shell类型
${PSI}:命令提示符 ${HOSTNAME}:主机名称 ${MAIL}:邮件存放路径
${LOGNAME}:登录用户名 ${USER}:当前用户账号名称
printenv:与当前进程相关的所有全局环境变量。
$0:当前脚本名称 $n(n=1,2,……):命令行第几个参数 $#:参数总个数
$*:保存所有参数信息 $?:前一个 命令或函数的 返回值。 $$:当前脚本进程号。
export 变量名:如,export x。让某个局部环境变量输出成为全局环境变量。
1)在字符终端下,利用export命令输出一个变量成为全局环境变量后,如果通过使用"./脚本名.sh"或者“bash 脚本名.sh”的方式来执行脚本,那么bash进程为脚本所创建的子进程就可使用该全局环境变量,然而子进程对全局环境变量的修改并不会影响父进程bash中的对应变量的值。
2)如果是以“. 脚本名.sh”或者“source 脚本名.sh”的方式来执行脚本,由于bash进程并没有创建额外的子进程去执行脚本,因此脚本对全局环境变量的修改实际就是对bash进程中对应变量的值的改变。
expr处理字符串、数值计算;bc功能更强大的处理数值计算。
expr substr 【字符串】 【起始位置(数字从1开始)】 截取长度:如,expr substr linuxShell 2 4
expr index 【字符串】 要定位的字符(字母):字符串定位。如,expr index "linuxShell" Shell
expr match [字符串1】 【字符串2】:从“字符串1”开始位置跟“字符串2”匹配比较,匹配成功返回字符串2的长度。不匹配否则返回值是0。
expr length 【字符串】:expr length linuxShell #10
echo varValue=$[ 10 + 100 ] #110,数值计算
``反引号 :如,echo `date`在字符终端命令行显示当前时间。shell把反引号内的字符串当做shell命令进行执行。
who :当前登录用户信息。
which:查看shell命令所在路径。如,which who
$HOME:用户家目录
【添加自定义目录到系统环境变量$PATH】:
在字符终端命令行,$PATH=$PATH:需添加的自定义目录路径 #如,$PATH=$PATH:/home/linux
修改命令行提示符:
cp ~/.bash_profile ~./bash_profileBackup #备份
`PSI="$LOGNAME@$HOSTNAME:$PWD>" #用户名@主机名:路径> ` >> ~/.bash_profile
`export PATH PSI` >> ~/.bash_profile
basicCalculator=`echo "scale=4;100/2" | bc `
echo ${basicCalculator}
echo "scale=4;100/2" | bc
补充:
其他资料:【环境变量与文件查找】