WeiyiGeek.
WeiyiGeek.
WeiyiGeek.
WeiyiGeek.
WeiyiGeek.
WeiyiGeek.
WeiyiGeek.
WeiyiGeek.
WeiyiGeek.
less 命令 - 一页一页可向前/后显示文件的内容 描述:该命令的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。
-b<缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o<文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x<数字> 将“tab”键显示为规定的数字空格 命令内部操作按键功能如下:
用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页,要退出less程序,应按Q键
#基础操作
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一页
回车键 滚动一行
:n - 浏览下一个文件
:p - 浏览前一个文件
#文件搜索
/ : 使用一个模式进行搜索,并定位到下一个匹配的文本
? : 使用模式进行搜索,并定位到前一个匹配的文本
n : 向前查找下一个匹配的文本
N : 向后查找前一个匹配的文本
#全屏导航
ctrl + F :向前移动一屏
ctrl + B :向后移动一屏
ctrl + D :向前移动半屏
ctrl + U :向后移动半屏
j : 向前移动一行
k : 向后移动一行
G : 移动到最后一行
g : 移动到第一行
q / ZZ : 退出 less 命令
#标记导航 当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置。
ma : 使用 a 标记文本的当前位置
'a : 导航到标记 a 处'
#编辑文件
v : 进入编辑模式,使用配置的编辑器编辑当前文件 (Vim) 实际案例:
#示例1.浏览多个文件
less file1 file2
#当打开多个文件时,使用如下命令在多个文件之间切换
:n - 浏览下一个文件
:p - 浏览前一个文件
#方式二,正在浏览一个文件时,使用 :e 打开另一个文件。
less file1
:e file2
#示例3.显示行号并且在文件末尾自己关闭文件
less -N -e 1.txt
WeiyiGeek.less示例
sort 命令 描述:将输入的文件或者标准输入的数据进行排序,
基础语法:
SORT [/R] [/+n] [/M kilobytes] [/L locale] [/REC recordbytes]
[[drive1:][path1]filename1] [/T [drive2:][path2]]
[/O [drive3:][path3]filename3]
#参数
/+n 指定开始每个比较的字符号码 n。/+3 说明每个比较应从每行的第三个字符开始。少于 n 个字符的行排在其他行之前。按默认值,从每行的第一个字符开始比较。
/L[OCALE] locale 用指定的区域设置替代系统默认区域设置,""C"" 区域设置产生最快的排序顺序并且是当前的唯一其他选择。排序总是不分大小写的。
/M[EMORY] kilobytes 指定用于排序的主内存量,单位为 KB。最小内存量总是 160 KB。如果指定内存大小,无论主内存的可用量是多少,指定的内存量会全部用于排序。
要取得最佳性能,通常不指定内存大小。按默认值,如果达到默认最大内存值,排序会一次完成(非临时文件);否则,排序会分两次完成(没有完全排序的数据存储在临时文件中);用于排序和合并的内存量相等。如果输入和输出都是文件,默认最大内存量为可用主内存的 90%;否则,为主内存的 45%。
/REC[ORD_MAXIMUM] characters 指定记录中的最大字符数量(默认值为 4096,最大值为 65535)。
/R[EVERSE] 颠倒排序顺序,即,从 Z 到 A,再从 9 到 0
[drive1:][path1]filename1 指定要排序的文件。如果没有指定,则排序标准输入。指定输入文件比将同一个文件重定向为标准输入快
/T[EMPORARY]
[drive2:][path2] 指定保留排序工作存储的目录路径,以防主内存无法容纳数据。默认值是使用系统临时目录
/O[UTPUT]
[drive3:][path3]filename3 指定在哪个文件中储存经过排序的输入,如果没有指定,数据会被写入标准输出。指定输出文件比将标准输出重定向到同一个文件快 说明:
#sort,意为“以……排序”。
/r,全英文reverse,意为“颠倒”。
/+n,还是number,意为“数字”。
/m,全英文memory,意为“内存”。
/l,全英文locale,意为“场所”,引申为“区域设置”。
/rec,全英文record,意为“记录”。
/t,全英文temporary,意为“临时的”。
/o,全英文output,意为“输出”。 基础案例:
#1.不带任何参数的sort命令,比较第一个字符的大小(字母不区分大小写),按“顺序排列”输出(0-9,A-Z,a-z)
sort ip.txt
#2.利用sort,按单词的第二个字符顺序排列
sort /+2 ip.txt #这一次的排序是按照第二个字符的“顺序排列”(a-z)进行排列的,结合1、2节不难看出,其实sort ip.txt 的效果等同于 sort /+1 ip.txt。
#3.标准输入sort正序以及反序排列
D:>dir /b | sort
Builder
Google driver
MyDrivers
Program Files
Program Files (x86)
迅雷下载
D:>dir /b | sort /R
迅雷下载
Program Files (x86)
Program Files
MyDrivers
Googledriver
Builder
#倒序排列
sort /r ip.txt #既然可以123,自然可以321,sort命令也可以倒序排列并输出。
WeiyiGeek.
#4.特殊的倒序方法(按文本倒序,没按字母排序)
#只要超过Len(str)长度+1+n,按文本倒序是将最后一行文本作为第一行,第一行作为最后一行(简而言之就是文本行颠倒)
#5.将排序结果输出到文件利用重定向符,将排序结果输出到文件
sort /r ip.txt>hello1.txt
#6.利用sort的/o参数,将排序结果输出到文件
sort ip.txt /o hello2.txt
WeiyiGeek.
#7./rec参数(指定sort能处理的最大行)
#sort命令默认的文本最大行含有4096个字符(2的12次幂),最多可以含有65535个字符,这里设置了一个特殊的文本a.txt来加以说明
#a.txt中一共含有2行文本,每行文本含有4097个字符
sort a.txt
sort /rec 4097 a.txt
/m参数是用来指定参与排序的内存,换句话说就是“你分多少内存(单位kb)给sort命令排序”/t参数是用来指定缓存文件的目录,举个例子来说,我要处理8m的大文本,指定内存为500kb,500kb怎么装得下8m的文件?这时怎么办呢?(按1m=1000kb算)先将500kb装入内存,再将剩下的7500kb分15次装入内存,缓存文件放在/t指定的目录中。例如:16.txt是一个8m的文本
sort 16.txt /m 500 /t C:dcache
#说明:16.txt是一本小说,用sort排序之后自然是“惨不忍睹”的,对于结果没有什么好说的,主要说说这行代码运行后产生的一些问题。
WeiyiGeek.
问题1.运行代码后,提出警告信息“警告: 做大量排序时使用重定向输出通常比直接指定输出文件名称来排序慢。”——这个前面说过了“/o参数比重定向符(>)快”问题2.运行代码后,在目录C:dcache中产生了一个以“srt”+16进制随机数命名的.tmp文件,出现过几秒,后被系统删除(没用/t参数指定的目录时,默认缓存文件目录是%temp%)问题3.当我将/m指定的内存数500kb变为160kb(160kb是sort命令默认的最小内存)时,竟然提示“没有足够的内存,无法完成排序”
描述:根据微软的机器翻译 “指定输出文件比将同一文件作为标准输出重定向速度快”,也就是说/o参数比重定向符(>)快,这个不好实际测试;
既然是简单思考,自然不会分析的太过深入:
问题1.如果说/o比重定向符(>)快,而且有时用重定向符(>)还会出现“警告”,那么完全可以舍弃重定向符(>),只要想输出排序结果就用/o参数。问题2.缓存文件产生的原因是指定了内存的大小,不指定就不会出现,也就是说“不用/m参数就不会出现缓存文件,而不用/m参数,/t参数也没用”。问题3.不指定用于排序的内存大小,就不会提示“内存不足”,那么不用/m参数不就好了。fc命令 描述:感觉不是很好用,类似于Linux中:Diff命令;比较两个文件或两个文件集并显示它们之间的不同。
基础语法:
FC [/A] [/C] [/L] [/LBn] [/N] [/OFF[LINE]] [/T] [/U] [/W] [/nnnn] [drive1:][path1]filename1 [drive2:][path2]filename2
FC /B [drive1:][path1]filename1 [drive2:][path2]filename2
#参数:
/A 只显示每个不同处的第一行和最后一行
/B 执行二进制比较
/C 不分大小写
/L 将文件作为 ASCII 文字比较
/LBn 将连续不匹配的最大值设置为指定的行数
/N 在 ASCII 比较上显示行数
/OFF[LINE] 不要跳过带有脱机属性集的文件
/T 不要将制表符扩充到空格
/U 将文件作为 UNICODE 文本文件比较
/W 为了比较而压缩空白(制表符和空格)
/nnnn 指定不匹配处后必须连续匹配的行数
[drive1:][path1]filename1 指定要比较的第一个文件或第一个文件集
[drive2:][path2]filename2 指定要比较的第二个文件或第二个文件集。 基础案例:
#1.文件比较
D:>fc 1.txt 2.txt > 3.txt #对比二个文件并把不同之处输出到3.txt文件中,"> "和"> >" 是重定向命令
D:>fc /A 1.txt 3.txt #相邻的一行会受到影响
#2./LBn,n为显示差异的行数
D:www>fc /LB2 1.txt 2.txt
WeiyiGeek.
#3.显示行数
D:www>fc /N 1.txt 2.txt
WeiyiGeek.
comp命令 描述:比较两个文件或两个文件集的内容,貌似10 个不匹配之处.
语法:
COMP [data1] [data2] [/D] [/A] [/L] [/N=number] [/C] [/OFF[LINE]]
#参数:
data1 指定要比较的第一个文件的位置和名称
data2 指定要比较的第二个文件的位置和名称
/D 以十进制格式显示差异。
/A 以 ASCII 字符显示差异。
/L 显示不同的行数。
/N=number 只比较每个文件中第一个指定的行数。
/C 比较文件时 ASCII 字母不区分大小写。
/OFF[LINE] 不要跳过带有脱机属性集的文件。要比较文件集,请在 data1 和 data2 参数中使用通配符 基础案例:
#示例1.每一行的差异对比
comp 1.txt 2.txt /A
WeiyiGeek.
#示例2.偏移量和行数
comp 1.txt 2.txt /D #十进制
comp 1.txt 2.txt /L #显示行数
WeiyiGeek.
where命令 描述:显示符合搜索模式的文件位置在默认情况下,搜索是在当前目录和 PATH
环境变量指定的路径中执行的
基础语法:
WHERE [/R dir] [/Q] [/F] [/T] pattern#模式
#参数列表:
/R 从指定目录开始,递归性搜索并显示符合指定模式的文件
/Q 只返回退出代码,不显示匹配文件列表(安静模式)匹配文件(安静模式)
/F 显示所有相配文件并用双引号括上
/T 显示所有相配文件的文件的文件,有字节大小和建立时间等.
pattern 指定要匹配的文件的搜索模式,通配符 * 和 ? 可以用在模式中也可以指定 "$env:pattern" 和 "path:pattern" 格式; 其中"env" 是环境变量,搜索是在 "env" 变量的指定的路径中执行的 补充:
这些格式不应该跟 /R 一起使用此搜索也可以用将 PATHEXT 变量扩展名附加于此模式的方式完成注意: 如果搜索成功,此工具返回错误级别 0; 如果不成功,返回 1; 如果失败或发生错误,返回 2基础案例:
#1.递归目录进行搜寻可以财团
where /R C:UsersAdministratorDesktop *.txt | more
where /r c:windows *.exe *.dll *.bat #可以搜索多个后缀的文件
#2.采用环境变量进行搜寻 pattern,
WHERE $windir:*.*
C:UsersAdministrator>echo %windir%
C:windows
#3./F 与 /T的不同之处对比
WHERE /F $windir:*.dll
WHERE /T /F $windir:*.dll
WeiyiGeek.
#4.搜索多个路径的指定后缀的文件绝对路径:
WHERE "c:window;c: emp;*.dll" | more
WeiyiGeek.
search命令 描述:强大文件搜索器,相当于Linux的find,search -help
usage: search.bat [options] [-e] [PerlRegex ....]
## 选项:在哪里搜索
-dir DIRPATH start search at the named directory (default is current dir).
-xdev stay on starting file system.(启动文件系统)
-sort sort the files in each directory before Processing .在处理前对每个目录中的文件进行排序
-nolinks don't follow symbolic links.(快捷方式连接.lnk)'
## 选项:告诉你要考虑哪些文件:
-mtime 天数数字 consider files modified > # days ago (-# for < # days old) # 考虑到几天前修改过的文件(-为小于天)
-newer FILE consider files modified more recently than FILE (also -older) # 考虑最近修改的文件比文件(也更老)
-name GLOB consider files whose name matches pattern (also -regex). # 考虑那些名称与模式(regex)相匹配的文件
-skip GLOB opposite of -name: identifies files to not consider. # 与-name:标识不考虑的文件
-path GLOB like -name, but for files whose whole path is described. # 类似-name,但对于描述完整路径的文件
-dpath/-dregex/-dskip versions for selecting or pruning directories. # 用于选择或删除目录的版本
-all don't skip any files marked to be skipped by the startup file. #不要跳过任何标记为被启动文件跳过的文件
-x<SPECIAL> (see manual, and/or try -showrc). 参见手册和/或尝试search -showrc
-why report why a file isn't checked (also implied by -vvvv). # 报告为什么不检查一个文件(也隐含在vvvv中)
## 选项:告诉我们如何处理将被考虑的文件
-f | -find just list files (PerlRegex ignored). Default is to grep them.
-ff | -ffind Does a faster -find (implies -find -all -dorep) # 更快地找到(暗示-找到-全部-多普)
## 选项:控制如何完成搜索(以及打印的内容):
-l | -list only list files with matches, not the lines themselves. # 只列出带有匹配的文件,而不是那些行本身
-nice | -nnice print more "human readable" output. #打印更多的“人类可读”输出
-n prefix each output line with its line number in the file. #在每个输出行前面加上它的行号
-h don't prefix output lines with file name. #不要在输出行前加上文件名
-u also look "inside" manpage-style underlined text #还可以查看“内部”的manpage样式的下划线文本
-i do case-insensitive searching. #Ignore 大小写
-w match words only (as defined by perl's ). # 以字符开头的hostname
## OTHER OPTIONS:
-v, -vv, -vvv various levels of message verbosity. # 各种各样的信息冗言
-e end of options (in case a regex looks like an option). # 选项的结束(如果一个regex看起来像一个选项)
-showrc show what the rc file sets, then exit. # 跳过指定的prefix后缀名
-norc don't load the rc file.
-dorep check files with multiple hard links multiple times. # 多次检查多个硬链接的文件 基础示例:
#1.搜索修改时间小于4天的文件与关键字
search -mtime -4 hostname[关键字]
#2.列出文件(默认-f递归)
SEARCH -f
#3.正则匹配
search -w hostname
WeiyiGeek.
find 命令 描述:在磁盘中搜索文件(按要求), 查找文件内容的命令
基础语法:
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]
#参数:
/V 显示所有未包含指定字符串的行
/C 仅显示包含字符串的行数
/N 显示行号
/I 搜索字符串时忽略ignore大小写
/OFF[LINE] 不要跳过具有脱机属性集的文件
"string" 指定+要搜索的文本字符串
[drive:][path]filename] 指定要搜索的文件 如果没有指定路径,FIND 将搜索在提示符处键入,的文本或者由另一命令产生的文本
基础示例:
#1.字符串包含
find "string" d: #查找包含关键字的某文件
find /N "##" C:UsersAdministratorDesktopshellstudyShell入门*.sh | More
WeiyiGeek.
#2.统计包含":80"字符串的行(有bug)
netstat -na | find /C ":80"
#3.不显示带有指定字符的行:
netstat -na | find /V ":*"
WeiyiGeek.
findstr 命令 描述:在命令执行结果中搜索指定字符串一般常与 | 联用,也可以查询文件中的字符串;
基础语法:
FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
[/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
strings [[drive:][path]filename[ ...]]
#基础示例
/B 在一行的开始配对模式 ^
/E 在一行的结尾配对模式 $
/L 按字使用搜索字符串 #使用该选项,正则表达式将会失效#
/R 将搜索字符串作为一般表达式使用
/S 在当前目录和所有子目录中搜索匹配文件
/I 指定搜索不分大小写
/X 打印完全匹配的行
/V 只打印不包含匹配的行
/N 在匹配的每行前打印行数
/M 如果文件含有匹配项,只打印其文件名
/O 在每个匹配行前打印字符偏移量
/P 忽略有不可打印字符的文件
/OFF[LINE] 不跳过带有脱机属性集的文件
/A:attr 指定有十六进位数字的颜色属性请见 "color /?" /A:0A
/F:file 从指定文件读文件列表 (/ 代表控制台)
/D:dir 查找以;分号为分隔符的目录列表
/G:file 从指定的文件获得搜索字符串 (/ 代表控制台)
/C:string 使用指定字符串作为文字搜索字符串
strings 要查找的文字
[drive:][path]filename 指定要查找的文件 表达式的快速参考:
. 通配符: 任何字符
* 重复: 以前字符或类出现零或零以上次数
^ 行位置: 行的开始
$ 行位置: 行的终点
[class] 字符类: 任何在字符集中的字符
[^class] 补字符类: 任何不在字符集中的字符
[x-y] 范围: 在指定范围内的任何字符
x Escape: 元字符 x 的文字用法
<xyz 字位置: 字的开始
xyz> 字位置: 字的结束 基础示例:
#1.搜索多个字符串,除非参数有 /C 前缀,请使用空格隔开搜索字符串:
'FINDSTR "hello there" TEXT.txt' #在文件 x.y 中寻找 "hello" 或"there" (注意不同)
'FINDSTR /C:"hello there" TEXT.txt' #在文件 x.y 寻找"hello there"
netstat -an | findstr /n "443 FIN" #满足443 与 FIN 字符串
#2.在aa.txt文件中寻找字符串hello
findstr "Hello" aa.txt
#3.也可以通过和管道符(|)其他命令来获取过滤信息.
netstat -an | findstr "ESTABLELISHE"
WeiyiGeek.
#4.采用正则匹配,进行只显示OS开头得项,/B 类似于正则
systeminfo | findstr /B /C:"OS"
systeminfo | findstr /C:"<OS>"
WeiyiGeek.
#5.#查找包含了指定字符的文本文件
findstr /m /i "hello" *.txt #/m只显示包含该字符串的文件名称
#6.#查找以hello(忽略大小写)开始的行
findstr /b /i "hello" a.txt
findstr /i "^hello" a.txt #这里的^可不是转义符,而是正则表达式中的“匹配行开始的位置”。
#7.#查找与指定字符完全匹配的行
findstr /n /i "^hello$" a.txt
findstr /n /i /x "hello" a.txt #提供了/x参数用来查找完全匹配的行
#8.#查找不包含指定字符的行 /v参数
findstr /vni "hello" a.txt
#9.#查找当前目录及子目录下文件内容中包含某字符串的文件名
findstr /ms "hello" *
#10.#用文本制定要查找的文件 And 用文本制定要在该文件的目录中查找的字符串并显示
findstr /f:file.txt /im "hello"
#file.txt,内容如下(这个文本中指定findstr要查找的文本的路径)
C:UsershelloworldDesktop1.txt
C:UsershelloworldDesktopa.txt
C:UsershelloworldDesktopclip.txt
C:UsershelloworldDesktopCrLf 批处理笔记.txt
C:UsershelloworldDesktopfile.txt
C:UsershelloworldDesktopMyRarHelp.txt
C:UsershelloworldDesktop est.txt
#11.#用文本制定要查找的字符串
findstr /ig:string.txt a.txt
# string.txt,内容如下(这个文本中指定findstr要查找的字符串):
# ^hello
# world
WeiyiGeek.
#12.指定要查找的目录多个目录以 ; 进行分割;
findstr /imd:520;编程; ".*" "*.txt"
FINDSTR /IMD:A;B;C "include" "*"
#13.统计字符数
findstr /o .* test.txt #/o:在每行前打印字符偏移量
#上一行中的.*为正则表达式的内容,表示任意行,包含空行
#14.以指定颜色显示文件名
/a:当被搜索文件名中含有通配符*或?时对搜索结果的文件名部分指定颜色属性,具体颜色值参见color帮助:
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 浅绿色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色
findstr /in /a:18 "wmi" *.txt
WeiyiGeek.
文件属性 attrib 命令 描述:文件与目录的设置所有属性-权限,显示或更改文件属性。
基础语法:
ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [+I | -I]
[drive:][path][filename] [/S [/D] [/L]]
#参数
+ 设置属性
- 清除属性
R 只读文件属性
A 存档文件属性
S 系统文件属性
H 隐藏文件属性
I 无内容索引文件属性
[drive:][path][filename] 指定 attrib 要处理的文件
/S 处理当前文件夹及其所有子文件夹中的匹配文件 (递归)
/D 也处理文件夹 (Directory)
/L 处理符号链接和符号链接目标的属性 (link) 基础案例:
#1.查看某文件(目录)的属性
attrib 文件名(目录名)
A C:WiFi_Log.txt
#2.存档,只读,系统,隐藏 属性;用+则是添加为某属性
attrib 文件名 -A -R -S -H 或 +A +R +S +H 去掉(添加)某文件的
attrib +R 1.txt #给1.txt文件添加只读属性
WeiyiGeek.
cacls命令 注意: 不推荐使用 Cacls,请使用 Icacls,显示或者修改文件的访问控制列表(ACL)
基础语法:
CACLS filename [/T] [/M] [/L] [/S[:SDDL]] [/E] [/C] [/G user:perm]
[/R user [...]] [/P user:perm [...]] [/D user [...]]
#参数
/T 更改当前目录和所有子目录指定文件的ACL
/L 对照目标处理符号链接本身
/M 更改装载到目录的卷的 ACL
/S:SDDL 使用在 SDDL 字符串中指定的 ACL 替换 AC, (/E、/G、/R、/P 或 /D 无效)。
/E 编辑ACL,而不是替换他
/C 在出现拒绝访问错误时继续
/G 用户名:perm 赋予指定用户访问权限;
/R 用户名:取消指定用户的访问权限(通常来恢复被拒绝用户的访问)-仅在与 /E 一起使用时合法
/P 用户名:perm 替换指定用户的访问权限
/D 用户名:设定拒绝某用户访问;/D pub 设定d:est.txt拒绝pub用户访问
Perm 可以是: N 无,R 读取, W 写入, C 更改(写入),F 完全控制; 缩写解释:
CI - 容器(Container)继承(此文件夹和子文件夹)- ACE 会由目录继承OI - 对象(Object)继承(此文件夹和文件) - ACE 会由文件继承IO - 只继承:ACE 不适用于当前文件/目录ID - 已继承:ACE 从父目录的 ACL 继承(Directory)基础示例:
icacls 文件名 #查看文件的访问用户权限列表
cacls 文件名 参数 #显示或修改文件访问控制列表(ACL)——针对NTFS格式时
WeiyiGeek.
#1.拒绝administrator用户访问特定的文件 (注意管理人员不能给自己设定,否则下面获取权限的命令没用)
cacls test.txt /D administrator
cacls 1.txt /e /d administrator #/e进行编辑ACL,在后面就可以恢复administrator的权限
WeiyiGeek.
#2.恢复pub访问特定的权限(必须要与/E连用,编辑ACL表,对于普通用户有效)
cacls est.txt /R pub /E
cacls c:cmd.exe /e /d guest #Guest禁用Cmd
cacls c:cmd.exe /e /r guest #解禁
#3.设置everyone访问d:GAME权限为无null
cacls d:game /p everyone:n
#4.设置administrators对于c:|windows*.*进行对文件目录递归编辑ACL列表,修改为管理员完全控制.
calcs c:windows*.* /T /E /G Administrator:F
WeiyiGeek.
icacls命令 描述:cacls类似,但可以更加细分的划去权限.
基础语法:
ICACLS name [/grant[:r] Sid:perm[...]]
[/deny Sid:perm [...]]
[/remove[:g|:d]] Sid[...]] [/T] [/C] [/L]
[/setintegritylevel Level:policy[...]]
#参数
/grant[:r] Sid:perm 授予指定的用户访问权限。如果使用 :r,这些权限将替换以前授予的所有显式权限,如果不使用 :r,这些权限将添加到以前授予的所有显式权限。
/deny Sid:perm 显式拒绝指定的用户访问权限,将为列出的权限添加显式拒绝 ACE,并删除所有显式授予的权限中的相同权限。
/remove[:[g|d]] Sid 删除 ACL 中所有出现的 SID
:g,将删除授予该 SID 的所有权限
:d,将删除拒绝该 SID 的所有权限
/setintegritylevel [(CI)(OI)] 级别将完整性 ACE 显式添加到所有匹配文件。
要指定的级别为以下级别之一: L[ow] M[edium] H[igh],完整性 ACE 的继承选项可以优先于级别,但只应用于目录。
/inheritance:e|d|r
e - 启用继承
d - 禁用继承并复制 ACE
r - 删除所有继承的 ACE
#注意: Sid 可以采用数字格式或友好的名称格式。如果给定数字格式,那么请在 SID 的开头添加一个 *。
/T 指示在以该名称指定的目录下的所有匹配文件/目录上执行此操作。
/C 指示此操作将在所有文件错误上继续进行,仍将显示错误消息。
/L 指示此操作在符号链接本身而不是其目标上执行。
/Q 指示 icacls 应该禁止显示成功消息(静默模式) 基础使用:
#将匹配名称的文件和文件夹的 DACL 存储到 aclfile 中以便将来与/restore 一起使用。
#请注意,未保存 SACL、所有者或完整性标签
ICACLS name /save aclfile [/T] [/C] [/L] [/Q]
#将存储的 DACL 应用于目录中的文件
ICACLS directory [/substitute SidOld SidNew [...]] /restore aclfile [/C] [/L] [/Q]
#更改所有匹配名称的所有者。该选项不会强制更改所有身份;使用 takeown.exe 实用程序可实现该目的
ICACLS name /setowner user [/T] [/C] [/L] [/Q]
#查找包含显式提及 SID 的 ACL 的所有匹配名称
ICACLS name /findsid Sid [/T] [/C] [/L] [/Q]
#查找其 ACL 不规范或长度与 ACE 计数不一致的所有文件
ICACLS name /verify [/T] [/C] [/L] [/Q]
#为所有匹配文件使用默认继承的 ACL 替换 ACL
ICACLS name /reset [/T] [/C] [/L] [/Q] 补充说明:
1.ICACLS 保留 ACE 项的规范顺序:显式拒绝—显式授予继承的拒绝—继承的授予2.perm 是权限掩码,可以两种格式之一指定:
简单权限序列:N - 无访问权限F - 完全访问权限M - 修改权限RX - 读取和执行权限R - 只读权限W - 只写权限D - 删除权限3.在括号中以逗号分隔的特定权限列表:
DE - 删除DC - 删除子项
S - 同步sync
X - 执行/遍历MA - 允许的最大值max
AS - 访问系统安全性
AD - 附加数据/添加子目录
GR - 一般性读取
GW - 一般性写入GE - 一般性执行GA - 全为一般性
RA - 读取属性
RC - 读取控制RD - 读取数据/列出目录REA - 读取扩展属性
WA - 写入属性
WD - 写入数据/添加文件WDAC - 写入 DACWO - 写入所有者WEA - 写入扩展属性4.继承权限可以优先于每种格式,但只应用于目录:(OI) - 对象继承(CI) - 容器继承(IO) - 仅继承(NP) - 不传播继承(I) - 从父容器继承的权限 = (ID)基础示例:
#1.- 将 c:windows 及其子目录下所有文件的 ACL 保存到 AclFile。
icacls c:windows* /save AclFile /T
#2.- 将还原 c:windows 及其子目录下存在的 AclFile 内所有文件的 ACL。
icacls c:windows /restore AclFile
#3.- 将授予用户对文件删除和写入 DAC 的管理员权限。
icacls file /grant Administrator:(D,WDAC) ##(02括号中以逗号分隔的特定权限列表:)
#4.- 将授予由 sid S-1-1-0 定义的用户对文件删除和写入 DAC 的权限。
icacls file /grant *S-1-1-0:(D,WDAC)
WeiyiGeek.
takeown 命令 描述:该工具以重新分配文件所有权的方式允许管理员重新获取先前被拒绝访问的文件访问权,
成为文件或者文件夹的所有者,File or Dircrotry文件所有权和访问权;
TAKEOWN [/S system [/U username [/P [password]]]] /F filename [/A] [/R [/D prompt]]
#参数列表:
/S system 指定要连接到的远程系统
/U [domain]user 指定用户上下文,命令在此上下文中执行
/P [password] 指定给定用户上下文的密码如果省略,提示输入
/F filename 指定文件名或目录名模式可以用通配符 "*"指定模式允许共享名文件名
/A 将所有权给于管理员组,而不是当前用户
/R 递归(recursion): 指示工具运行于指定的目录和子目录里的文件上
/D prompt 当前用户在一个目录里没有“列出文件夹”权限时,使用默认答案当在子目录里进行递归 (/R) 操作时会发生这种情况
可以是: N 无,R 读取, W 写入, C 更改(写入),F 完全控制
用有效值 "Y" 获取所有权或用 "N" 跳过 注意:
1) 如果指定了 /A,文件所有权会给与当前登录的用户
2) 不支持用 “?” 和 “*” 混合的模式
3) /D 用于抑制确认提示
基础示例:
#1.使用帮助
takeown /?
#2.指定文件名将其所有权赋给当前用户
takeown /f test.log
#3.当我把Acfile设置成系统文件,并拒绝administrator修改读取删除,在利用takeown设置/A管理员组进行控制,下面要解除限制删除Acfile文件的步骤.
D:www>icacls AclFile /grant administrator:F #由administrator完全控制
D:www>attrib -s AclFile #去掉系统文件属性
WeiyiGeek.
文件验证 verify 命令 描述:指示 cmd.exe 是否要验证文件是否已正确地写入磁盘。
适用系统:Windows 7, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Vista, Windows XP
基础语法:
#要显示当前 VERIFY 设置,键入不带参数的 VERIFY。
verify /? #指示 cmd.exe 是否要验证文件是否已正确地写入磁盘。
VERIFY [ON | OFF] # Switches the verify setting on or off 进程文件 openfiles 命令 描述:显示通过本地程序(进程)打开的一些关联文件,允许管理员列出或中断系统上已打开的文件和文件夹。需要启动系统全局标志“维护对象列表”才能查看本地打开的文件,类似于在linux下的工具lsof ;
基础示例:
openfiles /parameter [arguments]
openfiles /Local [ ON | OFF ]
描述:允许系统管理员启用或禁用系统全局标志“维护对象列表”。该列表记录本地文件处理。这个命令行开关所作的改动只有在系统重新启动后才生效。
openfiles /local on #开启会占用系统资源,"需要重启";
openfiles /local off #关闭系统全局标志“维护变量列表”;
#参数列表
/Disconnect #中断至少一个打开的文件的连接
/Query #显示所有从本地或从共享文件夹进程打开的文件
/Local #启用 / 禁用本地打开文件的显示 参数帮助:
OPENFILES /Disconnect /?
OPENFILES /Query /?
#二级参数
/S system 指定要连接到的远程系统。
/U [domain]user 指定应该在哪个用户上下文执行命令。
/P [password] 指定所给用户上下文的密码。
/FO format 指定显示结果的格式。有效值: "TABLE"、"LIST"、"CSV"。
/NH 指定“列标题”不应该显示。只对 "TABLE" 和 "CSV" 格式有效。
/V 指定显示详细输出。
/ID id 指定根据文件 ID 中断打开文件的连接。打开文件的连接。可以使用通配符 "*"。
/A accessedby 指定根据 "accessedby" 值中断打开文件的连接。可以使用通配符 "*"。
/O openmode 指定根据 "openmode" 值中断打开文件的连接。有效值是读取、写入或读取/写入。可以使用通配符 "*"。
/OP openfile 指定与所有打开的文件断开连接文件的连接。可以使用通配符 "*"。 基础示例:
#1.打开显示所有进程打开得文件
openfiles
openfiles |findstr svchost # 当然也能只看打开svchost.exe的程序
WeiyiGeek.
、
#2.进行查询并且按照CSV格式进行输出
openfiles /query /FO CSV /NH
#3.中断一个打开得链接
OPENFILES /Disconnect /ID 1
OPENFILES /Disconnect /A username
OPENFILES /Disconnect /O Read/Write
OPENFILES /Disconnect /OP "c:My Documentssomedoc.doc" /ID 234