硬件sofeware、内核kernel、shell
(bash 是一个为GNU计划编写的Unix shell,命令行模式的shell)
-
命令在计算机被执行的步骤
①用户通过使用者界面(Shell、KDE、应用程序)输入命令
②通过shell将输入的命令与操作系统内核(kernel)沟通
③kernel控制硬件(hardware)工作
shell(使用者界面)——kernel(内核)——hardware(硬件) -
查看主机中有多少可用的shell
①cat /etc/shells
②当用户登录时,系统会自动分配一个shell给当前用户工作
③Linux系统中默认的shell为 /bin/bash -
Linux系统为什么默认使用bash
①历史命令
可以记录历史使用过的命令,将其记录在家目录下的.bash_history内,本次使用过的命令被缓存在内存中,成功注销系统后该命令才会被记录在.bash_history
②命令与文件补全功能
Tab 接在第一个字后面 命令补全
Tab 接在第二个字后面 文件补全
③命令别名设置功能
alias 查看当前或者设置当前命令的别名
ls -al 查看当前目录下面的所有文件(包含隐藏文件)
alias lm='ls -al’将命令ls -al替换为命令lm
③任务管理、前台、后台控制
④程序化脚本
⑤通配符 -
查询命令是否为Bash shell 的内置命令
通过type查询命令是否为bash的内置命令 type ls -
命令的执行与快速编辑按钮
\在下一行继续输入命令
ctrl + u 从光标处向前删除命令串
ctrl + k 从光标处向后删除命令串
ctrl + a 让光标移动到整个命令串的最前面
ctrl + e 让光标移动到整个命令串的最后面 -
变量
①使用mail命令读取自己的邮箱时,mail会主动使用MAIL这个变量
②显示环境变量 echo $HOME
③设置或修改某个变量与变量的内容
echo $name 显示变量
name=VBird 修改变量内容
echo $name 显示变量
④变量内容的设置
1.变量与变量内容用一个=来连接
2.等号两边不能直接连接空格,当内容中存在空格时可以用“ ”或‘ ’将内容结合起来
3.取消变量的方法:unset 变量名
例题:当你有一个常去的工作目录名称很长,如何将目录简化?
答:将目录定义为一个新的变量work1=目录名称
work1=目录名称
cd $work 即可进入常访问的目录中 -
环境变量的功能
①功能,比如根目录(主文件夹)的变换、提示字符的显示、执行文件查找的路径等
②查看当前shell中有多少个默认的环境变量 env与export
③系统中环境变量
HOME
代表用户的根目录,可以通过cd ~ 去到自己的根目录
SHELL
目前环境使用的shell是哪个程序
HISTSIZE
历史命令,曾经执行过的历史命令
MAIL
使用mail命令收信时,系统读取的邮箱文件
PATH
文件查找
LANG
语系数据
RANDOM
随机数变量 -
变量相关的命令
env 查看系统的环境变量
set 观察所有变量
PS1 命令提示符的设置 [dmtsai @study ~]
echo $$ 查看当前系统的PID
PID为当前shell的进程号
export 将自定义变量转换为环境变量
父进程与子进程
父进程:登录linux后取得的bash
子进程:bash下执行的命令
注:子进程仅会继承父进程的环境变量,不会继承父进程的自定义变量
变量键盘的读取、数组与声明
read 读取来自键盘的输入
read -p “please keyin your name” -t 30
-p 提示字符 -t 30 后接秒数,在30秒内输入
数组
数组定义:var[1]=小明
读取变量 echo $数组
限制文件数量、cpu时间、内存数量 ulimit
变量内容的删除与替换
从前开始删除
①echo ${path #/*local/bin:}
将path路径中的从前面开始删除最短的一段路径
一个#表示从前删除且删除最短的一段路径
/表示从/开始, 星号表示省略中间位置的字符
②echo ${path ##/*local/bin:}
两个##表示从前删除最长的那个路径
从后开始删除
① ${变量%关键词}
%表示从后开始删除最短的一段路径
② ${变量%%关键词}
%表示从后开始删除最长的一段路径
变量的替换
① ${变量/旧字符串/新字符串}
将第一个旧字符替换为新字符串
② ${变量//旧字符串/新字符串}
将全部旧字符替换为新字符串