Java学习笔记:2021年12月31日下午-2022年1月1日上午

news/2024/12/14 12:28:51/

Java学习笔记:2021年12月31日下午-2022年1月1日上午

摘要:主要记录了计算机的电气构成,学习Linux系统的原因以及关于Linux以及相关操作的基础知识。

文章目录

      • Java学习笔记:2021年12月31日下午-2022年1月1日上午
        • 计算机的电气构成
        • Linux系统
          • 1.何为Linux系统
          • 2.Linux系统的应用场景以及服务器
          • 3.为何选择Linux系统
          • 4.Linux系统的shell基本操作
            • 1.查看指令:ls
            • 2.进入文件夹指令:cd
            • 3.创建目录指令:mkdir
            • 4.自动安装工具yum
            • 5.打开Vim编辑器:vi/vim指令
            • 6.cat指令与more指令
            • 7.删除指令:rm
            • 8.路径查看指令:pwd
            • 9.上传指令:rz
            • 10.下载指令:sz
            • 11.解压指令:unzip
            • 12.细节展示指令:ll
            • 13.修改文件活文件夹权限指令:chomd
            • 14.脚本启动指令:sh
            • 15.脚本文件及其执行
            • 16.字符注入文件指令:echo
            • 17.文件/目录移动指令:mv
            • 18.其他操作

计算机的电气构成

​ 我们使用的计算机,都是冯诺依曼体系的计算机,均由运算器,存储器,控制器,输入设备和输出设备组成。其中运算器和控制器均集成在中央处理器中,存储器就是我们所说的内存,而显示屏,硬盘,键盘灯都属于IO设备。很多人不相信硬盘是IO设备,但实际上硬盘的电气机制和运行速度决定了其外设的地位,在计算机发展早期,人们用打孔纸带作为输入设备,后来发展成为了磁带,再后来人们用磁盘来进行更快速的输入输出,因此硬盘一直是作为一种IO设备存在的,而不属于存储器,尽管硬盘确实有所谓的存储功能。

​ 当然作为软件开发者,没有必要对计算机组成原理以及计算机的发展历史有着特别深厚的见解,因此我们仅需了解如今的计算机构成即可。如今时代变迁,计算机也有了长足的发展,虽然总体上还是和之前的计算机结构大同小异,但是我们有了一种新的外挂加持设备,那就是适配器,适配器作为连接计算机硬件系统和IO设备的桥梁,为我们如今愉快的使用电脑提供了很大的方便,如显卡,声卡,网卡,他们在快速的计算机和慢速的外接设备之间起到了缓冲加速的作用,如显卡,显卡中的GPU可以提供大量的矩阵运算算力,进而弥补CPU核心数量少,运算空间坐标变化是乏力的缺点,网卡则是实现了网络信号向计算机硬件系统内的快速转化,声卡提供了声音文件的高清解析。在我们组装电脑时,都要往一块板子上插这个插那个,这块板子就是电脑最关键的部分,即主板,主板上边集成了总线,以及大大小小的电流电压控制设备,只要硬件们往上一插,就可以直接连接到一个闭合的总线中,形成一个回路,通过总线,硬件之间的信息交互便成为可能,在主板上,最为重要的就是CPU,CPU通过总线连接着内存,显卡等硬件,其他硬件为CPU提供加速服务。

​ 基于人类的科技树,只要是电器,或者电器相连,其必须形成一个闭合电路。一根导线在同一时刻只能传输一个比特信号,其物理形式是高低电平,比特流实际上就是电压在导线上的快速切换,而不是真的有一串高低不平的电信号流了进来。当然在计算机中肯定存在多字节信号,但是这些信号是通过排线传送的,而非在一根导线上可以同时传输,所谓带宽就指的是这种多字节信号的宽度,还有CPU的位数,如今的CPU多是64位,意思就是说它可以同时传输一个64位的二进制信号,在物理上表现为从CPU出发的信号导线至少有64根。

