shell和文件系统 shell命令: unix中绝大多数都是外部命令。内部命令常用的有cd 很少 dos | shell dir | ls type | cat cd | cd md | mkdir rd | rmdir del | rm copy | cp ds | dear attrib | chown charp chmod
此上命令除了cd 全是外部命令
最重要的命令: man 主题 主题可是shell命令也可是配置文件,还可是C语言函数,但有时shell命令和配置文件相同时打入命令怎么办呢,此时用参数 man 1.命令 2.系统函数 3.标准库函数 5.配置文件 例:查passwd 默认 man passwd 会查到 man passwd(1)命令 此时要用 man 5 passwd 可查配置文件
模糊查找(匹配)参数: -k 例 man –k PPP 和大多数unix中一样k为小写. 第二个重要命令: vi 文件名 (文本编辑器) 它有三种工作模式,缺省为”命令模式” 输入I 进入”插入模式” 按ESC回到命令模式 常见命令: 删一个字符 x 删除一行 dd 恢复操作 u 复制 yy (光标在哪一行将复制哪一行) 粘贴 p (粘贴在光标下面) 在vi重复输入一些命令时,在前面加数字 如插入100个a 则在命令模式下先输入100 按I输入一个a 回到命令模式则会有100个a被插入 5行东西重复3次则输入5yy3p 存盘退出用大写ZZ “末行模式”常见是搜索字符.用”/”在命令模式下输入 “/”加字符串.在手册中也能用 “;”会引发末行模式.可用”;”跳到某一行”;”加数字可直接到那 “;”还可用与文件操作 “;q”可直接退出 “;q!”强制退出 “;w”存盘不退出 “;wq”存盘退出 “;recover”可在出现以外后修复文件 “;w 文件名”另存为
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 显示时分秒格式
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
配置路由 route add -net 网络地址 netmast x.x.x.x gw 网关 route add -host 网络地址 netmast x.x.x.x dev 网卡 route del -net 网络地址 netmast x.x.x.x gw 网关 route del -net 网络地址 netmast x.x.x.x dev 网卡 缺省写法: route add default gw 网关 route add default dev网卡 静态ARP arp -s IP地址 MAC地址 linux 方式: ip 命令
ip addr show 查看IP地址 简写为 ip ad sh ip route sh 查看路由 简写为 ip ro sh ip neigh sh 查看静态ARP 简写为 ip ne sh ipv6中取消了ARP 改用ICMP
具体配置: ip ad add dev ip地址/掩码长度 ip route add ip地址/掩码长度 dev 网卡 ip route add ip地址/掩码长度 via 网关地址
激活/禁止某网卡 ifconfig dev down/up linux下的: ip link set up dev eth0 ip link set down dev eth0 此设置都是临时的,固化网络配置,在linux下 主机名/缺省网关: 修改路径 /etc/sysconfig/network 如果修改主机名顺便把hosts文件也得改 /etc/hosts否则有时服务会启动时挂起死等~~~~~~~~~~~~~~~~
top 命令查看系统的资源状况 load average 表示在过去的一段时间内有多少个进程企图独占CPU zombie 进程 :不是异常情况。一个进程从创建到结束在最后那一段时间遍是僵尸。留在内存中等待父进程取的东西便是僵尸。任何程序都有僵尸状态,它占用一点内存资源,仅仅是表象而已不必害怕。如果程序有问题有机会遇见,解决大批量僵尸简单有效的办法是重起。kill是无任何效果的 stop模式:与sleep进程应区别,sleep会主动放弃cpu,而stop是被动放弃cpu ,例单步跟踪,stop(暂停)的进程是无法自己回到运行状态的。 cpu states : nice: 让出百分比 irq :中断处理占用 idle:空间占用百分比 iowait:输入输出等待(如果它很大说明外存有瓶颈,需要升级硬盘(SCSI))