Linux学习笔记(11)——bash

原创 2015年07月09日 14:18:53

1)  bash简介

a)  bashshell的内建指令:type name

 

b)  反斜杠(\)跳脱紧接着的字符:指令太长时可以使用[\Enter]来换行继续在>之后输入

2) 变量

a)  读取:echo $变量名/echo ${变量名}

b)  变量设定规则

c)  变量与变量内容用【=】等号连接,但是两边不能接空格字符。

d)  变量内容若有空格符,可以用双引号【“】或者单引号【‘】将变量内容结合起来。但双引号的特殊字符,如$,可以保有原有特性,而单引号只表示一般纯文本。

e)  可用跳脱字符[\],将特殊符号变成一般字符。

f)  在一串指令中,还需要借由其它的指令提供的信息,可以使用反单引号[`指令`]或[$(指令)]。

g)  若该变量为扩增变量内容时,可以使用$变量或者${变量}来累加。如:PATH=”$PATH”:/home/bin

h)  若该变量需要在其他子程序(再开启一个bash)中执行,需要用export来使变量变成环境变量。如:export PATH

i)  取消变量:unset 变量名称

j)  简化工作目录:#work="/usr/local/hadoop2.5";#cd$work

k)  观察环境变量:#env   environment的简称

l)  观察所有变量:#set

m)  键盘输入变量内容:#read [-pt] 变量名

n)  变量声明:#declare/typeset [-aixr] 变量名

 

o)  数组变量:#var[index]=content

p)  文件限制:ulimit

3) 变量删除、取代、替换

a)  总体说明

b)  变量删除

c)  变量取代

d)  变量测试

#new_var=${old_var-content}

若old_var为空,则new_var为content

 

4) 命令别名

#alias   查看系统所有指令的别名

#alias alias_name=’指令’   设置指令别名

#unalias alias_name   取消指令别名

#history  查询曾经执行过得命令

 

路径与指令搜寻顺序:先alias再builtin再由$PATH来搜寻,可以使用【type –a –指令名】来查看具体路径。

5) bash配置文件设定

a)  注销bash,前期设定的变量都会失效,除非写入bash配置文件。

b)  loginshell与 non-loginshell环境,进入bash需要输入账号密码时为loginshell,否则为non-login shell。

c)  loginshell只会读取以下两个配置文件 :

d)  /etc/profile:系统整体设定

e)  ~/.bash_profile或~/.bash_login或~/.profile:个人设定。其实 bash 的 login shell 设定只会读取上面三个档案的其中一个, 而读取的顺序则是依照上面的顺序。

f)  source:读入环境配置文件的指令,无需注销即可生效

#source 变量文件

g)  ~/.bashrc(non-login shell 会读)

h)  ~/.bash_history:登陆bash之后,首先读取该档案,历史命令

i)  ~/.bash_logout:注销 bash 后,系统再帮我做完什么后才离开

6) 终端机的环境设定,stty,set

a)  #stty–a  列出所有stty参数,setting tty的简写

b)  [#stty按键内容 按键组合]  设定按键功能

#stty erase ^h    #删除功能按键组合变为ctrl + h

c)  bash中通配符

d)  bash中特殊符号

7) 数据流重导向(redirect)

a)  standardoutput 与 standarderror output

stdout:指令执行所回传的正确的讯息

stderr:指令执行失败后,所回传的错误讯息

数据流重导向可以将stdout和stderr分别传送到其他的档案或者装置中去。所使用的特殊字符为:

       

b)  重导向之[>]与[>>]

该档案若不存在,则系统自动建立;若案存在,系统会将之清空,然后再写入;及若以[>]输出到一个已经存在的档案中,该档案会被覆盖掉。

如果需要累加而不覆盖的话,只需要把[>]替换成[>>]即可

c)  /dev/null垃圾桶黑洞装置

d)  正确与错误的数据都写到同一档案

e)  重导向之[<]与[<<]

[<]:将原本需要键盘输入的数据,改由档案内容来取代

[<<]:结束的输入字符,相当于ctrl+d

f)  命令执行的判断依据:

g)  [;]分号,不考虑指令相关性的连续指令下达

h)  若前一个指令的结果正确,Linux底下会回传一个$?=0的值

记忆的时候,可以记为与、或的关系,认为最终的结果为TRUE

i)  顺序:command1 && command2 || command3

j)  一般情况下,command2和command3放置可以成功执行的指令。

8) 管线命令(pipe)

a)  在每个管线后面接的数据必定是『指令』,而且这个指令必须要能够接受 standard input 的数据才行,这样的指令才可以称为【管线命令】

