shell从广义上分为两类:

  • GUI:GNOME KDE XFACE等
  • CLI:sh csh bash

shell启动:当用户登录完成后,系统会自动启动shelll程序

进程:应用程序的副本,用PID区分(在系统中,进程只认为自己存在)

root student用户

shell:父shell程序和子shell程序(父子shell之间设置环境互相独立)

# cat /etc/shells //查看支持哪些shell

# yum -y install ksh csh

#exit//退出当前shell

shell是一个程序

bash的特性:

  1. 命令历史history:Linux会自动记录系统过去执行的命令,并保存在内存的缓冲区中,
  2. 在每个用户的家目录下,有个隐藏文件.bash_history保存命令历史

-c:清空命令历史

-d:删除某一条命令历史

-w:将命令历史保存到某个文件中

变量:PATH命令路径变量

HISTSIZE:命令历史大小变量

# echo HISTSIZE//查看HISTSIZE(命令历史大小)变量的值,默认1000

  • !n:执行命令历史中的第n个命令
  • !-n:倒数第n个命令
  • !Word:执行命令历史中最近一个匹配的命令
  • !!:执行上一条命令
  • !$:引用一个命令的最后一个参数
  • esc+.:引用一个命令的最后一个参数

管道,重定向

命令别名(alias定义的别名只在当前shell生效)

alias comm_alias=command

unalias comm_alias//取消别名

注意:执行alias命令时,command最好用‘’标识出来

# alias cdnet='cd /etc/sysconfig/network-scripts'

命令行编辑

  • ctrl+a:命令行行首
  • ctrl+e:命令行行尾
  • ctrl+u:删除光标到行首
  • ctrl+k:删除光标到行尾
  • ctrl+l:清屏

命令行展开

命令补齐:在PATH变量搜索命令并补齐(PATH变量必须正常)

路径和文件补齐:(在系统路径中查找)

命令替换:把命令中的子命令替换为子命令执行结果的过程

$(command)或者`command`

# echo "Dirctory is $(pwd)"

“”:弱引用,实现变量的替换,将变量的名字编程变量值

‘’:强引用,不能实现变量的替换

命令行通配:globbing

*:匹配任意长度的任意字符

?:匹配任意单个字符

[]:匹配指定范围内的任意单个字符

[ab][a-m][a-Z][A-Z][a-zA-Z][0-9][a-zA-Z0-9]

[^]:匹配指定范围外的任意单个字符

[:space:]:表示空格

[:punct:]:表示所有标点

[:lower:]:表示所有小写字母

[:upper:]:表示所有大写字母

[:alpha:]:表示所有字母(包括大小写)

[:dgit:]:表示所有的数字

[:alnum:]:表示所有数字和大小写字母

Linux学习笔记07之shell的更多相关文章

  1. Linux学习笔记:使用shell脚本实现ftp的自动上传下载

    在 Linux 下可以利用 Shell 实现 ftp 文件的自动上传和下载,封装至 crontab 更可实现定时调度. 1.ftp自动登录批量下载文件 ##### 从ftp服务器上的/home/dat ...

  2. Linux 学习笔记 4:Shell 编程

    1.简单过滤器 a. pr [OPTION] [FILE] 功能:改变文件打印格式 选项 功能 -l n 设定页面长度为n行 -w n 设定页面总宽度为n个字符(不够会被砍掉) -h str 设定页眉 ...

  3. Linux 学习笔记 3:Shell 基础

    1.Shell的工作原理 Shell是用户和操作系统之间的接口.当用户登录系统,有一个Shell进程随之启动,并在用户注销时终止.用户输入的命令是Shell输入. 处理命令的步骤:查找命令中的元字符: ...

  4. Linux学习笔记07—mysql的配置

    一.mysql简介 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库,咱 ...

  5. 鸟哥Linux学习笔记07

    1, vi 是 老式的文字处理器,不过功能已经很齐全了,但是还是有可以进步的地方. vim可以说是程序开发者的一项很好用的工具,vim官网(http://www.vim.org)自己也说vim是一个“ ...

  6. Linux 学习笔记

    Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...

  7. Linux 学习笔记之超详细基础linux命令 Part 13

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 12---------------- ...

  8. Linux 学习笔记之超详细基础linux命令 Part 11

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 10---------------- ...

  9. Linux 学习笔记之超详细基础linux命令 Part 1

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122   说明:主要是在REHL Server 6操作系统下进行的测试 --字符界面虚拟终端与图形界面之间的切 方法:[ ...

随机推荐

  1. Storm —— 单机环境搭建

    1. 安装环境要求 you need to install Storm's dependencies on Nimbus and the worker machines. These are: Jav ...

  2. Java连载3-编译与运行阶段详解&JRE,JDK,JVM关系

    ·一. 1.JDK下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html ...

  3. HashMap原理(二) 扩容机制及存取原理

    我们在上一个章节<HashMap原理(一) 概念和底层架构>中讲解了HashMap的存储数据结构以及常用的概念及变量,包括capacity容量,threshold变量和loadFactor ...

  4. TypeScript算法与数据结构-数组篇

    数组是数据结构中最简单,也是使用最广泛的一种.在原生的js中,数组给我们提供了很多方便的操作方法,比如push(), pop(), shift(), unshift().但是出于对数据结构的学习,我们 ...

  5. 在CentOS7环境下安装Mysql

    1.wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm // 下载mysql yum源 2.rpm -i ...

  6. java打印1000内的质数并用表格输出

    <table width='500' border='1'><% int c=1; for(int i=2;i<=1000;i++){ int n=0; for(int j=2 ...

  7. springMVC java.lang.IllegalStateException: getOutputStream() has already bee

    在导出文件的时候,一直报这个错误. 网上一般的做法是out.clear();或者使用servlet或者Action返回null. 试过了这些方法都不成功. 最后直到试了在jsp重定向的方法才成功了. ...

  8. c++指针经典题目分析

    首先看一下题目,下列程序会在那一行崩溃,程序如下: #include<iostream> using namespace std; struct S{ int i; int *p; }; ...

  9. 图片去水印工具:Inpaint 7.2中文专业破解版下载及使用方法

    下载地址: 点我 Inpaint 是一款可以从图片上去除不必要的物体,让您轻松摆脱照片上的水印.划痕.污渍.标志等瑕疵的实用型软件:简单说来,Inpaint 就是一款强大实用的图片去水印软件,您的图片 ...

  10. ASP.NET Core系列(一): .NET Core简介及安装开发环境

    大家都知道Java是跨平台的,.NET因为不具有跨平台的特性,被越来越多的开发者诟病,之前有各种间接的跨平台的方案,比如mono.但是由于各种兼容问题,最终 .NET Core出现了,它可以让程序在W ...