一 先介绍几种常用字符:

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. [C#]LockBits使用笔记

    昨天想基于一张图片做个手机锁屏来着,原图如下:主要是嫌白底太丑了,一开始是想画图工具直接油漆桶伺候,然而一浇上去就发现问题了,变成了这样:看来得手工处理一下把底色统一了,原图分辨率挺高的,SetPix ...

  2. 一、window下zookeeper独立部署

    zookeeper是一个分布式协调应用,用于管理大型主机.通俗地说,分布式应用相对于单体应用存在着很多要处理的问题,而这些问题通常是不太好处理的.比如,典型的一致性问题,而zookeeper可以很简单 ...

  3. uestc 1072 a ^ b

    a ^ b Time Limit: 1000 ms Memory Limit: 65535 kB Solved: 334 Tried: 2153 Description 求a的b次方后四位.   In ...

  4. C# 设计模式·创建型模式

    面试问到这个··答不出来就是没有架构能力···这里学习一下···面试的时候直接让我说出26种设计模式··当时就懵逼了··我记得好像之前看的时候是23种的 还有3个是啥的··· 这里先列出几种创建型模式 ...

  5. LeetCode ImplementStrstr

    class Solution { public: char *strStr(char *haystack, char *needle) { if (haystack == NULL || needle ...

  6. Java设计模式—状态模式

    状态模式又是一个比较难的设计模式 定义如下: 当一个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类. 个人理解:通俗的讲,状态模式就是状态的改变引起了行为的改变,但是,我们只能看到行为的 ...

  7. C#关于Clone()方法的介绍

    日常啪啪啪代码的时候,常常遇到浅复制与深复制的问题,下面就自己经验写写,有问题请留言! 例如我有一个简单的类: class People { public int _age; public strin ...

  8. 【html/css】若母div设置了透明度,如何才能使得里面的子div不继承母div的透明度

    用rgba的方式给母div设置透明度的话就不会影响子div的透明度了. 例: background: rgba(51, 51, 51, 0.5);

  9. Oracle 11g 管理工具及SQL Deverloper 的使用教程

    Oracle 管理工具及SQL Deverloper 的使用教程 默认的网站的管理工具 网址格式:https://机器名:1158/em 默认:https://localhost:1158/em 机器 ...

  10. Android碎笔录3——点击跳转

    只要是view都能设置点击事件,不必要非得是Button. 要想实现跳转得三步走: 第一步.绑定 每个Layout都有一个一个java文件跟它绑定,这个Layout相关的代码都写在这个java文件里 ...