BashShell基础

一、基本命令

1. 输出命令 —— echo

echo “要输出的字符串”   //将字符串打印到屏幕上。
echo [选项]  [输出内容]   
    -e :支持反斜线控制的字符转换。
        \a  \b退格键,删除 \n  \r  \v \t \0 \x
        颜色选项:
            \e[1;31m  文字开始着色
            \e[0m       结束着色
            其他:
                30m黑色;31m红色;32m绿色;33m黄色;
                34m蓝色;35m洋红色;36m青色;37m白色
echo $SHELL  //打印环境变量

2. 别名命令 —— alias:

临时增加别名:
    alias ls='ls --color=auto'
    重启后失效。
临时删除别名:
    unalias ls;
永久修改别名:
    用户环境变量位置:~/.bashrc   
    在环境变量中修改别名记录
           1. alias vi='vim'       //vim比vi的功能强大。使用vim代替vi
           2. source .bashrc    //调用文件,可直接生效(不用重新登入)

命令执行时的优先级:

1.优先执行绝对路径或相对路径执行的命令。
2.其次执行别名。
3.然后才是Bash的内部命令。(别名优先于内部命令)
4.按$PATH查找的环境变量中的第一个外部命令。

3. bash的快捷键:

ctrl + C   //强制退出
ctrl + l    //清屏 clear
ctrl + u     //从光标出删除到行首
ctrl + a     //光标移到行首
ctrl + e     //光标移到行尾
ctrl + z      //命令放入后台
ctrl + r       //在历史命令中搜索

4. 关于Bash:

执行历史命令:

!n   执行第n条命令
!!  执行上一条命令
!字符串   执行最后一次以此字符串开头的命令。

脚本执行方式:

1.chmod 755 hello.sh  (主要方式)
    ./hello.sh
2.bash hello.sh

shell版本:

/etc/shells    文件中表明支持的shell版本。
sh              进入子sh版本的shell解释器。

二、语法规则:

1.输入、输出重定向

标准输入:0   键盘
标准输出:1   显示器
错误输出:2   显示器

正确输出:

命令 > 文件     >覆盖,>>追加

错误输出:

命令 2>文件     >覆盖,>>追加,注意'>'与文件之间不能有空格。

正确和错误都写在指定的文件中:

命令 &> 文件
命令 > 文件  2>&1           //覆盖
命令 &>> 文件
命令 >> 文件  2>&1          //追加

/dev/null           //Linux的黑洞
ls &>/dev/null      //将结果直接丢弃

正确的日志放在一个文件,错误结果放在另一个文件

    命令  >> 文件1  2>>文件2

输入重定向:

命令  <  文件    //将文件做为输入
命令  << 引号 ... 引号   //将引号(单双都可)之间的内容作为输入数据

2.符号说明

符号 说明
匹配一个字符
* 匹配任意内容
[a,b,c] 匹配括号中的某一个字符。
[^a] 匹配不是a的字符
‘ ’ 单引号:无视特殊字符,将其当做字符串输出
“ ” 双引号:特殊、转移字符还会起作用。
` ` 反引号:将命令结果复制给变量:
aa=`ls`
echo &aa
$() 同反引号,引用系统命令:
aa=$(ls)
# 注释
$ 调用变量的值
\ 转义符,特殊符号失去作用
命令顺序执行,命令之间没有任何逻辑关系。
&& 只有当前面的命令正确执行,才会执行后面的命令,不只判断前一个,还判断前几个。
|| 前面的命令正确执行,则后面的命令错误执行;前面的命令错误执行,则后面的命令正确执行
| 管道,前一个命令的结果给后一个命令处理

3.举例

more  文件    
    文件内容分屏显示

netstat -an | grep establish | wc -l   
    服务器连接了多少人。(统计有多少监听端口处于establish)

命令 && echo "yes" || echo "no"    
    命令正确执行则输出yes,否则输出no。

shell版“helloworld”:

#!/bin/bash
#The first program
echo -e "\e[1;34m 这是HelloWorld.sh \e[0m"

你可能感兴趣的:(shell)