zoukankan      html  css  js  c++  java
  • 影魔法 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所走的路径表示:
    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 onecho 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.通过注册表更改命令行颜色的默认值

    1. 键盘输入:win+R
    2. 输入regedit,点击运行进入注册表
    3. 定位到 HKEY_CURRENT_USERSoftwareMicrosoftCommand 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: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,也为了你自己的安全)

    *回到目录再看看*

  • 相关阅读:
    数组元素按指定的位置排序
    git修改历史提交的备注信息
    js常用遍历理解
    async await和promise的区别,和使用方法
    js检测邮箱格式,正则检测邮箱格式
    前端,es6中的promise异步方法,及用的场景
    JMter 压力测试工具简单使用及介绍
    Vue Config
    vue 文件上传
    Windows Redis集群搭建简单版
  • 原文地址:https://www.cnblogs.com/Asterism-2012/p/10049115.html
Copyright © 2011-2022 走看看