笔记5——shell基础

来源:互联网 发布:淘宝网男运动套装 编辑:程序博客网 时间:2024/06/14 01:46

shell简介

命令解释器 shell,是用户和Linux内核的交互界面,且shell可以直接调用Linux系统命令。shell主要有Bourne shell和C shell两种语法类型,Bourne shell包括sh、ksh、bash、zsh,C shell包括csh、tcsh,两种语法不兼容。Linux的标准语法是bash。

脚本执行方式

1) 赋予文件执行权限

$ chmod 755 filename

$ ./filename

2) 通过bash调用执行脚本

$ bash filename

bash基本功能

命令别名————

1) 设定命令别名

语法:alias 别名='原命令'

2) 查看命令别名

语法:alias

3) 取消命令别名

语法:unalias 别名

历史命令————

1) 查询执行过的命令

语法:history 选项 历史命令保存文件

选项:n 显示最近n条命令

      -c 清空历史命令

      -w 将缓存内容写入命令保存文件

命令补全————

[Tab]键可在命令与文件输入时自动补全名称

常用快捷键————

快捷键作用[Ctrl] + A光标移至命令行开头[Ctrl] + E光标移至命令行结尾[Ctrl] + L清屏[Ctrl] + C强制终止当前命令[Ctrl] + D退出当前终端[Ctrl] + U删除或剪切光标前面的命令[Ctrl] + K删除或剪切光标后面的命令[Ctrl] + Y粘贴命令[Ctrl] + R在历史命令中搜索内容[Ctrl] + Z暂停执行命令,并放入后台[Ctrl] + S暂停屏幕输出[Ctrl] + Q恢复屏幕输出

重定向输入输出————

1) 标准输入输出

名称代码符号作用standard input(stdin)0<或<<将文件内容或命令行数据作为输入内容standard output(stdout)1>或>>以覆盖或追加的方式将正确的数据输出到指定的文件或设备standard error output(stderr)22>或2>>以覆盖或追加的方式将错误的数据输出到指定的文件或设备

2) stdout和stderr同时保存

以覆盖的方式保存到同一文件

语法1:命令>filename 2>&1

语法2:命令 &> filename

以追加的方式保存到同一文件

语法1:命令>>filename 2>&1

语法2:命令 &>> filename

stdout保存到file1,stderr保存到file2

语法:命令>>file1 2>>file2

3) stdin实例

实例1

$ wc < filename

实例2(内联输入重定向<<)

$ wc << EOF

> string1

> string2

>EOF

详解:内联重定向将命令行数据作为输入重定向数据,指定任一自定义文本标记划分输入数据的开始和结束。

多命令顺序执行————

命令格式说明cmd1 ; cmd2多命令顺序执行,不考虑命令相关性cmd1 && cmd2若cmd1执行结果正确($?=0),执行cmd2
若cmd1执行结果错误($?!=0),不执行cmd2cmd1 || cmd2若cmd1执行结果正确($?=0),不执行cmd2
若cmd1执行结果错误($?!=0),执行cmd2

实例:ls 文件 && echo "exist" || echo "not exist"

管道命令(pipe)————

作用:cmd1的正确输出作为cmd2的操作对象

语法:cmd1 | cmd2

通配符————

符号意义?代表任一字符*代表0个或多个任意字符[ ]匹配[ ]中任一字符[ - ]匹配[ - ]范围中任一字符[ ^ ]代表非[ ]中任一字符

Bash的变量

环境变量————

bash中的环境变量用来存储shell会话和系统操作环境的相关数据,这些数据用来识别用户账户、系统shell特性及用户需要存储的信息。很多脚本和程序通过环境变量访问系统信息、存储临时数据和配置信息。环境变量分为两类:

1) 局部环境变量

作用范围:只在当前shell生效

查看所有环境变量语法:set

设置局部环境变量:变量名=变量值

删除环境变量:unset 变量名

查看单个环境变量:echo $变量名

2) 全局环境变量

作用范围:当前shell和此shell的所有子shell生效

查看全局变量语法:printenv

设置全局变量语法:export 变量名=变量值

备注:环境变量、等号和值之间没有空格

用户自定义变量————

shell允许用户自定义变量。变量名称可以由字母、下划线和数字组成,不能以数字开头。

变量定义语法:变量名=变量值

变量值的使用语法:$变量名

预定义变量————

预定义变量是bash中系统已定义的变量,变量名不能更改,作用固定,可修改变量值。

预定义变量说明$?返回命令执行结果,正确执行返回0,执行错误返回非0$$当前进程的进程号PID)$!最后一个后台运行进程的进程号(PID)

位置参数变量————

位置参数变量是预定义参数中的一种,主要用来向脚本文件传递参数或数据,变量名不能更改,作用固定,可修改变量值。

位置参数变量说明$n$0表示命令本身,10之后的参数需用${ }表示$*代表所有参数,且为一个整体$@代表所有参数,且区分每个参数$#代表参数个数

Bash运算

方法1

运用declare声明变量类型

语法:declare +/- 选项 变量名

选项:- 给变量设定类型属性

      + 取消变量的类型属性

      -i 将变量声明为整型

      -x 将变量声明为环境变量

      -p 显示指定变量的声明类型

方法2 

expr数值运算工具

语法:变量=$(expr operation)

备注:运算符左右需加空格

方法3

使用方括号或双括号

$[operation]或$((operation))

原创粉丝点击