• Shell 编程基础1 2019-7-6


    Shell基础

    一、Shell概述

    1. 什么是shell

    1) Shell的使用对象人数用对象人数是有限的,仅供自己或是自己的团队,也就是说可以不考虑效率的问题,即不需要进行优化。追求的是实现功能,逻辑简单。

    2) 命令解释器,终端输入的内容内核无法识别,这个时候shell用来翻译这些指令为二进制然后内核将返回信息交给shell进行翻译显示在终端。脚本是命令的集合。

    常见的Shell种类有:

    Bourne Shell(/usr/bin/sh或/bin/sh)----古老,接近淘汰

    Bourne Again Shell (/bin/bash)-----Linux标准shell

    C Shell (/usr/bin/csh)

    K Shell (/usr/bin/ksh)

    Shell for Root (/sbin/sh)

    1. Shell脚本的执行方式:

    1) Echo命令:输出,带有空格的内容需要放在“”中。

    Echo -n:输出内容不换行(默认是自动换行的)

    Echo -e:支持反斜杠控制的字符转换(即可支持控制字符)

     转义符的作用: 取消后面字符的特殊含义

    1. shell脚本的执行:

    编写脚本一定要加#!/bin/bash  告诉计算机是什么类型的脚本

    书写脚本需要注意    书写内容中有!  一定要在!后面加空格

    执行三种方法:1) 赋予执行权限chmod 755 hello.sh   然后绝对路径执行/root/hello.sh     2)也要赋予执行权限,采用相对路径执行./hello.sh   注意:使用相对路径执行时应与脚本文件在同一目录下。 3)不需要赋予执行权限,直接用bash调用bash hello.sh

     

    二、Bash的基本功能

     

    1. 历史命令

    (1) 历史命令的查看:history 会被一直保存下去即使重启也不会消失(存储位置:.bash_history)当前查看.bash_history中命令会少于history所显示的命令,原因就是当前的命令还没有存储到.bash_history。如果想强制直接保存到.bash_history中使用命令history -w 这个在用户注销时会自动写入。历史命令默认存放1000条(在/etc/profile下有一个HISTSIZE 

    History -c :清空历史命令

    (2) 历史命令的调用

    使用原来的历史命令有以下的方法:

    1. 使用上下箭头来调用历史命令
    2. 使用“!n”重复执行第n条历史命令
    3. 使用“!!”重复执行上一条命令
    4. 使用“!字符串”重复执行最后一条以该字符串开头的命令
    5. 使用“!$”重复上一条命令的最后一个参数
    6. 命令的补全是Shell的功能:

    .  有三个含义:  单独的一个. 代表source命令

    文件名前面加 . 是隐藏文件

    目录前面加 . 是当前目录

    1. 别名的优先级比命令要高,命令执行时的具体顺序如下:

    ① 第一顺位执行用绝对路径或者相对路径执行的命令

    ② 第二顺位执行别名

    ③ 第三顺位执行bash的内部命令

    ④ 第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令。

    为了让这个别名永久生效,可以把别名写入环境变量的配置文件“~/.bashrc”中。

    命令: vi  /root/.bashrc

    1. 快捷键

    Ctrl A:  光标移动到命令行开始的位置

    Ctrl D:  光标移动到命令行末尾的位置

    Ctrl U:  剪切光标之前命令行(也可作为删除整行来使用)

    Ctrl Y:   与Ctrl U一同使用,用来粘贴剪切内容

    Ctrl C:   强行终止当前命令

    Ctrl L:    清屏

    Ctrl D:   退出当前终端

    Ctrl Z:    挂起,放入后台。(注意在:不是中止)

    1. 输入输出重定向

    1) Bash的标准输入与输出

    Linux下的一切皆为文件,键盘名字为:/dev/stdin 作为标准输入 显示器名字为: /dev/stdout 作为标准输出  错误输出为: /dev/stderr 作为标准错误输出。由于不好记录文件描述符设置为0是标准输入,1是标准输出,2是标准错误输出。

    2) 输出重定向:命令的输出本来应该输出给标准输出设备的,重定向的作用就是不让命令输出到显示器上而是输出到文件中,改变其输出方向。(最终的结果就是把命令保存到文件中)可以作为记录系统的日志。

     

  • 相关阅读:
    前端多媒体(7)—— 在浏览器中实现rtmp推流
    Canvas drawImage
    png8 png24 png32
    前端多媒体(6)—— 视音频编解码技术基础
    Meta viewport 学习整理
    前端多媒体(5)—— 图片滤镜的实现
    前端多媒体(4)—— video标签全面分析
    前端多媒体(3)—— 处理二进制数据
    前端多媒体(2)—— xhr异步接收处理二进制数据
    babel-runtime 和 babel-polyfill
  • 原文地址:https://www.cnblogs.com/plutozzl/p/11142863.html
Copyright © 2020-2023  润新知