bash及其特性

简介: shell:外壳GUI:GNOME,KDE,XfceCLI:sh,csh,ksh,bash,tcsh,zsh程序,进程允许一个用户登录多次进程:在每一个进程看来,当前主机上只存在内核和当前进程进程是程序的副本,进程是程序执行的...

shell:外壳

GUI:GNOME,KDE,Xfce
CLI:sh,csh,ksh,bash,tcsh,zsh

程序,进程

允许一个用户登录多次
进程:在每一个进程看来,当前主机上只存在内核和当前进程
进程是程序的副本,进程是程序执行的实例

bash自身是外部命令 但是它带有自身命令

用户的工作环境:

bash:
shell,子shell

bash---bash

某些设定bash之间互不影响(非环境变量)

bash:

  1. 命令历史
  2. 管道,重定向
  3. 命令别名
  4. 命令行编辑
  5. 命令行展开
  6. 命令名通配
  7. 变量
  8. 编程

命令行编辑

Ctrl+a:跳到命令行首
Ctrl+e:跳到命令的行尾
Ctrl+u:删除光标到行首
Ctrl+k:删除光标到行尾
Ctrl+l:清屏

命令历史:

上下箭头即可以翻历史命令

history:查看命令历史
-c:清空命令历史
-d offset [n] :删除指定位置的命令
history -d 500 3 从500
-w :保存命令历史到文件中去

环境变量

PATH:命令搜索路径
HISTSIZE:命令历史缓冲区大小

命令历史的使用技巧:

!n :执行命令历史中的第n条命令
!-n:执行命令历史中的倒数第n条命令
!!:执行上一条命令
!string:执行命令历史中最近一次匹配的命令
引用前一个命令的最后参数
!$:引用前一个命令的最后参数
ESC,. 上一次命令
ALT+.

命令补全:

PATH:
TAB:自动补全
连敲两次TAB键
路径补全:(文件,目录补全)在给定的打头的路径下查找

命令别名:

alias CMDalias=command [option] 注意:如果有空格必须要单引号。
在shell定义的别名仅在当前生命周期中有效;别名的有效范围为当前shell进程。
alias 可以显示系统上所有的别名
ualias cmdalias

命令替换$(command) `command`

把命令中某个子命令替换为其执行结果的过程
file-2013-02-28-53-31.txt
touch ./file-$(date +%F-%H-%M-%S).txt

bash支持的引号:

``:命令替换
"":弱引用,可以实现变量替换
'':强引用,不完成变量替换

文件名通配,gloobbing

*:可以匹配任意长度的任意字符
?:匹配任意单个字符
[]:匹配指定范围内的单个字符
   [abc]  [a-z]  [A-Z] [0-9] [a-zA-z]
[^]:匹配指定范围内之外的任意单个字符
touch a b      touch 'a b'
[:space:]:空白字符  
[:punct:] :标点符号
[:lower:]:小写字母
[:upper:]:大写字母
[:digit:]:数字
[:alnum:]:数字和字母
man 7 glob
[[:alpha:]]*[[:space:]]*[[:alpha:]]
[^[:alpha:]]
ls [am]*
ls *[0-9]  ls *[[:digit:]]
ls  [^[:space:]]*[0-9]
ls    *[^[:alnum:]]*
目录
相关文章
|
Linux Shell
|
Shell 应用服务中间件 Linux
|
Shell 存储 索引
|
4月前
|
Linux Shell Windows
4:Bash shell命令-步入Linux的现代方法
4:Bash shell命令-步入Linux的现代方法
53 0
|
6月前
|
关系型数据库 MySQL Shell
【Linux命令】-bash: mysql: command not found
【Linux命令】-bash: mysql: command not found
56 0
|
8月前
|
Ubuntu 安全 Linux
不用安装虚拟机,直接在Windows上面运行Linux Bash Shell,嗯!真香!!!
不用安装虚拟机,直接在Windows上面运行Linux Bash Shell,嗯!真香!!!
152 0
|
2月前
|
Linux Shell
mac/linux提示bash: telnet: command not found
mac/linux提示bash: telnet: command not found