用 nbtscan 也可以
arp 命令:arp ipad.local or arp 192.168.1.108 or arp -a or arp
vi 查找字符串:切换到命令模式下,然后就那个打个/youstring
#!/bin/bash -e 脚本发生第一个错误时就中止脚本运行;-e的作用。
cat mirror_cache.conf | cut -f 3 -d, 以,为分隔符截取滴3个东东。
ls -R doc/ | wc -l
sudo mount -t smbfs -o codepage=cp936,username=tom,password=123456, -l //192.168.1.118/BU bu_mnt/
撕得粉碎的
递归的统计文件夹文件的个数。
linux常识:
1。遵循posix开发标准规范,unix也部分遵循了该规范。
2。版本 A.B.C ,A表示内核大幅度的提升 B表示内核重大修改 C轻微的修改了内核2.2.2 2.2.4 2.2.6,
奇数版本为测试版本,偶数版本为稳定版本,所以我们看到的都是偶数版本。目前是:2.6版本。
shell简介:
1。可以驱动磁盘转动的程序叫驱动程序,也叫内核。 对内核公开的接口调用称为系统调用。ApI即函数罢了。
2。脚步:无需编译,可以直接运行的。
3。csh : 系统:/etc/.login 用户:~/.login ~/.cshrc
bash: 系统:/etc/profile 用户:~/.bash_profile .bashrc .bash_login .profile
vi vim: .exrc .vimrc
4。shell编程只适用于小工具小程序,不适合大程序。因为他所执行的每个命令都是一个新的进程。不像c语言,在一个进程里面运行。
shell编程:
1。脚步第一行:#!/bin/bash #! 表示该shell脚本用bash来解释执行。
2。 #表示注释 exit 0 退出脚本 $取变量名 &后台运行 shleep 3 history查看你所做的操作
3。执行脚本:1. chomd +x xx.sh 2. bash xx.sh 3.exec xx.sh(会退出当前shell) 4. source xx.sh
4。比较杂的命令:
1。 cat << end ..........end 指定结束符为end进行输出。
2。指令 2> 文件:错误重定向。 ----a.out >a.txt 2>&1 a.out >& a.txt a.out &> a.t
3。C语言:字符串转换为数值用spfintf(),数值转换为字符串用atoi() atof()
4。():在当前shell下启动一个子shell来执行命令。(pwd) \转义 续行 [ ] ls [a-f].*
ls a.{txt,out}
5。变量的定义:1. x=x 2. declare -r a=100 -i -x ... ${var1}避免歧义
6。read var1 从键盘读取一个数据 man bash
7。环境变量(大写):ostype pwd lang path home seconds shlvl lineno machtype ps1ps2
特殊变量:export a=123 ; b=133 export b;设为系统变量
$@ ,$* 显示所有位置参数 $# 参数个数(除文件名) $$ 显示当前进程的pid号 $? 获取前一个命令的返回状态 0 成功 2 失败。
8。引用:单引号可辨别变量 双引号不可辨别 飘号:把字符当作命令来打====var=$(pwd)
*********
=号左右没有空格 :赋值 =号左右有空格:比较
*******
9。数组定义:abc[1]=1 abc[100]=099..... b=(1 2 3 4 5)
10。运算符号:
${#变量名}:探测变量值的长度。
替换运算符: ${变量名:-值} + = ?
11。字符串处理:
取子串:${str:3:5}
删除字符串(不删除本体):${str#匹配模式} ${str#*cwj} ##全部 % %%从后往前。
替换:${str/abc/ABC} 一次 ${str//abc/ABC} 所有
比较:str==str -n "$str" -z "$str" 不为空 ,为空
12。其他运算符:同c++的运算符一致,多了个 ** 表示求幂。 let declare -i (())
13。bc ==>1000000*1000000 dc 用于计算大的数据。
14。程序控制: test [] 与 if 配合使用 =左右必须要有空格(比较)
*****************:注意:记住使用字符串时,请务必要用 " " 引起来,这样可以避免很多问题的出现。
比较大小表达式: 表达式 1 -xx 表达式2
-eq -ne -gt -ge -lt -le if test "$x" -eq "$y" ; then ; echo "xx" ; fi
15。文件测试:-f文件是否存在 -r 用户是否有读权限 -s 文件大小是否为0 ! 逻辑非 []左右两边必须要有空格,同test。
16。set -o 环境测试,系统中的一些配置。 比如,同名文件是否采取覆盖。 set -o colobber no / off 打开和关闭该选项。
case 语句:case语句注意的是双分号。 ----qu!老是忘记写esac作为结尾
case var in ; yes|YES) ....;; [nN]o)....;; *)....;; esac
17。 *一般情况下是表示:当前目录下的所有文件。
cwj:shell脚本中随处可见“通配符的使用”。很好。呵呵
shell中if case 都是有结束符号的。呵呵
18。for语句:for var in * ; do xxxx; done xxxx;
for ((i=0;i<10;i++)) ; do xxxx ; done xxxx; //echo 回车 echo -n 不回车,同一行显示。
1.if [ ]/test then elif else fi //if语句
2. # ## % %% 删除掉。 :3:4 从3下标开始截取4个数字。 /abc/ABC //a/A :${str#*lala} ${str/a/A} ${str:3:5}
3.for ((i=0;i<10;i++)) do done for var in * do done
4. case var in x) echo ;; y) ;; c) ;; *)
echo "plese inter a Var!"
read inputVar
case "$inputVar" in
"a"|"A") echo "case a" ;;
"b"*) echo "case b" ;;
"c") echo "case c" ;;
*) echo "other" ;;//最后一个;;可以加可以不加
esac
作练习的时候发现的:
1。用#号的时候,我们的通配符要靠前,%号的时候,我们的通配符要靠后。 #*4 ky! #4* bu ky! %4* ky! %*4 bu ky !
str=01234567
echo ${str:2:4}
echo ${str#4*}
echo ${str%4*}
2. a=100 b=200 c=((a+b)):这是错无的,应该这样子:((c=a+b)) 或者 c=$((a+b))
3***********************我们经常这样子作:$((year%4==0&&year%100!=0||year%400==0)) : $((xxx))
-------------我的这些例子在我的资源里面有。呵呵