草庐IT

《网络安全入门到精通》 - 2.1 - Windows基础 - DOS命令&Windows防火墙&Windows共享文件

士别三日wyx 2023-04-13 原文

「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「订阅专栏」:此文章已录入专栏《网络安全入门到精通》

Windows基础

一、DOS命令

命令帮助格式:命令 /? ,比如 cd /?,可以显示命令的作用以及参数的作用。



1、目录文件操作

dir 列出目录文件

参数:

  • /a:h 显示隐藏文件
dir					列出当前目录下的文件和目录
dir d:Python 		列出指定目录下的文件和目录(绝对路径)
dir Python			列出指定目录下的文件和目录(相对路径)
dir /a:h d:\Python	显示隐藏文件

补充:

  1. 显示隐藏文件时,只会显示隐藏文件,而不会同时显示其他文件。
  2. 提示找不到文件时,说明目录中没有隐藏文件,并不是错误。

cd 切换目录

d:					切换盘符
cd /d d:			切换盘符
cd /d d:/			切换盘符
cd ../				返回上级目录
cd ../../			返回上上级目录(可继续叠加)
cd data				切换到指定目录(相对路径)
cd c:\Users\dell	切换到指定目录(绝对路径)

补充:

  1. 切换目录时,直接跟目录名;切换盘符时,需要加上 /d 参数。
  2. ../ 代表上一级目录,可叠加使用。
  3. Windows不区分大小写,可以先输入首字母,然后按Tab键补全。
  4. Windows的路径分隔符只能使用 \,而不能使用 /,否则会报错。

md 创建目录

md test				创建指定目录(简写)
mkdir test			创建指定目录(md 等价 mkdir)
md test\test1\test2	创建多级目录

补充:

  • mdmkdir 的简写,两个命令的作用相同。
  • 创建多级目录时,即使上级目录不存在,也可以创建。

rd 删除目录

参数:

  • /s 删除目录的子目录及文件
  • /q 不询问直接删除
rd test			删除空目录(非空目录会报错)
rd /s test		删除目录(同时删除目录中的子目录及文件,按Y确认)
rd /s /q test	删除目录(不询问直接删除)
rd test test1	同时删除多个目录(目录之间用空格间隔)

move 移动文件或目录

move test new_test		重命名文件或目录
move test Python		移动目录
move a.txt Python		移动文件

copy 复制文件

copy a.txt Python		复制文件到指定目录
copy test Python		复制目录下的所有文件到指定目录(不复制目录本身)
copy a.txt+b.txt c.txt	将两个文件的内容,合并到c.txt(自动创建文件c.txt)

补充:

  1. copy只复制文件或目录下的所有文件,不能复制目录本身。

xcopy 复制目录

复制文件及目录结构,默认不复制空目录

参数:

  • /s 复制子目录(不包括空目录)
  • /Y 取消覆盖确认
xcopy test Python			复制test目录下的文件到指定目录
xcopy /s test Python		复制test目录下的目录和文件到指定目录

del 删除文件

del a.txt			删除指定文件
del a.txt b.txt		同时删除多个文件

type 查看文件内容

type a.txt			查看指定文件

findstr 查找文件内容

参数:

  • /v 反选
  • /n 显示行号
findstr a a.txt			查找包含字符a的内容
findstr /n a a.txt		显示行号
findstr /v a a.txt		查找不包含字符a的内容 

重定向 >

将左侧的输出结果,输入到到右侧的文件中。

ipconfig > a.txt				将命令的查询结果输入到文件中
echo 'hello world' > a.txt		创建文件(内容为hello world)
echo hello world >> a.txt		追加内容到文件中

补充:

  1. 创建文件:当右侧的文件不存在时,会创建文件。
  2. >常用来写入内容,会覆盖文件原本的内容;>>常用来追加内容,不会覆盖原本的内容。
  3. >>也可以用来创建内容,前提是右侧的文件不存在。
  4. echo 输出的内容,不用引号包裹也可以。

管道符 |

将左侧命令的输出,作为右侧命令的输入,常用来过滤查询结果。

ipconfig | grep a

2、网络操作

ipconfig 查看网卡信息

ipconfig			# 查看网卡信息(IP地址、子网掩码、网关)
ipconfig /all		# 查看网卡详细信息(常用来查看mac地址)
ipconfig /flushdns	# 刷新DNS缓存
ipconfig /release	# 释放网卡
ipconfig /renew		# 重新获取

