shell 和vim补充内容常见的shell Bourne shell, C shell Korn shell,这三种情况,bash shell 是Bourn shell 的扩展,位于 /bin/bash下查看当前使用的是哪种shell的最简单的办法就是随意输入一个不,接下来我们就来聊聊关于linux基本shell脚本?以下内容大家不妨参考一二希望能帮到您!

linux基本shell脚本(LinuxShell脚本编程从入门到精通)

linux基本shell脚本

shell 和vim补充内容

常见的shell Bourne shell, C shell Korn shell,这三种情况,bash shell 是Bourn shell 的扩展,位于 /bin/bash下。查看当前使用的是哪种shell的最简单的办法就是随意输入一个不

能识别的命令,系统错误会提示出shell的类型。在linux下shell的切换也是很方便的,如果想从当前的环境shell类型切换到ksh,直接输入ksh就行。 切换到bourne shell 输入 sh

如果想返回到之前的shell,就可以使用exit命令推出,如果打算比较长时间的使用某种shell 的类型,可以编辑 /etc/default/useradd 文件,修改对应的字段既可,重启生效。

如果想改变某个用户的shell类型,可以编辑/etc/passwd/ 用户对应的字段。我的编辑器是vim,编辑起来比较方便,比较常用的光标移动操作命令还算很方便的,

G :光标移动到文本末尾

gg :光标移动到开始

L文本底部,

j下一行,

k上一行,

W下一行开开始,

h左移动一个字符,

l右移动一个字符,

$ 所在行的行末,

^所在行行首

文本插入命令

A 在一行的末尾加入文本 a 在光标的右边加入文本,i在光标的左边插入文本,I在光标所在行插入文本。

字符删除:

x:删除光标所在位置的后一个字符

nx:删后n个字符

X:删除前一个

dd:删除光标所在的行

ndd 从光标所在的行开始,删除n行

复制操作命令:

p 将缓冲区复制当前光标位置

yw 光标所在位置到行尾的字符复制到缓冲区

yy 复制光标所在的行

nyw 从光标所在位置复制n个字符

nyy 从光标起复制n行

保存退出命令:

:m保存退出,忽略拥有者的只读权

:w file_name 将缓冲区内容写入到指定的文件,

vi 两个重要的参数是-r 和 -R r可用于恢复一个在编辑中但由于系统崩溃而未来的及保存的文件,而R选项可以使用只读的方式打开一个文件

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

按照学习进度记录

在linux 下扶着执行脚本的是bash,sh是指向bash的软链接。使用set -x 可以启动脚本的追踪,在运行时候跟踪,

#!/bin/bash

# set 是用来在脚本过程中进行跟踪

set -x

echo -n "are you a student ?"

read anwser

#

if [ $anwser=Y ]

then

echo "Yes,I am a student "

else

echo "No I am not a studetnt "

fi

exit 0

set -x 没有被注释掉时候,执行脚本会出现一些 开头的行,,可以发现预计输出和实际输出的区别,然后进行修改。

shell变量概述:

在shell中的变量值只对当前的shell有效,比如在一个终端窗口定义变量var,之后在开启新的窗口就看不到var了,在shell里面可以使用变量设定工作环境和保存信息,在变量

中的值也有永久存在的,在变量中存储的值称为字符串,这些字符串是字符构成的,它们是shell 的唯一数据形态;

shell的变量类型

局部(本地)变量:

比如在当前窗口定义的变量。仅仅是局部进程变量,除了自定义的局部变量外。系统也为用户定义了标准的局部变量,用set可以查看命令看,但是也包

括一些环境变量。

环境变量

存储会话和工作环境的信息,存储在环境变量的数据是永久性数据,如系统配置信息,用户帐号以及其他的信息。可以使用echo命令输出

查看比如:echo $HOME,要看有那些环境变量可以使用env命令查看。

特殊变量:$1,$2...表示脚本执行时候的参数,如果超过10个就要用{}括起来,如${10},另外$@和$*它们表示所有的位置参数

#!/bin/bash

#通过$@列出所有的参数

line=1

echo "listening vars with \"\$@\":"

for var in $@

do

echo "var #$line=$var"

let line =1

done

exit 0

系统内置变量

bash默认了许多内置变量,这些内置变量的使用,直接影响到bash脚本的行为。

BASH 表示完整路径名字/bin/bash

COLORS 设置文件的颜色:

#!/bin/bash

#记录脚本运行的时间,secondS变量

time_limit=6

time_interval=1

#

while [ "$SECONDS" -le "$time_limit" ]

do

if [ $SECONDS -lt 7 ]

then

second=1

let seconds =1

fi

echo "This script already runing $seconds second(s)."

sleep $time_interval

done

exit 0

shell变量的设置:

永久性设置

修改配置文件,在/etc/profile定义的变量对linux 下的所有用户有效,并且永久存在,用编辑器打开后用export 设置就可以。

修改当前用户的.bash_profile文件的所定义变量,但对单用户有效,也就是说个人使用的变量。修改/home/user 下的bash_profile,修改文件后若立刻生效,运行命令

source .bash_profile否则下次启动生效。

暂时使用

export 变量名 =变量值所定义的只对当前的shell有效,关闭shell后消失。

记得以前有印象的是一个 .bashrc的,它们之间的关系不明白,还算百度一下。点击打开链接

shell变量的应用

一个变量只有在被声明赋值,UNSET,EXPORT或者在变量代表一个信号后,才能真正的出现在脚本里面。有的时候还会出现变量的替换,被称为弱引用。

赋值操作用“=“赋值时,等号两边都不能有空格,且不能与-eq混用,赋值可以用 ”=“也可用let 也可用for

例:

var=2

let var2=2

for var3 in 5 7

do

echo $var

done

,