vim编辑器:
命令模式、输入模式、末行模式
命令模式常用命令:
dd 删除(剪切)光标所在整行5dd 删除(剪切)从光标处开始的5行yy 复制光标所在整行5yy 复制从光标处开始的5行n 显示搜索命令定位到的下一个字符N 显示搜索命令定位到的上一个字符u 撤销上一步的操作p 将之前删除( dd )或复制( yy )过的数据粘贴到光标后面
末行模式下的命令:
:w 保存:q 退出:q! 强制退出:wq! 强制退出并保存:set nu 显示行号:set nonu 不显示行号:命令 执行该命令:整数 跳转到该行:s/one/two 将光标所在行的第一个one替换成two:s/one/two/g 将当前光标所在行的所有one替换成two:%s/one/two/g 将全文的所有one替换成two?字符串 在文本中从下至上搜索该字符串/字符串 在文本中从上至下搜索该字符串
Shell脚本:
简单脚本:
#!/bin/bash#For Example By linuxprobe.compwdls -al
接受用户的参数:Linux系统已经内设了用于接收参数的变量,变量之间使用空格间隔
$0 shell脚本的名称$1、$2、$3······ 分别对应第N个位置的参数值$# 对应的是总共有多少个参数$* 对应的是所有位置的参数值$? 显示上一次命令的执行返回值
测试语句:
- 文件测试语句
-d 测试文件是否为目录-e 测试文件是否存在-f 测试文件是否为一般文件-r 测试当前用户是否有权限读取-w 测试当前用户是否有权限写入-x 测试当前用户是否有权限执行
- 逻辑测试语句
&& 逻辑与|| 逻辑或! 逻辑非
- 整数值比较语句
-eq 是否等于-ne 是否不等于-gt 是否大于-lt 是否小于-le 是否等于或小于-ge 是否等于或大于
- 字符串比较语句
= 比较字符串内容是否相同!= 比较字符串内容是否不同-z 判断字符串内容是否为空
if条件判断语句:
if 条件测试操作then命令序列fiif 条件测试操作then命令序列1else命令序列2fiif 条件测试操作1then命令序列1elif 条件测试操作2then命令序列2else命令序列3fi
例子:
#!/bin/bashping -c 3 -i 0.2 -W 3 $> /dev/nullif [ $? -eq 0 ]thenecho "Host $1 is On-line."elseecho "Host $1 is Off-line."fi #!/bin/bash read -p "Enter your score (0-100): " GRADE if [ $GRADE -ge 85 ] &&[ $GRADE -le 100 ] ; then echo "$GRADE is Excellent" elif [$GRADE -ge 70] && [ $GRADE -le 84 ] ; then echo "$GRADE is Pass" else echo "$GRADE is Fail" fi
for条件循环语句
for 变量名 in 取值列表do命令序列done
例子
#!/bin/bash read -p "Enter The Users Password : " PASSWD for UNAME in `cat users.txt` do id $UNAME &> /dev/null if [ $? -eq 0 ] then echo "Already exists" else useradd $UNAME &> /dev/null echo "$PASSWD" | passwd --stdin $UNAME &> /dev/null if [ $? -eq 0 ] then echo "$UNAME, Create success" else echo "$UNAME, Create failure" fi fi done
while条件循环语句
while 条件测试操作do命令序列done
例子
#!/bin/bashPRICE=$(expr $RANDOM % 100)TIMES=0echo "商品实际价格为0-99之间,猜猜看是多少?"while truedoread -p "请输入你猜测的价格数目: " INTlet TIMES++if [ $INT -eq $PRICE ] ; thenecho "猜对啦,总共猜了$TIMES次"exit 0elif [ $INT -gt $PRICE ] ; thenecho "太高了"elseecho "太低了"fidone
case条件测试语句
case 变量值 in模式 1)命令序列1;;模式1)命令序列2;;········*)默认命令序列esac
例子
#!/bin/bashread -p "请输入一个字符,并按Enter键确认:" KEYcase "$KEY" in[a-z] | [A-Z])echo "你输入的是一个字母";;[0-9])echo "你输入的是一个数字";;*)echo "你输入的是一个刻个、功能键等其他控制字符"esac
配置主机名称 修改 /etc/hostname 文件即可
配置网卡信息 vim /etc/sysconfig/network-scripts/网卡名称
TYPE=Ethernet 设备类型BOOTPROTO=static 地址分配模式NAME=网卡名称 网卡名称ONBOOT=yes 是否启动IPADDR=192.168.10.10 IP地址NATMASK=255.255.255.0 子网掩码GATEWAY=192.168.10.1 网关地址DNS1=192.168.10.1 DNS地址
配置Yum软件仓库
在/etc/yum,repos.d/目录中 新建一个文件,名称自由取但后缀一定要是.repo
[标识符] Yum软件库的唯一标识符,避免与其他仓库冲突 name=仓库名 Yum软件库的名称描述,易于识别仓库用处 baseurlfil=file://路径 提供的方式包括FTP(ftp://)、HTTP(http://)、本地(file://)enabled=1 设置此源是否可用,1为可用,0为禁用gpgcheck=1 设置此源是否检验文件 1为检验 0为不检验gpgkey=file://检验文件路径 如果gpgcheck值为1才需要设置
计划任务服务程序
一次性任务一般使用 at 命令
at 时间at -latrm 任务序号
周期性地、有规律地执行某些具体的任务 crond
crondtab -e 创建、编辑任务crontab -l 查看当前计划任务crontab -r 删除某条计划任务加上 -u 参数,可以编辑其他人的计划任务 参数格式: "分 时 日 月 星期 命令" 如果有些位置没有设置需要用星号( * )占位 逗号( , )表示多个时间段 减号( - )表示一段连续的时间周期 除号( / )表示执行任务的时间间隔,如”*/2“表示间隔两分钟