​ 作为一个初级垃圾佬,我对计算机的硬件组成还是有些研究的,在主板上,要插入CPU,内存,显卡,网卡,硬盘(当然散热也要加)之后,插好电源线,连接好跳线,一个机箱就整好了,然后我们将显示屏的连接线接到显卡上边外露的接口上,把电源线接到电脑电源的接口上,给机箱后边的usb接口插上鼠标键盘,基本上就能开机了,计算机开机的过程是通过按钮制造一个电位差,发送到主板上,主板受到激活后就会启动(这里的更深层原理我还没有了解过),然后控制权首先在bios上,进行开机自检之类的计算机自我行为后,从硬盘上的主引导扇区开始读取信息,一般操作系统的地址都会存储在此,操作系统开始读入内存,计算机的指挥权限开始交给CPU,CPU从内存中连续不断吞吐来自硬盘的信息,不够的话会向内存发出请求,内存进而再从硬盘中读入更多的信息,从CPU中吞进来的操作系统信息在被处理后,会变为多个向其他设备发出的信息,如显卡,CPU会向显卡发出显示数据,这些数据会存储在显存中,显卡中的GPU通过其自身驱动的支持,快速的将这些信息编码为像素点阵信息,然后通过数据线发送给屏幕,屏幕显示出系统表现的界面,操作系统中的声音信息将被CPU发送给声卡,声卡将数字信号转码,并发送给喇叭,喇叭会将处理好的信号转化成连续的电磁信号,而操作系统中的网络请求信号将被网卡转送到路由器,路由器开始向计算机进行网络信息转发,至此,整个电脑进行了一次愉快的开机。

​ 我们如今之所以能这么愉快的使用电脑,都是因为各种软件在给我们当垫子,在计算机发展的早期,对于计算机的操作是非常困难的,这里简述一下计算机各种基础软件的出现。在最早的最早,计算机刚刚出现的时候,人们是直接和CPU打交道的,人们直接将机器语言也就是01代码写进到纸带中,磁带中,硬盘中,然后再通过一个输入接口导入到电路中,整个计算机就可以开始计算处理了。然而久而久之人们发现了,在由01构成的机器语言中,存在很多重复的部分,因为一个项目中有可能很多地方都会用到同一个处理问题的方式,这种情况下,同样的一串01代码就有可能手写很多次,非常累,人们为了偷懒,就用一个简短的字母序列代表这串01代码,用到这个功能的时候就直接先把这个字母串拿过来,到最后输入给计算机时,再翻译为01代码,很快人们发现这种方法对程序设计者非常友好,程序设计者可以很轻松地用简短的代价写出之前庞大的01代码,因此人们开始着力发展这种封装思想的技术,并最终出现了汇编语言,同时人们发现,在使用者利用计算机处理问题时,必须手动的写程序控制计算机的整体运行,这非常的不方便,比如资源的分配,进程的调度都需要大家商量好然后写好之后再运行吗,这也非常的不方便,如果能把这个过程提前写好然后就让计算机自己来进行内部管理,这该有多好哇!因此,专注于计算机内部资源管理的操作系统出现了,操作系统的最关键的部分就是其内核,操作系统的内核大部分都是几十年如一日没什么变化的,如果一个软件仅仅调用系统内核中的库,那它的兼容性可能非常的高,很有可能2025年的该软件仍然兼容于1998年的win98。操作系统的内核功能其实就是控制计算机中的各种资源,硬件资源也好,进程信息也好,统统由系统内核来管,比如显卡的信息发送,硬盘的数据请求等,计算机正在愉悦的发展着,然而好景不长,时代变了。在早期是没有GPU一说的,网卡什么的也都不存在,计算机中的大部分功能都要由CPU来代劳,如屏幕中的文字显示。CPU完全胜任简单的文字显示,因为这并不需要什么算力,然而随着时代的发展,游戏出现了,游戏必然伴随着画面,这样一来CPU的显示处理能力就显得捉襟见肘,因为CPU具有快速的单信息处理能力,却不具有同时显现的能力,随着硬件技术的发展,开始有公司制作一种具有非常多的内核但是单核性能不强的处理器,为CPU进行显示加持,这就是GPU,GPU的多核使得其可以同时读取多个像素点阵信息并进行显示,当然,它们也是由CPU控制的,这时还没有驱动这一概念,随着时代的进步,时代又变了,游戏越来越花里胡哨,CPU虽然有了GPU的加持,仍然力不从心,因此人们专门开发了驱动程序,在硬件中运行并为CPU提供一个接口,CPU仅需处理一些简单的信息,然后将这些信息提交给驱动接口之后,就不用管了,这些信息的转码,编译等工作全部由驱动程序结合GPU来实现,这样一来就大大加速了图形的发展。

