娱乐新地带论坛  

返回   娱乐新地带论坛 > 电脑技术 > 『软件使用』

『软件使用』 交流对软件的使用心得、经验窍门、好的软件要让大家一起用

发表新主题 回复
 
主题工具 显示模式
旧 2007-02-28, 08:48 AM   #1
No6495
gougou123
初级会员
级别:0 | 在线时长:0小时 | 升级还需:5小时
 
注册日期: 2007-01-19
帖子: 18
现金:34金币
资产:34金币
gougou123 正向着好的方向发展
linux 学习笔记(系统管理篇)3

老师在讲shell中穿插讲了硬盘分区和格式化

磁盘的分区格式化
分区: fdisk -l 列出分区表
fdisk 磁盘而不是某分区 (/dev/had)
command :p 看分区
n 新建分区
d 删除分区
q 不保存退出
w 保存退出
生成文件系统(格式化)
mkfs (make file system)
mkfs -t ext2 /dev/hda5
mkfs -t ext2 –j /dev/hda5 :格式化成ext3格式
挂接:mount /dev/hda5
shell 脚本本身就是程序,是用shell命令构成的,小规模、结构化、模块化、程序设计。
命令: echo 输出信息用
read 输入信息 read+ 变量名
sleep 休眠 sleep+ 秒数

在终端上算数表达式写法: echo $ ((1x2x3))这是整数运算不能带小数点。
/ :除
% :余
shell脚本格式:
第一行必须是 #!/bin/sh

有三种结构 顺序结构 分支结构 循环结构

顺序结构
wait 命令 保证进程同步 等待一个子进程结束 多个并发就用多个wait
例如: #!/bin/sh
echo “1”
sleep 5&
echo “3”
echo “4”
wait
echo”5”
分支结构
if 判断 ; then
T块
Else
F块
fi
判断 test语句 test 表达式 = [表达式]
表达式进行文件判断 -f 文件名(检测该文件是否存在且为普通文件
-d 目录名
-r 可读
-w 可写
-x 可执行
这些例子由于年久失修(笔记上标注不完备,过后有忘了的地方)错误之处请多多包涵

例如:
#!/bin/sh
echo “file”
read FileName
if [-f $FileName]; then
echo “yes”
else
echo “no”
fi

字符串比较 相等 串A =串B
不等 串A!=串B
-z 判断字符串是否为零 空为真 非空为假
数值比较: 大于 等于 小于 不等于
a > b $A –gt $B
a≥b $A –ge $B
a≤b $A –lt $B
a=b $A –le $B
a≠b $A –ne $B
逻辑比较: 条件A –a 条件B(与)
条件A-o 条件B (或)
!条件 (非)
例如:
#!/bin/sh
read MARK < /proc/sys/net/ipv4/ip_forward
echo $MARK
if [ $MARK = “0” ]; then
else echo “host”
echo “GATEWAY”
fi

‘ ‘ 反单引号: 如果反单引号后面有语句则将里面的语句运行完后将结果替换此处
例如:
#!/bin/sh
u=id –u
if [$u = ‘0’] ; then
echo “hello”
else
echo “permission denied”
fi
再例如:
#!/bin/sh
echo “username”
read userNAME
MARK = ‘cat /etc/passwd | grep ‘$userNAME:’
积极if [ -z $ MARE] ; then
echo “NO”
else
echo “YES”
fi

多分支结构
case 字符串 in
串1) 块1
;;
串2) 块2
;;
.
.
.
*)
esac
例如:
#!/bin/sh
echo “command”
read CMD
case $CMD in
start)
/etc/rc.d/init.d/named start
;;
stop)
/etc/rc.d/init.d/named stop
;;
estart)
/etc/rc.d/init.d/named stop
/etc/rc.d/init.d/named start
;;
*)
echo “usage : $0 {start|stop|restart}
;;
esac

*知识点: . 脚本 让shell不打开子进程,在当前shell进程中运行脚本
看脚本切忌一行一行的看,要一层一层的看,就像剥玉米
Shell脚本
循环 1)当形循环
2)条件循环
while 判断; do
循环体
done
例如:
#!/bin/sh
i = 0
while [ $i –lt $n] ; do
j=0
while [ $j –lt $ (($i+1))] ; do
echo “\*”
j=$(($j+1))
done
echo
i=$(($i+1))
done
定时循环 00:00:00: 1970-01-01 utc 称之为unix元年
data +%s 是取从unix元年至少过了多少秒
date +%H:%M:%S 显示时分秒格式


例如:
#!/bin/sh
intime = ‘date +%S’ –le $ [ (intime+5)] ; do
echo “.” ##echo后面加-n 输出就不回车了,横向输出
done
利用date命令可以方便的实现定时循环



shell风格的循环 for 循环 (枚举循环)
格式 for 变量名 in 值列表 ; do
循环体
done
##值列表:核心部分,一系列由空格分开的字符串
例如: #!/bin/sh
for n in asd 4r3 56h er34 657 tr ger ; do
echo $n
done
要自动下载列表中的东西编shell的
#!/bin/sh
cd /tmp/dl

for url in cat /etc/urls ; do
wget $url
done
>/etc/urls

补充知识: 参数传递
命令 参数1 参数2 …………
例如:
#!/bin/sh
n=$1
i=0
while ($i-lt $n); do
echo “xxxx”
ii= $ (($$+1))
done
$0 $0就是命令本身


最强的师资!最好的设备!我信赖:北大青鸟(五羊新城学校)网络工程师培训中心
gougou123 当前离线  
回复时引用此帖
发表新主题 回复

书签


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码

论坛跳转


所有时间均为北京时间。现在的时间是 04:58 AM


©2003-2024 1819.net All rights reserved.