一 先介绍几种常用字符:

1 * 匹配任意个任意字符
2 ?匹配一个任意字符
3 # 注释符号,符号后的语句不被执行
4 \脱意字符,后面跟带含义字符时,照原字符输出
5 []匹配包含在[]之中的任意一个字符:
例如[bc]ook 匹配book 或cook
[0-9] 匹配任意一个数字
6 {1,2} 匹配任意一个字符,同[]效果相同,格式不同
7 > 输出重定向 
例如 cat 1.txt > 2.txt,把1.txt 的内容读出来替换2.txt的内容
8 >>追加重定向
cat 1.txt >> 2.txt 把1.txt的内容读出来追加到2.txt的尾部
2>和2>> 错误信息输出, 如果某条命令执行不成功,则输出报错信息到指定文件。 例如 假设没没有a.txt 这个文件 cat a.txt 2> error.log 
备注:这个2算一个真值判断,当命令执行失败时,判断为假,用2表示
那么执行成功,结果为真,就是1,通常我们省略了这个1
&>和&>>正确错误都输出,当然是输出到同一个文件了,如果要分开,则可以
cat 1.txt a.txt > 2.txt 2> error.log
< 输入重定向 ,用的不多, 例如 wc -l < 1.txt 统计出1.txt的行数
9 | 管道符,我们一直在用,管道左边命令的输出作为其右边命令的输入
例如, cat /etc/passwd |head -3
把 cat 查出来的内容交给head 重新显示
cat /etc/passwd |grep 'root'
把cat 查看的内容交给grep过滤,得到目标结果

二 作业控制

1 ctrl z 暂停一个进程
2 bg 把它丢到后台运行
3 fg 恢复到前台并运行
4 jobs 查看暂停或者在后台运行的任务
命令后跟& 可以直接把任务丢到后台执行
如果暂停了多个任务,jobs查看到每个任务对应的编号
bg ,fg 后面跟任务编号单个控制某一个任务
5 ctrl c 结束一个任务

三 变量

如果我们对编程稍微有点了解,变量这个概念并不陌生,我们通常都把变量理解为容器,用来存放数据。那么shell中的变量当然也是这个意思。之前我们了解了PATH。我们可以用env查看系统预设的全部系统变量,还可以用set命令查看我们自定义的变量。 
linux 下的变量格式为:$变量名
变量的命名规则:字母,数字,下划线,不以数字开头。
下面重点看下变量的赋值,看下单引号和双引号的区别:
我们简单举六个例子: 
1 a='a$bc' echo $a 结果 a$bc
2.a=1;b=2 echo $a$b 结果 12
3.a='a$bc';b=2 echo $a$b 结果 a$bc2
4.c="a$bc" echo $c 结果 a
5.c="a$b"c echo $c 结果 a2c
6.c='a$b'c echo $c 结果 a$bc
其实要不了这么多例子就能说明问题,那么我们总结下,单引号会把里面的内容按照原来的字符原样输出,不识别有意义的符号。双引号会解读出里面的带含义字符以及命令。例子4中,解读为bc变量,因为该变量不存在,所以只输出了a
我们直接 a=111这样定义一个变量,只会在当前shell中生效,如果我们进入一个子shell,就找不到,那么他是一个局部变量。local variable
export a=111 这样就定义一个全局变量 global variable,子shell会继承父shell 的该变量

四 环境变量的几个配置文件:

1 系统层: 
/etc/profile 
该文件预设了几个重要的变量,例如PATH USER LOGNAME MAIL INPUTRC HOSTNAME HISTSIZE umask 等
/etc/bashrc
该文件主要预设umask 和ps1,ps1就是我们输入命令时前面的那串字符
例如[root@lvlinux~] [用户@主机名 当前目录] ~指家目录
2 用户层:
.bash_profile 
该文件定义了用户的个人化路径与环境变量的名称。每个用户都可以使用该文件输入专属自己的shell信息,当用户登录时,该文件仅执行一次
.bashrc
该文件包含专属自己的shell的bash信息,当每次打开心的shell时,该文件会被读取,可以将用户自定义的别名及变量写到这里
.bash_history
用于记录命令历史
.bash_logout
退出shell时,会执行该文件。可以将清理的工作放着这里

五 几个特殊符号

1.$ 我们应该对他有印象,当我们在终端下输入命令时会看到,root用户前面是一个#号,普通用户前面是一个$.再者我们前面提到,用作变量的标识符。
在正则表达式中,作为行尾标记。!$ 表示刚执行过的命令中最后一个变量。
例如 执行以下head /etc/passwd 再执行下tail !$ 就等价于 tail /etc/passwd
2~ 表示用户的家目录,root用户的家目录是/root,普通用户的家目录是/home/用户名
3.& 命令后面跟该符号,表示把该任务丢到后台执行
4 分号;和&&和||
两条命令的连接有三种方式:
1分号连接 :表示依次执行,前后没有关联
2 &&连接 : 符号前的命令执行成功后,才执行符号后的命令。否则不执行
3 ||链接:符号前的命令执行成功后,不执行符号后的命令,否则执行。

