Linux基础_2_bash功能
查看当前shell:echo $SHELL
查看可用shell:cat /etc/shells
命令行编辑
光标跳到行首:Ctrl+a
光标跳到行尾:Ctrl+e
以单词为单位快速跳转光标:Ctrl+左右键
删除光标前面的所有内容:Ctrl+u
删除光标后面的所有内容:Ctrl+k
清除屏幕:clear
取消执行中的命令:Ctrl+c
退出并在后台持续运行:Ctrl+z(命令本身直接退出,文件编辑则于当前目录出现一个xxx.swp的文件)
退出终端:Ctrl+d或者exit
内部命令和外部命令
type pwd #查看pwd命令类型
man type #查看内部命令有哪些?
which ping #查看ping命令的所在目录
help cd #内部命令帮助
ifconfig --help #外部命令帮助
命令补全和路径补全
Tab键 #补全命令
hash #查看执行过的命令位置缓存
hash -d wc #删除wc命令的位置缓存
hash -r #清空命令位置缓存表
命令历史
!! #执行上一条命令
!6 #执行命令历史中的第6条命令
! -1 #执行命令历史中的最后一条命令
wc !$ #当前命令调用上一条命令的参数
注:退出时才写入.bash_history
文件名通配符
注:区别于正则表达式的元字符
* #代表任意长度的任意字符
? #代表任意单个字符
[] #代表指定范围内的任意单个字符
[^] #代表指定范围外的任意单个字符
命令别名
alias #查看定义的别名
vi .bashrc #添加到用户环境配置文件
vi /etc/bashrc #添加命令别名,对所有用户生效
unalias ipconfig #删除命令别名ipconfig
命令替换
注:$(命令)其实就是变量赋值,双引号弱引用可实现,单引号强引用不可。
echo "The current dircetory is $(pwd)"
touch file-$(date +"%Y-%m-%d-%H:%M:%S")
路径展开{}
mkdir /tmp/{a,b} #创建两个文件夹/tmp/a/和/tmp/b
重定向和管道
> #重定向到指定文件
>> #重定向并追加到指定文件
| #管道
stdin 0 #标准输入
stdout 1 #标准输出
stderr 2 #标准错误输出