ping 测试网络联通性

参数:

  • -t 持续ping
  • -n ping的次数
  • -l 指定字节大小
ping www.baidu.com			# 检测本机到指定域名的连通性
ping 182.61.200.7			# 检测本机到指定IP的连通性
ping 182.61.200.7 -n 10		# ping 10次(默认4次)
ping 182.61.200.7 -t		# 一直ping(常用来检查网络是否有波动)

补充:

  • Ctrl + c 停止ping

netstat 查看网络连接

监控TCP/IP网络的工具,显示网络连接及网络接口设备的状态。

参数:

  • -a 显示活动和监听的端口
  • -n 数字形式显示地址和端口号
  • -o 显示PID(进程ID)
  • -p 过滤协议(TCP/UDP)
netstat -ano				# 查看网络状态
netstat -ano -p TCP			# 只看TCP协议的网络状态
netstat -ano | find "8080"	# 过滤端口(必须用双引号)

nslookup 解析域名

nslookup www.baidu.com



tracert 路由探测

探测本机到达指定地址需要经过的路由。

tracert www.baidu.com	# 探测本机到百度需要经过的路由。
tracert 182.61.200.6	# 可以加域名、也可以加IP地址。

补充:

  • 路由跟踪时,可能会比较慢,需耐心等待。
  • 请求超时不是错误,可能是路由器禁ping或者被隐藏了。

测试本地到百度,需要经过哪些路由。

通过查询这些路由IP的地址,可以发现:我的电脑想要访问百度,要从我的WiFi路由器出去,到小区的局域网,再经过几个北京市、区的服务器,才能到达百度。


3、进程操作

tasklist 显示进程

tasklist				# 显示所有进程
tasklist | find "cmd"	# 过滤指定进程

taskkill 结束进程

参数:

  • /f 强制结束
  • /pid 根据id结束进程
  • /IM 根据名称结束进程
  • /t 结束进程及其所有子进程
taskkill /pid 11304		# 根据进程ID(PID)结束进程
taskkill /IM cmd.exe	# 根据进程名称结束进程

4、用户操作

「图形化」用户操作(左下角开始,搜索计算机管理)

创建用户

格式:net user 用户名 密码 /add

net user tom 123456 /add	# 创建用户(指定明文密码)
net user tom /add			# 创建用户(不指定密码)
net user tom /add *			# 创建用户(输入密文密码)
net user tom$ /add			# 创建隐藏用户(用户名后面加上¥)

查看用户

net user			# 查看所有用户
whoami				# 查看当前登录的用户
whoami /user		# 查看当前登录用户的SID 
wmic useraccount get name,sid		# 查看所有用户的SID

补充:

  • SID是用户的唯一标识,管理员是500,普通用户从1000开始排序

隐藏用户,net user 看不到(但查看SID时,可以看到)。



删除用户

格式:net user 用户名 /del

net user tom /del		# 删除用户

修改用户

格式:net user 用户名 密码

net user tom 123456789		# 修改用户密码(明文密码)
net user tom *				# 修改用户密码(输入密文密码)

用户组操作

net localgroup					# 显示所有用户组
net localgroup users tom /add	# 添加用户tom到用户组users中
net localgroup users tom /del	# 删除用户tom从用户组users中
net localgroup group /add		# 添加用户组
net localgroup group /del		# 删除用户组

5、其他操作

命令作用
wmic bios get serialnumber查看电脑SN(序列号)
ver查看系统版本
winver弹出窗口中查看系统版本
systeminfo查看系统信息
time /t显示当前时间
date /t显示当前日期
cls清屏
echo输出内容
find在文件中搜索字符串
tree显示目录树结构

二、Windows 防火墙

Windows系统自带 defender 防火墙,属于包过滤防火墙,作用在第三四层,根据五元组进行规则判断。

1、开启防火墙

【控制面板】-【系统和安全】-【Windows Defender 防火墙】-【启用或关闭 Windows Defender 防火墙】- 勾选两个启用。


开启后,别人就ping不通我的电脑了。因为ping用的是ICMP协议,而我没有开放ICMP。



2、添加策略

示例:添加一条允许ping(访问ICMP)的策略。

1)【高级设置】-【入站规则】-【新建规则】- 进入规则配置界面。