​ 适配器以及适配器驱动的意义在于中和外设和计算机内部的速度差,因为大部分外设的速度都很慢,因此需要一个适配器来结合驱动程序做一个缓冲,将一些快速输入的信息进行处理后,再低俗的提交给外设。如打印机,打印机的速度远远慢于计算机的文字处理速度,因此其需要一个驱动程序完成一系列的工作保证其打印不会出错,通常情况下,打印机里边会有一个内存,需要打印的信息会先存在这个内存中,以队列的形式存储下来,然后逐一让打印机去打印,这样CPU就不会在打印时一直关注打印机,从而耽误其他的工作了,它仅需将信息发送给这个内存,然后就可以去干其他工作,这大大提升了CPU的效率,而驱动程序的作用就是接受CPU的信息,转存给打印机内存,驱动在这个过程中起到了灵魂作用,而打印机的硬件则是灵魂的肉体。

​ 总而言之,对于计算机来说,驱动程序其实是在硬件中运行的,它为硬件和CPU提供一个快捷的接口,并加持硬件运算速度。对于操作系统来说,驱动并不属于计算机系统中的软件,操作系统的内核直接和他们打交道,在系统中,直接和硬件打交道的是系统的内核,操作系统的三大内核为苹果内核,linux内核,Windows内核,操作系统会有很多其他的乱七八糟的功能,这些功能均不属于内核,他们都是在内核基础上加装的其他外挂功能。

​ 现在我们可以理解计算机的软硬件构成了:硬件- 驱动 - 操作系统 - 其他软件(用户),当然没有驱动也不是不可以,但是没有驱动的话,整个电脑用起来会变大非常卡顿,非常麻烦。

Linux系统

1.何为Linux系统

​ 很多计算机专业的学生们的培养方案中都有Linux系统这一学科,比如我在上学的时候就有一个看上去不很专业的老师教授我们Linux系统,现在回想起来真是受罪,不过这也不怪他,因为Linux系统是一款非常小众的系统,我们在日常生活中很少看见有谁使用Linux系统的笔记本,顶多有人会买个苹果笔记本然后把MacOS系统刷成Windows。Linux是三大主流系统之一,具有自己独立的内核,在全世界范围内实际上有着不少的用户,只不过我们被Windows先入为主,使用Windows系统的比较多。

​ Linux操作系统是一款宏内核系统,与之相对的还有微内核系统,这两种系统内核各有优劣,由于我并不是特别的了解,在此不加叙述,日后在进行深入研究后我会单独写学习反馈。现在我们作为初学者以及更加关注操作的人,只需了解我们Linux基本上是个什么样的系统以及为何选择Linux系统即可。

​ Linux系统是一款独立内核的宏内核系统,其在全世界范围内受到了广泛的喜爱,同时它是一款开源的操作系统,内核代码对公众开放,有一个专门的社区参与其生态的管理,由于其开源的性质,导致了很多人都可以基于Linux内核来开发自己的操作系统,比较出名的有红帽操作系统,乌班图操作系统以及CentOS。需要注意的是MacOS系统因为长得像Linux系统,特别是Shell语句惊人的一致,经常被人们误认为是Linux系统内核,实际上不是,MacOS拥有自己的内核,和Linux不是一回事。

