什么是Linux Shell?
概念:Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。是在Linux内核与用户之间的解释器程序,现在Linux通常指/bin/bash解释器来负责向内核翻译以及传达用户/程序指令,shell相当于操作系统的“外壳”
Shell的使用方式
交互式---命令行--人工干预。智能化程度高
--逐条解释执行,效率底
非交互式---脚本
需要提前设计,智能化难度大
批量执行,效率高
方便在后台静悄悄地运行
通过usermod,chsh更改Shell
手动执行目标Shell程序
shell与bash区别
shell(解释器)
bash(解释器的具体型号,版本)
在linux中可以使用的shell解释器的版本
[root@server0 ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
切换用户的Shell环境
若需要临时使用另一种Shell环境,可以直接执行对应的Shell解释器程序,比如只要执行Ksh可以切换Ksh命令行环境。
为什么lincx默认的shell的类型是bash?
bash基本特性的一些优点快捷键,Tab键补齐
命令历史
命令别名
标准输入输出
重定向
管道操作
永久的更改解释器 usermod -s /bin/ksh zhangsan
查看对应用户使用的解释器:grep ‘zhangsan’ /etc/passwd
代码解释:
[root@server0 ~]# useradd -s /bin/ksh zhangsan(创建zhangsan用户并为它设置默认解释器ksh)
[root@server0 ~]# grep 'zhangsan' /etc/passwdzhangsan:x:1001:1001::/home/zhangsan:/bin/ksh
2.历史命令-history
默认记录了1000条
保存位置:/.bash_history
控制历史命令的数量:/etc/profile
内容中:HISTSIZE=1000是控制历史记录的条数,在工作中需要更改。避免信息泄露。
操作历史命令
history工具history:查看历史命令列表
history -c 清空历史命令
ls ~/.bash_history
调用历史命令
!78 : 执行历史记录中的第78条命令!str 执行最近一次以str开头的历史命令
I/O设备与重定向
交互式硬件设备
标准输入:从该设备接收用户输入的数据
标准输出:通过该设备向用户输出数据
标准错误:通过该设备报告执行中的错误信息
错误的与正确的信息在屏幕上输出上是不一样的
重定向输出 > 将命令行的正常执行输出保存到文件,而不是直接显示在屏幕上
>> 与>类似,但操作是追加而不是覆盖
重定向错误 2>将命令行的执行错误信息保存到文件
2>> 与2>类似,但操作是追加而不是覆盖
混合重定向 &> 相当于>和2>,覆盖到同一个文件