Windows 批处理与Linux Shell比较[命令比较]
一 Windows Dos与Linux 相同的内部命令
二 Windows Dos与Linux 不同的内部命令
三 Windows Dos与Linux 不同的内部命令2
四 Windows Dos与Linux 不同的外部命令
五 命令帮助
五 更多参考
六 Linux命令在Windows上执行
几乎所有的Linux的命令都同时被编译为Windows的exe版本,所以我们可以在Windows上使用所有的Linux的命令。更多参考:
1)http://unxutils.sourceforge.net
2)http://www.cnblogs.com/itech/archive/2009/05/22/1487120.html
七 有用但是不常用的命令
1)robocopy用来copy
Windows的copy命令:
copy “c:\new folder\1.txt” c:
copy “c:\new folder\1.txt” c:\2.txt
Linux的cp和Windows的cp命令:
cp ~/a.txt ~/test (cp c:\1.txt c:\test2)
cp ~/a.txt ~/test/b.txt (cp c:\1.txt c:\3.txt)
在Windows上推荐robocopy,功能强大,更多的返回值,例如:
robocopy /E /NP /R:12 SourceDir DestinationDir *.txt *.doc /XF test.txt /xd test [从SourceDir拷贝所有的txt和doc文件到DestinationDir,其中排除test.txt和子文件夹下test]
copy “c:\new folder\1.txt” c:
copy “c:\new folder\1.txt” c:\2.txt
Linux的cp和Windows的cp命令:
cp ~/a.txt ~/test (cp c:\1.txt c:\test2)
cp ~/a.txt ~/test/b.txt (cp c:\1.txt c:\3.txt)
在Windows上推荐robocopy,功能强大,更多的返回值,例如:
robocopy /E /NP /R:12 SourceDir DestinationDir *.txt *.doc /XF test.txt /xd test [从SourceDir拷贝所有的txt和doc文件到DestinationDir,其中排除test.txt和子文件夹下test]
2)printf用来格式为字符串
Printf %3d 2 [格式为__2]
printf %-3d 2 [格式为2__]
Printf %03d 2 [格式为002]
Printf %1.2f 3.1415926 [格式为3.14]
printf %8s "aaaa" [格式为____aaaa]
printf "\nXXX: %03d\n" 3 [格式为__3]
所有的printf的格式参数:printf %-3d 2 [格式为2__]
Printf %03d 2 [格式为002]
Printf %1.2f 3.1415926 [格式为3.14]
printf %8s "aaaa" [格式为____aaaa]
printf "\nXXX: %03d\n" 3 [格式为__3]
Specifier
Description
%c
ASCII character (prints first character of corresponding argument)
%d
Decimal integer
%i
Same as %d
%e
Floating-point format ([-]d.precisione[+-]dd) (see following text for meaning of precision)
%E
Floating-point format ([-]d.precisionE[+-]dd)
%f
Floating-point format ([-]ddd.precision)
%g
%e or %f conversion, whichever is shorter, with trailing zeros removed
%G
%E or %f conversion, whichever is shortest, with trailing zeros removed
%o
Unsigned octal value
%s
String
%u
Unsigned decimal value
%x
Unsigned hexadecimal number; uses a-f for 10 to 15
%X
Unsigned hexadecimal number; uses A-F for 10 to 15
%%
Literal %
Description
%c
ASCII character (prints first character of corresponding argument)
%d
Decimal integer
%i
Same as %d
%e
Floating-point format ([-]d.precisione[+-]dd) (see following text for meaning of precision)
%E
Floating-point format ([-]d.precisionE[+-]dd)
%f
Floating-point format ([-]ddd.precision)
%g
%e or %f conversion, whichever is shorter, with trailing zeros removed
%G
%E or %f conversion, whichever is shortest, with trailing zeros removed
%o
Unsigned octal value
%s
String
%u
Unsigned decimal value
%x
Unsigned hexadecimal number; uses a-f for 10 to 15
%X
Unsigned hexadecimal number; uses A-F for 10 to 15
%%
Literal %
3)Expr用来表达式计算
expr 5 + 7
expr 5 – 6
expr 5 ”*” 4
expr 5 / 7
expr 7 % 9
expr 1 “|” 0
expr 1 “&” 0
expr 3 “>” 6
expr 3 “<” 6
expr 3 “>=” 3
expr 3 “<=” 3
expr 3 = 3
expr 3 != 3
expr expr1 : re [用re正则表达式在expr1中求解]
expr index expr1 expr2 [取index]
expr substr expr1 expr2 expr3 [取substring]
expr length "abcdef" [取长度]
expr length "abcdef" "<" 5 "|" 15 - 4 ">" 8
expr 5 – 6
expr 5 ”*” 4
expr 5 / 7
expr 7 % 9
expr 1 “|” 0
expr 1 “&” 0
expr 3 “>” 6
expr 3 “<” 6
expr 3 “>=” 3
expr 3 “<=” 3
expr 3 = 3
expr 3 != 3
expr expr1 : re [用re正则表达式在expr1中求解]
expr index expr1 expr2 [取index]
expr substr expr1 expr2 expr3 [取substring]
expr length "abcdef" [取长度]
expr length "abcdef" "<" 5 "|" 15 - 4 ">" 8
4)Awk用来处理文本数据库
awk '{print $0}' scores.txt [打印scores.txt的每一行]
awk '{if($2 ^> "60") print $0}' scores.txt [打印scores.txt的所有第二列大于60的所有行]
awk 'BEGIN {print "start"} {tot+=$2} END {print "totoal is:" tot; print "END"}' scores.txt [将scores.txt中的所有的行的第二列求和]
awk '{print length($2)}' scores.txt [打印所有行的第二列的长度]
awk参数:awk '{if($2 ^> "60") print $0}' scores.txt [打印scores.txt的所有第二列大于60的所有行]
awk 'BEGIN {print "start"} {tot+=$2} END {print "totoal is:" tot; print "END"}' scores.txt [将scores.txt中的所有的行的第二列求和]
awk '{print length($2)}' scores.txt [打印所有行的第二列的长度]
1 awk内置变量
A R G C 命令行参数个数
A R G V 命令行参数排列
E N V I R O N 支持队列中系统环境变量的使用
FILENAME a w k浏览的文件名
F N R 浏览文件的记录数
N F 浏览记录的域个数
N R 已读的记录数
O F S 输出域分隔符
O R S 输出记录分隔符
F S控制域分割符
R S 控制记录分隔符
2 awk操作符
= += *= / = %= ^ = 赋值操作符
? 条件表达操作符
|| && ! 并、与、非(上一节已讲到)
~!~ 匹配操作符,包括匹配和不匹配
< <= == != >> 关系操作符
+ - * / % ^ 算术操作符
+ + -- 前缀和后缀
3 awk支持函数
g s u b ( r, s ) 在整个$ 0中用s替代r
g s u b ( r, s , t ) 在整个t中用s替代r
i n d e x ( s , t ) 返回s中字符串t的第一位置
l e n g t h ( s ) 返回s长度
m a t c h ( s , r ) 测试s是否包含匹配r的字符串
s p l i t ( s , a , f s ) 在f s上将s分成序列a
s p r i n t ( f m t , e x p ) 返回经f m t格式化后的e x p
s u b ( r, s ) 用$ 0中最左边最长的子串代替s
s u b s t r ( s , p ) 返回字符串s中从p开始的后缀部分
s u b s t r ( s , p , n ) 返回字符串s中从p开始长度为n的后缀部分
4 awk支持print 和 printf
A R G C 命令行参数个数
A R G V 命令行参数排列
E N V I R O N 支持队列中系统环境变量的使用
FILENAME a w k浏览的文件名
F N R 浏览文件的记录数
N F 浏览记录的域个数
N R 已读的记录数
O F S 输出域分隔符
O R S 输出记录分隔符
F S控制域分割符
R S 控制记录分隔符
2 awk操作符
= += *= / = %= ^ = 赋值操作符
? 条件表达操作符
|| && ! 并、与、非(上一节已讲到)
~!~ 匹配操作符,包括匹配和不匹配
< <= == != >> 关系操作符
+ - * / % ^ 算术操作符
+ + -- 前缀和后缀
3 awk支持函数
g s u b ( r, s ) 在整个$ 0中用s替代r
g s u b ( r, s , t ) 在整个t中用s替代r
i n d e x ( s , t ) 返回s中字符串t的第一位置
l e n g t h ( s ) 返回s长度
m a t c h ( s , r ) 测试s是否包含匹配r的字符串
s p l i t ( s , a , f s ) 在f s上将s分成序列a
s p r i n t ( f m t , e x p ) 返回经f m t格式化后的e x p
s u b ( r, s ) 用$ 0中最左边最长的子串代替s
s u b s t r ( s , p ) 返回字符串s中从p开始的后缀部分
s u b s t r ( s , p , n ) 返回字符串s中从p开始长度为n的后缀部分
4 awk支持print 和 printf
5)sed [选项] s e d命令 输入文件。
sed ‘=' test.txt [打印文件且显示行号]
sed 's/tom/tom2010/g' test.txt [将文件中的所有的tom替换为tom2010]
sed '5,6d' test.txt [删除文件5到6行]
sed '10a\abcd' test.txt [在第10行后增加abcd]
sed '/unix/i\adflajflad\n\adfadfajdlf' test.txt [在unix前插入adflajflad\n\adfadfajdlf]
Sed ‘1c\aaaa’ test.txt [修改第一行为aaaa]
sed ‘4q’ test.txt [处理到第4行退出]
sed '2r 1.txt' test.txt [将文件1.txt读入到文件test.txt的第二行]
其他的sed参数:
sed 's/tom/tom2010/g' test.txt [将文件中的所有的tom替换为tom2010]
sed '5,6d' test.txt [删除文件5到6行]
sed '10a\abcd' test.txt [在第10行后增加abcd]
sed '/unix/i\adflajflad\n\adfadfajdlf' test.txt [在unix前插入adflajflad\n\adfadfajdlf]
Sed ‘1c\aaaa’ test.txt [修改第一行为aaaa]
sed ‘4q’ test.txt [处理到第4行退出]
sed '2r 1.txt' test.txt [将文件1.txt读入到文件test.txt的第二行]
-e 允许对同一行进行多次编辑,每一次编辑用到的命令都必须跟在一个-e后面。
-n 取消默认的输出。
查询:
x x为一行号,如1
x , y 表示行号范围从x到y,如2,5表示从第2行到第5行
/ p a t t e r n / 查询包含模式的行。例如/ d i s k /或/[a-z]/
/ p a t t e r n / p a t t e r n / 查询包含两个模式的行。例如/ d i s k / d i s k s /
p a t t e r n / , x 在给定行号上查询包含模式的行。如/ r i b b o n / , 3
x , / p a t t e r n / 通过行号和模式查询匹配行。3 . / v d u /
x , y ! 查询不包含指定行号x和y的行。1 , 2 !
[:alnum:] Alphanumeric [a-z A-Z 0-9] [:alpha:] Alphabetic [a-z A-Z] [:blank:] Spaces or tabs [:cntrl:]
Any control characters [:digit:] Numeric digits [0-9] [:graph:] Any visible characters (no whitespace)
[:lower:] Lower-case [a-z] [:print:] Non-control characters [:punct:] Punctuation characters
[:space:] Whitespace [:upper:] Upper-case [A-Z] [:xdigit:] hex digits [0-9 a-f A-F]
sed编辑命令:
p 打印匹配行
= 显示文件行号
a \ 在定位行号后附加新文本信息
i \ 在定位行号后插入新文本信息
d 删除定位行
c \ 用新文本替换定位文本
s 使用替换模式替换相应模式
r 从另一个文件中读文本
w 写文本到一个文件
q 第一个模式匹配完成后推出或立即推出
l 显示与八进制A S C I I代码等价的控制字符
{ } 在定位行执行的命令组
n 从另一个文件中读文本下一行,并附加在下一行
g 将模式2粘贴到/pattern n/
y 传送字符
n 延续到下一输入行;允许跨行的模式匹配语句
替换选项如下:
g 缺省情况下只替换第一次出现模式,使用g选项替换全局所有出现模式。
p 缺省s e d将所有被替换行写入标准输出,加p选项将使- n选项无效。- n选项不打印输出
结果。
w 文件名使用此选项将输出定向到一个文件。
sed中的一些特殊定义是 规则 表达式 描述
/./ 将与包含至少一个字符的任何行匹配
/../ 将与包含至少两个字符的任何行匹配
/^#/ 将与以 '#' 开始的任何行匹配
/^$/ 将与所有空行匹配
/}^/ 将与以 '}'(无空格)结束的任何行匹配
/} *^/ 将与以 '}' 后面跟有 零或多个空格结束的任何行匹配
/[abc]/ 将与包含小写 'a'、'b' 或 'c' 的任何行匹配
/^[abc]/ 将与以 'a'、'b' 或 'c' 开始的任何行匹配
-n 取消默认的输出。
查询:
x x为一行号,如1
x , y 表示行号范围从x到y,如2,5表示从第2行到第5行
/ p a t t e r n / 查询包含模式的行。例如/ d i s k /或/[a-z]/
/ p a t t e r n / p a t t e r n / 查询包含两个模式的行。例如/ d i s k / d i s k s /
p a t t e r n / , x 在给定行号上查询包含模式的行。如/ r i b b o n / , 3
x , / p a t t e r n / 通过行号和模式查询匹配行。3 . / v d u /
x , y ! 查询不包含指定行号x和y的行。1 , 2 !
[:alnum:] Alphanumeric [a-z A-Z 0-9] [:alpha:] Alphabetic [a-z A-Z] [:blank:] Spaces or tabs [:cntrl:]
Any control characters [:digit:] Numeric digits [0-9] [:graph:] Any visible characters (no whitespace)
[:lower:] Lower-case [a-z] [:print:] Non-control characters [:punct:] Punctuation characters
[:space:] Whitespace [:upper:] Upper-case [A-Z] [:xdigit:] hex digits [0-9 a-f A-F]
sed编辑命令:
p 打印匹配行
= 显示文件行号
a \ 在定位行号后附加新文本信息
i \ 在定位行号后插入新文本信息
d 删除定位行
c \ 用新文本替换定位文本
s 使用替换模式替换相应模式
r 从另一个文件中读文本
w 写文本到一个文件
q 第一个模式匹配完成后推出或立即推出
l 显示与八进制A S C I I代码等价的控制字符
{ } 在定位行执行的命令组
n 从另一个文件中读文本下一行,并附加在下一行
g 将模式2粘贴到/pattern n/
y 传送字符
n 延续到下一输入行;允许跨行的模式匹配语句
替换选项如下:
g 缺省情况下只替换第一次出现模式,使用g选项替换全局所有出现模式。
p 缺省s e d将所有被替换行写入标准输出,加p选项将使- n选项无效。- n选项不打印输出
结果。
w 文件名使用此选项将输出定向到一个文件。
sed中的一些特殊定义是 规则 表达式 描述
/./ 将与包含至少一个字符的任何行匹配
/../ 将与包含至少两个字符的任何行匹配
/^#/ 将与以 '#' 开始的任何行匹配
/^$/ 将与所有空行匹配
/}^/ 将与以 '}'(无空格)结束的任何行匹配
/} *^/ 将与以 '}' 后面跟有 零或多个空格结束的任何行匹配
/[abc]/ 将与包含小写 'a'、'b' 或 'c' 的任何行匹配
/^[abc]/ 将与以 'a'、'b' 或 'c' 开始的任何行匹配
6)grep
grep "map" test.txt [在test.txt中查找map]
grep "map" *.txt [在所有的txt中查找map]
grep -c “aud“ test.txt [在test.txt中查找aud且只输出匹配的行号]
grep -n “aud“ test.txt [在test.txt中查找aud且输出匹配的行和行号]
grep -v “aud“ test.txt [显示所有不包含aud的所有的行号]
grep -i “aud“ test.txt [在test.txt中查找aud且不区分大小写]
其他的参数:grep "map" *.txt [在所有的txt中查找map]
grep -c “aud“ test.txt [在test.txt中查找aud且只输出匹配的行号]
grep -n “aud“ test.txt [在test.txt中查找aud且输出匹配的行和行号]
grep -v “aud“ test.txt [显示所有不包含aud的所有的行号]
grep -i “aud“ test.txt [在test.txt中查找aud且不区分大小写]
常用的g r e p选项有:
-c 只输出匹配行的计数。
-i 不区分大小写(只适用于单字符)。
-h 查询多文件时不显示文件名。
-l 查询多文件时只输出包含匹配字符的文件名。
-n 显示匹配行及行号。
-s 不显示不存在或无匹配文本的错误信息。
-v 显示不包含匹配文本的所有行。
-c 只输出匹配行的计数。
-i 不区分大小写(只适用于单字符)。
-h 查询多文件时不显示文件名。
-l 查询多文件时只输出包含匹配字符的文件名。
-n 显示匹配行及行号。
-s 不显示不存在或无匹配文本的错误信息。
-v 显示不包含匹配文本的所有行。
八 完!
感谢,Thanks!
作者:iTech
出处:http://itech.cnblogs.com/
相关推荐
相比于Windows上的ren命名,Linux还真的是没有一个特定的重命名的命令。(虽然可以间接的使用mv来实现)。下面我就来自己写一个简单的重命名命令。 准备工作 操作系统: Linux内核的系统都可以 Shell:我用的系统...
### Windows下批处理连接Linux的...通过以上步骤,我们可以在Windows环境中通过简单的批处理命令实现与Linux服务器的安全连接和基本操作。这种方法不仅提高了工作效率,还为系统管理员提供了一种更加灵活的操作方式。
- `batch`:可能指的是Windows批处理文件,虽然`wsl-alias`主要与Bash Shell交互,但也可能涉及批处理脚本的转换。 - `wsl`:即Windows Subsystem for Linux,是整个讨论的核心。 综上所述,`wsl-alias`是一个增强...
而对于Linux环境,脚本可能是一个shell脚本(`.sh`): ```bash #!/bin/bash JAR_FILE=<your-jar-file-name>.jar JAVA_OPTS="-Dspring.profiles.active=<env-profile> -Xms256m -Xmx512m" java $JAVA_OPTS -jar $JAR...
Shell命令在IT行业中,特别是在Unix/Linux和Windows操作系统中,是一个非常重要的工具,它允许用户执行系统级别的命令,操作文件和程序。在这个“Shell的妙用”主题中,我们将深入探讨如何利用Shell函数来调用IE...
下面将详细介绍如何使用shell脚本(适用于Unix/Linux系统)和bat脚本(适用于Windows系统)来运行Java程序。 **shell脚本运行Java程序** 在Unix/Linux环境中,我们可以创建一个.sh文件作为shell脚本来执行Java程序...
Windows还引入了批处理文件(batch files),用`.bat`扩展名,可以组合多个命令。 4. **Linux**: Linux是一类广泛使用的开源操作系统,其命令行接口称为shell。在`Linux系统信息.txt`中,可能会讨论`ls`、`pwd`...
Cmder是一款Windows环境下非常简洁美观易用的cmd替代者,它是一个跨平台的命令行增强工具,可以集成windows batch, power shell, git, linux bash等多种命令行于一体,支持了大部分的Linux命令。十分方便。还可以...
Cmder是一款Windows环境下非常简洁美观易用的cmd替代者,它是一个跨平台的命令行增强工具,可以集成windows batch, power shell, git, linux bash等多种命令行于一体,支持了大部分的Linux命令。十分方便。还可以...
这些脚本通常使用批处理语言(如Windows的CMD批处理或Linux的Shell脚本)编写,能够自动完成诸如文件操作、系统设置、数据处理等任务。在batchtool中,用户可以根据需求定制自己的批处理脚本,实现个性化的工作流程...
通过深入学习和实践DOS批处理,不仅可以提高日常电脑操作的效率,还能为理解其他操作系统(如Windows批处理、Linux shell脚本)的自动化原理打下基础。掌握好这一技能,对于系统管理员、程序员以及日常使用电脑进行...
这个脚本与Windows版本类似,只是环境变量设置和路径有所不同,同时使用的是Linux下的SQL*Plus命令行。 这些脚本的关键在于`backup database plus archivelog`命令,它执行全库备份并包含归档日志,这对于灾难恢复...
40. Shell不仅是用户命令的解释器,也是一种编程语言,bash是Linux默认的shell。 以上内容详细阐述了Linux操作系统的关键概念和常用命令,覆盖了文件系统、设备管理、进程控制、网络服务等多个方面。理解并掌握这些...
前台启动的进程直接在Shell中执行命令,后台启动则允许进程在用户不交互的情况下运行。 - **查看进程**:使用`ps`和`top`命令可以查看系统当前运行的进程状态。 2. **DNS域名解析**: - **解析过程**:当客户端...
这个名为"CommandPrompts"的集合可能包括了一系列适用于Windows批处理(Batchfile)和Linux环境的单行命令。批处理文件是Windows环境下的一系列命令,它们可以被写入一个文本文件中,并通过`.bat`或`.cmd`扩展名执行...
Cmder是一款Windows环境下非常简洁美观易用的cmd替代者,它是一个跨平台的命令行增强工具,可以集成windows batch, power shell, git, linux bash等多种命令行于一体,支持了大部分的Linux命令。十分方便。还可以...
Cmder是一款Windows环境下非常简洁美观易用的cmd替代者,它是一个跨平台的命令行增强工具,可以集成windows batch, power shell, git, linux bash等多种命令行于一体,支持了大部分的Linux命令。十分方便。还可以...
Cmder是一款Windows环境下非常简洁美观易用的cmd替代者,它是一个跨平台的命令行增强工具,可以集成windows batch, power shell, git, linux bash等多种命令行于一体,支持了大部分的Linux命令。