shell 学习 基础

shell发展

shell 是与计算机沟通的桥梁,提供了便捷使用计算机的接口.第一个流行的shell是由Steven Bourne发展出来的,所以称为Bourne shell,简称sh;后来伯克利大学的Bill Joy 设计了与C语言语法类似的C shell.我们可以通过查看/etc/shells的方式查看可用的shell, 也可通过/etc/passwd的的方式查看每个用户的默认shell.

shell的主要功能

  • 历史命令
  • 命令,文件补全([TAB]的功能)
  • 命令别名设置功能(alias)
  • 任务管理
  • 脚本
  • 通配符

shell登录相关

  • /etc/issue可通过修改该文件指定登录前的提示信息.
  • /etc/motd可通过修改该文件指定登录后的提示信息.

shell常用功能

type

可使用该命令查看命令的来源

  • file 外部命令
  • alias 命令别名
  • builtin bash 内置命名
命令命令方法
type -t返回命令来源
type -a在path中查找所有同名的可执行文件

其他参数可自行查阅

[linuxlearn@lifan-pc ~]$ type -t ls
alias
[linuxlearn@lifan-pc ~]$ type -t cd
builtin
[linuxlearn@lifan-pc ~]$ type -t python
file

编辑相关

  • 使用 +[ENTER]将较长命令换行表示
  • [CTRL] + u / [CTRL] + k由光标处向前删除,由光标处向后删除
  • [CTRL] + a / [CTRL] + e移动到命令行首部,尾部

shell变量

  • 变量命名: shell变量的命名基本与常见编程语言类型,可用字母,数字,下划线.变量名不能以数字开头.
  • 变量设置: 变量名与变量值之间由等号"="连接,三者之间不能有空格.
  • 变量使用: 使用${variable_name}的方式应用变量名
  • unset variable_name,取消变量设置
  • 使用\进行转义字符的转义,
  • ""内部的所有符号保持原有含义,''内部的符号被作为普通字符对待.例如对于变量的引用.
  • $(experssion)可通过这种方式在公式中优先执行expression.例如cd /lib/modules/$(uname -r)/kernel

环境变量

  • HOME 家目录
  • SHELL 当前shell
  • HISTSIZE 历史命令保留的最大条数
  • PATH 执行文件查询路径
  • PS1 也即是 [linuxlearn@lifan-pc ~]$中的内容.

变量的读取和声明

read可从键盘输入中读取变量

  • read -p后可接提示符
  • read -t后可接等待的秒数

declare声明变量

参数功能
-a声明为数组
-i声明为整数类型
-x声明为环境变量
-r声明为只可读类型

命名查找顺序

  1. 通过路径指定的命令
  2. 通过命令别名查找命令
  3. 由bash内置的命令来执行
  4. 通过$PATH来查找命令

相关推荐