Linux Shell语法速查 及 关键字说明
虽然学过
Linux Shell
编程,但由于编写
Shell
脚本的机会实在是比较少
(
通常在项目初期搭建开发环境时编写得比较
多一些
)
,所以一
些语法久而久之就会忘了,一个简单的语法去翻书效率实在是慢,所以就个人整理了一个表格,由于我用的编程语言是
C/C++
,所以在编程的时候往往脑海里面首
先浮现的是用
C
语
言怎么去编写它,所以我干脆拿
C
语言的语法来和
Shell
编程的语法作个对比表,这样查起来就方便了
要实现的功能
C
语言编程
Linux Shell
脚本编程
程序
/
脚本的参数传递
int
main(int
argc
,
char** argv
)
{
if
(argv
!= 4) {
printf
( “Usage: %s arg1 arg2 arg3”, argv
[0] );
return 1;
}
printf
(“arg1:%s\n”,argv[1]);
printf
(“arg2:%s\n”,argv[2]);
printf
(“arg3:%s\n”,argv[3]);
return
0;
}
#!/bin/sh
if [ $# -lt
3 ]; then
echo "Usage: `basename
$0` arg1 arg2 arg3" >&2
exit 1
fi
echo "arg1: $1"
echo "arg2: $2"
echo "arg3: $3"
exit 0
int
main(int
argc
,
char** argv
)
{
int
i
;
for
(i
=1; i
<=argc;i
++) {
printf
(“arg:%s\n”,argv
[i
]);
}
return
0;
}
#!/bin/sh
while [ $# -ne
0 ]
do
echo "arg
: $1"
shift
done
逻辑
/
数值运算
if (d == 0)
if [ "$D" -eq
"0" ] ; then
if (d != 0)
if [ "$D" -ne
"0" ] ; then
if (d > 0)
if [ "$D" -gt
"0" ] ; then
if (d < 0)
if [ "$D" -lt
"0" ] ; then
if (d <= 0)
if [ "$D" -le "0" ] ; then
if (d >= 0)
if [ "$D" -ge
"0" ] ; then
字符串比较
if (strcmp
(str,”abc
”)==0) {
}
if [ "$STR" != "abc
" ]; then
fi
输入和输出
scanf
(“%d”,&D
);
read D
printf
( &ldqu
相关文档:
/ 根目录
/bin 常用的命令 binary file 的目录
/boot 存放系统启动时必须读取的档案,包括核心 (kernel) 在内
  ......
先来了解一下文件属性,
在shell环境里输入:ls -l 可以查看当前目录文件。如:
drwxr-xr-x 2 nsf users 1024 12-10 17:37 下载文件备份
分别对应的是:
文件属性 连接数 文件拥有者 所属群组 文件大小 文件修改时间 文件名
这里r是可读,w可写,x 可执行,其中文件属性分为四段,---- --- --- 10个位置
例如:
d ......
在Linux内核里内存可以和硬盘空间通用的,当内存利用很少时,数据可以存到内存里,反之硬盘空间可以用来当内存用但是有个共同点数据总是现在内存里操作再写回到硬盘上的。由于这个原因,块存储设备被当成后备存储器。
Linux提供了两种操作的方法:
1 后台进程不停的检查系统内存周期性的写操作
2 当系统有太多的脏页需要 ......
自己以前对Linux下的虚拟机没自己查过,
后来发现某QQ群内有一人用Sun VirtualBox,
哈哈,当然,不用我说,你一定知道就是那个玩意了,因为是Sun退出Java,Java又是跨平台的(不过虚拟机JAVA可能做不了),凭直觉就猜得出来这个VirtualBox一定是跨平台的!!
支持Windows
MAC OSX
Linux
Solaris and OpenSolaris
还 ......
将可移动设备连入系统时,系统的后台中会依次发生如下事件:
l 内核检测到新硬件插入,然后分别通知hotplug和udev。前者用来装入相应的内核模块(如usb-storage),而后者用来在/dev中创建相应的设备节点(如/dev/sda1)。
l udev创建了相应的设备节点之后,会将这一消息通知hal的守护程序(hald)。当然udev还得保证新 ......