Bash 的基本功能
历史命令
历史命令的查看
命令:history [选项]-c 清空历史命令-w 把缓存中的历史命令保存到历史命令配置文件
历史命令的调用
调用之前使用过的历史命令有以下几种办法:使用上、下光标键调用使用“!n”,重复执行第n条历史命令使用“!!”,重复执行上一条命令使用“!字符”,重复执行最近一条以此字符开头的命令
命令与文件名的补全
使用tab按钮,提供了如命令补齐、路径补齐等功能
注意:补齐功能有时候会将目录结尾处自动补上/符号,导致系统识别出现问题,从而报错。
命令别名
命令:alias 别名=’原命令 [选项]’
查看现有生效了的别名组合
[root@localhost ~]# aliasalias cp=\'cp -i\'alias egrep=\'egrep --color=auto\'alias fgrep=\'fgrep --color=auto\'alias grep=\'grep --color=auto\'alias l.=\'ls -d .* --color=auto\'alias ll=\'ls -l --color=auto\'alias ls=\'ls --color=auto\'alias mv=\'mv -i\'alias rm=\'rm -i\'alias which=\'alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde\'
别名相关配置文件(永久保存别名)
单个用户生效:~/.bashrc
所有用户生效:/etc/bashrc
注:别名命令的优先级更高,如:执行ls,优先执行的ls的别名
不同类型的命令执行的顺序
NO.1 用绝对路径或相对的方式执行命令NO.2 别名命令NO.3 bash 内置命令NO.4 根据环境变量定义的目录查询找到的命令
输入输出重定向
bash的标准输入输出
设备 设备文件名 文件描述符 类型键盘 /dev/stdin 0 标准输入显示器 /dev/stdout 1 标准正确输出显示器 /dev/stderr 2 标准错误输出
bash的输出重定向
类型 格式 作用标准输出重定向 命令 > 文件 正确信息,覆盖方式写入命令 >> 文件 正确信息,追加方式写入标准错误输出重定向 错误命令 2> 文件 错误信息,覆盖方式写入错误命令 2>>文件 错误信息,追加方式写入确输出和错误输出同时保存 命令 > 文件 2> &1 正确和错误信息,覆盖方式写入命令 >> 文件 2>&1 正确和错误信息,追加方式写入命令 & > 文件 正确和错误信息,覆盖方式写入(常用)命令 & >> 文件 正确和错误信息,追加方式写入(常用)命令 >> 文件1 2 >> 文件 2 正确写入1,错误写入2
正确信息,当然错误信息也可写入[root@localhost ~]# grep \"root\" /etc/passwdroot:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologin[root@localhost ~]# grep \"root\" /etc/passwd &>> /dev/null[root@localhost ~]# echo $?0
输入重定向(cpio/patch/wc/…)
命令:wc [选项] [文件名]-c 统计字数(字符)-w 统计单词数(字符串)-l 统计行数
[root@localhost ~]# wc anaconda-ks.cfg49 124 1383 anaconda-ks.cfg 依次是 行数、单词数、字符数[root@localhost ~]#
多命令顺序执行
分号[root@localhost ~]# cd /test ; lltotal 0-rw-r--r--. 1 root root 0 Apr 28 04:15 1.txt-rw-r--r--. 1 root root 0 Apr 28 04:15 2.txt-rw-r--r--. 1 root root 0 Apr 28 04:15 3.txt-rw-r--r--. 1 root root 0 Apr 28 04:15 4.txt-rw-r--r--. 1 root root 0 Apr 28 04:15 5.txt[root@localhost test]#当前面没有执行,则后面的也执行,只不过是在当前目录下执行[root@localhost ~]# cd /abc ; ll-bash: cd: /abc: No such file or directorytotal 8-rw-------. 1 root root 1383 Apr 15 06:06 anaconda-ks.cfg-rwxr-xr-x. 1 root root 364 Apr 27 04:28 hello.sh&&[root@localhost ~]# cd /test && lltotal 0-rw-r--r--. 1 root root 0 Apr 28 04:15 1.txt-rw-r--r--. 1 root root 0 Apr 28 04:15 2.txt-rw-r--r--. 1 root root 0 Apr 28 04:15 3.txt-rw-r--r--. 1 root root 0 Apr 28 04:15 4.txt-rw-r--r--. 1 root root 0 Apr 28 04:15 5.txt[root@localhost test]#当前面命令没有执行,则后面的也不执行[root@localhost ~]# cd /abc && ll-bash: cd: /abc: No such file or directory||当前面命令执行错误,则执行后面的命令[root@localhost ~]# cd /abc || ll-bash: cd: /abc: No such file or directorytotal 8-rw-------. 1 root root 1383 Apr 15 06:06 anaconda-ks.cfg-rwxr-xr-x. 1 root root 364 Apr 27 04:28 hello.sh前面命令执行,后面命令不执行[root@localhost ~]# cd /test || ll[root@localhost test]#