shell : Bourne 和C
Bourne :sh, ksh, Bash, psh,zsh
C: csh, tcsh
echo $SHELL
执行结果: /bin/bash
echo 输出命令
echo [选项] [输出内容]
选项: -e:支持反斜线控制的字符转换
1echo -e "h\te\tl\nl\to"2
3echo -e "\e[1;31m 我要成大牛\e[0m" #(中间\e和[之间不能加空格!) #\e[1;31m 开启颜色显示
第一个脚本:
1vi hello.sh2#!/bin/bash3#The first program4echo -e "\e[1;36m 天上掉下个林妹妹 \e[0m"
脚本执行:
赋予执行权限,直接运行
1chmod 755 hello.sh2./hello.sh3# 通过Bashi调用执行脚本4bash hello.sh
查看与设定别名
1alias2
3alias 别名='原命令' #(临时生效, 重启后失效)4
5alias vi='vi'
别名永久生效与删除别名:
1vi ~/.bashrc #写入环境变量配置文件
unalias 别名 (临时删除)
命令生效顺序:
- 相对路径或绝对路径
- 别名
- Bash的内部命令
- 环境变量定义的
常用快捷键:
- ctrl + c 强制终止
- ctrl + l / clear 清屏
- ctrl + u 从光标位置删除到行首
- ctrl + a 光标跳到行首
- ctrl + e 光标跳到行尾
- ctrl + z 把命令放入后台
- ctrl + r 在历史命令中搜索
历史命令
history [选项] [历史命令保存文件]
选项:
- -c : 清空历史命令
- -w : 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
历史命令默认保存:1000条
1vi /etc/profile
历史命令的基本用法:
- 上下箭头
- “!n”重复执行第n条命令
- “!!”重复执行上一条命令
- “!字符串”重复执行最后一条以该字符串开头的命令
命令与文件补全 —— tab
输出重定向
标准输入/输出:
- 键盘 /dev/stdin 0 标准输入
- 显示器 /dev/stdout 1 标准输出
- 显示器 /dev/stderr 2 标准错误输出
2.输出重定向:
正确:
- 命令 > 文件 以覆盖的方式
- 命令 >> 文件 以追加的方式
错误:
- 命令 > 文件 以覆盖的方式
- 命令 >> 文件 以追加的方式
同时输出:
- 命令 > 文件 2>&1
- 命令 >> 文件 2>&1
- 命令 &> 文件
- 命令 &>> 文件
- 命令 >> 文件 2>>文件2
输入重定向
wc [选项] [文件名] (ctrl + d)
选项:
- -c : 统计字节数
- -w :统计单词书
- -l: 统计行数
管道符:
多命令顺序执行:
1.; 2. && 3.||
1ls && echo yes || echo no2
3# 命令格式:4命令1 || 命令25#命令1的正确输出作为命令2的操作对象6
7ls -l /etc | more8netstat -an | grep ESTABLISHED | wc -l9ll -a /etc | more
通配符:
- ?:
- *:
- [ ]:
- [-]:
- [^]: echo ‘ls’ = echo $(ls)
严格控制空格!!!