Bash入门——Linux学习笔记(四)

Bash入门

Shell变量

能够简单理解为一个盒子,用来存放一些数据,它的特点就是方便修改。

变量的取用和设定

指令 用法 功能
echo echo $变量 输出变量的值
unset unset $变量 取消变量

在设定变量时遵循如下规则:

  1. 变量和内容间用 [ = ] 连接。 eg: a=Bash
  2. 等号量变不可有直接的空格。 反例: a = Ba sh
  3. 变量只能是英文与数字,能以字母开头。
  4. 若有空格可以放在引号中。
    • 双引号内特殊字符,如 $ 等,保持原有特性,即:变量还是变量
    • 单引号内特殊字符为纯文本,即:变量是文本
  5. 可用 \ 转义特殊字符(空格符等)
  6. 使用其他指令信息时,需要将指令放在 KaTeX parse error: Can't use function '\`' in math mode at position 6: () 或 \̲`̲ \` 中。 eg: vers…( uame -r )
  7. 使用 ${变量名} 增加变量内容
  8. 使用 export 使得变量变为环境变量,常见于传递给子程序变量时使用。

环境变量

指令 用法 功能
env env 查看当前shell下所有环境变量及其内容
set set 查看出环境变量外的其他变量

​ PS1 提示符设定

显示结果的语系

指令 功能
locale 控制系统显示语系

LANG 和 LC_ALL 变量设定好,基本可覆盖其他预习变量。在 tty1~tty6 环境中,一般默认无中文接口的软件,显示中文会乱码。

所有的语系文件保存在 /usr/lib/locale 中,系统默认语系配置保存在 /etc/locale.conf

数据类型与键盘读入数据

Shell中同样可以声明变量的类型。

指令 用法 功能
declare / typeset declare [-aixr] variable 声明变量类型
  • -a : 数组类型
  • -i : 整形数字类型
  • -x : 环境变量
  • -r : 只读类型,不可修改也不可unset

命令别名与历史指令

变量别名

变量别名能够见日常使用包含各类参数的指令,再一次重命名成一个新的指令名

指令 用法 功能
alias alias commond = ‘commond2 -x’ 设置别名
alias unalias commond 取消别名

指令历史

使用 bash 登入 Linux主机后,系统默认在当前用户家目录下家里 .bash_history 文件读取获得历史指令,保存大小由 HISTFILESIZE 变量的大小决定。只有在用户退出时,将指令记录写入到这个文件中,当同一账户同时打开多个 bash 时,最后一个 bash 退出才会写入文件。

指令 用法 功能
history history [n-carw] 查询执行过的功能

bash 环境配置文件

login 与 non-login shell

  • login shell : 需要完整的登入流程,读取 /etc/profile 整体环境文件,再依次读取个人配置文件:

    • ~/.bash_profile
    • ~/.bash_login
    • ~/.profile

    随后继续读入 ~/.bashrc , /etc/bashrc (centos特有)

  • non-login shell : 不去要重复登入的流程,会读取 ~/.bashrc 文件,当用户修改过 **~/.bashrc文件后,可以通过 source 指令使得配置生效。
    在这里插入图片描述

指令 功能
source 重新读入

终端机环境设定

指令 功能
stty 设置中断变量

以下一些 bash 的默认组合键:

组合 执行结果
Ctrl + C 终止当前命令
Ctrl + D 输入结束(EOF)
Ctrl + M 等于Enter
Ctrl + S 暂停屏幕输出
Ctrl + Q 恢复屏幕输出
Ctrl + U 在提示符下,整行删除指令
Ctrl + Z 暂停当前指令

通配符与特殊符号

符号 意义
* 零到无穷多个任意字符
? 一定有一个任意字符
[ ] 一定有一个括号内的字符,
[-] 在编码顺序内的所有字符
[^] 若是括号第一个符号,则是反向选择
# 批注符号
\ 跳脱(转移)符号
| 管道符号
; 命令分隔符
~ 家目录
$ 变量前导符
& 工作控制,指令变为后台工作
! 逻辑非
/ 路径分隔符
>, >> 数据重定向,输出导向,分别是取代和累加
<, << 数据重定向,输入导向
’ ’ 不具备变量置换的文本
" " 具备变量置换的文本
` ` 两个 `,中间为可先执行指令,同 $()
( ) 子shell的起始于结束
{ } 指令块区

数据流重定向

  • 标准输入 (stdin) : 代码0,使用 < 或 <<
  • 标准输出 (stdout) : 代码1,使用 > 或 >>
  • 标准错误输出 (stderr) : 代码2,使用 2> 或 2>>

此处有一个特殊的输出路径 /dev/null ,通常称为垃圾桶,所有需要忽略的信息都可以输出到这里,内容就被丢弃了。

管道命令

一个指令执行的结果,作为下一个指令的输入,传输的过程就像是有一个管道把两个指令连接起来。

发布了29 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42404727/article/details/104565796