bash shell
命令的记录功能:
bash shell老是记录上次登入shell时所执行的命令,这些命令都记录在.bash_history,而此次登入shell后所执行的命令都记录在内存中,当退出shell的时候,将此次登入shell后执行的命令写入.bash_history文件。(默承认以记忆1000个命令)
命令与文件名补全功能:
双击两次tab键就会自动补全文件名或命令。
命令别名设置功能:
例: alias lm='ls -al';那么以后运行lm,至关于执行 ls -al.
程序化脚本:
能够将要运行的命令集合都写在一个文件中,而后交给bash shell运行,这个文件就是shell脚本。
linux
shell的环境变量
当登陆进入linux系统,用户就会获得一个bash的应用程序,负责与linux系统进行交互,既然bash是一个应用程序,那么在bash运行以前,须要一些参数,而这些参数就是当前运行bash的环境变量,通常环境变量都使用大写,如PATH,MAIL,SHELL。shell
自定义变量
1.设定变量
myName=hujingwei //设定了一个值为"hujingwei"的myName变量
注:等号两边不能直接接空格,若变量内容有空格,可使用单引号或双引号将内容结合起来。
双引号:(特殊字符会保持原有的特性)
var="lang is $LANG"
echo $var //lang is en_US
单引号:(全部的特殊字符都将做为通常字符处理)
var='lang is $LANG'
echo $var //lang is $LANG
2.在一串指令中还须要其余指令提供信息,可以使用反单引号或$(指令)。以下:
version=$(uname -r)
echo $version //2.6.18-128.el5
3.能够经过export将自定义变量变成环境变量,供子程序使用。
export myName;
那么myName就会变为当前这个shell程序的环境变量,若是在这个程序中再启动一个shell程序,那么新启动的shell就是以前shell的子shell,那么这个子shell在初始化的时候,环境变量中就直接包含了myName变量。通常状况下,父程序自定义的变量,子程序是没法使用的,可是有了export,父程序定义的变量,子程序也可使用了。
4.取消变量
若是不想使用myName变量了,以下:
unset myName
在bash中,反单引号的意思是,反单引号内的命令先执行,例如:
ls -l `locate crontab`
locate指令能够列出全部文件的文件名,因此上面的命令就是先使用locate指令列出全部文件的文件名,而后再使用ls指令列出各个文件的权限。bash
若是想要查看bash的环境变量,就使用env、export命令便可。
set指令用于观察全部的变量(包含环境变量和自定义变量)。less
$自己也是一个变量,表明目前这个shell的进程代号,也就是PID。
?表明执行上个指令的回传值,若是执行成功,则会回传一个0值,若是执行后错误,则回传一个非0值。进程
当登陆进入linux并取得一个bash以后,当前bash就是一个独立的程序,接下来在这个bash底下下达的任何指令都是这个bash衍生出来的,那些被下达的指令就是子程序。crontab
命令的执行顺序:
1.以相对路径/绝对路径执行指令,例如[/bin/ls]或[./ls]
2.由alias找到该指令来执行
3.由bash内建的命令来执行
4.经过$PATH这个变量的顺序搜索到第一个指令来执行。内存
读取配置文件,如下命令是同样的:
source ~/.bashrc
. ~/.bashrcio
管道命令:
例: ls -al /etc|less
管道命令由"|"分割,后一个命令只能接收前一个命令执行成功时,本该打印在屏幕上的信息做为自身的输入数据,若是前一个命令执行失败,那么后一个命令的输入就为空。登录
撷取命令:cut、grep变量