2.Linux系统的应用场景以及服务器

​ 我们经常在什么情况下使用Linux操作系统呢?答案是Linux操作系统最常被使用的环境是服务器环境,我们在配置服务器时,使用到的服务器系统,通常是Linux操作系统。这么说来,什么是服务器?我们很多人都听说过服务器,比如艾欧尼亚,德玛西亚,都是LOL中服务器的名字,哪天服务器正在进行维护,我们就会说:“艾欧尼亚不能玩了。”但是服务器的真实样子,真正多用以及其本质恐怕很多人不太清楚。服务器实际上就是大型的,功能特异化的电脑,是一种计算机,它和我们使用的笔记本台式机本质上是没区别的,如果你愿意,可以把笔记本作为一台服务器运行起来。服务器的主要任务不是跑各种各样的程序,而是进行数据接收,数据处理,数据发送,科学运算等比较单一的,但是需要高性能的任务,如聊天服务器它需要接收A发出的消息,并将其转发给B,并且在其中具有千千万万个如A的数据发送方以及千千万万个如B的数据接收方,这就使得这个聊天服务器需要专心致志的处理这种海量的单一任务,同时越快越好。因此,服务器主机通常在某方面有所特长,如多线程能力,大规模任务能力,数据处理能力等,而由于服务器通常不会被用来做一些需要人实时观看的日常任务,因此他们通常不会接显示屏,可能会用网络提供一个命令行接口让大家进行日常维护。

3.为何选择Linux系统

​ 由上可知我们在配置服务器时经常使用Linux操作系统,这是为什么呢,有以下几个方面:

1.稳定性高:经过多年的实践,Linux凭借着它的稳定性获取了一定的口碑,业界公认在服务器中,Linux系统的稳定性高于Windows操作系统。

2.初期投入成本低:Linux操作系统的配置需求低于Windows,在相同的硬件条件下,Linux可以承受比Windows更高的运行负担,或者说在同样的硬件条件下,Linux比Windows快。同时Linux系统是开源的,免费使用,上边很多的软件也是免费的,因此在软件上也能省下一笔钱

3.低维护成本:由于系统的稳定性以及开源,对于专业的服务器维护人员来说Linux操作系统的维护成本反而更低。

4.病毒造成破坏低:Windows系统是一个脍炙人口人人都用的大众操作系统,因此大部分的计算机病毒都是针对Windows系统的,针对Linux系统的病毒很少,同时由于Linux系统的开源,其在早期受到攻击的可能性当然更大,但是随着时间的发展以及社区的努力,Linux得到了更加强壮的免疫力,因为受到病毒打击后,人们可以直接从底端进行修复,从根本上解决问题,同时人多力量大,大家集思广益,可以更有效的杜绝病毒。

5.无需频繁升级:Windows作为一个商业性质的操作系统,有着自己的计算机品牌,因此为了多多售卖,它会经常进行升级以汰换计算机,让大家因系统变卡而购买新的计算机,这就导致Windows系统的升级非常频繁,这对于服务器来说是一个大忌,因为服务器昂贵且需要稳定的运行环境,频繁的升级会导致服务器系统更容易变慢,同时对于服务器稳定运行也不是好事。与之相反的,Linux系统很少升级,因为都是社区进行维护升级,没有金钱的利诱大家的进度并不快,因此版本稳定的很,一个版本可以用好几年。

6.保密性好:Windows是视窗系统,你只能从窗中窥探到一二,很多地方对我们来说都是黑盒,因此这很不安全,我们很难保证居心叵测的人给你加点什么进去,相比之下,Linux全部开源,公开透明,更加安全,没人会写个后门查看你的相册。同时Linux提供性能优异的免费的自带的数据备份功能,Windows必须花钱购买第三方软件。

​ 综上所述,我们选择Linux系统。

4.Linux系统的shell基本操作
1.查看指令:ls

​ 使用ls指令可以查看当前目录下的所有文件以及目录,就像在Windows中打开文件夹一样,如:

