Shell 基础学习(一)

0x0001 Bash 常用快捷键

Ctrl + A: 将光标移到命令行开头

Ctrl + E: 将光标移到命令行结尾

Ctrl + U: 删除或剪切光标之前的命令

Ctrl + K: 删除或剪切光标之后的命令

Ctrl + Y: 粘贴以上两个快捷键的内容

Ctrl + R: 在历史命令中搜索

Ctrl + D: 退出当前终端

Ctrl + L: 清屏

Ctrl + C: 强制终止当前命令

0x0002 Bash 变量

变量分类:

  • 用户自定义变量
  • 系统变量:保存和系统操作环境相关的数据。
  • 位置参数变量:用来向脚本传递参数或数据,变量名不可自定义,变量的作用是固定的。
  • 预定义变量:在 Bash 中已经定义好的变量,不可自定义,变量的作用是固定的。

0x0003 用户自定义变量(本地变量)

  • 定义变量

name=123

  • 变量叠加

aa=123

aa=”$aa”356

aa=${aa}3533

  • 变量的调用

echo $aa

  • 变量的查看

set

  • 变量的删除

unset aa

0x0003 环境变量

用户自定义变量只在当前 Shell 中生效,而环境变量会在当前 Shell 和这个 Shell 的所有子 Shell 中生效。如果把环境变量配置到相应的配置文件中,那么这个环境变量会在所有的 Shell 中生效。

  • 设置环境变量

export 变量名=变量值

1
2
3
4
export name=qwe

name=qwe
export name
  • 查询环境变量

env

  • 删除环境变量

unset 变量名

系统常见常用环境变量:

  • PATH

系统查找命令的路径。可以通过变量叠加将自己写的 shell 文件加入 PATH 中,临时生效。

  • PS1

    定义系统提示符变量。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    \d: 显示日期。格式:星期 月 日
    \h: 显示简写主机名。如果 “loalhost”
    \t: 显示 24 小时制时间。格式为: HH:MM:SS。
    \T: 显示 12 小时制时间。格式为: HH:MM:SS。
    \A: 显示 24 小时制时间。格式为: HH:MM。
    \u: 显示当前用户名。
    \w: 显示当前目录所在完整名称。
    \W: 显示当前目录的最后一个目录。
    \#: 显示执行的第几个命令。
    \$: 提示符,若是 root 则显示为 “#”,普通用户显示为:“$”

0x0004 位置参数变量

向 shell 脚本中传递参数。

位置参数变量| 作用
|–|–|
$n| n 为数字,$0 代表命令本身,$1~$9 代表第一到第九个参数,十以上的参数需要使用大括号,如: ${10}
|$*|这个变量代表命令行中所有的参数,把所有的参数看成一个整体
|$@|这个变量代表命令行中所有的参数,把参数分开来看
|$#|这个变量代表命令行中所有参数的个数

注意 $* h和 $@ 的区别。

0x0005 预定义变量

其实位置参数变量也是预定义变量的一种,不过由于其独特的作用而单独拿出来标识一下。

预定义变量| 作用
|–|–|
|$?| 最后一次执行命令的返回状态。如果是 0 ,代表上一条命令执行成功
$$|当前进程的进程号(PID)
$!|后台运行的最后一个进程的进程号(PID)

在编写 Shell 时不可能都是固定值,有时候需要操作者进行输入操作。

  • 接收键盘输入

read [选项] [变量名]

选项:

  • -p “提示信息”: 等待输入的提示信息
  • -t 秒数:指定命令等待输入的时间
  • -n z字符数:命令只接受指定数量的字符,开始执行脚本
  • -s:隐藏输入内容