linux 进阶命令
学习进阶命令是为了提高工作效率!
1、历史命令
history [选项] [历史命令保存文件]
选项:
-c:清空历史命令(在线上的工作中是禁用的)
-w:把缓存中的历史命令写入历史命令保存文件
~/.bash_history
-
-
历史命令默认会保存1000条,可以在环境变量配置文件/etc/profile中进行修改
-
历史命令的调用
-
-
使用上、下箭头调用以前的历史命令
-
使用“!n”重复执行第n条历史命令
-
使用“!!”重复执行上一条命令
-
使用“!字串”重复执行最后一条以该字串开头的命令
-
2、命令与文件补全
-
在Bash中,命令与文件补全是非常方便与常用的功能,我们只要在输入命令或文件时,按“Tab”键就会自动进行补全
二、命令别名与常用快捷键
1、命令别名
alias 别名="原命令“” 设定命令别名
# alias 查询命令别名
命令执行时顺序
-
第一顺位执行用绝对路径或相对路径执行的命令。
-
第二顺位执行别名。
-
第三顺位执行Bash的内部命令。
-
第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令。
-
vi /root/.bashrc让别名永久生效
unalias 别名 删除别名
2、Bash常用快捷键
快捷键
|
作用
|
ctrl+A
|
把光标移动到命令行开头。如果我们输入的命令过长,想要把光标移动到命令行开头时使用。
|
ctrl+E
|
把光标移动到命令行结尾。
|
ctrl+C
|
强制终止当前的命令。
|
ctrl+L
|
清屏,相当于clear命令。
|
ctrl+U
|
删除或剪切光标之前的命令。我输入了一行很长的命令,不用使用退格键一个一个字符的删除,使用这个快捷键会更加方便
|
ctrl+K
|
删除或剪切光标之后的内容。
|
ctrl+Y
|
粘贴ctrl+U或ctul+K剪切的内容。
|
ctrl+R
|
在历史命令中搜索,按下ctrl+R之后,就会出现搜索界面,只要输入搜索内容,就会从历史命令中搜索。(较少用)
|
ctrl+D
|
退出当前终端。(相当于exit)
|
ctrl+Z
|
暂停,并放入后台。这个快捷键牵扯工作管理的内容,我们在系统管理章节详细介绍。
|
ctrl+S
|
暂停屏幕输出。
|
ctrl+Q
|
恢复屏幕输出。
|
三、输入输出重定向
1、标准输入输出
设备
|
设备文件名
|
文件描述符
|
类型
|
键盘
|
/dev/stdin
|
0
|
标准输入
|
显示器
|
/dev/sdtout
|
1
|
标准输出
|
显示器
|
/dev/sdterr
|
2
|
标准错误输出
|
2、输出重定向
类型
|
符合
|
作用
|
标准输出重定向
|
命令 > 文件
|
以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中。
|
|
命令 >> 文件
|
以追加的方式,把命令的正确输出输出到指定的文件或设备当中。
|
标准错误输出重定向
|
错误命令 2> 文件
|
以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中。
|
|
错误命令 2>> 文件
|
以追加的方式,把命令的错误输出输出到指定的文件或设备当中。
|
正确输出和错误输出同时保存
|
命令 > 文件 2>&1
|
以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。
|
|
命令 >> 文件 2>&1
|
以追加的方式,把正确输出和错误输出都保存到同一个文件当中。
|
|
命令 &> 文件
|
以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。
|
|
命令 &>> 文件
|
以追加的方式,把正确输出和错误输出都保存到同一个文件当中。
|
|
命令 >> 文件1 2>> 文件2
|
把正确的输出追加到文件1中,把错误的输出追加到文件2中。
|
3、输入重定向
wc [选项] [文件名]
选项:
-c
|
统计字节数
|
-w
|
统计单词数
|
-l
|
统计行数
|
-
命令<文件把文件作为命令的输入
四、多命令顺序执行与管道符
1、多命令顺序执行
多命令执行符
|
格式
|
作用
|
;
|
命令1 ; 命令2
|
多个命令顺序执行,命令之间没有任何逻辑联系
|
&&
|
命令1 && 命令2
|
逻辑与
|
|
|
当命令1正确执行,则命令2才会执行
|
|
|
当命令1执行不正确,则命令2不会执行
|
||
|
命令1 || 命令2
|
逻辑或
|
|
|
当命令1执行不正确,则命令2才会执行
|
|
|
当命令1正确执行,则命令2不会执行
|
例子:
ls ; date ; cd /user ; pwd
dd if=输入文件 of=输出文件 bs=字节数 count=个数
选项:
if=输入文件
|
指定源文件或源设备
|
of=输出文件
|
指定目标文件或目标设备
|
bs=字节数
|
指定一次输入/输出多少字节,即把这些字节看做一个数据块
|
count=个数
|
指定输入/输出多少个数据块
|
例子:
date ; dd if=/dev/zero of=/root/testfile bs=1k count=100000 ; date
ls anaconda-ks.cfg && echo yes
ls /root/test || echo "no"
命令 && echo yes || echo no
2、管道符
命令格式:
命令1 | 命令2
#命令1的正确输出作为命令2的操作对象
颜色显示
例子:
ll -a /etc/ | more
netstat -an | grep "ESTABLISHED"
grep [选项] "搜索内容" 文件名
选项:
-i
|
忽略大小写
|
-n
|
输出行号
|
-v
|
反向查找
|
--color=auto
|
搜索出的关键字用颜色显示
|
五、通配符与其他特殊符号
1、通配符
通配符
|
作用
|
?
|
匹配一个任意字符
|
*
|
匹配0个或任意多个任意字符,也就是可以匹配任何内容
|
[]
|
匹配中括号中任意一个字符。例如:[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c。
|
[-]
|
匹配中括号中任意一个字符,-代表一个范围。例如:[a-z]代表匹配一个小写字母。
|
[^]
|
逻辑非,表示匹配不是中括号内的一个字符。例如:[^0-9]代表匹配一个不是数字的字符。
|
练习:
touch file{1..10}
cd /tmp/
rm -rf *
touch abc
touch abcd
touch 012
touch 0abc
ls ?abc
ls [0-9]
ls [^0-9]*
ls[abc] ls[abc][abc]或ls[a-c]ls[a-c]
echo显示后面的内容
$查看变量
x+y=4
x=2
echo $x
echo ‘$x’
#注释
echo #x