b)  管线命令仅会处理stdout,对于stderr会忽略。

c)  管线命令必须要能够接受前一个指令的数据成为stdin继续处理才行

d)  撷取命令:cut,grep

#echo $PATH | cut –d ‘:’ –f3,5

# export | cut -c 12-     

cut的主要用途在于将同一行里面的数据进行分解,取出想要的。

e)  grep:分析行信息

f)  排序命令sort,wc,uniq

 

# cat /etc/passwd | wc –l     查看系统有多少账户

g)  双向重导向tee

tee 会同时将数据流分送到档案与屏幕(screen),而输出到屏幕的,其实就是stdout,可以让下个指令继续处理。

9) 字符转换命令: tr, col, join, paste, expand

a)  tr:删除或者替换讯息

 

b)  col:将【Tab】按键取代成空格键

c)  join:两个档案中有相同数据的那一行,才将他加在一起

  

d)  paste:将两行贴在一起,且中间以tab键隔开

e)  expand:将tab按键转成空格键、

 

f)  split:档案命令

 

g)  xargs:参数代换

xargs 可以读入 stdin 的数据,并以空格符或断行字符作为分辨,将 stdin 的资料分割成为 arguments。

 

使用xargs的原因,很多指令其实并不支持管线命令,因此我们可以透过 xargs 来提供该指令引用standard input之用。

10)     总结

a)  由于核心在内存中是受保护的区块,因此我们必须要透过『 Shell 』将我们输入的指令与Kernel 沟通,好让Kernel 可以控制硬件来正确无误的工作。

b)  系统合法的shell均写在/etc/shells档案中

c)  用户默认登陆的 shell 记录于 /etc/passwd 的最后一个字段;

d)  locale:用于查看语言资料。

e)  bash的配置文件主要分为login shell 与 non-login shell。loginshell 主要读取 /etc/profile 与~/.bash_profile, non-login shell 则仅读取 ~/.bashrc

f)  管线命令必须要能够接受来自前一个指令的数据成为 standard input 继续处理才行。



------以上整理自鸟哥的Linux私房菜

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Linux学习笔记——Bash Shell

BASH Shell提示符 $为一般账户,#为root账号 快捷键 tab可作为 (1)命令补齐 (2)档名补齐 (3)参数项补齐 ctrl+z暂停正在运行的程序 ctrl+c终止正在运行的程序...

《Linux程序设计》学习笔记11——进程和信号

《Linux程序设计》学习笔记11——进程和信号 分类: 《Linux程序设计》笔记 2009-08-10 16:48 918人阅读 评论(2) 收藏 举报 linuxsi...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

LINUX学习笔记11——进程控制编程

1.         获取本进程ID: pid_t getpid(void),在程序中加入这个函数,就能在程序运行时获取本进程的ID号:printf(“pid=%d”,getpid()); 以整数形式...

鸟哥的linux私房菜学习笔记《二十三》通配符、重定向、管道等bash用法

1. 通配符: 2. 重定向 3. tee:双向重定向 4. &&,||命令执行判断依据 5. cut选取命令 6. grep:选取命令 7. sort、uniq、wc:排序命令 8. ...

【鸟哥的linux私房菜-学习笔记】Bash shell之管线命令

管线命令 (pipe)例子:ls -al /etc | less 使用 ls 命令输出后的内容,能够被 less 读取,并且利用 less 的功能,我们能够前后翻动相关的信息。**管线命令『 | 』仅...

鸟哥的linux私房菜学习笔记《二十》bash简介

1. shell的功能 2. /etc/shells 3. /etc/passwd 4. shell的功能 5. type:判断命令内、外部命令 6. 显示变量 7. 设置变量 8. 变...

Linux学习笔记1:bash入门

1、alias 用于重命名命令。例如:alias lm=“ls –al |more”2、type 用于查询命令是bash内建还是重命名或者是外部  type –t xxx 结果 file/alias/...

Linux学习笔记:bash的基础特性之变量

变量类型 变量类型决定数据存储格式、存储空间大小和参与运算种类 字符型: 数值型: 整型 浮点型 强类型:定义变量时必须指定类型,参与运算必须符合类型要求,调用未声明变量会产生错误 弱类型:无需指定...

鸟哥的linux私房菜学习笔记《二十二》bash shell的操作环境

1. 命令执行的是顺序 2. bash的登录与欢迎信息 3. bash的环境配置文件 4. source:读入环境配置文件 5. stty:终端机的设置
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)