志在指尖
用双手敲打未来

linux是什么语言编写的(linux简单的shell编程)

linux是什么语言编写的

Linux,全称GNU/Linux,是一种免费使用和自在传达的类UNIX操作体系,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日初次发布,它首要受到Minix和Unix思想的启示,是一个基于POSIX的多用户、多任务、支撑多线程和多CPU的操作体系。它能运转首要的Unix工具软件、应用程序和网络协议。它支撑32位和64位硬件。Linux承继了Unix以网络为中心的规划思想,是一个功能稳定的多用户网络操作体系。
那么linux是用什么言语开发的?许多新手对此不是很清楚?下面了解一下:
linux是用C言语和汇编言语写的。
C言语是Linux的“母语”,这也是linux这个开源环境和本身机制所导致的。
Linux内核大部分是用C言语编写的,还有部分是用汇编言语写的,由于在关于硬件上,汇编有更好的功能和速度。
而Linux的一些组件体系和附加应用程序是用C、C++、Python、perl等言语写的。linux
Linux操作体系的特色:
Linux不仅是免费的,更是开源的,这意味着任何人都能够获得其代码并依据自己的需求进行修正。事实上,这现已孵化出专属Linux各发行版的巨大生态体系。
Linux与Unix体系兼容,该体系的构建采用了一些与UNIX操作体系相同的技能,具有Unix几乎所有的优秀特性(体系的稳定性和安全性尤为突出)。
和其他操作体系相比,Linux更简单安装,且不会收到任何商业化版本的制约。
Linux让展开各种实际有用且具有创造性的工作成为可能。例如,我们能够在一个U盘上装载Linux的自生体系引导映像(livebootimage),发动一台硬盘现已溃散的计算机,之后查找并处理该问题。或许,由于Linux是一个真正的多用户操作体系,它具有非常好的私密性和稳定性,整个团队能够同时从本地或远程登录进行工作。
Linux供给了杂乱的软件包管理体系,能够放心地安装和维护每一个在线资源库中的软件应用。

linux简单的shell编程

