linux shell编程基础

Linux shell基础

1. shell概述:Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核去执行。

2. Bash的基本功能:

1>.alias 别名=‘原命令’ 代表设定命令别名。eg:alias vi=’vim’。alias命令可以查看命令别名。此种方式随着系统重启就会消失,也就是临时生效。让别名永久生效 vim /root/.bashrc。unalias可用于删除别名。

2>.Bash常用快捷键:

Ctrl+C强制终止当前命令
Ctrl+L 清屏,相当于clear
Ctrl+U 删除或者剪切光标之前的所有命令,比退格方式更快捷
Ctrl+K 删除或者剪切光标之后的所有命令
Ctrl+Y 粘贴Ctrl+U或者Ctrl+K剪切的内容
Ctrl+R 实现搜索历史命令,先输入Ctrl+R,然后回车再输入需要搜索的历史命令
Ctrl+D 退出当前终端
Ctrl+Z 暂停命令并且放入后台,不能经常使用
Ctrl+S 暂停屏幕输出
Ctrl+Q 恢复屏幕输出

3.  Bash输入输出重定向:

a) Linux标准输入输出设备:
设备设备文件名类型文件描述符
键盘/dev/stdin标准输入0
显示器/dev/stdout标准输出1
显示器/dev/srderr标准错误输出2
b) 标准命令重定向:
1>命令 > 文件 或者  命令 >> 文件  把命令的正确输出输出到指定文件或设备。
2>输入重定向:.wc [选项][文件名] 
-c统计字节数
-w 统计单词数
-l统计行数
Eg: wc –l a.txt 统计a.txt的行数。

4.  shell多命令顺序执行:

1>. dd命令可以执行数据复制,分区复甚至整个硬盘,不只是复制分区或者     硬盘的数据,也复制了分区或者硬盘的文件系统。
例子:date ; dd if=/dev/zero of=/root/testfile bs=1k count=100000;date
指的是复制/dev/zero文件到/root/testfile测试文件,复制100000次,每次复制1k字节,也就是创建一个约100M的testfile文件。开始结束的时候分别输出系统时间,可以计算出复制文件的时间。
2>.  ls && echo yes; 会输出yes
ls 不存在的文件 && echo yes;   不会输出yes
例子:命令 && echo yes || echo no 

5.  管道符:|

命令1 | 命令2命令1的正确输出作为命令2的操作对象
例子:ll –a /etc/ | more
netstat –an | grep ESTABLISHED   netstat为显示系统当前所有网络连接。

6. 通配符与其他特殊符号:

linux shell编程基础_第1张图片

其他符号:

linux shell编程基础_第2张图片

例子:  
1> name=sc echo ‘$name’ 结果为‘$name’ 2>echo “$name“ 输出sc
2> name=`date`或者name=$(date)   echo $name 输出当前日期
3> echo $(date) 输出日期 echo \$(date) 输出$(date)

7.  变量分类:

linux shell编程基础_第3张图片

 1>.用户自定义变量:
变量定义:name=”chen chao”  。注意:等号两侧不能有空格。
变量叠加:aa=123 ; aa=”$(aa)”456 ; aa=”$(aa)”789
调用变量:$变量
查看所有变量:set
删除变量:unset  bb

2> 环境变量:

定义:用户自定义变量只会在当前的shell中生效,而环境变量会在当前shell和这个shell的所有子shell中生效。如果把环境变量写入相应的配置文件,那么这个环境变量就会在所有的shell中生效。
设置环境变量:
a>.声明变量:export 变量名=变量值
b>.查询变量:env
c>.删除变量:unset 变量名
PATH路径:系统查找命令的路径。
编写一个脚本hello.sh执行cp hello.sh /bin/此时不用使用相对路径,直接输入hello.sh就能执行。删除此shell可以使用rm –rf /bin/hellp.sh。
使用PATH=$PATH:/root(变量叠加)将root下的shell脚本添加到环境变量。

linux shell编程基础_第4张图片

3>.位置参数变量:只是按照位置接受

linux shell编程基础_第5张图片

$n例子:

创建脚本             执行脚本  执行脚本时输入参数

 linux shell编程基础_第6张图片

例子:

 linux shell编程基础_第7张图片

 linux shell编程基础_第8张图片

 4>.预定义变量:

linux shell编程基础_第9张图片

例子:执行ls,然后输入echo  $?输出数字0,如果输入错误命令则返回非0数字。 

linux shell编程基础_第10张图片

接受键盘输入:

 linux shell编程基础_第11张图片

 

8. 数值运算和运算符:

 linux shell编程基础_第12张图片

 linux shell编程基础_第13张图片

或者

linux shell编程基础_第14张图片

 或者

 linux shell编程基础_第15张图片

变量测试与内容替换:

 linux shell编程基础_第16张图片

 linux shell编程基础_第17张图片

9. 环境变量配置文件简介:

 linux shell编程基础_第18张图片

1>.source 配置文件“ 或者 “.配置文件“作用是使修改的配置文件立即生效。

2>.系统主要有以下几种环境变量配置文件:

linux shell编程基础_第19张图片

1,2,5对所有用户生效,3,4只对当前用户生效。

3>.环境变量配置文件作用:

 

linux shell编程基础_第20张图片

4>.其他配置文件和登录信息:

*注销时生效的环境变量配置文件:~/.bash_logout

*历史命令的保存文件:~/bash_history

*登陆系统时候的本地终端欢迎信息:/etc/issue

linux shell编程基础_第21张图片

*远程终端欢迎信息:/etc/issue.net

*/etc/motd 不管远程还是本地都显示欢迎信息

 

你可能感兴趣的:(linux)