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 ...
随机推荐
- Java - 关于泛型
自Java 1.5开始使用的泛型,泛型给人比较直观的印象是..."尖括号里写了类型我就不用检查类型也不用强转了". 确实,那先从API的使用者的角度上想问题,泛型还有什么意义? D ...
- ASP.NET HttpWebRequest和HttpWebResponse
HttpWebRequest和HttpWebResponse类是用于发送和接收HTTP数据的最好选择.它们支持一系列有用的属性. 模拟艺龙旅游网登录 想模拟登录,首先整理一下流程 1.通过360浏览器 ...
- 【7】.net WebAPI Owin OAuth 2.0 密码模式验证实例
1.OAuth密码模式 2.在VS中创建WebAPI项目 在nuget中安装: Microsoft.AspNet.WebApi.Owin Microsoft.Owin.Host.SystemWeb 这 ...
- Java学习网址
JAVA学习记录均参考自爱慕课网址: 爱慕课:http://www.imooc.com/course/list?c=java
- golang rpc 简单范例
RPC(Remote Procedure Call Protocol)--远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议. 它的工作流程如下图: go ...
- MIME格式说明,电子邮件格式(转载)
邮件格式说明 Mutiple Internet Mail Extensions Refer to Internet Official Protocol Standards RFC 822 1 概述 网 ...
- Code Signal_练习题_arrayChange
You are given an array of integers. On each move you are allowed to increase exactly one of its elem ...
- ES6学习笔记(一)-变量的解构赋值
变量的解构赋值种类 解构(Destructuring):ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值. 只有当一个数组成员严格等于(===)undefined,包括空“ ” ,默认值 ...
- 转:使用VS Code断点调试PHP
使用VS Code断点调试PHP vs code 使用一款杰出的轻量级代码编辑器,其中的插件工具不胜枚举而且还在不断增加.使用 vs code 调试 PHP 代码更是方便简洁,下面我们来一起看一下. ...
- 客户端和服务端如何使用Token和Session
一.我们先解释一下他的含义: 1.Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背 ...