在这里插入图片描述

​ 在shell命令行中如:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传在这里插入图片描述

​ 同时ls指令有一个重要参数,a,使用时有ls -a,使用这个参数可以展示当前目录下的包含隐藏文件在内的所有文件,就像在Windows中在资源管理器中点击查看然后设置隐藏内容可见一样,可以使用这个指令查看到隐藏的内容。

2.进入文件夹指令:cd

​ 使用方式为:cd 目标路径,使用后可以进入到目标目录中,这个路径可以是绝对路径也可以是相对路径,绝对路径就是以根目录为参照的,以根目录为起点的路径,用绝对路径可以准确的访问到每一个位置相对路径则是以当前位置为参照的,以当前位置为起点的路径,使用相对路径可以直接不加前缀的访问当前目录下的文件和目录,同时可以用.表示当前目录,用…表示上一级目录,使用cd …/可以返回上一级目录。

​ cd的基本使用方法:

在这里插入图片描述

在这里插入图片描述

​ 如上图:/符号代表根目录,使用cd /进入根目录。同时使用ls命令查看了一下根目录下的各种文件,这里需要注意的是:深蓝色字体的是目录,或者说文件夹;浅蓝色字体的是软链接,或者说使用软链接的快捷方式;绿色背景的代表权限为777的文件夹;白色字体的是文件;绿色字体的是可执行文件;红色字体的是压缩文件;彩色字体的是多媒体文件。

​ 使用连续的…/可以连续返回多级目录,如图:

在这里插入图片描述

​ 注意在windows的命令行中也可以使用cd指令,同时在Windows系统中的cd指令可以使用 cd E:进行盘切操作,但是这种盘切操作在Linux系统中是行不通的,因为Linux系统通常不分盘。

3.创建目录指令:mkdir

​ 顾名思义,这是make dir的意思,使用mkdir可以创建一个目录,或者说是创建一个文件夹,具体使用方法为:**mkdir 目录名。**这样可以创建一个指定名称的目录,具体操作如下图所示:

在这里插入图片描述

​ 如图所示我们输入了指令mkdir abc,用ls指令观察后,果然在当前目录下创建了一个名为abc的目录。

4.自动安装工具yum

​ 这是一个Linux系统的自带软件安装工具,有点类似电脑管家的一键安装功能,yum工具有一套自己的指令,这些指令通常用于下载不同的软件。它不是经常使用到的指令,且有一套自己的指令,这些指令不要求记住,通常是随用随查,网上有很多资源,以下列出一些基本的指令:

yum      install       softwarename        安装yum      repolist                          列出设定yum源的信息yum      remove        softwarename        卸载yum      list          softwarename      查看软件源中是否有此软件yum      list all                         列出所有软件名称yum      list installd                    列出已经安装的软件名称yum      list available               列出可以用yum安装的软件名称yum      clean all                        清空yum缓存yum      search         softwarename    根据软件信息搜索软件名字yum      whatprovides   filename       在yum源中查找包含filename文件的软件包yum      update                           更新软件yum      history                          查看系统软件改变历史yum      reinstall       softwarename     重新安装yum      info            softwarename     查看软件信息yum      groups list                      查看软件组信息yum      groups info     softwaregroup    查看软件组内包含的软件yum      groups install  softwaregroup    安装组件
5.打开Vim编辑器:vi/vim指令

​ 在Linux系统中存在着一款广受好评的编辑器,即Vim编辑器,这款编辑器提供了很多方便的快捷指令,使得我们不用鼠标就可以进行方便的编辑。MoaOs中也自带一个vim编辑器。

在这里插入图片描述

​ 如图所示,使用vim 文件名或者 vi 文件名的格式就可以创建一个文件并用vim进行编辑,进入vim编辑器之后如图所示:

在这里插入图片描述

