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. 再说Java集合,subList之于ArrayList

    上一章说了很多ArrayList相关的内容,但还有一块儿内容没说到,那就是subList方法.先看一段代码 public static void testSubList() { List<Str ...

  2. 移动IM开发指南3:如何优化登录模块

    <移动IM开发指南>系列文章将会介绍一个IM APP的方方面面,包括技术选型.登陆优化等.此外,本文作者会结合他在网易云信多年iOS IM SDK开发的经验,深度分析实际开发中的各种常见问 ...

  3. Spark学习之路(十)—— Spark SQL 外部数据源

    一.简介 1.1 多数据源支持 Spark支持以下六个核心数据源,同时Spark社区还提供了多达上百种数据源的读取方式,能够满足绝大部分使用场景. CSV JSON Parquet ORC JDBC/ ...

  4. Enter passphrase

    提示“Enter passphrase for key /root/.ssh/id_rsa.pub”让输入私钥,可不论输与不输都不能直接登录 解决方法: 在本地执行: eval `ssh-agent` ...

  5. ThinkPHP判断post,get操作

    define('REQUEST_METHOD',$_SERVER['REQUEST_METHOD']); define('IS_GET', REQUEST_METHOD =='GET' ? true ...

  6. CSS3 入门级

    从刚开始学习的选择器总共有十三种: id class 标签 子代 后代 交集 并集 通配符 伪类 结构 属性 相邻 兄弟 (全当复习,如果有用的话那就正好) div[name=zhang]  这是属性 ...

  7. X-Admin&ABP框架开发-数据字典

    在业务型的系统开发中,我们需要维护各种个样的类型,比如客户类型.客户行业.商品类型等等,这些类型往往信息量不多,并且相似度极高,如果采用一类型一表去设计,将会造成极大的工作量,通过将这部分类型的信息进 ...

  8. 并发编程-concurrent指南-阻塞双端队列-链阻塞双端队列LinkedBlockingDeque

    LinkedBlockingDeque是双向链表实现的阻塞队列.该阻塞队列同时支持FIFO和FILO两种操作方式,即可以从队列的头和尾同时操作(插入/删除): 在不能够插入元素时,它将阻塞住试图插入元 ...

  9. 线性表的顺序存储C++代码实现

      关于线性表的概念,等相关描述请参看<大话数据结构>第三章的内容, 1 概念   线性表list:零个或多个数据的有限序列.   可以这么理解:糖葫芦都吃过吧,它就相当于一个线性表,每个 ...

  10. scrapy基础知识之 使用FormRequest.from_response()方法模拟用户登录:

    通常网站通过 实现对某些表单字段(如数据或是登录界面中的认证令牌等)的预填充 使用Scrapy抓取网页时,如果想要预填充或重写像用户名.用户密码这些表单字段, 可以使用 FormRequest.fro ...