Bash的基本功能

来源:互联网 发布:linux内核源代码 编辑:程序博客网 时间:2024/05/29 19:55

1.命令别名与快捷键

1.1 查看与设定别名
alias:查看系统中所有命令的别名
alias 别名=’原命令’ 设定命令别名
unalias 别名 删除别名
vi ~/.bashrc 写入环境变量配置文件(永久生效)

2.命令生效顺序

1.用绝对路径或相对路径执行的命令
2.执行别名
3.执行Bash的内部命令
4.执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令

3.常用快捷键

1.ctrl+c 强制终止当前命令
2.ctrl+l 清屏
3.ctrl+a 光标移动到命令行首
4.ctrl+e 光标移动到命令行尾
5.ctrl+u 从光标所在位置删除到行首
6.ctrl+z 把命令放入后台
7.ctrl+r 在历史命令中搜索

4.历史命令

history [选项] [历史命令保存文件]
选项:
-c:清空历史命令
-w:把缓存中的历史命令写入历史命令保存文件~/.bash_history

5.输出重定向

5.1 标准输出重定向(只能保存正确的命令结果)
简单的举一个例子:
加入我在linux上输入ifconfig命令:

[root@localhost ~]# ifconfig

这是会输出一堆信息!
如果我这样使用命令:

[root@localhost ~]# ifconfig > test.log

这时候在屏幕上不会输出任何信息,而是把命令结果保存在test.log的文件,只要查看test.log文件就好了!
如果我再执行一个命令,指向的输出文件还是test.log,那么将会覆盖之前得内容。
这时候我们就可以使用

[root@localhost ~]# ls >> test.log

这时候就会将ls命令的结果添加到test.log里面了,而不是覆盖。
5.2 标准错误输出重定向
只要在>和>>前面加一个2就好啦!

[root@localhost ~]# lss 2>>test.log

这里要特别注意!2>>和文件名之间是不可以有空格的,正确重定向是无所谓的!
5.3 正确输出和错误输出同时保存
例如:
正确:[root@localhost ~]# ifconfig >> test.log 2>&1
错误:[root@localhost ~]# ifconfigdd >> test.log 2>&1
会发现,不管命令正确或错误都写在了test.log文件中
还有一种简单的写法:

[root@localhost ~]# lsss &>>test.log

那么我如果把正确的结果和错误的结果分别输出呢!

[root@localhost ~]# cat tess >> success.log 2>>error.log

如果命令正确的话,那么结果就会写到success.log里
如果命令错误的话,那么结果就会写到error.log里

6.输入重定向

wc [选项] [文件名]
选项:
-c:统计字节数
-w:统计单词数
-l:统计行数
一个非常简单的例子:
这里写图片描述
当输入完成后按 Ctrl+D就会显示出你输入了多少个单词,多少行,多少字啦!
wc < [文件名] 统计这个文件的信息
这里写图片描述

7.管道符

7.1多命令顺序执行
(1)命令1;命令2 —多个命令顺序执行,命令之间没有任何逻辑关系
(2)命令1&&命令2 —逻辑与,当命令1正确执行,则命令2才会执行,当命令1执行不正确,则命令2不会执行
(3)命令1 || 命令2—逻辑或,当命令1执行不正确,则命令2才会执行,当命令1执行正确,则命令2不会执行
例如:

[root@localhost ~]# ls && echo yes || echo no

这句话的意思就是:
如果ls的命令正确,就会执行echo yes,echo yes执行了,那echo no就不会执行。
如果ls的命令不正确,echo yes就不会执行,echo no就会执行。
7.2管道符
命令格式:

[root@localhost ~]# 命令1 | 命令2

命令1的正确输出作为命令2的操作对象
例如:我们使用netstat -an 查看连接状态时,我们只想要看有谁连接了。
netstat -an | grep ESTABLISHED
如果我还想要统计一下有多少人连接了呢
netstat -an | grep ESTABLISHED | wc -l

8.通配符

(1)? 匹配一个任意字符
(2)* 匹配0个或任意多个任意字符,也就是匹配任何内容
(3)[]匹配括号中任意一个字符。例如:[abc]代表匹配一个字符,或是a,或是b,或是c
(4)[-]匹配括号中任意一个 字符,-代表一个范围。例如:[a-z]代表匹配一个小写字母
(5)[^]逻辑非,表示匹配不是括号内的一个字符。例如:[^0-9]代表匹配一个不是数字的字符
主要是用来匹配文件名和目录名,如果要匹配文件内容,那么就需要是会用正则表达式了。
这里写图片描述

Bash中的其他符号
(1)单引号(”)和双引号(”“)
感觉和PHP中一样,在Linux中设置一个变量。

[root@localhost ~]# aa=123[root@localhost ~]# echo $aa

这样就能够输出变量aa了,显示结果是123
如果使用单引号:

[root@localhost ~]# echo '$aa'

那么输出的结果还是$aa
如果使用双引号:

[root@localhost ~]# echo "$aa"

那么输出结果就变成了123
(2)反引号(“)和$()
先执行命令,把命令先执行然后在赋值
例如:

[root@localhost ~]# aa=`ls`[root@localhost ~]# echo $aa

这时候会显示ls的结果,也就是一堆目录和文件,同样也可以使用$()

[root@localhost ~]# bb=$(ls)[root@localhost ~]# echo $bb

(3)#号
代表注释
(4)\代表转义符
比如当我们想要输出$aa

[root@localhost ~]# echo $aa

这样是什么也显示不出来的,因为系统自动把$aa当做了一个变量,这时候就需要使用转义符了。

[root@localhost ~]# echo \$aa

正确输出了$aa

0 0
原创粉丝点击