Linux学习总结(十七)-shell 基础知识的更多相关文章

  1. linux学习笔记:1.基础知识和命令行基本操作

    初次学习linux系统,想在这里记录自己的学习痕迹,如发现有不足之处,希望能指出,谢谢啦,之后的学习是在虚拟机VMware 10下的Red Hat Enterprise linux 6 的操作. 一. ...

  2. Linux 笔记 - 第十章 Shell 基础知识

    博客地址:http://www.moonxy.com 一.前言 Shell 是系统的用户界面,提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行.实际上 Shell 是一 ...

  3. Linux shell基础知识(上)

    Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...

  4. Linux Shell 基础知识(一)

    1. 本文知识结构 2. shell 基础知识 2.1 shell 简单介绍 ​ GNU bash shell 能提供对 Linux 系统的交互式访问,一般来说,使用快捷键 Ctrl + Alt + ...

  5. Linux学习之路--shell学习

    shell基础知识 什么是Shell Shell是命令解释器(command interpreter),是Unix操作系统的用户接口,程序从用户接口得到输入信息,shell将用户程序及其输入翻译成操作 ...

  6. ios开发学习笔记001-C语言基础知识

    先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...

  7. shell基础知识总结

    1. shell 对于一台计算机而言,其硬件受系统内核的控制,使用者想要控制计算机,就必须有与系统内核进行通讯的手段.而shell就是使用者与计算机进行通讯的手段之一.从命名上看,shell其实是相对 ...

  8. [Linux 001]——计算机和操作系统的基础知识

    在正式开始学习 Linux 操作系统之前,有必要先回顾/学习一下计算机和操作系统的基本知识,为我们在后续的学习中铺路搭桥,在了解计算机一些基础原理的条件下再去进行学习,理解应该会更透彻一些.我会从一个 ...

  9. 【分享】4412开发板-嵌入式Linux开发须要掌握的基础知识和技能

    本文转自迅为电子论坛:http://www.topeetboard.com 1.Linux 基础 安装Linux操作系统 Linux文件系统 Linux经常使用命令 Linux启动过程具体解释 熟悉L ...

  10. shell基础知识---与监听服务器长连接端口状态

    从未写过脚本我的最近接了俩脚本的需求,就在这分享一下我的我学到基础知识主要就四部分内容 一.变量 变量的定义 string='字符串' string="字符串" num=808st ...

随机推荐

  1. 小菜庄园 Spring------图片的上传和下载

    1.图片的上传前台三个条件 文件上传页面的3个要求:            < 1.表单提交为post.mothod="post"            < 2.表单的 ...

  2. H5演示文稿快速制作

    详见: http://www.geekfan.net/8107/ 或 http://www.jianshu.com/p/09a3bbb8b362

  3. 撩课-Web大前端每天5道面试题-Day15

    1.请描述一下 cookies,sessionStorage 和 localStorage 的区别? cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过 ...

  4. Qless 相关知识

    Qless是一个基于redis的分布式任务架构.相关代码在 https://github.com/seomoz/qless 它是完全有lua实现的,依靠 redis 对lua的支持,http://ww ...

  5. spring与dwr整合实现js直接使用java代码

    此文章是基于 搭建Jquery+SpringMVC+Spring+Hibernate+MySQL平台 一. jar包介绍 1. dwr-3.0.1.jar,支持 spring 4.3.4 的最低版本 ...

  6. BZOJ1492 [NOI2007]货币兑换

    Description 小Y最近在一家金券交易所工作.该金券交易所只发行交易两种金券:A纪念券(以下简称A券)和 B纪念券(以下 简称B券).每个持有金券的顾客都有一个自己的帐户.金券的数目可以是一个 ...

  7. 纯css 画气泡

    我们知道运用css可以绘画出各式各样的形状:三角形,圆形,正方形,椭圆形,平行四边形等等,而通过他们之间进行两两组合可以变换出各种意想不到的效果图,气泡框就是其中一个.最简单的气泡框就是一个矩形框+一 ...

  8. HTTP协议笔记整理

    有人说过,精通HTTP协议能赢过95%的前端工程师,所以我毅然的踏上这条路,哈哈哈,接下来把自己的学习笔记整理出来. 我会从比较底层的模型开始: 1.网络的五层模型 2.TCP/IP协议 3.HTTP ...

  9. LintCode2016年8月22日算法比赛----克隆二叉树

    克隆二叉树 题目描述 深度复制一个二叉树. 给定一个二叉树,返回一个它的克隆品. 样例 给定一个二叉树: 1 / \ 2 3 / \ 4 5 返回其相同结构相同数值的克隆二叉树: 1 / \ 2 3 ...

  10. 如何一键部署项目&&代码自动更新

    my-deploy : 由nodejs写的一个自动更新工具,理论支持所有语言(php.java.c#)的项目,支持所有git仓库(bitbucket.github等). Github 效果如何? 如果 ...