1.4 Bash的命令行展开和Bash环境的配置

使用read命令来接受输入

使用read来把输入值分配给一个或多个shell变量
-p 指定要显示的提示
-s 静默输入,一般用于密码
-n N 指定输入的字符长度N
-d ‘字符’ 输入结束符
-t N TIMEOUT为N秒
read 从标准输入中读取值,给每个单词分配一个变量
所有剩余单词都被分配给最后一个变量
read -p “Enter a filename: “ FILE

bash如何展开命令行

1、将命令行传入bash。

2、解析引用分割为单个单词:

shell中有3种引用方式:转义、强引用和弱引用。

????反斜线转义:使得元字符变为普通的字面字符。但这只能对反斜线后一个字符进行转义。
????单引号强引用:单引号内的所有字符全部变为字面符号符号。
????双引号弱引用:使双引号内所有字符变为字面符号,但"\"、"$"、"`"除外,如果使用"!"引用历史命令时,则感叹号也除外

[[email protected] ~]# PWD=pwd
[[email protected] ~]# echo $PWD
/root
[[email protected] ~]# echo ‘$PWD‘
$PWD
[[email protected] ~]# echo "$PWD"
/root
[[email protected] ~]# echo "$\PWD"
$\PWD

在解析引用后,shell会把命令分割单词,分隔符包括:空格、tab、分号、管道符号、&、&&、||、重定向符号、圆括号等。

? ? 3、检查命令行结构,是否有语法错误。

? ? 4、将命令行中的别名展开。在脚本中无法使用别名

? ? 5、展开声明,将各种声明中的语句展开并分割为单词。

shell对声明的展开有规定的顺序:

? ? 1)大括号展开:操作大括号中的语句,传递给命令并将结果替换

? ? 2)波浪号展开:替换为用户的家目录

? ? 3)变量扩展:即操作和替换变量值

? ? 4))命令替换:此过程将执行命令替换中的命令,并将结果替换到单词的对应位置处

? ? 5)进程替换:将进程的执行结果替换到对应位置。类似于命令替换

? ? 6)算术扩展:计算算术值,并将计算结果替换到对应位置处

????7)文件名扩展:搜索匹配通配符条件的文件。

????6、去除用于引用的引号。

? ? 7、执行命令,并返回退出状态值。

Bash环境的配置

$-变量
h:hashall,打开这个选项后,Shell 会将命令所在的路径hash下来,避免每次
都要查询。通过set +h将h选项关闭
i:interactive-comments,包含这个选项说明当前的 shell 是一个交互式的
shell。所谓的交互式shell,在脚本中,i选项是关闭的。
m:monitor,打开监控模式,就可以通过Job control来控制进程的停止、继
续,后台或者前台执行等。
B:braceexpand,大括号扩展
H:history,H选项打开,可以展开历史列表中的命令,可以通过!感叹号来完
成,例如“!!”返回上最近的一个历史命令,“!n”返回第 n 个历史命令

bash的配置文件

profile类:为交互式登录的shell提供配置

全局:/etc/profile, /etc/profile.d/*.sh
????个人:~/.bash_profile

功能:(1) 用于定义环境变量(2) 运行命令或脚本

bashrc类:为非交互式和交互式登录的shell提供配置
????```

全局:/etc/bashrc
个人:~/.bashrc

功能:(1) 定义命令别名和函数(2) 定义本地变量

配置文件在修改后,需要将其读入内存才能生效,否则只能等待下一次重启后生效

? ?读入内存:. 或者 source 配置文件。

Bash的两种登陆方式

交互式登录:

????(1)直接通过终端输入账号密码登录
????(2)使用“su - UserName” 切换的用户
? ? 执行顺序:/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

非交互式登录:

????(1)su UserName
????(2)图形界面下打开的终端
????(3)执行脚本
????(4)任何其它的bash实例
????执行顺序: ~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh

原文地址:http://blog.51cto.com/13958408/2310608

时间: 2024-10-14 00:49:13

1.4 Bash的命令行展开和Bash环境的配置的相关文章

让你提升命令行效率的 Bash 快捷键 [完整版]

