本文最后更新于 2024-10-09,文章内容可能已经过时。

🔳DOS 命令行窗口

🎈概念

💡什么是命令行?

命令行就是在 Windows 操作系统中打开 DOS 窗口,以字符串的形式执行 Windows 管理程序。

💡什么是 DOS?

DOS(Disk Operation System 磁盘操作系统),DOS 系统目前已经没有什么人使用了,但是 dos 命令却依然存在于我们使用的 windows 系统之中。大部分的 DOS 命令都已经在 Windows 里变成了可视化的界面,但是有一些高级的 DOS 命令还是要在 DOS 环境下来执行。所以学习命令行对于我们熟练操作 Windows 系统是很有必要的。

🎈打开方式

  • win+r   输入 cmd

  • 在我的电脑的文件路径输入 cmd

  • 在 Windows 搜索框中搜索 cmd

🎈命令类型

  • 内部命令:就是内部存在

  • 外部命令:就是程序外加用法

👨‍💻Windows 运维常用命令

注意点:

  • 不区分大小写

  • 上下键查看历史命令

  • /? 或 /help 查看帮助手册

  • 格式:[命令] [参数列表]

🎈常用内部命令

💡系统相关

ver  查看系统版本
hostname  查看主机名
whoami    查看当前登录的用户

💡网络相关

ipconfig                  查看网络配置
ipconfig /all             显示详细信息
ipconfig /release         释放指定适配器的 IPv4 地址
ipconfig /renew           更新所有适配器
ipconfig /flushdns        清除 DNS 解析程序缓存
netstat -ano   查看开放端口
ping --- 测试通信

TTL值 --- 存活时间 --- 判断操作系统类型

TTL    操作系统
255    Unix 
128    Windows NT / 2000
64     Windows 7 / Linux
32     Windows 95/98

修改TTL值: 
打开 regedit 注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters 
找到键值 “DefaultTTL” 名称 ---》 创建 Dword 32位 --》 十进制 255 ---》 重启

ping 192.168.137.132 -t -l 65500  死亡ping
tracert  能够遍历到数据包路径上的所有路由器
nslookup 解析域名

💡文件相关

切换目录:

cd 切换目录
cd 目录路径  //切换路径

相对路径:从当前目录出发
cd desktop
绝对路径:从根目录(盘符)出发
cd C:\Users\int_and_d\Desktop
cd /d E:\demo

cd ..  切换上一级
cd .   切换到当前目录
cd ..\..\  切换上一级的上一级
dir  查看当前目录下的内容

创建、删除目录:

md 目录名  //创建目录
mkdir 目录名  //创建目录
md 1\2\3  //创建多级目录
mkdir 1\2\3  //创建多级目录

rd 目录名 //删除目录
rd /s /q 目录名  //删除目录树,并不会询问
rmdir 目录名 //删除空目录

创建、删除文件:

>  重定向符
>> 追加重定向符
*  通配符

echo 123 > demo.txt  //创建带有内容的文件
type nul > demo1  //创建空文件

type 文件名 //查看文件的内容

echo 内容 >> demo.txt  //追加内容

del 文件名  //删除文件
del 目录名  //删除当前目录下的所有文件
/q 安静模式,不会询问

移动、复制和重命名:

move 文件名 路径  //移动
move 旧文件名 新文件名  //移动并重命名

ren 旧文件名 新文件名  //重命名
rename 旧文件名 新文件名  //重命名

copy 旧文件名 新文件名  //复制文件
copy 文件1 + 文件2 文件3   //将文件1和2的内容合并为3
copy 目录名 文件名  //将目录下的所有文件进行合并

💡进程相关

查看进程:

tasklist   //查看进程
tasklist | find "4412"  //筛选内容
tasklist | findstr "4412"  //筛选内容

taskkill /PID 数字 /F /T
taskkill /IM 进程名 /F /T

explorer.exe  //桌面进程
winlogon.exe  //登录界面的进程

💡用户相关

net user 用户名  //查看系统存在哪些用户
net user 用户名 密码 /add  //创建用户
net user 用户名 /del   //删除用户
net user 用户名 /active:yes  //启用用户
net user 用户名 /active:no  //禁用用户
net user 用户名 密码   //修改密码

net localgroup   //组信息
net localgroup 组名   //查看对应组信息
net localgroup 组名 /add    //创建组
net localgroup 组名 /del    //删除组
net localgroup 组名 用户名 /add    //将用户加入到组
net localgroup 组名 用户名 /del    //将用户从组中删除

net stop 服务  //关闭服务
net start 服务  //启动服务
net start   //查看开启了哪些服务

🧰Windows 常用服务命令

lusrmgr.msc  --- 本地用户和组
compmgmt.msc  --- 计算机管理
eventvwr.msc --- 事件查看器  --- 日志
services.msc --- 服务

start值 --- 关联服务的状态
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services ---- 服务
找到需要修改的服务 --- 改 start键值


Start的值设置为0,则驱动由启动引导器加载,“随着开机,最先启动”
Start的值设置为1,则驱动由操作系统的I/0子系统加载,即在系统内核初始化时加载;
Start的值设置为2,则驱动/服务在启动后自动加载;
Start的值设置为3,则驱动/服务就是按需手动加载;
Start的值设置为4,驱动/服务就是被禁用的状态。
gpedit.msc --- 本地组策略编辑器
secpol.msc --- 本地安全组策略
regedit --- 注册表 --- Windows核心数据库 --- 五个键值 --- 文件夹图标 项 --- 键值

