影魔法 Shell 与 Dos(持续更新)

影魔法Shell与Dos

*跳转到文章结尾* 原文链接: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状态。
    1. io.sys
    2. msdos.sys
    3. command.com
  • 通过命令管理计算机:命令
    1. 内部命令,直接使用,(包含在command.com)
    2. 外部命令,不能直接使用,需要调用内存(不包含在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:

  1. a*.txt 主文件名为a打头,扩展名为txt的所有文件;
  2. ade?.* 主文件名为ade打头,不超过四个字符的所有文件;
  3. ?a. 主文件名第二字符为a的所有文件(包括任何扩展名和无扩展名的文件).
    在Dos文件操作命令中,有些命令不允许使用文件通配符,如最常用的TYype命令,有些命令使用
    通配符会引起乱码,如Rename 命令.所以使用过程中必须特别注意.

四、文件属性
system 系统属性 (S) 表示该文件为Dos系统文件;
read only 只读属性 (R) 表示该文件只能只读,而不能删除或修改;
hidden 隐藏属性 (H) 表示该文件在一般显示命令下不显示文件名;
arehive 归档属性 (A) 表示该文件从上一次修改后又修改过.

五、目录结构
1)DOS 的文件目录采用树形目录结构.简称树形结构.
它是在DOS2.0以上版本,为了改善文件管理,提高速度,而采用的一种目录体系.
最顶一层叫做根目录,它在格式化磁盘时由DOS建立的目录,用""表示.
在根目录中可以存放文件,也可以存放其它文件名,这个目录名叫做跟目录的子目录.每个目录里存放的文件个数和目录个数不限(只要你有足够的磁盘空间).
2)路径是在连接目录到所需子目录之间的一串目录名序列,各目录名之间用""连接.
例如:
要到子目录ade3所走的路径表示:
\ade1\ade2\ade3
说明: 上面第一左斜杆""表示根目录,其后的""是间隔符.
3)树形目录结构的特点:
A、同一个字目录不能有同名文件,不同字目录中可以有通明文件;
B、一个磁盘只有一个根目录.根目录没有目录名,用""来表示.例如: C:>A表示C盘根目录.
C、子目录命名规则与文件名相同,但子目录名一般不用扩展名.子目录名不能与同级文件名重复.
D、每个子目录下都有两个特殊的文件目录项:第一个是".",内含子目录本身的目录信息;第二个是"..",内含上一级目录的信息.这两个目录项是在建立目录时自动建立的.不能删除.

六、路径PATH
1)路径是指从根目录或当前目录到所要访问对象(文件或目录)所在目录所经过的通道组合.
路径可以分为绝对路径与相对路径两种.
绝对路径 有从根目录到指定文件或目录所经过的一组子目录名表示,必须以根目录符号""开始.
例如 \ade1\ade2\ade3
相对路径 由从当前目录到指定文件或目录所经过的一组子目录名表示.
例如 ade1\ade2\ade3

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 onecho off

【echo off】

文件内容

echo off
echo 1234
pause

运行结果

C:\WINDOWS\system32>echo off
1234
请按任意键继续. . .

【echo on】

文件内容

echo on
echo 1234
pause

运行结果

C:\WINDOWS\system32>echo on
C:\WINDOWS\system32>echo 1234
1234  
C:\WINDOWS\system32>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:\Windows\System32>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.通过注册表更改命令行颜色的默认值

  1. 键盘输入:win+R
  2. 输入regedit,点击运行进入注册表
  3. 定位到 HKEY_CURRENT_USER\Software\Microsoft\Command Processor
  4. 编辑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:\Users\DELL>time /?
显示或设置系统时间。

TIME [/T | time]

显示当前时间设置和输入新时间的提示,请键入
不带参数的 TIME。要保留现有时间,请按 Enter。

如果命令扩展被启用,TIME 命令会支持 /T 命令行开关;该命令行开关告诉
命令只输出当前时间,但不提示输入新时间。

设置日期 date

文件内容

@echo off
date

运行效果:

当前日期: 2018/12/08 周六
输入新日期: (年月日)

帮助信息:

C:\Users\DELL>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,也为了你自己的安全)

*回到目录再看看*

posted on 2018-12-01 13:15  墨书韶光(魏泯i)  阅读(431)  评论(0编辑  收藏  举报

导航

by: 魏泯