生活在 Bash shell 中,熟记以下快捷键,将极大的提高你的命令行操作效率. 编辑命令 Ctrl + a :移到命令行首 Ctrl + e :移到命令行尾 Ctrl + f :按字符前移(右向) Ctrl + b :按字符后移(左向) Alt  + f :按单词前移(右向) Alt  + b :按单词后移(左向) Ctrl + xx:在命令行首和光标之间移动 Ctrl + u :从光标处删除至命令行首 Ctrl + k :从光标处删除至命令行尾 Ctrl + w :从光标处删除至字首 Al

让你提升命令行效率的 Bash 快捷键

转载自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=20543672&id=3020416 生活在 Bash shell 中,熟记以下快捷键,将极大的提高你的命令行操作效率. 编辑命令 Ctrl + a :移到命令行首 Ctrl + e :移到命令行尾 Ctrl + f :按字符前移(右向) Ctrl + b :按字符后移(左向) Alt + f :按单词前移(右向) Alt + b :按单词后移(左向) Ctrl + x

beego小技巧两则:通过命令行自定义端口和环境,url中带有中划线处理

1,通过命令行自定义端口和环境 先用flag提取参数,如果要环境,就反向注进去, 如果是端口,就打到beego.Run函数里去. 2,在作router里的url解析时,如果URL中含有-中划线,用严格的string是不能匹配的. 需要去掉这个string限定. package main import ( "flag" "fmt" _ "prismlogapi/routers" "github.com/astaxie/beego"

Linux让你提升命令行效率的 Bash 快捷键 [完整版][转]

0.前言 开始毫无节操的转别人的博客了,要充分利用现有的资源,不要把时间用在重复造车轮上^_^ 源地址:https://linuxtoy.org/archives/bash-shortcuts.html 1. 正文 生活在 Bash shell 中,熟记以下快捷键,将极大的提高你的命令行操作效率. 编辑命令 Ctrl + a :移到命令行首 Ctrl + e :移到命令行尾 Ctrl + f :按字符前移(右向) Ctrl + b :按字符后移(左向) Alt + f :按单词前移(右向) Al

Linux命令行–基本的bash shell命令

启动shell: /etc/passwd:包含系统用户账户列表以及每个用户的基本配置信息 每个条目有七个字段,每个字段用冒号隔开 用户名 用户密码 用户的系统UID 用户的系统GID 用户的全名 用户的默认主目录 用户的默认shell程序 如:zmcheng:x:501:501:zhangmingcheng:/home/zmcheng:/bin/bash 默认情况下,bash shell启动时会自动处理用户主目录下.bashrc文件中的命令 shell 提示符: PS1:控制默认命令行提示符的格

Linux 命令行报错 -bash: vi: command not found

Mac 下使用终端遇到了这个问题: appledeMacBook-Air:~ air$ vi .bash_profile -bash: vi: command not found 如图所示: 解决方法寻找中…… 这篇文章 Linux命令行报bash:.....:command not found的解决办法 介绍的方法能暂时用,但还未解决,继续摸索中…………

GITHUB中GIT BASH基础命令行

在github上已经注册了账号. 特别注意: 括号内均为提示信息 1.常用命令行工具: ①cmd ②powershell ③git bash 2.命令行常用命令(在git bash上生效,部分在cmd无用) ? -pwd (print working directory) 查看当前所在路径--绝对路径 ? -cd(change directory) 切换目标 ? -ls(list) 查看当前目录下的内容 ? -mkdir(make directory) 创建目录 ? -touch 创建文件 ?

Bash终端命令行,使用privoxy将socks代理转成http代理

安装privoxy # Ubuntu/debian sudo apt-get install privoxy # Centos sudo yum install privoxy # Mac osx sudo port install privoxy 修改配置文件 vi /etc/privoxy/config # HTTP parent looks like this: # forward-socks4 / 127.0.0.1:1080 . # # To chain Privoxy and Tor

【linux使用】bash shell命令行常用快捷键 (转载)

移动: Ctrl + A: 移动到当前编辑的命令行首, Ctrl + E: 移动到当前编辑的命令行尾, Ctrl + F 或 ->:按字符右移(往命令行尾部方向,前移) Ctrl + B 或 <-:按字符左移(往命令行尾部方向,后移) Alt + F: 按单词右移 (往命令行尾部方向,前移) Alt + B: 按单词左移(往命令行首部方向,后移) 编辑: Ctrl + C: 删除整行 Ctrl + L: 清屏,相当于clear Ctrl + U: 简介光标位置到行首的内容(包括自身),以后可用