0
点赞
收藏
分享

微信扫一扫

Shell基础(一)

冬冬_79d4 2022-02-13 阅读 51

第一节 Shell概述

1.1 定义

1.2 分类

1.3 Shell脚本的执行方式

1.4 Bash的基本功能

1.4.1 历史命令与命令补全

1.4.2 命令别名与常用快捷键

1.4.3 输入输出重定向

1.4.4 多命令顺序执行与管道符


第一节 Shell概述

1.1 定义

Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来 启动、挂起、停止甚至是编写一些程序。
Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。

1.2 分类

  • Bourne Shell:从1979起Unix就开始使用Bourne Shell,Bourne Shell的主文件名为 sh。
  • C Shell: C Shell主要在BSD版的Unix系统中使用,其语法和C语言相类似而得名。
  • Shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh、ksh、Bash、psh、zsh;C家族主 要包括:csh、tcsh。
  • Bash: Bash与sh兼容,现在使用的Linux就是使用Bash作为用户的基本Shell。

    Linux支持的Shell可通过/etc/shells查看,可以通过在命令行输入相应Shell类型切换。

1.3 Shell脚本的执行方式

#!/bin/bash
echo -e ‘Hello World!’

#!/bin/bash这一句并不是注释,是标识,说明以下语句是Shell脚本。

1) 赋予执行权限,直接运行
chmod 755 hello.sh
./hello.sh

2) 通过bash调用执行脚本
bash hello.sh
不需要执行权限就可以执行
 

1.4 Bash的基本功能

1.4.1 历史命令与命令补全

history [选项] [历史命令保存文件]
-c: 清空历史命令
-w: 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history

历史命令默认会保存1000条,可以在环境变量配置文件/etc/profile中进行修改
找到HISTSIZE=1000进行修改,随意修改到100000条都可以,修改之后重启使配置文件生效

1) 历史命令的调用

  1. 使用上、下箭头调用以前的历史命令
  2. 使用“!n”重复执行第n条历史命令
  3. 使用“!!”重复执行上一条命令
  4. 使用“!字串”重复执行最后一条以该字串开头的命令


2) 命令与文件补全
在Bash中,命令与文件补全是非常方便与常用的功能,我们只要在输入命令或文件时,按“Tab”键就会自动进行补全

1.4.2 命令别名与常用快捷键


命令别名

alias 别名=‘原命令’ 设定命令别名
alias 查询命令别名

让别名永久生效
vi  ~/.bashrc

删除别名
unalias 别名

Bash常用快捷键

ctrl+a    把光标移动到命令行开头。
ctrl+e 把光标移动到命令行结尾。
ctrl+c 强制终止当前的命令。
ctrl+l 清屏,相当于clear命令。
ctrl+u 删除或剪切光标之前的命令。
ctrl+k删除或剪切光标之后的内容。
ctrl+y 粘贴ctrl+u或ctrl+k剪切的内容。
ctrl+r在历史命令中搜索,按下ctrl+r之后,就会出现搜索界面,只要输入搜索内容,就会从历史命令中搜索。
ctrl+d退出当前终端。
ctrl+z  暂停,并放入后台。这个快捷键牵扯工作管理的内容
ctrl+s  暂停屏幕输出。
ctrl+q  恢复屏幕输出。


注意:ctrl+z 快捷键一定要谨慎使用,如果使用的多了,系统会占用大量存储空间来存放暂停的数据,用多了系统会变卡!!!

1.4.3 输入输出重定向
 

设备设备文件名文件描述符 类型
键盘 /dev/stdin0标准输入
显示器/dev/sdtout1标准输出
显示器/dev/sdterr2标准错误输出

        
输出重定向
就是改变输出方向,比如由屏幕输出到文件,非常有用

类型符号作用
标准输出重定向 命令>文件 以覆盖的方式,把命令的正确输出输出到指定的文件或设备中。
标准输出重定向命令>>文件  以追加的方式,把命令的正确输出输出到指定的文件或设备中。
标准错误输出重定向错误命令2>文件  以覆盖的方式,把命令的错误输出输出到指定的文件或设备中
标准错误输出重定向 错误命令2>>文件以追加的方式,把命令的错误输出输出到指定的文件或设备中。

在输入报错文件中2和>>必选连着写,标准错误输出不常用

命令>文件 2>&1以覆盖的方式,把正确输 出和错误输出都保存到同 一个文件当中。
命令>>文件 2>&1 以追加的方式,把正确输 出和错误输出都保存到同 一个文件当中。
命令&>文件以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。
命令&>>文件以追加的方式,把正确输出和错误输出都保存到同一个文件当中。
命令>>文件1 2>>文件2  把正确的输出追加到文件1中,把错误的输出追加到文件2中
  • 命令 >> 文件 2>&1 ,命令 &>>文件 两种保存都一样,只不过是格式不同
  • 有一个用法:命令 &>/dev/unll 不管命令是否正确,直接丢人这个文件夹,不保存任何数据,在写shell脚本时有用

输入重定向
不通过键盘输入,通过文件输入,在实际中用的不多,用在给源码包打补丁。

wc [选项] [文件名]

-c 统计字节数
-w 统计单词数
-l 统计行数


用法:
命令 < 文件 把文件作为命令的输入

1.4.4 多命令顺序执行与管道符

多命令顺序执行

 格式作用
命令1 ;命令2多个命令顺序执行,命令之间没有任何逻辑联系,第一条报错,第二条也会执行
&&命令1 && 命令2 逻辑与当命令1正确执行,则命令2才会执行 当命令1执行不正确,则命令2不会执行
||命令1 || 命令2 逻辑或当命令1 执行不正确,则命令2才会执行 当命令1正确执行,则命令2不会执行

例子:

  • date ; 命令 ; date
  • 命令 && echo yes || echo no


管道符
命令1 | 命令2 :命令1的正确输出作为命令2的操作对象

例子:

  • ll /etc | more
  • netstat -an | grep

grep [选项] “搜索内容” 文件名

-i: 忽略大小写
-n: 输出行号
-v: 反向查找
–color=auto 搜索出的关键字用颜色显示

举报

相关推荐

0 条评论