Linux shell 特性

Linux shell 特性

补全

系统用的shell有 cat /etc/shells

默认使用的是 echo $SHELL

1)命令补全

shell会帮助你补全命令

比如说,你想打history这个命令,打到hist后不会打了,按一下 Tab键 即可自动补全

2)路径补全

比如说我现在想看 目录下某个子目录或者子文件,但是我没记住它

比如说查看.bash_history里面的内容,我没背过,我只记得是.下的东西

那么就可以先输入cat . 按Tab键补齐,但是因为.下的文件名很多,他不会直接补全,所以我们再按一次Tab键,他会显示出来.下的目录和文件

如果想继续输入则需要加上区别于其他文件或目录的字符,我们要找的是.bash_history,所以可以在写成cat .b 补全,他就会变成 cat .bash,按两次Tab键后会变成

输入cat .bash_h,因为h后就一个文件,所以直接按Tab键后补全成功

bash 快捷键

Ctrl+c 结束前台命令的使用

Ctrl+d 退出

Ctrl+l 清屏 这个意思的直接将[root@localhost ~]#放在新的一面第一行,上面的东西还在,只是在上一面,向上翻可以看见

Ctrl+a 光标移到在前面

Ctrl+e 光标移到最后面

Ctrl+u 删除掉光标前面的

Ctrl+k 删除掉光标后面的

Ctrl+r 搜索历史记录,需要使用关键词

历史命令

history

history 可以查看我们使用过的命令

HISTFILE 是持久保存命令

HISTSIZE 是历史可以保存的命令条数

echo $HISTSIZE 可以查看当前可以保存的命令条数

如果想要更改这个数字,可以使用

[root@localhost ~]# HISTSIZE=5000

[root@localhost ~]# echo $HISTSIZE

5000

当你知道history可以查看命令后,你会发现它一次性展示的太多了,要是我只想看最进10条的

用法就是history # ,#就是你要查看的条数,

你要查看最近10条的,就是 history 10 ,这个10你也可以改成你需要的

调用历史列表的命令:

!# 使用第#个历史命令

!!再使用上一次刚使用过的命令

!STRING:再一次执行命令历史列表中最近一个以STRING开头的命令

别名修改

alias 命令

alias 可以给一个命令起一个别名

使用方法就是:alias name=‘命令’

例如:给rm =-rf skj取了个nb的别名

如果不想使用这个命令了,用unalias name

变量

全局变量 :生效范围是整个shell进程

本地变量 :生效范围是当前shell进程中的某个代码片段

局部变量 :只生效于当前shell进程

特殊符号(管道符 | )

| 相当于是一个筛子,把通过的文件内容进行筛选

比如我要将IP地址所在的行显示,用法如下

grep 是将行内容提取出来

如果想将提取的内容输入到文件中,使用tee管道

tee管道是将筛选的东西输入到新的文件中,例如

这个就是将查到的IP行筛选出来,并将其输出到new7.txt中

也可以直接重定向

如果你想连续执行多条语句,可以使用;来隔开

例如:

输入输出重定向

标准输入 0

标准输出 1

标准错误 2

正常我们使用重定向符输出东西

正常我们使用的是 >或>> 来输入,可以看到diff比较两种用法所输出的文件内容,发现1> 和 > 是一样的,那是因为1可以省略

1>和>

1>>和>> 功能都一样

但是2就不可以省略

例如

这个就是将正确的输出到new.txt里面,标准错误输出到new9.txt里面,

如果你想将他们两个输出到同一个文件里面有以下几种方法:

1)

将标准错误追加进new8.txt里面

2)使用&

这个&就可以将1和2都输出到new9.txt里面

这种方法也是可以的,他先是将标准输出输出到new10.txt里面,再将标准错误输出到标准输出里面

标准输入

例子:

一般来说,输入重定向用的比较少

命令行通配符

*匹配任意长度的字符

如果你想看D开头的目录,给D后加*,表示D开头的所以目录

空设备

/dev/null 相当于是一个没有限制垃圾桶,如果你不想在终端输出东西的话,可以将其输出到这个里面

例如:yum install tree -y > /dev/null

零设备

/dev/zero 可以无限制输出0,可以用来构造大文件

空设备和零设备可以搭配dd命令来使用

例如:

[root@localhost ~]# dd if=/dev/zero of=/dev/null bs=10M count=10

[root@localhost ~]# dd if=/dev/zero of=/dev/null bs=10M count=10 10+0 records in 10+0 records out 104857600 bytes (105 MB) copied, 0.0296194 s, 3.5 GB/s

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值