Linux学习总结(十七)-shell 基础知识
一 先介绍几种常用字符:
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 基础知识的更多相关文章
- linux学习笔记:1.基础知识和命令行基本操作
初次学习linux系统,想在这里记录自己的学习痕迹,如发现有不足之处,希望能指出,谢谢啦,之后的学习是在虚拟机VMware 10下的Red Hat Enterprise linux 6 的操作. 一. ...
- Linux 笔记 - 第十章 Shell 基础知识
博客地址:http://www.moonxy.com 一.前言 Shell 是系统的用户界面,提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行.实际上 Shell 是一 ...
- Linux shell基础知识(上)
Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...
- Linux Shell 基础知识(一)
1. 本文知识结构 2. shell 基础知识 2.1 shell 简单介绍 GNU bash shell 能提供对 Linux 系统的交互式访问,一般来说,使用快捷键 Ctrl + Alt + ...
- Linux学习之路--shell学习
shell基础知识 什么是Shell Shell是命令解释器(command interpreter),是Unix操作系统的用户接口,程序从用户接口得到输入信息,shell将用户程序及其输入翻译成操作 ...
- ios开发学习笔记001-C语言基础知识
先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...
- shell基础知识总结
1. shell 对于一台计算机而言,其硬件受系统内核的控制,使用者想要控制计算机,就必须有与系统内核进行通讯的手段.而shell就是使用者与计算机进行通讯的手段之一.从命名上看,shell其实是相对 ...
- [Linux 001]——计算机和操作系统的基础知识
在正式开始学习 Linux 操作系统之前,有必要先回顾/学习一下计算机和操作系统的基本知识,为我们在后续的学习中铺路搭桥,在了解计算机一些基础原理的条件下再去进行学习,理解应该会更透彻一些.我会从一个 ...
- 【分享】4412开发板-嵌入式Linux开发须要掌握的基础知识和技能
本文转自迅为电子论坛:http://www.topeetboard.com 1.Linux 基础 安装Linux操作系统 Linux文件系统 Linux经常使用命令 Linux启动过程具体解释 熟悉L ...
- shell基础知识---与监听服务器长连接端口状态
从未写过脚本我的最近接了俩脚本的需求,就在这分享一下我的我学到基础知识主要就四部分内容 一.变量 变量的定义 string='字符串' string="字符串" num=808st ...
随机推荐
- Docker学习(四): 操作容器
特别声明: 博文主要是学习过程中的知识整理,以便之后的查阅回顾.部分内容来源于网络(如有摘录未标注请指出).内容如有差错,也欢迎指正! =============系列文章============= 1 ...
- .NET MVC自定义Html辅助方法
using System;using System.Web.Mvc;using System.Web.Routing; namespace MvcTest2.Helpers{ public stati ...
- WPF中ScrollViewer嵌套引发滚动失灵的Bug
事情起因 测试报告说存在滚动条不能拖动的情况,我们几个开发人员多次测试都未重现该问题.后面发现是操作系统的问题,在XP和部分Win7上会存在该问题.而在我们开发人员的机器上,包括Win7 SP1,Wi ...
- megajson 高性能的json序列化、反序列化工具
go 自带的 encoding/json 支持json的序列化和反序列化, 然而它是基于反射的,有下面几个缺点: 反射是性能差的代名词, 并且无法在编译时进行优化. 只有 Public 字段才可以,反 ...
- csharp: Microsoft SqlHelper
from: Microsoft Data Access Application Block for .NET https://www.microsoft.com/en-us/download/con ...
- BZOJ1258 [CQOI2007]三角形
Description 画一个等边三角形,把三边的中点连接起来,得到四个三角形,把它们称为T1,T2,T3,T4,如图1.把前三个三角形也这样划分,得到12个更小的三角形:T11,T12,T13,T1 ...
- 代码积累-Common
新建Common类库 /// <summary> /// string的扩展 /// </summary> public static class StringExt { // ...
- Visual Studio Code 保存时自动格式化的问题
烦人的说,保存的时候自动格式化, 格式话后,代码就失效了 纳尼!!!! 网上其他人都说 JS-CSS-HTML Formatter这个插件在捣蛋! 试了,的确如此. 找到他,给禁用,就不会 ...
- 微服务&spring cloud架构系列汇总
为了方便查找,把微服务&微服务架构之spring cloud架构系列文章按时间正序整理了一下,记录如下: 1. 微服务架构之spring cloud 介绍 2. 微服务架构之spring ...
- Android 自定义简易的方向盘操作控件
最近在做一款交互性较为复杂的APP,需要开发一个方向操作控件.最终用自定义控件做了一个简单的版本. 这里我准备了两张素材图,作为方向盘被点击和没被点击的背景图.下面看看自定义的Wheel类 publi ...