一、什么是shell
1、另外一个概念:kernel,内核的含义
概念1:shell是人与内核交互的程序接口,人通过程序接口发出指令,
通知内核kernel,让硬件进行作业。
2、shell的种类
/bin/sh :比较早的shell, bourne shell
/bin/bash bourne again shell 兼容了早期的/bin/sh,并且提供了独有的强大功能
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
二、/bin/bash的简介
大多数linux系统默认使用的就是/bin/bash这个shell.
1、命令记忆功能
登陆后,输入的命令暂时记录再内存中,
当关机后,存储在当前用户主目录的.bash_history
最多能记录1000条命令。
2、命令和文件名补全和查看功能
按tab键 一下或者两下
3、命令别名设置功能
alias lm='ls -la'
4、进行前后台切换 我们可以将前台正在执行的任务,切换到后台运行, 然后在前台再开启一个新的任务,这样就可以达到一个窗口多任务的目的
5、通配符功能
在bash中,也支持 * 这样的通配符,可以让用户更方便地来进行作业。如 ls ~/ha*
6、编程语言功能
shell支持编程语言的功能。如变量,分支,循环,数组等编程语法。
三、shell中的变量
shell的变量 与编程语言中的变量意义是一样的。
1、变量的命名规则
(1)可以使用英文字母,数字,下划线,同样的,数字不能开头
(2)变量名通常大写
(3)不能使用空格,其他符号
(4)不能使用bash中的关键字
2、使用规则
(1)没有类型区别,直接写变量名。
(2)使用"="赋值,但是"="前后不能有空格
(3)必须使用$连接变量名。
(4)方式两种:$变量名 ${变量名}
3、只读变量和删除变量
readonly [变量名]:不能再修改值(不能再次被赋值)
unset [变量名]: 只读变量不能被删除
4、环境变量
使用 env、export、set三个命令查看环境变量
PS1=[\u@\h \W]\$:命令提示字符变量(当我们每次回车执行某一个命令后,最后还是要显示命令提示字符的,这个时候就会读取 变量PS1,然后按照设置的格式进行显示)
[hyxy@master apps]$
\u:user
\h: hostname
\H: 主机全称
\W: 工作目录
\w: 工作目录
\$: 用户级别, 普通用户显示$, 超级用户#
$$:当前程序的ID号
$?:上一个函数或程序退出的状态,0表示成功退出,1~255表示异常退出。
5、read命令
在这之前,变量的值都是被直接指定的,而read命令可以让变量接收键盘录入的数据。这就好比java语言的Scanner类型,可以开启键盘录入功能。read命令常用于shell script中。 格式:read [选项] Variable -p:用于指定提示信息 -n:规定录入字符串的长度,达到此长度,自动结束 -t:对录入时间进行限制,后面是秒数 -s:隐藏输入数据 Demo:read -p "请输入用户名:" username read -p "请输入密码:" -s passwd