一、最简单的shell
1、Shell的结构:
(1)、#!指定履行脚本的shell
(2)、#注释行
(3)、控制结构
2、创立shell的步骤:
(1)、运用vi编辑器创立以.sh完毕的文件:videmo.sh
(2)、编辑相关shell程序,编写完毕后加履行权限:
chmodu+xdemo.sh
(3)、履行程序./demo.sh
也可以运用shdemo.sh来履行
运用sh-xdemo.sh中的x表明脚本的履行进程
运用sh-ndemo.sh不履行脚本,仅仅检查语法的错误,返回一切错误信息
二、shell的变量
Shell变量包含:暂时变量和环境变量,暂时变量时shell程序内部定义的,对其他程序不行见,包含用户自定义变量和方位变量;环境变量就是全局变量,不跟着shell脚本的完毕而消失
在运用变量值的时分,要在变量名前加前缀”#34;
变量赋值用”=”,留意两头不能有空格
变量赋值举例:
1、NUM=1
2、将一个指令的履行成果赋给变量,例如
time=`date`
time=(date+%F)echo$time
3、将一个变量赋给另一个变量:A=$B
查看变量的值:echo$A
字符串用单引号或许双引号
双引号有自动解析变量的功用
例如:
sum=100
echo”Thetotalis$sum”
set为显示一切的环境变量
删除变量unset
三、方位变量和特别变量
1、方位变量
Shell解说履行用户指令的时分,将指令行的榜首部分作为指令名,其他部分作为参数。有出现在指令行上的方位确定的参数成为方位参数
例如:ls-lfile1file2file3
$0方位被个程序的文件名占用,其它剩余方位$1$2$3…$9
例如:在test.sh中有如下内容
mkdirfiles$1_s00$2_class$3
履行时分./test.sh0011001,表明$0被test.sh占用、$1被001占用、1被$2占用,001被$3占用linux1
2、特别变量
$*这个程序的一切参数
$#这个程序的参数个数
$这个程序的PID
$!履行上一个后台的PID
$?履行上一个指令的返回值
例如有test.sh程序,内容如下:
echo’$#is:’$#
echo’$*is:’$*
echo’$?is:’$?
echo’$is:’$
echo’$0is:’$0
运转./test.shp1p2p3后查看成果
四、shell的指令
1、Read指令:从键盘读入数据,赋给变量
例如readx100;echo$x
如程序test.sh:
reada1a2a3
echo”thea1valueis$a1″
echo”thea2valueis$a2″
echo”thea3valueis$a3″
则履行的时分
./test.sh100200300
2、expr指令:对整型变量进行算术运算
例如expr100+200留意加号左右有空格
del@box:/temp$expr100+200
300
另外留意乘法为”\*”,要有转义符
例如3\*5
复杂的运算:expr`expr6+9`/3
将运算的成果赋予变量x=`expr1+2`
3、变量测验句子:
测验变量是否持平、为空等状况。语法:test测验条件;测验范围:整数、字符串、文件
(1)字符串测验:
teststr1=str2测验字符串是否持平
teststr1!=str2测验字符串是否不持平
teststr1测验字符串是否不为空
test-nstr1测验字符串是否不为空
test-zstr1测验字符串是否为空
(2)测验整数
testint1-eqint2测验int1和int2是否持平
testint1-geint2测验int1是否>=int2
testint1-gtint2测验int1是否>int2
testint1-leint2测验int1是否<=int2
testint1-ltint2测验int1是否
testint1-neint2测验int1和int2是否不持平
(3)文件测验
test-dfile指定文件是否目录
test-ffile指定文件是否常规文件
test-xfile指定文件是否可履行
test-rfile指定文件是否可读
test-wfile指定文件是否可写
test-afile指定文件是否存在
test-sfile文件大小是否非0
测验句子一般不单独运用,一般合作if句子来判别,如:
iftest-d$1then
…….
fi
变量测验句子也可以用[]简化,例如:
test-d$1等价于[-d$1]留意:中括号左右的表达式要有空格
五、流程控制
1、选择结构if句子
(1)If[];then
fi
(2)If[];then
else
fi
例如:
If[$#-ne2];then
echo”notenoughparameters”
exit0//0表明正常退出
fi
If[$1-eq$2];then
echo”$1equals$2″
fi
(3)If[]then
elif[]
elif[]
else
例如:test.sh内容如下
readfile_name
if[-d$file_name]
then
echo”Thisisdirectory!!!”
elif[-f$file_name]
then
echo”Thisisfile!!!”
else
echo”Thisisnothing!!!”
fi
条件组合查询:
-a:逻辑与,条件都建立的时分成果为真
-o:逻辑或,只要有一个条件建立,成果为真
例如:test.sh内容如下
readfile_name
if[-d$file_name]
then
echo”Thisisdirectory!!!”
elif[-f$file_name]
then
echo”Thisisfile!!!”
elif[-c$file_name-o-b$file_name]
echo”Thisisdevicefile!!!”
else
echo”Thisisnothing!!!”
fi
2、for循环
语法:
for变量in名字表
do
…..
done
例如:
forxin112233445566
do
echo”xvalueis:$x”
done
3、case句子
语法:
case”$variable”in
“$condition1”)
command…
;;
“$condition2″)
command…
;;
esac
对变量运用””并不是强制的,由于不会产生单词切割
每句测验行,都以右小括号)来完毕
每个条件判别句子块都以一对分号完毕;;
case块以esac(case的反向拼写)完毕
例如,有下列程序test.sh内容如下:
readc
case$cin
a)
echo”thisisa”
;;
b)
echo”thisisb”
;;
c)
echo”thisisc”
;;
*)
echo”none”
esac
4、while循环
基本语法:
while[condition]
do
command1
command2
command3
done
例如,test.sh中的写法如下:
num=1
while[$num-le10]
do
sum=`expr$num\*$num`
echo$sum
num=`expr$num+1`
done
5、break和continue句子
break:完毕循环
continue:完毕本次循环,开始新的一轮循环
例如:
whiletrue
do
echo”============================”
echo”1add”
echo”2delete”
echo”3update”
echo”4Quit”
readnum_op
case$num_opin
1)
echo”thisisaddoperation”
;;
2)
echo”thisisdeleteoperation”
;;
3)
echo”thisisupdateoperation”
;;
4)
echo”exit…..”
break
;;
esac
done
6、shift指令
参数左移:每履行一次,参数序列顺次左移一个方位,即$#的值减去1。其用于处理每个参数,移动出去的参数不能再用
例如,test.sh文件内容如下:
If[$#-le0]
then
echo”notenoughparameters”
exit0
Fi
Sum=0
While[$#-gt0]
sum=`expr$sum+$1`
shift
Done
Echo$sum

未经允许不得转载:IT技术网站 » linux是什么语言编写的(linux简单的shell编程)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载