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=${str-expr}   var=expr       var=               var=$str
var=${str:-expr}  var=expr      var=expr        var=$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 后,系统再帮我做完什么动作后才离开

 

8.

组合按键执行结果
Ctrl + C 终止目前的命令
Ctrl + D 输入结束 (EOF),例如邮件结束的时候;
Ctrl + M 就是 Enter 啦!
Ctrl + S 暂停屏幕的输出
Ctrl + Q 恢复屏幕的输出
Ctrl + U 在提示字符下,将整列命令删除
Ctrl + Z “暂停”目前的命令

符号 :

* 代表“ 0 个到无穷多个任意字符

?代表“一定有一个”意字符

[ ] 同样代表“一定有一个在括号内”的字符(非任意字符)。例如 [abcd] 代表“一定有一个字符, 可能是 a, b, c, d 这四个任何一个

[ - ]   、[^ ]

 

9

1. 标准输入  (stdin) :代码为 0 ,使用 < 或 << ; <<代表结束符
2. 标准输出  (stdout):代码为 1 ,使用 > 或 >> ;>覆盖的方式输入,>>累加的方式输入
3. 标准错误输出(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 可以利用减号 "-" 来替代

 

 

 

这么多全敲了。脖子疼。。。T_T

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ctrl+a、ctrl+e让光标移动到最前、后面

 

posted @ 2018-11-29 23:42  圣金巫灵  阅读(337)  评论(0编辑  收藏  举报