*跳转到文章结尾*
原文链接:https://www.cnblogs.com/Asterism-2012/p/10049115.html
Shell 与 Dos
真正的黑客会用自己的行为去贯彻它的精神。而不只是把黑客这两个字时时刻刻挂在嘴边。如果你遇到这样的人,请记住,他不配称为黑客。
目录
Dos部分
Shell部分
写在前面·DOS篇
Dos是我的钟爱,在我学习之前曾经听闻这是不值得学习的东西。我想,我想试试看。我会自己来判断,但是事到如今,我依旧不后悔。但入门DOS 之前 要想明白 为什么,怎么做。准备要花费多少时间。
用两句话讲一点点dos的历史,DOS曾经是独立的磁盘操作系统。后来被收购后,内嵌于微软的windows系统中。但是在windows98与win-me之后的版本中之后,已经移除了真正的dos,我们看到的cmd命令提示符是windows为我们虚拟的,它保留了dos的绝大部分功能。
我们现在也可以在网络上下载dos系统进行学习,不过,我个人觉得不是特别有必要。因为学习的目的是为了在了解历史的同时能够保证用于实践,而从远古的各个版本更迭至今,很多命令已经不复使用。
除非如果你实在有兴趣,或是有一些特殊的目的。
目前来说,我们完全可以使用windows系统进行学习dos的内容。
- 在学习DOS 接触的第一本完整的书籍是《DOS Programmer's Reference, 4thEdition》(《DOS程序员参考手册》第四版),里面有这样一句话:
如果你已做了很长时间的编程工作,就会明白:仅仅将程序代码敲入计算机并保证它无错误,也会消耗大量的时间。这样的经验同样适用于本书中的程序代码。尽管读者可以将书中所包含的程序全部敲入机器中,但完成此工作也得耗费几天的时光。而要改正敲入的错误,则又会花费更长的时间。如果读者时间富裕,那就没什么好说的;否则,可考虑购买本书所配的程序附盘
这段话的意思是,完全的自主学习可能是缺乏一些效率的。要掌握好的学习方法。
- 相关的学习链接:
《DOS程序员参考手册(第四版)》全书博客收录
《DOS命令学习(从入门到精通)》 博客
DOS的启蒙
一、Dos操作系统也就是磁盘操作系统 Disk operating system 简称Dos.
- 命令操作系统与视窗操作系统的概念
- 可以启动计算机:核心启动程序,通过这三个文件就可以直接启动计算机到dos状态。
- io.sys
- msdos.sys
- command.com
- 通过命令管理计算机:命令
- 内部命令,直接使用,(包含在command.com)
- 外部命令,不能直接使用,需要调用内存(不包含在command.com)
目前广泛使用的MS-Dos是微软公司买下Dos专利权后命名的,MS-Dos前身是Seattle computer products 公司于1980年推出的86-Dos.微软公司在1981年买下了86-Dos的专利,经修理,扩充后更名为MS-Dos.即1981年推出的MS-Dos V1.0版.
自从DOS在1981年问世以来,版本就不断更新,从最初的DOS1.0升级到了最新的DOS8.0(Windows ME系统 ),纯DOS 的最高版本为DOS6.22,这以后的新版本DOS都是由Windows系统所提供的,并不单独存在。下 面的讲解所使用的DOS为Windows98 4.10.2222A的DOS7.0系统。
1)常见的DOS有两种:
IBM公司的PC-DOS和微软公司的MS-DOS,它们的功能、命令用途格式都相同,我们常用的是MS-DOS。
MS-Dos与PC-Dos本质上并没有太大区别,而且命令是基本兼容.
2)Dos的启动
DOS的核心启动程序有Boot系统引导程序、IO.SYS、MSDOS.SYS和COMMAND.COM。它们是构成DOS系统最基 础的几个部分,有了它们系统就可以启动。如果你安装了WIN98,在电脑启动时按住Ctrl不放,出现启动选择菜单,选择5"Command Prompt Only"即 可进入DOS方式。
目前我们常用的操作系统有windows 9x/Me,NT,2000等,都是可视化的界面。在这些系统之前的人们使用 的操作系统是DOS系统。DOS系统目前已经没有什么人使用了,但是dos命令却依然存在于我们使用的 windows系统之中。大部分的DOS命令都已经在Windows里变成了可视化的界面,但是有一些高级的DOS命 令还是要在DOS环境下来执行。所以学习命令行对于我们熟练操作Windows系统是很有必要的。
不同的操作系统要用不同的命令进入命令行界面。在Win9x/Me的开始菜单中的运行程序中键入"command"命令,可进入命令行界面。
在Win2000/NT的开始菜单中的运行程序中键?quot;cmd"命令,可进入命令行界面.
Dos的启动包括冷启动与热动[Ctrl+Alt+Del]或[Reset键].[Ctrl+Alt+Del]热启动与冷启动的最大区别就是热启动下, 电脑不进行内存芯片检测.[Reset键]热启动与冷启动的最大区别就是热启动下不须重开电源,呵呵.
二、文件和文件目录
Dos系统规定:一个文件的文件名由主文件名和扩展文件名两部分组成.
1)文件名命名
主文件名由1-8个合法字符组成;扩展名由1-3个合法字符组成.扩展名可略.
2)组成文件名的字符
大小写英文字母 数字 汉字 一些特别符号: ! @ # $ % ^ & - _ 等等
3)Dos保留字符与Dos保留设备名均不能用于Dos文件名命名
保留字符名
*与? 文件通配符
与< 操作重定向
, 并列参数分隔符
. 扩展名前导符
: 磁盘定义符
空格 命令-参数-参数分隔符
= 赋值符
- copy命令连接符
目录路径分隔符
/ DOS命令开关前导符
| 和“” 也是
保留设备名(由于计算机本身使用,所以不能用)
com 控制台(键盘/显示器)
PRN 第一并行通信口/打印机
LPT1 第一并行通信口/打印机
LPT2 第一并行通信口/打印机
LPT3 第一并行通信口/打印机
NUL 空文件
三、文件通配符
Dos系统提供了两个文件通配符""和"?".均可用于主文件名和扩展文件名.
"" 表示在该文件名(主文件名和扩展文件名)中代表任意个字符;
"?" 表示在文件名中代表该字符位置的任意一个字符.
. 代表所有文件.
eg:
- a*.txt 主文件名为a打头,扩展名为txt的所有文件;
- ade?.* 主文件名为ade打头,不超过四个字符的所有文件;
- ?a. 主文件名第二字符为a的所有文件(包括任何扩展名和无扩展名的文件).
在Dos文件操作命令中,有些命令不允许使用文件通配符,如最常用的TYype命令,有些命令使用
通配符会引起乱码,如Rename 命令.所以使用过程中必须特别注意.
四、文件属性
system 系统属性 (S) 表示该文件为Dos系统文件;
read only 只读属性 (R) 表示该文件只能只读,而不能删除或修改;
hidden 隐藏属性 (H) 表示该文件在一般显示命令下不显示文件名;
arehive 归档属性 (A) 表示该文件从上一次修改后又修改过.
五、目录结构
1)DOS 的文件目录采用树形目录结构.简称树形结构.
它是在DOS2.0以上版本,为了改善文件管理,提高速度,而采用的一种目录体系.
最顶一层叫做根目录,它在格式化磁盘时由DOS建立的目录,用""表示.
在根目录中可以存放文件,也可以存放其它文件名,这个目录名叫做跟目录的子目录.每个目录里存放的文件个数和目录个数不限(只要你有足够的磁盘空间).
2)路径是在连接目录到所需子目录之间的一串目录名序列,各目录名之间用""连接.
例如:
要到子目录ade3所走的路径表示:
ade1ade2ade3
说明: 上面第一左斜杆""表示根目录,其后的""是间隔符.
3)树形目录结构的特点:
A、同一个字目录不能有同名文件,不同字目录中可以有通明文件;
B、一个磁盘只有一个根目录.根目录没有目录名,用""来表示.例如: C:>A表示C盘根目录.
C、子目录命名规则与文件名相同,但子目录名一般不用扩展名.子目录名不能与同级文件名重复.
D、每个子目录下都有两个特殊的文件目录项:第一个是".",内含子目录本身的目录信息;第二个是"..",内含上一级目录的信息.这两个目录项是在建立目录时自动建立的.不能删除.
六、路径PATH
1)路径是指从根目录或当前目录到所要访问对象(文件或目录)所在目录所经过的通道组合.
路径可以分为绝对路径与相对路径两种.
绝对路径 有从根目录到指定文件或目录所经过的一组子目录名表示,必须以根目录符号""开始.
例如 ade1ade2ade3
相对路径 由从当前目录到指定文件或目录所经过的一组子目录名表示.
例如 ade1ade2ade3
2)文件标识
由于DOS采用树形文件目录结构允许多个同名文件存在不同的子目录,使用时必须用文件标识确定对哪一个文件进行操作.
文件标识有 符盘 路径和文件名三部分组成 即[<盘符>:][<路径>]<文件名>
七、文件标示符
DOS文件标示符符可以看作是文件名的扩展,它是在文件名前边加上磁盘标识符和路径信息,进一步指明文件存储的具体位置。
格式:[<盘符>:][<路径>][<文件名>][.<文件扩展名>]
八、DOS命令状态提示符和盘符约定
DOS命令状态有一个状态提示标记,这个标记就是位于屏幕当前行左部的大于号。
例如: C>_
其中“>”号前面的字母指明“驱动器名”或“当前驱动器名”或“盘符”。
注:约定软盘驱动器名用字母A、B标识,硬盘用字母C~Z标识。如果机器上只有一个软盘驱动器,就用字母A标识。
九、内部命令与外部命令
1)内部命令是常驻内存的处理命令,它集中在根目录下的Command.com文件里,电脑每次启动时都会将这个文件读入内存,也就是说,在电脑运行时,这些内部命令都驻留在内存中,用dir命令是看不到这些内部命令的。
2)外部命令是以独立文件形式存储在磁盘上的程序。每一个外部命令对应一个可执行文件。所有扩展名为.com .exe .bat 的文件都可被视为外部命令。外部命令不常
驻内存,只有电脑需要时才被调入内存使用。
十、DOS命令格式
DOS命令格式:
<命令字>︼[<文件标识>]︼[<开关参数1>]︼[<开关参数2>]︼[<开关参数3>]...
说明“..."三点 表示可重复项;“<命令字> ”包括[驱动器:][PATH][Filename]
DOS命令格式中,用方括号[]括起来的内容,表示它是可以先择项,用户可以根据需要可以不使用它。用尖括号< >括起来的内容,表示它是必选项,用户根据需要填写相应的信息。
[驱动器:][路径]是指明“命令”所在的位置,对于内部命令可以省略,对外部命令需要根据不同情况确定是否指明。
DOS规定:一个命令行的字符数不能超过127个字符(以前允许长度不能超过254个字符)。命令字、文件标识和开关参数之间必须用空格分开(一个空格与多个空格的作用是相同的);开关参数用“/”作前导符,开关参数顺序不影响执行执行结果,参数对有些命令是必选项,而对另一些命令可有可无。用“ENTER”结束命令的输入。
讲到这里,简单的DOS命令知识已介绍完了,希望这些入门知识对你在后期学习DOS知识中有启蒙作用。这些可以不读。
windows的常用快捷键
- Windos版本:Windows10
- 核心数:4核
在使用windows的时候,快捷键能够提高我们的工作效率。
- 显示桌面 将所有窗口最小化到托盘 Win+D
- 锁定屏幕 Win+L
- Win+X 显示一个非常好用的窗口
- Win+E 显示资源管理器
- Ctrl+Shift+Esc 打开任务管理器
- 切换任务 Alt+Tab
- 搜素 Win+Q
- 打开运行窗口 Win+R
如何建立一个 .bat
文件
dos的命令可以输入到于windows系统中cmd
终端中。这些命令可以写到.bat
后缀的bat脚本中,运行脚本命令就会执行。后续我指的文本内容指的就是.bat
文件的内容。
内部命令:
切换分区,切换到E盘 分区卷标:"
C:>e:
E:>
注释rem 注释
rem 我是注释
设置变量:set
;
翻译过来就是“设置”的意思,相当于数学里的“令”。
set x=1
打印变量: echo %变量名%
假设我们设置了x的值为99:
C:> echo %x%
99
阻塞等待:pause
C:> pause
请按任意键继续. . .
显示(输出)信息:echo 输出内容
C:> echo here not a world.
here not a world.
关闭命令的回显@命令
格式:@ 放在命令前面;关闭该行的回显,回显就是执行命令之前将命令打印在终端中。
文件内容:
@echo here not a world.
运行效果:
here not a world.
开启或关闭后续所有回显 echo on
与 echo off
【echo off】
文件内容
echo off
echo 1234
pause
运行结果
C:WINDOWSsystem32>echo off
1234
请按任意键继续. . .
【echo on】
文件内容
echo on
echo 1234
pause
运行结果
C:WINDOWSsystem32>echo on
C:WINDOWSsystem32>echo 1234
1234
C:WINDOWSsystem32>pause
请按任意键继续. . .
以当前日期命名一个新建文件 【源代码】
文件内容
rem 关闭单行回显,关闭后续回显
@echo off
rem 从date(日期)中获取年月日,初始化三个变量
set Y=%date:~0,4%
set m=%date:~5,2%
set d=%date:~8,2%
rem 建立一个文件
echo.> 当日待办%Y%-%m%-%d%.txt
文件的增删改查 与 操作
文件分类:
可执行文件:.exe
,直接输入完整文件名即可直接运行
临时文件:.tmp
,这类文件一般都可以直接删掉
计算器 的绝对路径:
位置C:WindowsSystem32>calc.exe
在dos系统中,也有绝对路径与相对路径的概念,这里不多赘述,可以去查看Linux系统中的相对路径与绝对路径概念。*:返回上级目录 使用cd ..
查看文件dir :查看当前目录下的所有内容(目录与子目录)
dir /? 查看帮助,就可以查看所有参数,格式
dir 文件绝对路径 绝对路径查看
dir /p 分页(分屏)查看
dir /w 宽列表格式查看(简要信息查看):只查看文件的名称
dir /p /w - 联合选项:
dir /a 隐藏文件查看
dir /ad 查看指定格式(比如目录)
dir /a-d` 查看除了指定格式的之外的所有文件
dir *.exe` 查询指定后缀名文件,dir支持通配符,可以使用通配符来实现,找到当前目录所有可执行文件
dir /b 使用空格式,没有其他任何标题和摘要
删除文件
del 文件
复制文件copy:
copy /? (查看帮助)
copy /文件路径 /目标目录路径 (将文件复制到指定位置)
清屏命令
cls
查看操作系统版本
ver
查看日期与时间
date/time
目录的增删改查 和 使用
【创建目录】 md 目录名称
md newdirectory
【删除目录】 rd 目录名称
- 无参数删除
rd 文件夹(只能删除空文件夹)
- 递归删除
rd /s 目录
- 强制删除
rd /q
- 查看帮助
rd /? 查看有关rd命令的选项
【切换目录】:cd 目录路径
- 切换到指定 绝对路径的目录
`cd E:$RECYCLE.BIN`
- 切换到上层目录
cd ..
- 切换到根目录
cd
更换cmd终端的颜色 color 颜色编号
color命令更改终端的背景色与字体色。
在windows窗口状态下,可以在顶部空白区域点击鼠标右键,选择属性,还可以设置窗口透明度、字体大小等命令行无法达成的功能,永久生效。
- 将终端颜色恢复默认颜色
color
C:> color
- 应用前景色(这里是字体颜色),6代表黄色。系统不会允许color命令将前景色和背景色设置成一样的颜色。
文件内容:
@echo off
color 6
运行效果:
待添加
- 应用背景色,5代表紫色,f代表亮白色,浅色不会让人感觉心情沉闷。第一个参数是背景色,第二个参数是前景色。
文件内容:
@echo off
color 5f
运行效果:
待添加
帮助信息:
C:> color /?
设置默认的控制台前景和背景颜色。
COLOR [attr]
attr 指定控制台输出的颜色属性。
颜色属性由两个十六进制数字指定 -- 第一个
对应于背景,第二个对应于前景。每个数字
可以为以下任何值:
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 浅绿色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色
如果没有给定任何参数,此命令会将颜色还原到 CMD.EXE 启动时
的颜色。这个值来自当前控制台
窗口、/T 命令行开关或 DefaultColor 注册表
值。
如果尝试使用相同的
前景和背景颜色来执行
COLOR 命令,COLOR 命令会将 ERRORLEVEL 设置为 1。
示例: "COLOR fc" 在亮白色上产生淡红色
2.通过注册表更改命令行颜色的默认值
- 键盘输入:win+R
- 输入regedit,点击运行进入注册表
- 定位到
HKEY_CURRENT_USERSoftwareMicrosoftCommand Processor
- 编辑DWORD(系统位数)值
┌────────────────────────────────────────────────────────┐
│ Edit DWORD(32bit) _ □ x │
├────────────────────────────────────────────────────────┤
│ The numerical name(N): │
│ ┌────────────────────────────────────────────────────┐ │
│ │DefaultColor │ │
│ └────────────────────────────────────────────────────┘ │
│ numerical data(V): ┌─cardinal number────────┐ │
│ ┌────────────────────────┐ │ ● hexadecimal(H) │ │
│ │3e │ │ ● decimalism(D) │ │
│ └────────────────────────┘ │ │ │
│ └────────────────────────┘ │
│ ┌────────┐ ┌────────┐ │
│ │ OK │ │ cancel │ │
│ └────────┘ └────────┘ │
└────────────────────────────────────────────────────────┘
(画这个图很累)
在数值数据(numerical data)这个里面填上我们需要的颜色。点击确认,当我们再次cmd命令行 时候,可以看到看到颜色已经被应用了。
注册表这一部分参考地址:https://blog.csdn.net/sinat_22581761/article/details/73555495 博主:Fiona_yuyu
3.还有最后一种更改cmd样式的方法,是最简单,也是所提供功能最丰富的方法。
那就是右键点击窗口顶部的空白处,选择属性,然后不仅可以设置颜色,它的功能多的让你难以置信。这里不做讲解了,自己感悟把。百度上也查到。
换行追加文本到文档中 echo 文本内容 >> 文档
文件内容:
C:> echo 123 >> new_text.txt
C:> echo 456 >> new_text.txt
运行效果:new_text.txt内容
123
456
设置时间 time
文件内容
@echo off
time
运行效果
当前时间: 23:01:54.79
输入新时间:
帮助信息
C:UsersDELL>time /?
显示或设置系统时间。
TIME [/T | time]
显示当前时间设置和输入新时间的提示,请键入
不带参数的 TIME。要保留现有时间,请按 Enter。
如果命令扩展被启用,TIME 命令会支持 /T 命令行开关;该命令行开关告诉
命令只输出当前时间,但不提示输入新时间。
设置日期 date
文件内容
@echo off
date
运行效果:
当前日期: 2018/12/08 周六
输入新日期: (年月日)
帮助信息:
C:UsersDELL>date /?
显示或设置日期。
DATE [/T | date]
显示当前日期设置和输入新日期的提示,请键入
不带参数的 DATE。要保留现有日期,请按 Enter。
如果命令扩展被启用,DATE 命令会支持 /T 开关;
该开关指示命令只输出当前日期,但不提示输入新日期。
接受输入 set /p 变量=提示语
文件内容:
@echo off
echo --------------------------------------------
set /p OP1=请输入用户名:
echo %OP1%
pause
运行效果:
--------------------------------------------
请输入用户名:root
root
请按任意键继续. . .
把批处理文件设置为开机启动
将bat新建一个快捷方式,拖到 开始菜单>程序>启动目录。
dos的异常处理:
ECHO 处于关闭状态
:
请检查输出的内容以及变量名称是否正确。
Shell
shelll就是linux系统的命令,可以把这些命令写道.sh
后缀的shell脚本中,通过运行脚本来自动执行命令。
Linux-Ubuntu系统的安装与配置
在学习使用shell命令之前,需要保证已经安装好linux系统。考虑到新手读者,所以我会从配置linux开始介绍。
如何安装请点击跳转:Linux-Ubuntu系统的安装与配置
Shell命令
- Linux命令的格式
- 了解Linux命令的语法格式:
命令 (选项) 【参数】 如: ls -a / (查看所有根目录下的文件)
- 掌握命令格式中命令、选项、参数的具体含义
- 命令:告诉Linux(UNIX)操作系统(执行)做什么。
- 选项:说明命令运行的方式(可以改变命令的功能)。选项部分是以“-”字符开始的。
- 参数:说明命令影响(操作)的目标(如一个文件、一个目录或是一段正文文字)
hack(漂亮事) 与 hacker十二守则
- hacker:管理好自己网络的同时,探索其他网络的安全,并将漏洞告知其管理员。
- 学习 cracker的伎俩,知己知彼,百战不殆。
hacker 的十二守则
1.不恶意破坏任何的系统,这样做只会给你带来麻烦
2.不修改任何系统文件,如果你是为了要进入系统而修改它,请在达到目的后将它还原。
3.不将你已破解的账号分享给你的朋友
4.不要在BBS/论坛上谈论关于你hack的任何事情
5.在post文章的时候不要使用真名
6.在入侵期间,不要随意离开你的电脑
7.不要入侵或者攻击电信、政府机关的主机
8.不在电话中谈论关于你hack的任何事情
9.将你的笔记放在安全的地方
10.读遍所有有关系统安全或系统漏洞的文件(英文快点学好!)
11.以侵入电脑中的账号不得删除或修改
12.不得修改系统文件,如果为了隐藏自己的侵入而作的修改则不在此限,但仍需要维持原来的系统安全性,不得因得到系统的控制权而破坏原有的安全性。
(这些守则,让你远离成为一个cracker,也为了你自己的安全)