前端必会的Linux知识[#]

概要

1. 认识Linux

2. 安装Linux环境

3. 认识Linux环境

4. 前端开发必需要懂的知识

5. 安装linux开发环境

6. 关于某些网站没法访问的解决方法

1. 认识Linux

linux是什么

  • linux是一个操做系统,它不是一个成型的东西,它的本质是内核“kernel”
    • kernel主要是用c写的,里面有各类算法和处理流程。
    • 内核对性能要求很是高,由于底层的东西须要向上提供各类api,或许一个api每秒钟会执行成千上万次,操做很是频繁,须要很高的效率。
  • 咱们平时所说的Ubuntu、CentOS那些是指发行版,linux内核只是拥有最基本的功能,它自己有六大系统,这六大系统就组成了操做系统核心的功能。
  • 可是那些发行版,除了这六大系统所拥有的功能之外,还加上了不少外壳性的东西,还有各类软件,各类服务等等,这样才构成了完整的linux。

UNIX、linux与windows的区别

  • UNIX操做系统是一个至关古老的系统,它奠基了现代操做系统的基础,它同时也制定了不少业界的规范。
    • mac是unix内核,是BSD内核,linux是另一种内核,BSD内核是有版权的。
    • unix它的lience(许可证)和linux定义的是不同的,开源软件的lience各有特色,纯粹的unix的版权是归属于贝尔实验室的,贝尔实验室是AT&T旗下的(美国的一个大通信公司)。
  • windows通常是用在客户端的桌面上,可是也偶尔被用作服务器,用作服务器的windows也是有图形界面的,但其实有图形界面的服务器是对系统资源的浪费。
  • linux通常是用在服务器上,基本不使用图形界面,由于服务器它对性能要求很高。linux的内核是从unix上继承下来的,它主张以简为美。windows则比较复杂。

经常使用的linux发行版

  • 经常使用:Ubuntu(一年发行2次[四、10]lts)、CentOS(红帽的社区维护版)、Fedora
  • 欧美经常使用:Deblan
  • 为安全方面开发的:Kali(有不少网络安全工具和黑客工具)
  • 服务器市场占有比例较大:CentOS、Red Hat(红帽[商业])
  • 桌面系统市场占有比例较大:Ubuntu、Deblan、Fedora


2. 安装Linux环境

注意事项

  1. 推荐安装CentOS,有DVD和Minimal(迷你版),推荐安装迷你版。
  2. 安装CentOS须要依赖虚拟机,推荐使用VMware,在下载下面选择“Workstation Pro”,而后找一个注册码注册就能够了,可是注意不要升级,不然会失效。
  3. 虚拟机环境:
       a. 内存: 若是带图形界面,推荐内存至少2g,若是是迷你版的CentOS,由于他只有500M,推荐内存至少1g。
       b. 网络适配器: 配置网络的时候不要使用NAT,不然网络环境就会很是复杂了,它会给你自动配置一个虚拟的局域网来,处理事情的时候会产生一些干扰。推荐使用桥接模式。但使用桥接模式,必需要保证网络的畅通,一旦把网络断开,桥接就会失效
       c. 专门的网络管理: 专门的网络管理在编辑中的虚拟网络编辑器中,它默认配了两个虚拟网络除非是但愿配置一个和外部隔绝的一个虚拟网
  4. 下载centos镜像推荐:
    通常若是使用国外的连接地址下载镜像会比较慢,这里推荐使用国内的下载镜像的地址:16三、jdcloud、aliyun、huaweicloud
  5. 比较老的机子可能不支持虚拟化:
    进入BIOS(主板),进入System Configuration,找到Virtualization Technology,选择Enabled

新建虚拟机向导(Vmare14)

选择自定义高级html

  1. 硬件兼容性 -> 选择最新版
  2. 安装程序光盘映像文件 -> 选择镜像文件(固定路径)
    • 示例:“D:\vm\system”
  3. 虚拟机名称 -> 虚拟机在左边显示的名称
  4. 位置 -> 这是一个大坑,这里的位置是指,在安装好了虚拟机以后,要在硬盘上生成一个很是大的文件,实际上这个文件是一个虚拟磁盘,至少要有10g的富余空间。通常不占用系统空间(C盘)。
    • 示例:“D:\vm\CentOS7”
  5. 处理器数量 -> 1
  6. 每一个处理器的内核数量 -> 1-2
    • 处理器就是cpu,个人计算机只有一个处理器(cpu),6个内核。
    • 这里的处理器数量和内核数量并非越多越好,通常这里的选择要小于你的计算机自己的cpu和内核,它取决于你的计算机。
  7. 此虚拟机的内存 -> 2048MB
  8. 网络链接 -> 桥接
    • 桥接就是直接使用你物理机的地址
  9. 下面的控制器、虚拟磁盘那些都选默认
  10. 建立一个新的虚拟盘
  11. 最大磁盘大小 -> 默认不动
    • 下面当即分配全部磁盘空间不勾选,不然它会直接生成20G的大文件,通常若是不勾选的话,它是达不到20G的。
  12. 选择将虚拟磁盘存储为单个文件
    • 分拆的意义在于把虚拟磁盘分红若干个,这样拷贝的时候速度会快一些,这是由底层的IO设备的特色来决定的,但通常建立了虚拟机以后,不会去动他,存储为单个文件,性能反而会高一些。
  13. 最后它就开始建立磁盘文件了。
    • 你要去选择一下磁盘文件存放的位置
    • 示例:“D:\vm\CentOS7\CentOS7.vmdk”
  14. 点击完成
    配置centos7详解
  15. 选择语言
  16. 等一段时间,本地化是自动读取系统配置自动配置的
  17. 系统配置
    • 安装位置 -> 选择安装位置(点一下)以后其余默认,点击完成
    • KDUMP -> 取消勾选启用(禁用),它是供你调试用的,除非你要用C语言去作linux的开发,不然它开启的话,意义不大,反而会影响它自己的运行性能,它会把内存的数据转储到你的磁盘上
    • 网络和主机名 -> 点击去以后,将以太网(我这里名称是ens33)打开,稍等一会,让它获取ip地址,ip地址获取成功,说明网络配置成功
    • SECURITYPOLICY -> 它是安全策略的配置,默认不动,不然后面使用会很是麻烦
  18. 设置root密码(超级管理员),若是对安全的要求不高(本身的虚拟机),能够设置弱密码,设置弱密码要点击两次完成才能设置成功,在公网上linux密码必须至关复杂,不然很容易被攻破。在生产环境下,避免使用root。
  19. 建立用户,这里的全名是给系统用的(仅仅只是展现),这里的用户名是给用户登录用的。密码的设置和上面相同。
  20. 接下来等待它安装完成就完成了 。


3. 认识Linux环境

linux下的目录是作什么用的

  • linux和unix的目录,它是一种文件树的结构,linux属于根目录文件系统,但windows属于多根目录文件系统
  • 咱们在bin目录下为何不能找到ls、cd等的那些命令?这里有一个概念,咱们如今用的终端,它叫“shell(贝壳)”,那些经常使用的ls、cd等那些是shell自己被内置的命令,而在bin底下是那些不能被内置的命令(由于它们个头比较大或者使用频率比较低)
  • etc是最重要的目录,它专门用来放置配置文件的。其中以*.conf结尾的都是配置文件
  • /bin
    • 系统有不少放置执⾏档的⽬录,但/bin⽐较特殊。由于/bin放置的是在单⼈维护模式下还可以被操做的指令。
    • 在/bin底下的指令能够被root与⼀般账号所使⽤,主要有:
      cat、chmod(修改权限)、chown、date、mv、mkdir、cp, bash等等常⽤的指令。
  • /boot(是核心文件,不能碰)
    • 主要放置开机会使⽤到的档案,包括Linux核⼼档案以及开机选单与开机所需设定档等等。
    • Linux kernel常⽤的档名为:vmlinuz,若是使⽤的是grub这个开机管理程式,则还会存在/boot/grub/这个⽬录。引导操做系统的菜单。
  • /dev
    • 在Linux系统上,任何装置与周边设备都是以档案的型态存在于这个⽬录当中。
    • 只要经过存取这个⽬录下的某个档案,就等于存取某个装置。
    • ⽐较重要的档案有/dev/null,/dev/zero, /dev/tty , /dev/lp, / dev/hd, /dev/sd*等等
  • /etc
    • 系统主要的设定档⼏乎都放置在这个⽬录内,例如⼈员的账号密码档、各类服务的启始档等等。
    • ⼀般来讲,这个⽬录下的各档案属性是可让⼀般使⽤者查阅的,可是只有root有权⼒修改。
    • FHS建议不要放置可执⾏档(binary)在这个⽬录中。
    • ⽐较重要的档案有: /etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/等等。
    • 另外,其下重要的⽬录有:/etc/init.d/:全部服务的预设启动script都是放在这⾥的,例如要启动或者关闭iptables的话:/etc/init.d/iptables start、/etc/init.d/、iptables stop/etc/xinetd.d/:这就是所谓的super daemon管理的各项服务的设定档⽬录。
    • /etc/X11/:与XWindow有关的各类设定档都在这⾥,尤为是xorg.conf或XF86Config这两个X Server的设定档。
  • /home(管理员的home目录是root)
    • 这是系统预设的使⽤者家⽬录(home directory)。
    • 在你新增⼀个⼀般使⽤者账号时,预设的使⽤者家⽬录都会规范到这⾥来。
    • ⽐较重要的是,家⽬录有两种代号,“~”表明当前使⽤者的家⽬录,⽽“~guest”则表明⽤户名为guest的家⽬录。
  • /lib
    • 系统的函式库⾮常的多,⽽/lib放置的则是在开机时会⽤到的函式库,以及在/bin或/sbin底下的指令会呼叫的函式库⽽已 。
    • 什么是函式库呢?妳能够将他想成是外挂,某些指令必需要有这些外挂才可以顺利完成程式的执⾏之意。
    • 尤为重要的是/lib/modules/这个⽬录,由于该⽬录会放置核⼼相关的模组(驱动程式)。
  • /media
    • media是媒体的英⽂,顾名思义,这个/media底下放置的就是可移除的装置。 包括软碟、光碟、 DVD等等装置都暂时挂载于此。常⻅的档名有:/media/floppy,/media/cdrom等等。
  • /mnt
    • 若是妳想要暂时挂载某些额外的装置,⼀般建议妳能够放置到这个⽬录中。在早时候,这个⽬录的⽤途与/media相同啦。只是有了/media以后,这个⽬录就⽤来暂时挂载⽤了。
  • /opt
    • 这个是给第三⽅协⼒软体放置的⽬录。
    • 什么是第三⽅协⼒软体啊?举例来讲,KDE这个桌⾯管理系统是⼀个独⽴的计画,不过他能够安装到Linux系统中,所以KDE的软体就建议放置到此⽬录下了。
    • 另外,若是妳想要⾃⾏安装额外的软体(⾮本来的distribution提供的),那么也可以将你的软体安装到这⾥来。不过,之前的Linux系统中,咱们仍是习惯放置在/usr/local⽬录下。
  • /root
    • 系统管理员(root)的家⽬录。
    • 之因此放在这⾥,是由于若是进⼊单⼈维护模式⽽仅挂载根⽬录时,该⽬录就可以拥有root的家⽬录,因此咱们会但愿root的家⽬录与根⽬录放置在同⼀个分区中。
    • 忘记密码centos要进入单用户模式 => passwd
  • /sbin
    • Linux有⾮常多指令是⽤来设定系统环境的,这些指令只有root才可以利⽤来设定系统,其余使⽤者最多只能⽤来查询⽽已。
    • 放在/sbin底下的为开机过程当中所须要的,⾥⾯包括了开机、修复、还原系统所须要的指令。
    • ⾄于某些伺服器软体程式,⼀般则放置到/usr/sbin/当中。
    • ⾄于本机⾃⾏安装的软体所产⽣的系统执⾏档(system binary),则放置到/usr/local/sbin/当中了。常⻅的指令包括: fdisk, fsck, ifconfig, init, mkfs等等。
  • srv
    • srv能够视为service的缩写,是⼀些⽹路服务启动以后,这些服务所须要取⽤的资料⽬录。
    • 常⻅的服务例如WWW, FTP等等。举例来讲, WWW伺服器须要的⽹⻚资料就能够放置在/srv/www/⾥⾯。
    • 呵呵,看来平时咱们编写的代码应该放到这⾥了。
  • /tmp
    • 这是让⼀般使⽤者或者是正在执⾏的程序暂时放置档案的地⽅。这个⽬录是任何⼈都可以存取的,因此你须要按期的清理⼀下。固然,重要资料不可放置在此⽬录啊。由于FHS甚⾄建议在开机时,应该要将/tmp下的资料都删除。

在windows下终端的类型

用来链接远程的服务器前端

  • putty(开源的但不推荐)
  • xshell
    • 它是一个商业软件,在英文官网上下载
    • 它不少年不升级(6.0),但并不落后
  • Cmdder(推荐)
    • 它是一个加强型的终端,放置了大量的linux命令
  • Terminal
    • 微软发布的一个终端


4. 前端开发必需要懂的知识

网络端口

  • 什么是端口
    • 若是想经过网络去访问另一台电脑,必须得去开一个门,这个门,实际上操做系统上有不少门,它们都有它本身的用途,咱们究竟须要开什么门,须要在上面编一个号,http这个门是80号门等等,这些门不能乱窜,若是乱窜,就会发生端口冲突。
    • 换句话说,一个端口,在同一个时间内,只能被一个进程去使用。
  • 默认端口
    • http默认端口80
    • https默认端口 443
    • http 代理端口 8080

什么是服务

  • 什么是服务
    • 服务是一种应用程序类型,它在后台运行。服务应用程序一般能够在本地和经过网络为用户提供一些功能,例如客户端/服务器应用程序、Web服务器、数据库服务器以及其余基于服务器的应用程序。
  • 在linux下查看服务
    • systemctl => 按ctrl+c退出
    • systemctl status nginx => 查看nginx服务状态
    • systemctl start nginx => 开启服务
    • systemctl stop nginx => 中止服务
    • systemctl restart nginx => 重启服务
    • nginx -s reload => 不中止服务,从新读取一次

什么是终端

  • 终端(Terminal)也称终端设备,是计算机网络中处于网络最外围的设备,主要用于用户信息的输入以及处理结果的输出等。
  • 在早期计算机系统中,因为计算机主机昂贵,所以一个主机(IBM大型计算机)通常会配置多个终端,这些终端自己不具有计算能力,仅仅承担信息输入输出的工做,运算和处理均由主机来完成。
  • 在我的计算机时代,我的计算机能够运行称为终端仿真器的程序来模仿一个终端的工做。

如何使用Cmder链接远程服务器

使用ssh命令
node

  • 示例:ssh root@192.168.0.115
  • 它会有一段提示,你正在登录全新的服务器,而后告诉咱们服务器的特征值(服务器指纹),问咱们是否继续,而后输入yes才能继续,它是用来防止有人伪造服务器,套你的口令。
  • 而后输入密码,输入密码的时候它不回显,由于安全性问题,别人不知道你的密码会有多少位。

最简单的linux命令

  • exit => 登出
    • 须要有安全意识,离开计算机及时退出终端
  • ip addr => 查看IP地址
    • ifconfig比较古老,使用ip组合命令
  • pwd => 查看当前的目录

如何远程传输文件到linux服务器

在cmder中使用scp命令linux

  1. 在windows环境下,进入某个盘符,找到某个文件,示例:
    e: => dir => mkdir test => cd test => echo 文件中的内容>a.txt => type a.txt
  2. 在linux环境下查看当前目录,示例:
    pwd
  3. 到windows环境下,在windows的当前目录下,把windows下找到的文件用scp传到linux当前目录下,示例:
    scp ./a.txt root@192.168.0.115:/root
    • 在这里输完ip以后要先加上冒号,再加/,后面带linux下的路径
  4. 输入密码,传输成功
  5. 到linux环境下,查看是否传输成功,示例:
    ls => cat a.txt

如何对linux中的网卡进行设置

  1. 先检查虚拟硬件
    • 虚拟机配置必须桥接, 物理机(本身的电脑)网卡是否被激活
    • 若是安装的时候没有激活,就要在etc下找网卡的配置文件
  2. 先进入etc目录。 cd etc
  3. 网卡的配置文件在sysconfig下面。
    cd sysconfig/network-scripts
  4. ll查看,带前缀ifcfg,即网卡的配置文件(网卡的名字ens33)
  5. 查看配置文件
    cat ifcfg-ens33
  6. 若是没有激活ONBOOT会显示为no,要用vi改为yes
    • 输入指令:vi ifcfg-ens33
    • 默认只读状态,敲一下i变成编辑状态
    • 按一下esc最下角INSERT不见了
    • 输入:wq保存并退出
      • w指write(写[保存])
      • q指quit(退出)
      • 不能使用qw,必须先保存再退出
  7. 开启网卡 ifup ens33
  8. 关闭网卡 ifdown ens33

vi命令(文本编辑器[行])

  • vi 文件名 => 进入某个文件的编辑
  • :q => 退出
  • :q! => 强行退出(不保存)

nano的安装和使用

安装nginx

  • yum是linux的软件库,使用yum安装nano,示例:
    yum install nano
  • 继续(y)
  • 确认指纹密钥(y)
  • 输入nano启动文本编辑器

使用git

  • ^ 表示ctrl
  • ctrl + o 写入
  • ctrl + x 退出

linux中的其余命令

  • 解压缩(*.tar.bz)
    • tar -xvvf *.tar.bz
    • -xvvf => 解压缩.bz格式的参数,不用的压缩包格式,参数不同,*.gz格式的参数则是-xzzf


5. 安装linux开发环境

安装node

不能直接使用yum安装,要去下载安装nodejs的源github

  1. 添加官方的yum源
    curl -sL https://rpm.nodesource.com/setup_11.x | bash -
  2. 用yum安装nodejs(y表示一路肯定) yum install -y nodejs
  3. 查看安装的版本 node -v

安装xampp集成开发环境

待续算法



6. 关于某些网站没法访问的解决方法

在浏览器⾥执⾏下列代码shell

var hexCharCodeStr =
'68747470733a2f2f737068617264322e6769746875622e696f2f6766772f'
var rawStr = hexCharCodeStr.trim();
var len = rawStr.length;
var curCharCode;
var resultStr = [];
for(var i = 0; i < len;i = i + 2) {
    curCharCode = parseInt(rawStr.substr(i, 2), 16);
    resultStr.push(String.fromCharCode(curCharCode));
}
console.log( resultStr.join("") );
复制代码

~End~数据库

相关文章
相关标签/搜索