​ vim编辑器分为三个模式:编辑模式,指令模式,末行模式。在刚进入时是指令模式,点击任何一个字母按钮,就可以进入编辑模式,在编辑模式中可以进行自由编辑,虽然其编辑方式和我们常用的Windows很不一样。在编辑模式中按ESC可以进入指令模式,在此模式下我们可以用一些指令进行更加快捷的编辑以及使用指令进入到其他模式,如末行模式。只有在指令模式下下能进入末行模式,在指令模式下按Shift+:就可以进入末行模式,注意这个冒号必须是英文的。在末行模式下可以输入参数让编辑器保存当前文件或者退出:w表示保存,q表示退出,!表示强制执行,如q!表示强制退出。

6.cat指令与more指令

​ 在命令行中,如果想查看一个文件具体写的是什么,那么可以选择使用cat指令或者more指令,使用方法为cat 文件名more 文件名,使用后命令行文件就会输出文件信息,如图:

在这里插入图片描述

​ 需要注意的是当文件过大的时候,cat指令的使用会导致单词加载过大并系统卡慢,这时可以使用more指令分批次查看,more指令可以查看指定行内容,并支持按键控制查看,十分方便,这里不再进行赘述,具体以后可能发布博客,网络资源也有很多more的相关操作。

7.删除指令:rm

​ 这个指令相当于Windows里的右键删除,使用方法为rm 文件名。这样使用之后就将文件删除了,不过直接加文件名算不上是真正的删除,这只是放在回收站里,直接完全删除,需要加参数rf,用法为rm -rf 文件名

8.路径查看指令:pwd

​ 输入后会返回当前的路径,使用方法就是直接输入pwd,如图:

在这里插入图片描述

9.上传指令:rz

​ 这个指令用于向服务器上传文件,可以连接本地与服务端,输入rz之后就会弹出一个选择窗口,然后进行选择,选择好之后就可以进行上传,如图:

在这里插入图片描述

10.下载指令:sz

​ 该指令用于从服务端下载文件,不是特别常用。

11.解压指令:unzip

​ 在Linux中也是支持zip文件格式的压缩包的,使用zip可以进行压缩,用unzip那自然是解压缩,使用方法为unzip 文件名.zip,这个指令只能解压zip格式的压缩包,使用方法如图所示:

在这里插入图片描述

​ 需要注意的是,在Linux的命令行中,经常有一些长文件名,很难输入,这时候我们可以使用自动联想,如图中的zip文件,我们只需要输入几个开口字母,如“apa”,然后按tab键,系统就会自动搜索开头带这几个字母的文件名,如果目录中存在这个文件,那么就会自动补全文件名,就可以方便的访问了。另外,如果想要运行Tomcat,那么首先必须要有java环境,因为Tomcat是基于Java的,或者说是用Java语言写的。

12.细节展示指令:ll

​ 使用这个指令可以展示所有的细节,也就是说把整个目录下的所有文件的所有细节都展示出来,包括文件名,操作时间,使用权限之类的所有细节都可以展示,如图:

在这里插入图片描述

​ 其中最左边的一个字母,表示的是文件类型以及使用权限,d代表目录,l代表快捷方式,当然还有其他类型的各种文件,这里不再赘述。这个字母之后的字母,是三个为一组共九个字母,这几个字母表示的是不同用户的权限,他们分别是超级管理员,系统用户,普通用户的权限。同时任何文件分为可读可写可执行三种权限,白色属于不可执行文件,可执行文件是可以直接执行,通过指令可以使不可执行文件变成可执行文件。

​ 结合上图,我们发现在最左侧的一串字母中,如“lrwxrwxrwx”,其结构在上文已经做了一些解释,其中“lrwxrwxrwx”第一位为类型,而剩下的为各种用户的权限,r代表可读,w代表可写,x代表可执行,如果有字母就代表可以,没有字母,是一个“_”就代表不行,我们如何修改权限呢?我们使用chmod指令来修改权限。

13.修改文件活文件夹权限指令:chomd

​ chomd是修改文件或者目录权限的指令,具体用法为chomd 权限状态参数 文件名,如下图:

在这里插入图片描述