2)规则类型 选择【自定义】,点【下一步】。

3)程序 选择【所有程序】,点【下一步】。

3)协议端口 选择【ICMPv4】,点下一步。

4)作用域 选择【任何IP地址】,点下一步。也可以指定某一个IP地址。

5)操作 选择【允许链接】,点【下一步】。

6)配置文件 保持默认就行,点【下一步】。


7)名称 随便写,点【完成】。

8)添加完成后,会在最上方显示。


9)现在再ping,就能ping通了。

如果想添加其他的策略,按照这个流程即可。

三、Windows文件共享

文件共享的两个电脑需要「网络互通」,默认对所有用户(Everyone)共享。

1、开启共享

右键属性-【共享】-【高级共享】- 勾选共享此文件夹

2、设置共享权限

【权限】- 勾选对应的权限

3、访问共享

Win + R 键打开运行窗口,或者任意文件夹上方的地址栏中,输入:

\\192.168.10.10		# 反斜杠 + 服务器IP地址


回车即可访问共享目录。


四、注册表

注册表是Windows系统用来保存配置的核心数据库。

打开注册表:win + R 输入 regedit

注册表分级存储结构:

  • KEY_LOCAL_MACHINE:记录系统信息,包括硬件和操作系统数据。
  • KEY_USERS:记录用户配置文件和默认配置文件的信息。
  • KEY_CURRENT_USER:KEY_USERS的子树,记录当前登录用户的配置文件。
  • KEY_CLASSES_ROOT:KEY_CURRENT_USER的子树,记录OLE技术和文件类关联数据的信息。
  • KEY_CURRENT_CONFIG:KEY_LOCAL_MACHINE的子树,记录加载的设备驱动程序、显示时要使用的分辨率。

1、注册表基本操作

注册表相当于系统的配置文件,修改注册表的参数,可以修改计算机,我们通过下面的案例来了解一下。

1、1 修改时间格式

1)修改注册表HKEY_CURRENT_USER\Control Panel\International\sTimeFormat的值

2)再次登录电脑时,电脑右下角的时间,就会显示我们设置的格式。



计算机的其他配置,也可以通过修改注册表修改,这个了解即可,此处不再举例。

有关《网络安全入门到精通》 - 2.1 - Windows基础 - DOS命令&Windows防火墙&Windows共享文件的更多相关文章

  1. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  2. ruby - 其他文件中的 Rake 任务 - 2

    我试图在一个项目中使用rake,如果我把所有东西都放到Rakefile中,它会很大并且很难读取/找到东西,所以我试着将每个命名空间放在lib/rake中它自己的文件中,我添加了这个到我的rake文件的顶部:Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map{|f|requiref}它加载文件没问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它看起来像这样:namespace:serverdotask:testdoputs"test"endend所以当我运行rakeserver:testid时

  3. ruby-on-rails - 在 Rails 中将文件大小字符串转换为等效千字节 - 2

    我的目标是转换表单输入,例如“100兆字节”或“1GB”,并将其转换为我可以存储在数据库中的文件大小(以千字节为单位)。目前,我有这个:defquota_convert@regex=/([0-9]+)(.*)s/@sizes=%w{kilobytemegabytegigabyte}m=self.quota.match(@regex)if@sizes.include?m[2]eval("self.quota=#{m[1]}.#{m[2]}")endend这有效,但前提是输入是倍数(“gigabytes”,而不是“gigabyte”)并且由于使用了eval看起来疯狂不安全。所以,功能正常,

  4. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  5. ruby-on-rails - rails : "missing partial" when calling 'render' in RSpec test - 2

    我正在尝试测试是否存在表单。我是Rails新手。我的new.html.erb_spec.rb文件的内容是:require'spec_helper'describe"messages/new.html.erb"doit"shouldrendertheform"dorender'/messages/new.html.erb'reponse.shouldhave_form_putting_to(@message)with_submit_buttonendendView本身,new.html.erb,有代码:当我运行rspec时,它失败了:1)messages/new.html.erbshou

  6. ruby-on-rails - 由于 "wkhtmltopdf",PDFKIT 显然无法正常工作 - 2

    我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-

  7. ruby-on-rails - Rails 3 中的多个路由文件 - 2

    Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题

  8. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  9. ruby - 将差异补丁应用于字符串/文件 - 2

    对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl

  10. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

随机推荐