HKEY_CLASSES_ROOT:启动应用程序所需的全部信息
☆HKEY_CURRENT_USER:当前登录用户的配置信息,仅对当前用户生效
☆HKEY_LOCAL_MACHINE:本地计算机的系统信息,仅对当前主机生效
HKEY_USERS:计算机的所有用户使用的配置数据,这些数据只有在用户登录系统时才能访问
HKEY_CURRENT_CONFIG:当前配置的文件信息

📄批处理文件

全称 batch 脚本,也称批处理文件,是 Windows 默认支持的脚本语言,也有另外称呼 dos 编程

后缀是.bat --- 保存 ANSI 编码

@echo off
内容
pause

- echo off  关闭终端显示
- @ 关闭当前行的显示
- pause  暂停

定时备份脚本 -

Windows 日志文件 --- 什么是日志文件?路径? --- C:\Windows\System32\winevt\Logs 路径 --- 文件 .evtx 后缀

@echo off  
 
:: 时间参数定义
set "Y=%date:~,4%"
set "m=%date:~5,2%"
set "d=%date:~8,2%"
set "h=%time:~,2%"
set "mi=%time:~3,2%"
set "s=%time:~6,2%"
- set   //设定变量 
- %date% 日期   %time% 时间
- 字符串截取

a=bbs.verybat.cn
%a:~1,2%   =“bs” 偏移量 1,从第二位开始向右取 2 位
%a:~-3%    =“.cn” 偏移量负 3,即倒数 3 位(也可理解为留下右边 3 位),右取全部
%a:~3%     =“.verybat.cn” 偏移量 3(也可理解为去掉左边 3 位),右取全部
%a:~0,-3%  =“bbs.verybat” 偏移量 0,右取长度至负 3,即倒数 3 位
%a:~2,-3%  =“s.verybat” 偏移量 2,右取长度至负 3,即倒数 3 位

:: 判断备份文件夹是否存在,如果不存在则创建 
if not exist "C:\windows_log_bak\bak_%Y%-%m%-%d%_%h%时\" (mkdir "C:\windows_log_bak\bak_%Y%-%m%-%d%_%h%时\")
- if判断语句
- if /?

:: 使用xcopy命令复制文件夹(文件)执行备份操作
xcopy /E /I /Y /H "C:\Windows\System32\winevt\Logs"  "C:\windows_log_bak\bak_%Y%-%m%-%d%_%h%时\"  
- copy 旧目录名 新目录名
- xcopy
/E 复制目录和子目录,包括空目录和空子目录。
/I 如果目标不存在,且正在复制多个文件,
               则假定目标必须为目录。
/Y 取消提示以确认要覆盖
               现有目标文件。
/H 同时复制隐藏文件和系统文件。
- "C:\Windows\System32\winevt\Logs" --- 需要备份的目录名

:: 打印备份完成消息  
echo 备份完成!!!!
echo.
echo 正在执行删除180天前文件...
:: 开始执行删除180天前的文件
forfiles /p "C:\windows_log_bak" /s /m *.* /d -180 /c "cmd /c if @isdir==FALSE (echo Deleting @path & del @path)"
echo.

- forfiles
/P 表示开始搜索的路径。默认文件夹是当前工作的目录 (.)。
/M 根据搜索掩码搜索文件。默认搜索掩码是 '*'。
/S 指导 forfiles 递归到子目录。像 "DIR /S"。
/D 选择文件,其上一次修改日期大于或等于(+),或者小于或等于 (-) 用 "yyyy-MM-dd" 格式指定的
/C 表示为每个文件执行的命令。命令字符串应该用双引号括起来。
删除空目录
echo 正在检查是否存在空文件夹...
:: 设置需要检查的目录
set TARGET_DIR=C:\windows_log_bak

:: 遍历目录下以 bak_ 开头的文件夹
for /d %%i in ("%TARGET_DIR%\bak_*") do (
    dir "%%i" | findstr ".evtx" > nul
    if errorlevel 1 (
        echo 正在删除 %%i 文件夹..
        rd "%%i"
    ) else (
        echo %%i 该文件夹不为空,skipping...
    )
)

- for循环
- errorlevel --- 返回上个命令执行的结果,为正确 0 ,为错误 非 0。

endlocal
- 结束该命令前所赋予的变量值
2)清理临时文件脚本
- Windows的临时文件 --- 什么是临时文件 --- 临时文件的后缀是什么
- QQ/微信/Google 等等 临时文件 --- 它们对应的临时文件是什么

del /f /s /q 文件
  /F            强制删除只读文件。
  /S            删除所有子目录中的指定的文件。
  /Q            安静模式。删除全局通配符时,不要求确认
  
title  //修改窗口的标题
echo.  //空行
rem 和 ::   //注释符
%userprofile%  // %名称% --- 变量
- 预定义变量 --- 默认存在的
- 设置变量 --- 自己动手配置的
3)定时启动/停止服务脚本

net start 服务
net stop 服务


@echo off
net start server

@echo off
net stop server

定时操作:

1. 先准备脚本

2. 任务计划程序(taskschd.msc)

创建基本任务 --- 名称 --- 希望该任务启动的时间 --- 启动程序 ---- 选择脚本 --- 完成之后 双击点开任务程序 勾选 最高权限运行

远程连接:

Windows 远程连接方式 --- RDP 服务 --- 3389

netstat -ano // 查看端口号

打开 3389 端口 --- 开始 搜索 remote --- 允许远程访问您的计算机 --- 允许任意.....

连接虚拟机 --- 物理机 mstsc 远程连接窗口 --- 要想连接成功 对应的用户必须是需要密码