​ 如图中我们将startup.sh的权限改成了777,什么是777?这个权限参数实际上是一个9位的二进制数,每三位对应一个用户,总共对应三个用户,即超级管理员用户,系统用户,普通用户依次排开,而777实际上是三位八进制数,八进制7转化成二进制为111,因此777代表111111111,而对应rwxrwxrwx,如100对应r _ _,其余同理,也就是按照这个对应关系,为1代表可以,为0代表不可以,然后将这九位二进制数分别没三位转化成八进制数,就可以更简单的表现出权限状态了。777其实就是给所有用户权限全开的意思。这里我打算在以后进行更加详细的研究分析。

14.脚本启动指令:sh

​ 在Linux中,我们可以把上面讲到的这些脚本指令写在一个文件中,并将文件命名为XXX.sh,这样它就变成了一个脚本文件,用chomd指令将这个文件的执行权限打开后,这个文件就变得可执行了,运行这个脚本就可以一次执行并完成一个比较复杂的任务。我们如何执行一个脚本呢?使用sh指令就可以进行脚本的执行,使用方法为sh 文件名.sh,具体如下:

在这里插入图片描述

​ 如图我们运行了Tomcat中的shutdown.sh脚本,执行这个脚本使得Tomcat服务被关闭。

15.脚本文件及其执行

​ 我们通常把Linux的终端或者说是命令行称之为shell,里边的指令我们一般称为shell指令,在上文已经提到过,shell指令可以以文本的形式书写在文件里然后一次性执行。实际上,对于shell指令,我们也可以称之为shell语言,或者说是shell脚本语言,对于这种用shell脚本语言书写的指令串,我们称之为脚本文件,脚本文件不是说执行就能执行的,脚本文件必须是**.sh**后缀名才能执行,再者,它必须有可执行权限才能真正的被运行。因此我们在书写完一个shell脚本后,要用chomd为其进行权限更改,而后才能执行。

​ 那我们用什么来执行脚本文件呢?我们使用sh指令来进行脚本文件的执行,具体使用方法为sh 脚本文件名。之后,系统就会顺序执行shell脚本文件中的指令。值得注意的是**:在脚本文件中,我们通常是每行一个指令,也就是说通常的书写方式是一个指令就占一行,然后系统在执行的时候,就可以按照上下顺序依次执行了。当我们希望多个指令在一行时,如果直接用空格间隔,就会报错,如下**。

cd /
mkdir abc
vim text.java

​ 通常情况下的shell脚本文件的内部是这样书写的,如果按照一下的方式书写,就会报错,不能执行:

cd /	mkdir abc	vim text.java
touch hello.java

​ 如过我们需要在同一行上面书写指令,需要使用“|”符号作为分隔,同时在“|”的两边还要加上空格,如下:

cd / | mkdir abc | vim text.java
touch hello.java

​ 然而这种同行的书写方式使得多个指令之间的先后关系消失了,这个行为会使三个指令并行执行,变得没有先后关系,也就是多线程功能会启动,这三个指令分别会用不同的线程进行执行,进而他们三个的完成先后会变得不确定。因此,当指令之间需要有着严格的先后执行次序要求是,尽量不要使用这种分隔符的方式进行同行书写。

16.字符注入文件指令:echo

​ 对于一个文件而言,如果想要进行简单的添加,而不再用vim编辑器打开,我们可以使用echo指令进行添加,具体使用方法为:echo ‘字符内容’ >> 目标文件,通过这个指令,就可以把目标语句写入进文件之中。

17.文件/目录移动指令:mv

​ mv经常被用作文件/目录的名称更改指令,但他实际上是移动指令,类似于Windows中的剪切,然而它比剪切多出一个名称更改的功能。mv的使用方法为**mv 参数 目标文件 目标路径。**具体使用方法如下:

mv abc hec

​ 这可以使abc更名为hec,实际上,它是将abc剪切,更名为hec后再粘贴在当前目录下,还可以有这种操作:

mv abc opt/hec

