shell的学习

shell是系统跟计算机硬件交互时使用的中间介质

 

shell的两种主要语法类型是Bourne和C,这两种语言彼此不兼容。

Bourne家族主要有sh、ksh、Bash、psh、zsh;C家族主要包括csh、tcsh

 

echo $SHELL  : 查看当前系统默认shell的种类

 

echo [选项] [输出内容]

选项:-e : 支持反斜线控制的字符转换

\a    输出警告

\b    退格键,也就是向左删除键

\n    换行符

\r    回车键

\t    制表符,也就是Tab键

\v    垂直制表符

\0nnn    按照八进制ASCII码表输出字符。其中0为数字零,nnn是三位八进制数

\xhh    按照十六进制ASCII码表输出字符。其中hh是两位十六进制数

 

echo -e "\e[1;34m  测试数据!\e[0m"

#输出颜色

#30m=黑色,31m=红色,32m=绿色,33m=黄色

#34m=蓝牙,35m=洋红,36m=青色,37=白色


 

 

第一个脚本

#!/bin/bash  表示 linux下标准脚本

 

 

 

alias  : 别名

alias ls='ls --color=auto '    : 开启常亮

alias ls='ls --color=never'    : 开启常暗

 

非永久启动别名: 比如: alias vi='vim'

 

永久启动别名(写入环境变量配置文件):vim ~/.bashrc

接着运行:source .bashrc

(注意 vim /root/.bashrc  配置root用和的环境变量)

 

unalias 别名#删除别名(临时)

 

命令生效顺序

第一顺位执行用绝对路径或者相对路径执行命令

第二顺位执行别名

第三顺位执行Bash的内部命令。

第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令

 

 

常用快捷键

ctrl+c    强制终止当前命令

ctrl+l    清屏

ctrl+a    光标移动到命令行首

ctrl+e    光标移动到命令的行尾

ctrl+u    从光标所在的位置删除到行首

ctrl+z    把命令放入后台

ctrl+r    在历史命令中搜索

 

 

历史命令

history [选项] [历史命令保存文件]

选项:

    -c:清空历史命令

    -w:把缓存中的历史命令写入历史命令保存文件 ~/.bash_history  (root 用户下操作)

vi /etc/profile     可在里面修改默认保存的历史命令行数 (HISTSIZE=1000)

历史命令使用:

1、使用上下箭头调用历史命令

2、使用“!n”重复执行第n条历史命令

3、使用"!!" 重复执行上一条命令

4、使用“!字符串” 重复执行最后一条以该字符串开头的命令

 

输出重定向

键盘  /dev/stdin     0  标志输入

显示器 /dev/stdout     1    标准输出

显示器 /dev/stderr     2    标准错误输出

标准输出重定向    命令 > 文件  覆盖模式

                        命令 >> 文件    追加模式

标准错误输出重定向    错误命令 2>文件   覆盖模式

                                错误命令 2>>文件    追加模式

正确输出和错误输出同时保存

1、    命令 > 文件 2>&1                覆盖模式,保存同一个文件里

2、    命令 >> 文件 2>&1            追加模式,保存同一个文件里

3、    命令 &>文件                    覆盖模式,保存同一个文件里

4、    命令 &>>文件                追加模式,保存同一个文件里

5、    命令>>文件1 2>>文件2    追加模式,分别保存到一个文件里

 

ls &>/dev/null        空洞

 

输入重定向

wc [选项] [文件名]

选项名:-c  统计字符数

            -w 统计单词数

            -l 统计行数

wc < hello.sh         输出 行数、单词书(空格、回车隔开就算)、字节数

wc << 字符串        当遇到该字串时就开始统计

 

多命令顺序执行

;      命令1 ; 命令2        多个命令顺序执行,之间没有逻辑关系,就算一个报错其他的还会继续

%%    命令1&&命令2     逻辑与

||        命令1||命令2        逻辑或

 

netstat -tlun   查看linux中的路由表、实际的网络连接以及每一个网络接口设备的状态信息

 

管道符 |     第一条命令执行,第二条命令才会执行

 

 

通配符

?    匹配一个任意字符

*        匹配0个或者多个任意字符,也就是可以匹配任何内容

[]        匹配中括号任意一个字符

[-]        匹配中括号任意一个字符,-代表一个范围。比如 [a-z]

[^]        逻辑非,表示匹配不是中括号内的一个字符。比如[^0-9]代表匹配一个不是数字的字符

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第一个脚本

#!/bin/bash  表示 linux下标准脚本

你可能感兴趣的:(shell,脚本语言,shell)