这一系列的Linux入门都是本人在《鸟哥的Linux私房菜》的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解

Linux Distribution是Ubuntu而不是书本上推荐的CentOS,建议装双系统,不要使用虚拟机。

代码在github上:Linuxpractice

其他内容:

Linux入门篇(一)——基本命令

Linux入门篇(二)——文件

Linux入门篇(三)——文件与目录

Linux入门篇(四)——Vim的使用与Bash

Shell

一、shell的变量功能

  • 变量的显示 $ echo
  • 变量的修改 $ 变量名=变量值
  • 环境变量功能: $ env 可以列举出当前shell环境下所有的环境变量。

环境变量的举例:

  • HOME:代表主文件夹
  • SHELL:目前环境代表的shell程序
  • HISTSIZE:可纪录的历史命令的条数
  • MAIL:读取的邮件文件
  • PATH:执行文件查询路径
  • LANG:语系数据
  • RANDOM:随机数变量

变量的有效范围:一般情况下,父进程的自定义变量无法在子进程内使用,除非通过export将其变为环境变量,否则就是自定义变量。(与内存分配的记忆块有关)

  • read 读取来自键盘输入的变量: $ read [-pt] variable
  • declare和typeset是一样的功能用来声明:$ declare [-aixr] variable

                      -a: variable为数组类型

                      -i: variable为integer类型

                      -x:用法与export一致

                      -r:变量设置为readonly,只读类型,不可以修改

数组变量类型:array

  • 设置方法:   $ var [index]=context  bash的数组下标是从0开始的。

          数组名 下标  变量值

  • 读取方式: $ echo ${var[1]}

变量内容的删除、替换:

  •    变量设置方法                      说明

    ${变量#关键字}           若变量内容从头开始数据符合”关键字“,则将符合的最短数据删除。

    ${变量##关键字}              若变量内容从头开始数据符合”关键字“,则将符合的最长数据删除。

    ${变量%关键字}             若变量内容从尾开始数据符合”关键字“,则将符合的最短数据删除。

    ${变量%%关键字}          若变量内容从尾开始数据符合”关键字“,则将符合的最长数据删除。

    ${变量/旧字符串/新字符串}            替换第一个符合的字符串。

    ${变量//旧字符串/新字符串}             替换全部符合的字符串。

  •   变量的测试与内容的替换

      new_var=${old_var-content}

  新变量    关键字 旧变量 变量内容

三、Bash Shell操作环境

一个命令被执行时,命令执行的顺序是:

  • 以相对/绝对路径执行命令。
  • 由alias找到该命令并执行。
  • 由bash内置的(builtin)命令执行。
  • 通过$PATH变量的顺序找到第一个来执行。

Linux入门篇(五)——Shell(一)的更多相关文章

  1. Linux入门篇(六)——Shell(二)

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  2. Linux入门篇(一)——文件

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  3. Linux入门篇(四)——Vim的使用与Bash

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  4. Linux入门篇(二)——文件

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  5. 【SSRS】入门篇(五) -- 设置报表格式

    原文:[SSRS]入门篇(五) -- 设置报表格式 在上一节 [SSRS]入门篇(四) -- 向报表添加数据 我们设置好了报表,并可以预览到数据,如下图: 当报表完成后,有个重要的工作就是美化报表格式 ...

  6. Linux入门篇(三)——文件与目录

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  7. Linux入门篇(一)——基本命令

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  8. linux入门教程(五) Linux系统的远程登录

    首先要说一下,该部分内容对于linux初学者来讲并不是特别重要的,可以先跳过该章节,先学下一章,等学完后再回来看这一章. Linux大多应用于服务器,而服务器不可能像PC一样放在办公室,它们是放在ID ...

  9. Linux学习笔记<五>——<Shell部分>

    管道命令(pipe) 1.把一个命令的输出作为另一个命令的输入 ls -al /etc | less 2.选取命令:cut和grep cut命令可以将一段消息的某段切出来. -d接分隔符,-f是取出第 ...

随机推荐

  1. iOS - 通过view查找所在(viewController)

    - (UIViewController *)findViewController:(UIView *)sourceView { id target=sourceView; while (target) ...

  2. 【起航计划 024】2015 起航计划 Android APIDemo的魔鬼步伐 23 App->Notification->IncomingMessage 状态栏通知

    应用程序可以使用Notifications来通知用户某个事件发生了(如收到短信).类NotificationManager 用来处理Notification, NotificationManager可 ...

  3. 从PeopleEditor控件中取出多用户并更新到列表

    如果一个列表中有一个字段类型为用户或用户组,并且设置为用户,允许多值的话,那么用代码进行更新的时候就必须将这个字段的值赋成SPFieldUserValueCollection类型,以下代码即为从Peo ...

  4. Spring Boot入门程序-STS

    使用Eclipse EE 中的 Spring Tool插件,完成 第一个Spring Boot应用程序的创建. 一.安装Spirng Tool插件 在 Eclipse EE Oxygen版本,安装“S ...

  5. Element-ui安装与使用(网站快速成型工具)

    我之所以将Element归类为Vue.js,其主要原因是Element是(饿了么团队)基于MVVM框架Vue开源出来的一套前端ui组件.我最爱的就是它的布局容器!!! 下面进入正题: 1.Elemen ...

  6. IOS开发入门你们准备好了吗?

    我们对于IOS的了解最多应该就是苹果手机独有的IOS系统吧,也可以说是单任务管理器,这可以说是一个优势,但是随着技术提升IOS慢慢有被超越的趋势,但是很多大公司还是需要这方面的开发人才,那么今天我们来 ...

  7. April 22 2017 Week 16 Saturday

    Fear is an essential part of our survival, it keeps us alert. 恐惧是生存的重要部分,它让我们保持警惕. Fear and pain are ...

  8. spring依赖注入(转)

    转自:https://blog.csdn.net/taijianyu/article/details/2338311/ Spring 能有效地组织J2EE应用各层的对象.不管是控 制层的Action对 ...

  9. 问题 C: P4 游戏中的Human角色

    题目描述 在一个平面打斗游戏中,任何的角色(Role)都有血量(blood)和位置loc(此处loc是Location类的实例)属性.有了Role类,可以派生出不同的角色,如人.神仙.怪兽等.如下程序 ...

  10. 2018.8.18 servlet使用的会话跟踪除session外还有哪些方式

    解释HTTP HTTP是一种无连接的协议,如果一个客户端只是单纯地请求一个文件(HTML或GIF),服务器端可以响应给客户端,并不需要知道一连串的请求是否来自于相同的客户端,而且也不需要担心客户端是否 ...