​ 这可以使abc更名为hec后移动进opt目录下。关于mv指令的还有很多不同的运用,因为它有着很多的通的参数,具体使用方式在网络上有很多资源,这些可以在以后着重学习。

18.其他操作

​ rm指令有一个特殊的操作,即一次性删除多个文件,当你想删除多个文件时,可以在rm后边的目标文件部分列出多个文件的路径并用空格间隔,使用这种方式可以一次删除多个文件,如:rm -rf qqq ccc bbb。这样一次可以删除qqq,ccc,bbb三个目录。同时还可以使用通配符,使用正则表达式的方式删除多个具有类似名字的文件或目录,如*rm -rf ine。指令可以删除所有以ine为结尾的目录文件,星号代表任意的,因此*ine代表前边是什么都行,最后三个字符为ine的字母。

​ 正则表达式和通配符的使用是一个比较复杂的知识点,这里同样是简单介绍,在以后我会单独写博文来研究。


http://www.ppmy.cn/news/705620.html

相关文章

单片机怎么通过按键控制计时器的开始和停止_《搞机作战室》机械师PX780控制中心软件使用教程...

我们收到新机器的时候,想要设置键盘颜色、或者要设置风扇速度不知从何下手,要怎么安装驱动、控制中心功能怎么使用!!! 那么接下来由我华仔为大家讲解机械师PX780游戏本控制中心驱动安装和功能使用。 本篇文章分为两部分…

rog live service是什么_「评测」三模无线,微动随心换,华硕ROG 烈刃2满足所有游戏需求...

随着无线技术的提升,越来越多外设厂商开始发力无线外设市场,而作为老牌外设厂商的华硕自然不会“置之事外”。从之前的斯巴达到今年的魔刃,华硕在用行动告诉大家,我不仅要做无线,更要做高端无线。 而在最近,华硕ROG又上线了一款无线蓝牙三模无线游戏鼠标:ROG烈刃2(以下简…

【VC++游戏开发#十】2D篇 —— 人工智能(一):滚动地图 用鼠标控制人物的走动

本文由BlueCoder编写 转载请说明出处: http://blog.csdn.net/crocodile__/article/details/18039107 我的邮箱:bluecoderyeah.net 欢迎大家和我交流编程心得 我的微博:BlueCoder_黎小华 欢迎光临^_^ 和大家交流一下哈: 我…

Unity Shader-描边效果

简介 描边效果是游戏里面非常常用的一种效果,一般是为了凸显游戏中的某个对象,会给对象增加一个描边效果。最近又跑回去玩了玩《剑灵》,虽然出了三年了,感觉在现在的网游里面画面仍然算很好的了,剑灵里面走近或者选中N…

提升windows使用效率的软件

文件管理类 快速查找文件:Everything 如果你有搜索习惯,而不是手动去翻文件夹,这个软件也许你用的上。 轻量、不占内存。可以让你在几秒钟内搜索出在你硬盘上的文件,无论这个文件藏得有多深。 提升打开文件的效率:L…

不知道ai自动生成绘画网站有哪些就试试这些ai绘画软件

自然语言处理技术和机器学习的不断发展,为艺术创作和设计领域带来了新的可能性。随着人工智能技术的进步,越来越多的网站和平台开始利用ai技术,为大家提供自动生成绘画的功能。这些ai绘画网站通过深度学习和生成对抗网络等先进技术&#xff0…

Java Zip 教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 java.util.zip提供用于读写标准 ZIP 和 GZIP 文件格式的类,还包括使用 DEFLATE 压缩算法(用于 ZIP 和 GZIP 文件格式)对数据进行压缩和解压缩的类。此外,还存在用于计算任意输入流的 CRC-32 和 Adler-32 校验和的实用工…

苹果混合硬盘合并

CommandR重启系统,打开终端,合并磁盘: 进入终端 diskutil list diskutil cs create Macintosh\ HD disk0 disk1 diskutil cs list 找到Logical Volume Group 的标示(数字和英文的组合,如上图:混合硬盘L…