Bash
bash定义: linux使用版本的shell叫做的“Bourne again Shell”,简称bash。
type:查看是否为shell的内置命令
1.echo $变量名: 取用变量 ,设置规则介绍略过。
unset 变量名 : 取消设置的变量
2.env :观察环境变量 (environment的缩写)
set: 观察环境变量和自定变量(set 还可以帮我们设置整个指令输出/输入的环境。 例如记录历史命令、显示错误,这个懒得写笔记了好累啊)
列举几个变量:
PS1变量:这个东西就是我们的“命令提示字符”.可以用man bash去看看PS1 , echo ${PS1}
$ : 目前这个线程的pid代号 echo $$
? : 上一个指令的回传值, 正确时候回传0,错误时候回传非零 echo $?
export 将自定变量转为环境变量
locale查看语系变量,整体系统的默认语系定义在 /etc/locale.conf
3.read:读取来自键盘输入的变量
选项与参数:
-p :后面可以接提示字符
-t :后面可以接等待的“秒数
declare 宣告变量的类型
4.例`
- echo ${path#/*local/bin:}`
#从前往后删最短的那个, ##从前往后删符合取代文字的最长的那个。 从后往前%,%%
${变量/旧字串/新字串} 替换第一个旧字符
${变量//旧字串/新字串}替换所有的旧字符
5.变量设置方式str 没有设置str 为空字串str 已设置非为空字串
str没值 str为空串 str有值
var=
s
t
r
−
e
x
p
r
v
a
r
=
e
x
p
r
v
a
r
=
v
a
r
=
{str-expr} var=expr var= var=
str−exprvar=exprvar=var=str
var=
s
t
r
:
−
e
x
p
r
v
a
r
=
e
x
p
r
v
a
r
=
e
x
p
r
v
a
r
=
{str:-expr} var=expr var=expr var=
str:−exprvar=exprvar=exprvar=str
6.别名alias,unalias
历史命令history ,当期用的操作记录在~/.bash_history
7.配置文件解释
/etc/profile :login shell 才会读/etc/profile还会去调用外部的设置数据。在 CentOS 7.x 默认的情况下,下面这些数据会依序的被调用进来: /etc/profile.d/*.sh
/etc/locale.conf
: 这个文件是由 /etc/profile.d/lang.sh
调用进来的
~/.bash_profile : login shell 才会读,bash 在读完了整体环境设置的 /etc/profile 并借此调用其他配置文件后,接下来则是会读取使用者的个人配置文件。所读取的个人偏好配置文件其实主要有三个~/.bash_profile, ~/.bash_login, ~/.profile 其实 bash 的 login shell 设置只会读取上面三个文件的其中一个, 而读取的顺序则是依照上面的顺序。
~/.bashrc : nonlogin shell
时,该 bash 配置文件仅会读取 ~/.bashrc
/etc/bashrc
: CentOS 7.x 还会主动的调用 这个文件。由于这个 ~/.bashrc
会调用 /etc/bashrc
及 /etc/profile.d/*.sh
, 所以,万一你没有 ~/.bashrc
(可能自己不小心将他删除了),那么你会发现你的 bash 提示字符可能会变成这个样子:-bash-4.2$
因为并没有调用 /etc/bashrc 来规范 PS1 变量(这个我还真遇到过。不过当时不知道为什么特别郁闷)
/etc/man_db.conf
: 规范了使用 man 的时候, man page 的路径到哪里去寻找。
~/.bash_history
: 历史命令就记录在这里
~/.bash_logout
: 当我登出 bash 后,系统再帮我做完什么动作后才离开
组合按键执行结果
Ctrl + C 终止目前的命令
Ctrl + D 输入结束 (EOF),例如邮件结束的时候;
Ctrl + M 就是 Enter 啦!
Ctrl + S 暂停屏幕的输出
Ctrl + Q 恢复屏幕的输出
Ctrl + U 在提示字符下,将整列命令删除
Ctrl + Z “暂停”目前的命令
符号 :
- 代表“ 0 个到无穷多个任意字符
?代表“一定有一个”意字符
[ ] 同样代表“一定有一个在括号内”的字符(非任意字符)。例如 [abcd] 代表“一定有一个字符, 可能是 a, b, c, d 这四个任何一个
[ - ] 、[^ ]
- 标准输入 (stdin) :代码为 0 ,使用 < 或 << ; <<代表结束符
- 标准输出 (stdout):代码为 1 ,使用 > 或 >> ;>覆盖的方式输入,>>累加的方式输入
- 标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> ;
/dev/null 垃圾桶黑洞
命令执行的判断依据 ; && ||
10管道
管线命令仅会处理 standard output,对于 standard error output 会予以忽略
管线命令必须要能够接受来自前一个指令的数据成为 standard input 继续处理才行。
撷取命令: cut, grep
排序命令: sort, wc, uniq
双向重导向: tee
字符转换命令: tr, col, join, paste, expand
分区命令: split
参数代换: xargs
stdin 与 stdout 可以利用减号 “-” 来替代
ctrl+a、ctrl+e让光标移动到最前、后面