1、Shell概述
-
1.1、Shell是一个命令解释器,解释用户输入的命令,让Linux内核理解并执行用户命令,同时将Linux内核执行的结果进行翻译显示通知给用户。
操作系统体系结构.jpg - 1.2、Shell分类
1、Bourne Shell,1979(sh,ksh,Bash,psh,zsh)
2、C Shell,Unix中使用的Shell(csh,tcsh)
3、查询当前使用的Shell版本,通过查询变量获得
echo $SHELL
4、查看支持的Shell版本
cat /etc/shells
5、Shell版本切换,直接输入:版本名+enter 进入,输入:exit 退回
2、脚本执行方式
- 2.1、echo输出命令
echo [选项] [输出内容]
选项:
-e 识别输出内容中的转义字符\b \t \x \e。。。。
- 2.2、hello word脚本,其中可以调用系统命令
vim hello.sh
#!/bin/bash
#The first program
echo -e "\e[1;34m hello word \e[0m"
执行方式
1、chmod 755 hello.sh (修改权限)+ ./hello.sh或者/home/hello.sh (执行)
2、bash hello.sh (直接执行)
3、Bash的基本功能
- 3.1、命令的別名
1、查看已有別名 alias
2、定義別名
临时生效:alias ls='ls --color=never'
永久生效:在用戶家目錄內的.bashrc文件中添加別名定義語句
3、刪除別名 unalias 別名
- 3.2、命令生效順序
1、執行絕對路徑和相對路徑執行命令
2、執行別名
3、執行bash的內部命令
4、執行按照$PATH环境变量定义的目录查找顺序找到的第一个命令
- 3.3、快捷键
ctrl+c 强制终止
ctrl+l 清屏 clear
ctrl+u 删除光标位置到行首
ctrl+a 到行首
ctrl+e 到行尾
ctrl+z 将命令放到后台
ctrl+r 在历史命令中搜索
- 3.4、历史命令
1、history [选项] [历史命令保存文件,在家目录下的.bash_history]
选项:
-c 清空历史命令
-w 把缓冲中命令写入保存文件\
2、默认保留1000条,可以通过/etc/profile中设置
3、!n重复执行第n条命令
4、!!重复执行上一条命令
5、!字符 重复执行上一次以字符开头的命令
6、上下键返回
- 3.5、输出重定向
1、标准输入输出
|设备~|设备文件名~ |文件描述符|
|键盘~|/dev/stdin |0|
|显示器|/dev/stdout|1|
|显示器|/dev/stderr|2|
2、格式
命令>文件 (以覆盖形式)
命令>>文件 (以追加形式)
3、保存报错信息
命令 2>文件 (以覆盖形式)
命令 2>>文件 (以追加形式)
4、正确输出和错误输出同时保存
命令>文件 2>&1
命令>>文件 2>&1(***)
命令 &>文件
命令 &>>文件(*****)
命令>>文件1 2>>文件2(****)
- 3.6、输入重定向
1、wc [选项] [文件名] //统计输入内容
选项:
-c 统计字节数
-w 统计单词数
-l 统计行
2、wc < 文件名 ,统计文件内容
3、wc<<flag,再次遇到flag时结束,统计两个中间的内容
- 3.7、管道符
1、多命令顺序执行
cmd1;cmd2 顺序执行,无论是否出错
cmd1&&cmd2
cmd1||cmd2
命令1 && 命令2 || 命令3——ls && echo yes || echo no
2、管道符,多命令顺序执行
命令1 | 命令2 //命令1的输出结果作为命令2的操作对象
netstat -an | grep ESTABLISHED | wc -l
- 3.8、通配符,主要用于匹配文件名或者目录,文件内容一般采用正则表达式
?匹配任意一个字符
*匹配任意一个或多个字符
[]匹配中括号内的任意一个字符
[-]匹配中括号内的任意一个字符,-代表范围[0-9]
[^]匹配中括号内的任意一个字符,^代表逻辑非
bash中其他的特殊符号.jpg
网友评论