Mzkyshell.docx
- 文档编号:28995288
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:22
- 大小:25.35KB
Mzkyshell.docx
《Mzkyshell.docx》由会员分享,可在线阅读,更多相关《Mzkyshell.docx(22页珍藏版)》请在冰豆网上搜索。
Mzkyshell
LINUXandSHELL总结
总结:
mzky郑
目录
总结:
mzky郑1
目录1
一、各种循环命令3
1.#while循环用法3
2.#until循环用法3
3.#for循环用法:
3
二、各种条件语句4
1.#if语句用法4
2.#case语句用法4
语法结构4
加select用法4
#select范围用法5
3.#goto语句5
4.#until循环语句5
5.循环控制语句5
1.break命令5
2.continue命令5
三、替换命令用法6
1.#tr替换命令6
2.#sed替换字符串代码6
四、多行文件写入或注释7
1.多行文件写入7
2.多行注释方法7
五、shell其它命令总结7
1.#awk命令用法7
2.搜索文件夹或文件命令7
3.deb包rpm包和tar包7
#rpm强制安装7
#deb强制安装7
4.统计某字符串数量8
5.#DD命令使用总结8
6.#rev字符串反向命令8
7.变量截取8
8.#uniq去掉重复8
9.#sort排序8
10.杀掉某进程8
11.#shell输出tab和空格9
12.#ps用法9
13.#tail用法9
14.#echo选项9
15.#grep和egrep过滤组9
16.#ls的特殊用法9
六、LinuxShell其它9
1.Vi使用9
2.算术运算符9
3.字符串比较10
4字符串表达式(判断条件命令if)10
5.#sleep等待10
6.#tee执行结果复制保存10
七、数组生成方法11
1.#seq方法生成11
2.通过内部{begin..end}生成11
3.以性能比较11
4.数组11
八、linux系统常用配置方法及命令11
1.网卡相关的TCP/IP网络配置文件地址11
2.#netconfig命令可以永久保存设置11
3.#Neat或redhat-config-netconfig可永久保存设置。
12
4.#date命令的使用12
5.linux在线安装文件12
#ubuntu在线安装12
#fedora和redhat13
6.linux下访问window的共享13
7.linux快速设置samba13
8.fedora用root登陆13
一、各种循环命令
1.#while循环用法
whilereadi;doecho$i;done
循环读取文件内容
i=10;while[[$i-gt5]];doecho$i;((i--));done;
输出10到5的数字
------------------------------------
while[$i-le100]
do
cp-vfaa$i
break#跳出循环
done
2.#until循环用法
until条件
do
---内容---
done
意思是:
直到满足条件,就退出。
否则执行action.
实例:
a=10;
until[[$a-lt0]];do
echo$a;
((a—));
done;
3.#for循环用法:
for((赋值;条件;运算语句))
for((i=1;i<=10;i++));do
echo$i;
done;
双括号((表达式))或[[表达式]]为强化()和[],可识别<>=+_*/等运算符
***************重点****************
单字符匹配
[0-9]或[a-z]只匹配一个字符
多字符
formin{1..1000};doecho-ne$m"\t";done
输出1到1000的所有数字."\t"为tab,必须前面加-e
其它用法
forFin{1..100};docp-vfaa$F;done
复制a到a0至a100共复制100个文件,可从任意数字开始,不用1亦可
forFin{a..z};docp-vfaa$F;done
复制a到aa至az共复制26个文件
二、各种条件语句
1.#if语句用法
if语句结构[if/then/elif/else/fi]
if[表达式]
then
---内容---
elif[表达式]
then
---内容---
else
---内容---
fi
“与或”表达式结构:
if[$F-ge1]||[$F-le1]
if[$F-ge1]&&[$F-le7]
2.#case语句用法
语法结构
case$iin
条件1|条件2)执行语句;;
条件3)执行语句;;
*)执行语句;;
esac
说明:
pattern1是正则表达式,可以用下面字符:
*任意字串
?
任意字元
[abc]a,b,或c三字元其中之一
[a-n]从a到n的任一字元
|多重选择
******注意最后";;"符号必须有******
加select用法
select变量nameinseq变量
do
---内容---
done
实例:
selectchin"begin""end""exit"
do
case$chin
"begin")echo"startsomething";;
"end")echo"stopsomething";;
"exit")echo"exit"
break;;;
*)echo"Ignorant";;
esac
done;
#select范围用法
SelectCaseunitsSold
Case1to100
Discount=0.05
CaseIs<=500
Discount=0.1
Case501to1000
Discount=0.15
CaseIs>1000
Discount=0.2
EndSelect
3.#goto语句
#/bin/csh#只有csh有goto
AA:
---内容---
gotoAA
4.#until循环语句
使用until循环语句时,首先执行条件测试并判断其返回值,若条件不成立则执行循环,一直到该测试条件成立时为止,即退出循环。
until循环语句格式如下:
until[条件测试命令]
do
命令序列
done
5.循环控制语句
1.break命令
break即中断的意思,用于跳出当前所在的循环体,但是并不退出循环。
2.continue命令
continue即继续的意思,用于暂停本次循环,跳转至循环语句的顶部重新测试条件。
三、替换命令用法
1.#tr替换命令
语法:
echo"${FORM_sendcontent}"|tr-d"*\n"
其中tr-d"*\n"为删除换行符
其它用法:
#!
/bin/sh
#----------------------------------------------------------
#[:
upper:
][A-Z]
#[:
lower:
][a-z]
#[:
digit:
][0-9]
#[:
alnum:
][0-9a-zA-Z]
#[:
space:
]空格或tab键
#[:
alpha:
][a-zA-Z]
#----------------------------------------------------------
#tr
forfin*
do
mv$f`echo$f|tr"[:
upper:
]""[:
lower:
]"`
done
2.#sed替换字符串代码
sed-i's/替换前的字符/更改后字符/g'文件名
注释:
可以去掉后面参数的g,整体s/字符/字符/g
sed-i'y/abc/ABC/'文件名
注释:
y后面两个字符数量必须相同
sed-i'/某串字符后/a\字符A串\n字符B串'/etc/init.d/httpd
其中:
/a为在某字符串之后添加,\n为换行
-i为实际写入文件,不加只会显示更改,不会写入文件
-e为多条替换命令分割,可用分号;代替.
-e's///g'-e's///g'或's///g;s///g'
注意分号必须是紧跟斜线或g之后,不能空格.
sed在某字串two一行中替换字符
$sed'/two/s/1/2/g'file
one1
two1
three1
四、多行文件写入或注释
1.多行文件写入
存入文件a
#!
/bin/bash
cat>a< 要写入的字符串 要写入的字符串 KK--此KK类似}必须同上 2.多行注释方法 在Shell中以字符“#”开头的正文行表示注释行。 注释多行方法: : < ....注释内容不得有反引号 BLOCK 五、shell其它命令总结 1.#awk命令用法 #把当前目录下的所有小写文件名都改为大写文件名。 ls|awk'{printf("mv%s%s\n",$0,toupper($0))|"sh"}' #把当前目录下的所有大写文件名都改为小写文件名。 ls|awk'{printf("mv%s%s\n",$0,tolower($0))|"sh"}' 2.搜索文件夹或文件命令 $find./-typef-name“文件名” $find.-name“文件夹或文件名”#可以用*? -name: 按照文件名查找文件 注意: 文件名必须加“引号” 3.deb包rpm包和tar包 #dpkg–i文件名.deb #rpm-ivh文件名.rpm #tar-zxvf文件名.tar.gz tar压缩 tar-zcvf文件名.tar.gz要压缩的文件 #rpm强制安装 遇到此问题时可以在安装rpm包命令的后面加两个参数,如: rpm-ivhjdk-1_5_0_07-linux-i586.rpm 添加--nodeps--force: rpm-ivhjdk-1_5_0_07-linux-i586.rpm--nodeps--force#注意--是两个- 加上那两个参数的意义就在于,安装时不再分析包之间的依赖关系而直接安装,也就不会再提示error: Faileddependencies: 这样的错误了(注意是否是64位)。 #deb强制安装 dpkg--force-all-i文件名.deb 注意all前面没空格 4.统计某字符串数量 统计a.txt文件下某"abc"单词数量 grepabca.txt|wc-w wc–lfile行数 wc-wfile单词数 wc-cfile字符数 -----------------统计某文件夹下,排除某字符串后,剩余的文件----------------- ls|grep-v"不检测的字符串" 5.#DD命令使用总结 批量dd格式化盘阵 forFin/dev/sd[c-z];doddif=随便一个文件of=$F;done 6.#rev字符串反向命令 文件a内容为123 reva>1 输出文件1内容为321 7.变量截取 2010年11月3日星期三20: 39: 51 date=`date`;echo${date##*""} 结果为 20: 53: 51 #*A去掉左起第一个A前的字符|包括A ##*A去掉左起最后一个A前的字符|包括A %A*去掉右起第一个A后的字符|包括A %%A*去掉右起最后一个A后的字符|包括A 8.#uniq去掉重复 参数格式: uniq-d文件名 用法: sorta|uniq-u文件a去重并排序 -c显示每行重复数量 -d只输出重复的行 -u只显示文件中不重复的各行 9.#sort排序 参数格式: sort-V文件名 用法: ls|sort默认自然排序 -V自然排序 10.杀掉某进程 方法一: pkill-9进程名 #杀掉相同进程名的所有进程 killall-9进程名 #pkill杀不掉的时候用killall试试 方法二: kill-9$(ps-e|awk'/进程名/{print$1}') 方法三: pgrep-fl进程名#显示进程id和进程名 pgrep进程名#只显示进程id Kill-9进程id 11.#shell输出tab和空格 echo-e"\t"字符串"" 输出tab必须加-e 12.#ps用法 ps-ef|grep进程名#显示“进程名”类似的进程 pgrep进程名#显示“进程名”的pid(针对杀进程很有效) pgrep-l进程名#显示“进程名”的pid和进程名 13.#tail用法 tail-f文件名|grepERROR#查看某文件的(-f)实时ERROR tail-f文件名|grep"[ERROR,error,info]"#查看grep组的实时显示 14.#echo选项 -n#不输出换行符 -e#打开反斜杠\符号转义(如"\t"tab"\n"空格),输出颜色必须加-e \007#发蜂鸣生beep 例如: echo-e"\e[35m字符串"#其中35为颜色 echo-e"\e[35m字符串1\e[36m字符串2"#一行中不同颜色 背景色: 40黑41红42绿43黄44青45蓝46青47白 前景色: 30黑31红32绿33黄34蓝35紫36青37白 echo-e"\e[31m字符串\e[0m"#指定字符串颜色 15.#grep和egrep过滤组 ls|grep[an]#显示文件名含有a和n的所有文件(只能单独字符) ls|egrep"zh|dz"#显示文件名含有zh或者dz的文件,egrep可使用特殊字符 16.#ls的特殊用法 ls-xd*/*#参数-d为显示目录路径,参数-x为显示列表(不显示文件生成时间等信息) 六、LinuxShell其它 1.Vi使用 : ! shXX.sh#可在vi中运行 : setnu#显示行号 2.算术运算符 +加法 -减法 *乘法 /除法 **幂运算 let"z=5**3" echo"z=$z"#z=125 %取模 +=加等于(通过常量增加变量) 如: let"var+=5"#var将在本身值的基础上增加5 -=减等于 *=乘等于 如: let"var*=4" /=除等于 %=取模赋值, 算术操作经常使用expr或者let表达式 逻辑运算符 ||逻辑或 &&逻辑与 3.字符串比较 Int1-eqint2#当int1等于int2时,返回True Int1-geint2#当int1大于/等于int2时,返回True Int1-leint2#当int1小于/等于int2时,返回True Int1-gtint2#当int1大于int2时,返回True Int1-ltint2#当int1小于int2时,返回True Int1-neint2#当int1不等于int2时,返回True <小于(需双括号)如: (("$a"<"$b")) <=小于等于(需双括号)如: (("$a"<="$b")) >大于(需双括号)如: ((”$a”>“$b”)) >=大于等于(需双括号)如: ((”$a”>=“$b”)) =等于,如: if["$a"="$b"] ==等于,如: if["$a"=="$b"],与=等价 注意: ==的功能在[[]]和[]中的行为是不同的,如下: 1[[$a==z*]]#如果$a以”z”开头(模式匹配)那么将为true 2[[$a=="z*"]]#如果$a等于z*(字符匹配),那么结果为true 3 4[$a==z*]#Fileglobbing和wordsplitting将会发生 5["$a"=="z*"]#如果$a等于z*(字符匹配),那么结果为true 解释,关于Fileglobbing是一种关于文件的速记法,比如”*.c”就是,再如~也是.但是fileglobbing并不是严格的正则表达式,虽然绝大多数情况下结构比较像. 4字符串表达式(判断条件命令if) Str1=str2#当str1与str2相同时,返回True Str1! =str2#当str1与str2不同时,返回True Str#当str不是空字符时,返回True -nstr#当str的长度大于0时,返回True -zstr#当str的长度是0时,返回True 5.#sleep等待 Sleep1等待1秒 6.#tee执行结果复制保存 cattest.sh|teetest.txt&>/dev/null #通过管道实现将结果存入文件,还需要借助命令tee,它会把管道过来标准输入写入文件test.txt,然后将标准输入复制到标准输出(stdout),所以重定向到/dev/null不显示输出 七、数组生成方法 1.#seq方法生成 F=$(seq100) echo$F输出(123...100)数组 2.通过内部{begin..end}生成 forain{1..10};doecho$a;done; 输出(123...10)数组 echo参数-n为在同一行输出 3.以性能比较 timeecho{1..100}快于timeecho$(seq100) 4.数组 数组下标是以零为开始; 数组的使用方法 如: arr1=(12345)#定义数组arr1,并初始化5个值 echo${arr1[0]}#打印数组中第零个变量值 arr1[0]=6#将数组中第0个值赋值为6 八、linux系统常用配置方法及命令 1.网卡相关的TCP/IP网络配置文件地址 “/etc/sysconfig/network-scripts/ifcfg-ethx” #vi/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 #设定网卡的名称,要跟文件名称对应# ONBOOT=yes#是否在开机的的时候启动网卡# BOOTPROTO=static#启动的时候的IP取得的协议,这里是固定的, 如果是动态主机的话,要改成dhcp才行# IPADDR=192.168.1.2#IP地址# NETMASK=255.255.255.0 #子网掩吗# NETWORK=192.168.1.0 #该网段的第一个IP# BROADCAST=192.168.1.255 #最后一个同网段的广播地址# GATEWAY=192.168.1.2 #网关地址# #GATEWAYDEV=eth0 2.#netconfig命令可以永久保存设置 #netconfigethX #netconfig-deth0--ip=192.168.1.33--netmask=255.255.255.0 --gateway=192.168.1.1 #netconfig--help注: 帮助; --bootproto=(dhcp|bootp|none)Bootprotocoltouse(自动获得ip方式) --gateway=STRINGNetworkgateway(指定网关) --ip=STRINGIPaddress(指定IP地址) --nameserver=STRINGNameserver(指定DNS客户端) --netmask=STRINGNetmask(指定网络掩码) --hostname=STRINGHostname(指定主机名) --domain=STRINGDomainname(指定域名) -d,--device=STRINGNetworkdevice(指定网络设备) --nodnsNoDNSlookups(没有DNS查询) --hwaddr=STRINGEthernethardwareaddress(指定网卡的物理地址) --description=STRINGDescriptionofthedevice(描述性文字) 3.#Neat或redhat-config-netconfig可永久保存设置。 注意: 只支持redhat 有时候想要在网卡上配置多个ip地址,同样可以使用ifconfig命令完成: ifconfigeth0: 1192.168.149.122netmask255.255.255.0 ifconfigeth0: 2192.168.149.123netmask255.255.255.0 ------------------------------------------------ #ifdowneht0关闭网卡 #ifupeth0启动网卡 ------------------------------------------------ 设置9000帧 ifconfigethXmtu9000 千兆自适应_全双工 ethtool-sethXspeed1000duplexfullautonegon ------------------------------------------------ suse的网卡重启命令 #rcnetworkrestart redhat网卡重启命令 #servicenetworkrestart ---------------------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Mzkyshell