Linux Shell

Posted kumunotes

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux Shell相关的知识,希望对你有一定的参考价值。

一、什么是Linux Shell?

  概念:Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。是在Linux内核与用户之间的解释器程序,现在Linux通常指/bin/bash解释器来负责向内核翻译以及传达用户/程序指令,shell相当于操作系统的“外壳”

二、Shell的使用方式

交互式---命令行
--人工干预。智能化程度高
--逐条解释执行,效率底
非交互式---脚本
需要提前设计,智能化难度大
批量执行,效率高
方便在后台静悄悄地运行

 

常见的Shell环境
通过usermod,chsh更改Shell
手动执行目标Shell程序


shell与bash区别
shell(解释器)
bash(解释器的具体型号,版本)
在linux中可以使用的shell解释器的版本
[[email protected] ~]# 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

代码解释:

[[email protected] ~]# useradd -s /bin/ksh zhangsan(创建zhangsan用户并为它设置默认解释器ksh)

[[email protected] ~]# grep ‘zhangsan‘ /etc/passwd
zhangsan: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>,覆盖到同一个文件

以上是关于Linux Shell的主要内容,如果未能解决你的问题,请参考以下文章

shellLinux shell 位置变量详解

ShellLinux中分区脚本

SHELLLinux下安装Oracle Client

shellLinux shell 之 case 详解

shellLinux shell函数入门讲解

shellLinux shell 直接赋值和间接赋值