Linux Shell 002-基础知识

Linux Shell 002-基础知识

本节关键字:Linux、Bash Shell、基础知识、Bash特性
相关指令:bash、rm、cp、touch、date

基础知识

什么是Shell脚本

简单概括:将需要执行的命令保存到文本中,按照顺序执行。
准备描述:shell脚本 = 若干命令 + 脚本的基本格式 + 脚本特定语法 + 思想

Shell脚本能干什么

Shell脚本可以将重复化、复杂化的工作简单化,无须每次都将复杂的命令依次手动执行一遍。使用Shell脚本可以完成以下内容:

  • 自动化软件部署,如:LANP、LNMP、Tomcat等
  • 自动化管理,如:系统初始化脚本、批量修改密码、推送公钥等
  • 自动化分析处理,如:统计网站访问量等
  • 自动化备份,如:数据库备份、日志转储等
  • 自动化监控脚本,如:实时监测某个进程,进程异常退出时就自动重启
Shell脚本的基本写法
  • 脚本第一部分,在第一行使用魔法字符指定解释器
#!/bin/bash

#!/bin/env bash
  • 脚本第二部分,给脚本添加注释,如:脚本名称、功能描述、存放路径、使用方法、更新时间等
  • 脚本第三部分,要实现的具体代码内容
Shell脚本的执行方法
  • 第一步,编写Shell脚本 /home/Jeck/shell.sh
  • 第二步,给Shell脚本增加可执行权限,chmod +x /home/Jeck/shell.sh
  • 第三步,标准方式执行脚本,使用Shell脚本的绝对路径执行脚本,如:/home/Jeck/shell.sh
bash命令的常用选项
选项说明
-x查看脚本的执行过程,一般用于排错
-n查看脚本的语法是否存在问题

使用示例

bash -n /home/Jeck/shell.sh
bash -x /home/Jeck/shell.sh
Shell脚本的基本语法结构
  • 变量定义、条件判断、循环语句(for、until、while)、分支语句、函数和数组等
  • 基本正则表达式的作用
  • 文件处理三剑客:grep、sed、awk工具的使用
  • 使用shell脚本完成一些比较复杂的任务,如服务搭建、批量处理等

Bash的特性

命令和文件自动补全

Tab键只能补全命令和文件。

常见的快捷键

说明:^ 为 Ctrl 键

快捷键组成说明
^c终止前台运行的程序
^z将前台运行的程序挂起到后台
^d退出 等价exit
^l清屏
^a+Home键光标移到命令行的最前端
^e+End键光标移到命令行的后端
^u删除光标前所有字符
^k删除光标后所有字符
^r搜索历史命令
常用的通配符
通配符说明
*匹配0或多个任意字符
?匹配任意单个字符
[list]匹配[list]中的任意单个字符,或者一组单个字符 [a-z]
[!list]匹配除list中的任意单个字符
{string1,string2,…}匹配string1,string2或更多字符串

应用示例

# 实例1,强制删除当前目录下以file开头的说有文件
$ rm -f file*# 实例2,拷贝当前目录下所有以.conf结尾的文件到目录/mydir下
$ cp *.conf  /mydir# 实例3,创建5个文件,并分别命名为file1、file2、file3、file4、file5
$ touch file{1..5}
Bash中的引号
符号名称作用
“”双引号会把引号的内容当成整体来看待,允许通过$符号引用其他变量值
‘’单引号会把引号的内容当成整体来看待,禁止引用其他变量值,shell中特殊符号都被视为普通字符
``反撇号反撇号和$()一样,引号或括号里的命令会优先执行,如果存在嵌套,反撇号不能用

说明:反撇号就是键盘ESC下面一个的英文按键符号

Bash Shell引号的使用示例

[root@localhost]$ echo "$(hostname)"
server
[root@localhost]$ echo '$(hostname)'
$(hostname)
[root@localhost]$ echo "hello world"
hello world
[root@localhost]$ echo 'hello world'
hello world
[root@localhost]$ echo $(date +%F)
2018-11-22
[root@localhost]$ echo `echo $(date +%F)`
2018-11-22
[root@localhost]$ echo `date +%F`
2018-11-22
[root@localhost]$ echo `echo `date +%F``
date +%F
[root@localhost]$ echo $(echo `date +%F`)
2018-11-22

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/421524.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java表达式的类型,Java如何确定三元条件运算符表达式的类型?

