Linux达人养成计划I详细笔记(七)shell基础

本系列博文是听了课程Linux达人养成计划后的个人学习笔记,较为详细,供大家参考。


目录

第9章 shell基础

9.1 shell概述

9.2 脚本执行方式

9.3 Bash的基本功能

9.3.1 命令别名与快捷键

9.3.2 历史命令

9.3.3 输出重定向

9.3.4 管道符

9.3.5 通配符


第9章 shell基础

9.1 shell概述

shell 是什么

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

通俗地讲,shell充当用户和内核之间的翻译器。

shell分类

shell的两种主要语法类型是Bourne 和 C,这两种语法彼此不兼容。

Bourne Shell:sh、ksh、Bash、psh、zsh
C Shell:csh、tcsh,C Shell主要在BSD版的Unix中使用,其语法和C语言类似而得名。

当前linux中的标准shell是Bash

echo $SHELL    # 查看当前shell

vi /etc/shells   #查看支持的shell类型

9.2 脚本执行方式

1、echo输出命令

echo [选项] [输出内容]

选项:
-e 支持反斜线控制的字符转换

控制字符 作 用
\a 输出警告音
\b 退格键,也就是向左删除键
\n 换行符
\r 回车键
\t 制表符,也就是Tab键
\v 垂直制表符
\0nnn 按照八进制ASCII码表输出字符。其中0为数字零,nnn是三位八进制数
\xhh 按照十六进制ASCII码表输出字符。其中hh是两位十六进制数

常规用法 :

echo -e "h\te\tl\nl\to\t"

echo -e \ "\x68\t\x\65\t\x\6c\n\x\6c\t\x6f\t"

2、echo输出颜色

echo -e "\e[1;31m 嫁人就要嫁凤姐 \e[0m"

\e[1;31m   #开启颜色显示

\e[0m    #取消颜色显示

30m=黑色,31m=红色,32m=绿色,33m=黄色
34m=蓝色,35m=洋红,36m=青色,37m=白色

3、第一个脚本
vi hello.sh

#!/bin/bash
echo -e "\e[1;34m hello world! \e[0m"

脚本执行方法

方法一:赋予执行权限,直接执行

chmod 755 hello.sh

方法二:通过Bash调用的执行脚本

bash helloworld.sh

9.3 Bash的基本功能

9.3.1 命令别名与快捷键

  • 别名永久生效与删除别名

vi ~/.bashrc        #写入环境变量配置文件
source .bashrc     # 环境变量直接生效

  • 查看与设定别名

alias                                        # 查看系统中所有的命令别名
alias 别名= '原命令'      # 设定命令别名
unalias 别名             # 删除别名

  • 命令生效顺序

1. 执行用绝对路径或相对路径执行的命令
2. 执行别名
3. 执行 Bash 的内部命令
4. 执行按照 $PATH 环境变量定义的目录查找顺序找到第一个命令

  • 常用快捷键(非常有用,记住!!)

ctrl+c 强制终止当前命令
ctrl+l 清屏 同命令clear
ctrl+a 光标移动到命令行首
ctrl+e 光标移动到命令行尾
ctrl+u 从光标所在位置删除到首行
ctrl+z 把命令放入后台
ctrl+r 在历史命令中搜索 上下滚动

9.3.2 历史命令

  • 历史命令

history [选项] [历史命令保存文件]

选项:
-c 清空历史命令
-w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
/etc/profile  HISTSIZE属性可设置保存历史命令条数,默认1000条

  • 历史命令的调用

↑↓ 调用以前的历史命令(常用)
!n 重复执行第n条历史命令
!! 重复执行上一条命令
!字符串 重复执行最后一条以该字符串开头的命令(常用)

9.3.3 输出重定向

  • 标准输入输出
设备 设备文件名 文件描述符 类型
键盘 /dev/stdin 0 标准输入
显示器 /dev/sdtout 1 标准输出
显示器 /dev/sdterr 2 标准错误输出
  • 输出重定向
类型 符号 作用
标准输出重定向 命令>文件 以覆盖的方式,把命令的正确输出到制定的文件或设备当中
标准输出重定向 命令>>文件 以追加的方式,把命令的正确输出到制定的文件或设备当中
标准错误输出重定向 命令2>文件 以覆盖的方式,把命令的错误输出到制定的文件或设备当中
标准错误输出重定向 命令2>>文件 以追加的方式,把命令的错误输出到制定的文件或设备当中
  • 正确输出和错误输出同时保存
符号 作用
命令>文件 2>&1 以覆盖的方式,把正确输出和错误输出都保存到一个文件当中
命令>>文件 2>&1 以追加的方式,把正确输出和错误输出都保存到一个文件当中
命令 &> 文件 以覆盖的方式,把正确输出和错误输出都保存在同一个文件当中
命令 &>> 文件 以追加的方式,把正确输出和错误输出都保存在同一个文件当中
命令>>文件1 2>>文件2 把正确的输出追加到文件1中,吧错误的输出追加到文件2中

ls &>/dev/null把输出结果直接丢了

  • 输入重定向

wc 直接输入字符 ctrl + d 停止输入
wc [选项][文件名]

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

9.3.4 管道符

  • 多命令顺序执行
多命令执行符 格式 作用
; 命令1;命令2 多个命令顺序执行,命令之间没有任何逻辑联系
&& 命令1&&命令2 逻辑与。当命令1正确执行,则命令2才会执行;当命令1执行不正确,则命令2不会执行
|| 命令1||命令2 逻辑或。当命令1执行不正确,则命令2才会执行;当命令1正确执行,则命令2不会执行
  • 管道符

命令1 | 命令2

命令1的整除输出作为命令2的操作对象
more 分页显示
ls -l /etc | more
查询结果翻页:
空格表示向下翻一页
回车表示向下滚动一行
/字符串表示查询字符串
q离开more界面

9.3.5 通配符

通配符 作用
? 匹配一个任意字符
* 匹配0个或人一多个任意字符,也就是可以匹配任何内容
[] 匹配括号中任意一个字符。例如:[abc]代表一定匹配a,b,c中的一个字符
[-] 匹配中括号中任意一个字符,-代表一个范围。例如:[a-z]代表匹配一个小写字母。
[^] 逻辑非,表示匹配不是中括号内的一个字符。例如:[^0-9] 代表匹配一个不是数字的字符
  • Bash中其他特殊符号
符号 作用
单引号。在单引号中所有的特殊符号,如“$”和 “`”(反引号)没有特殊含义
“” 双引号。在双引号中特殊符号都没有特殊含义,但是 “$”、“`”和“\”是例外,拥有“调用变量的值”、“引用命令”和“转义符”的特殊含义
` 反引号。反引号括起来的内容是系统命令,在Bash中会先执行它。和$()作用一样,不过推荐使用$(),因为反引号非常容易看错。
$() 和反引号作用一样,用来引用系统命令。
# 在Shell脚本中,#开头的行代表注释
$ 用户调用变量的值,如果需要调用变量name的值时,需要用$named 的方式得到变量的值。
\ 转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$将输出“$”符号,而不当做是变量引用。

花了三天时间,终于把Linux达人养成计划I学习完了!!还有II的学习笔记会在之后尽快更新。

更多内容请查看:

Linux达人养成计划I详细笔记(一)Linux简介

Linux达人养成计划I详细笔记(二)Linux分区与安装

Linux达人养成计划I详细笔记(三)命令基本格式及文件处理命令

Linux达人养成计划I详细笔记(四)文件搜索命令

Linux达人养成计划I详细笔记(五)帮助命令和压缩命令

Linux达人养成计划I详细笔记(六)关机和重启命令及其他常用命令

猜你喜欢

转载自blog.csdn.net/sunshine_lyn/article/details/81771696
今日推荐