Can anyone explain this?public class Test {public static void main(String[] args) {char c A;int i 0;boolean b true;System.out.println(b ? c : i);System.out.println(b ? c : (char)i);System.out.println(b ? c : 0);System.out.println(b ? c : (char)0);}…

java里的sleuth_java基础之spring cloud微服务快速教程之(十一) Sleuth(zipkin) 服务链路追踪...

0、前言微服务架构上众多微服务通过REST调用,可能需要很多个服务协同才能完成一个接口功能,如果链路上任何一个服务出现问题或者网络超时,都会形成导致接口调用失败。随着业务的不断扩张,服务之间互相调用会越来越复杂。如何清晰地…

android Activity 之间传递复杂对象

、传递Object有两种方式来传递Object:Serializable和Parcelable2.1 使用Serializable方式前提:Object需要实现Serializable接口用Serializable方式传递Object的语法:bundle.putSerializable(key,object);用Serializable方式接收Object的语法:…

opengl模板缓冲区

相信大家有些人对opengl的模板缓冲区不是很理解,包括我最开始也是,opengl的模板缓冲区其实就是采用过滤的技术来控制那些颜色可以绘制,那些不能进行绘制。这里的过滤技术也就是我们的一个控制方法,主要体现在如下两个函数glStenci…

java ui awt_java试用(3)awt,UI

importjava.awt.*;importjava.awt.event.*;publicclassMyFrameextendsFrame{privateTextField tf;publicstaticvoidmain(String args[ ]){MyFrame frnewMyFrame("Hello Out There!");fr.InitUI();}publicMyFrame (String str){super(str);//调用父类的构造方法}publi…

Linux php 中文乱码解决

在ubuntu下php网页输出乱码,在不涉及数据库编码的情况下: 修改“/etc/php5/apache2/php.ini”将 default_charset "iso-8859-1" 修改为default_charset "utf-8" 然后重启apache: sudo /etc/init.d/apache2 restart 推荐一个自己业…

vue在java中的应用_开发知识-Vue篇:在Vue应用中集成O2OA

在前面的章节中,我们介绍了两种在O2OA中使用Vue开发应用的方式,已经可以满足绝大多数的情况了。如果您考虑完全脱离O2的web服务器,自己搭建web服务器,那就请阅读本章。我们还是使用Vue的Vue-CLI工具,创建Vue应用&#…

java高性能低功耗计算_实现低功耗的高性能深度学习

对于大多数功耗敏感型的嵌入式视觉应用而言 , 搭载专用CNN引擎的视觉处理器可 能是能否满 足设计功 耗 预算的关键区别因素。选择专用CNN引擎似乎是一件理所应当的事情 , 但如何在芯片实现之前就测量 出 功 耗呢?我们假设一项应用的性能阈值对功耗预算有严格要求&am…

C++ 虚函数在基类与派生类对象间的表现及其分析

近来看了侯捷的《深入浅出MFC》,读到C重要性质中的虚函数与多态那部分内容时,顿时有了疑惑。因为书中说了这么一句:使用“基类之指针”指向“派生类之对象”,由该指针只能调用基类所定义的函数,如果要让基类的指针使用…

Android---什么是3G

学习安卓之前我们必须了解什么是3g.这几年随着IT技术的革新。移动互联网已经渐渐的占据了市场的主导地位。而3g技术是移动互联网的一方面体现。那么究竟什么是3g? 3G有三大制式,GSM升级后的WCDMA,CDMA升级后的CDMA2000,以及我国自主开发的TD…

centos7硬盘挂载mysql_centos7 挂载新磁盘

一 、挂载新磁盘查看磁盘[rootlocalhost ~]# fdisk -lDisk /dev/vda: 53.7 GB, 53687091200 bytes, 104857600 sectorsUnits sectors of 1 * 512 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk lab…

autolisp 列表 resbuf

有以下 list : (1 2 3 (4 5 6) "Properties" (("id" . 3) ("name" . "hello lisp"))) 要求用: quote cons acutBuildList acutNewRb 方式构造 转载于:https://www.cnblogs.com/pangblog/p/3331246.html

如何看懂php源程序,概述 · thinkphp5.0 源码阅读学习 · 看云

**1 章节简介**概述: 记录框架的文件,类,函数或方法等索引到文章的具体章节,方便查找。框架流程:框架流程的重要文件分析。框架工具:框架自带的重要工具文件分析。框架驱动:框架底层的驱动与扩展目录分析。…

php评论盖楼怎么实现,dedecms评论盖楼实现楼层数,类似腾讯、网易的评论(5.5/5.6版)...

DEDE评论效果:修改后的效果:修改步骤一、织梦dedecms5.5版本(5.6版本请往下看)1、修改/plus/feedback_ajax.php文件的第131行(如果你没改过)下面是修改之前的代码:$qmsg {quote}{title}.$row[username]. 的原帖:{/title}{content…

Nokia 920全部CODE

code码都是7位,我是从别的地方copy过来的,code码后面带了些乱码懒得删了,自己数7位code就是了。 RM-820 NDT AMERICA ATT White 059N5T3RM-820 NDT AMERICA ATT Yellow 059N5T5RM-820 NDT AMERICA ATT Black 059L848RM-…

datagridview绑定与详细说明 (搜集)

1、实现一个用于处理数据库教程数据检索的详细信息的方法。 下面的代码示例实现一个 getdata 方法,该方法对一个 sqldataadapter 组件进行初始化,并使用该组件填充 datatable。 然后,将 datatable 绑定到 bindingsource 组件。请确保将 conne…