先后端分离以后前端对服务器的接触愈来愈多,所以会 linux 也成了前端的必备技能之一,可是要学好 linux 并非一件容易的事情须要长时间的积累才行。然而公司并不会等你掌握了 linux 以后才给你分配相关的任务。因此请收下这篇文章,即便不会 linux 也可以完成公司大部分的要求html
服务端不能像本地计算机同样天天关机,他须要一直开机以保证无论用户任什么时候候访问都能提供服务,所以服务器对稳定性的要求特别高。而 linux 正是这方面的佼佼者,linux 是有图形化界面的。可是越少的功能就越能保证系统的稳定性,因此不多有给服务器安装 UI 的公司,这样作提升稳定性的同时还给系统节省了大量的资源可谓是一举两得。同时也缺点突出,致使 linux 使用的门楷高的可怕,能够说是为专业人员使用的。前端
为了让没有太多 linux 基础的前端同窗可以很快速的使用 linux 我特意刷了一天的 linux 基础视频。总结了日常使用的特别高的命令来详细的讲解其用法,即便记不住也不要紧,收藏一下文章。找到相应的命令直接复制进命令行中就能够执行。node
// 大部分命令的格式以下,中括号中的内容为非必填内容
命令 [-选项] [参数]
// 举例
ls -a web/
复制代码
linux 有 3000 ~ 4000 多命令。大部分基本上都能套用上面的命令格式,而经常使用的 linux 命令我想了一下主要是这些:代码压缩、文件的增删改查、软件的下载、软件的启动关闭、基本的权限了解、linux 的链接、文件的上传下载、环境变量的配置linux
提供一个软件 Xshell,下载的话百度一搜一堆,就不提供下载连接了。输入相应的 linux 的 IP 地址和密码就能够登陆了,须要注意的是默认端口是 22,要是没给你提供端口号就写 22 就能够了。git
mac 用户的终端自己支持一个 ssh 命令。能够直接经过 ssh 登陆对应的服务器,格式以下:web
ssh -t <帐号>@<ip 地址> -p <端口号>
// 举例
ssh -t root@192.168.1.1 -p 22
复制代码
回车以后就会然你输入密码,须要注意输入密码的时候是不会显示 * 号的。不会有任何变化,你只须要输入密码而后回车就能够了。如此就能够进入 linux 了。shell
linux 上的命令太多了,因此要学会使用查看帮助文档的命令。npm
man <命令>
man ls
复制代码
上来就会用简短的话介绍这个命令的做用,其次就是这个命令的格式。而后下面会有特别全的选项介绍,遗憾的是都是英文的。但我建议你仔细读一下,不要被英语吓到。由于读这种资料不须要用到口语也不须要学习语法,仅仅是词汇量。vim
// 建立文件夹
mkdir <文件夹的名字>
// 举例
mkdir web
// 建立文件
touch <文件名字>
// 举例
touch index.html
复制代码
文件和文件夹的新增挺简单的,套用就能够了。要想一次添加多个文件/文件夹,参数之间用空格间隔开来就能够了windows
// 移动文件 mv -> move
mv <文件> <移动的路径>
复制代码
这里有几个小技巧,
mv index.html pay.html
// 拷贝文件 cp -> copy
cp <文件> <移动的路径>
复制代码
跟 mv 用法相同
// 删除 rm -> remove
rm -rf <文件名字 | 目录名字>
// 举例()
rm -rf index.html
复制代码
这个命令须要重点讲解一下,由于这个命令可能致使系统崩溃,喜欢刷掘金的朋友应该常常会看到删库跑路的文章(rm -rf /*
这个命令就是删掉根目录下全部的文件)。我就对公司的测试环境进行过删库(rm -rf *),好在公司配有运维,给建立了本身的帐号,要否则我可就成罪人了。
这里须要注意在 windows 中删除的文件会给你放入垃圾桶中。可是 linux 中可不会删除了就删除了。从代码中能够看到我加了俩个选项,删除的选项不是必填的可是大部分的场景都是删除不少文件和文件夹,因此上面的选项是很是经常使用的。来看看官方是怎么解释这里个选项的:
// * 表明全部的内容
rm -rf web/*
复制代码
上面列举的是一个最多见的删除命令:删除某个文件下面的全部内容
linux 支持查看的命令特别多(less more cat),可是修改一般都会用 vim。众所周知你不可能看不到文件内容就修改内容,因此我推荐你能够用 vim 进行查看和修改命令。
vim 分为三种状态,命令、命令输入和编辑状态。理解这三种状态是使用 vim 的基础。一但了解了这三种状态 vim 就会让你顺风顺水。首先让咱们用 vim 打开一个文件
vim index.html
复制代码
经常使用的退出 vim 编辑器的四种操做
在命令状态下输入字母 i 就可以进入编辑状态。最明显的特征就是左下角有个 插入的标识(英文 insert这个时候就可以像正常编辑器编辑内容同样编辑了。输入 esc 键就可以退出编辑状态回到命令状态了
总结
在命令状态下输入 i 可以进入编辑状态,输入 shift + : 可以进入命令输入状态 在编辑状态或者是命令输入状态下,输入 esc 键就可以回到命令输入状态
可不要小看了目录操做,linux 的目录跟 windows 的目录是有区别的,windows 分为多个盘,例如 C,D,E... 。而 linux 是没有这个概念的,linux 一切目录都是从根目录( / )衍生而来的。因此了解 linux 的一级目录很重要:
上面我提到了用户的家目录,他主要是用来区分多用户的,好比用户 a 和用户 b。他们会共享一部份内容,同时也会有本身的东西,本身的东西都会放入本身的家目录下面。root 用户的家目录是 /root
, 其余用户的家目录是 /home/<用户名>
。
对 linux 的目录有了必定的理解了,接下来就是几种跳转方式了:
cd ..
cd web
cd ~
cd /home/a
有时候你跳转多了忘记本身在哪里了,想看一下本身所在的目录就能够用这个命令
// 查看当前目录
pwd
复制代码
想知道当前目录下有什么内容:
ll
ls
解压和压缩文件须要先了解一下经常使用的压缩类型,在 windows 中常见的压缩格式是 rar,zip。而 linux 中常见的是 gzip, zip。其中 zip 格式是在 windows 和 linux 中都支持的,由于他是特别古老的一种压缩格式了。一般你见到的各类源码包都是 .tar.gz 的格式。这种都是先经过 tar 打包,而后在经过 gzip 压缩生成的。由于 gzip 没法压缩目录,因此他须要用 tar 先打包一下。因此看起来是双后缀的格式
经常使用的是 tar 命令。他的语法为: tar [-选项] [文件名] [打包目录]
它有一下几个选项:
// 打包压缩
tar -zcvf web.tar.gz web
// 解压
tar -zxvf web.tar.gz
复制代码
大部分状况都是文件从本地客户端转移到服务器上,建议是使用 zip 压缩格式。由于他是 windows 和 linux 都支持的一种压缩格式。linux 上的文件压缩以后上传到 windows 上解压还好说,若是你将 windows 上的 rar 文件传到 linux 上就麻烦了,下载对应的解压软件很费劲的。那么如何解压缩 zip 文件呢?很简单,命令以下:
// 压缩
zip web.zip web
// 解压
unzip web.zip
复制代码
在 windows 下只须要在菜单栏点一下右键而后选择任务管理器,从任务管理器列表中找到对应的进程选中点关闭进程便可。很显然 linux 是不可能这么方便的,须要经过几部来搞定。
ps -le
记住要杀死的进程 pidkill pid
, 强制杀死进程 kill -9 pid
这里须要注意的一个地方就是你要杀死的任务可能有多个 pid。这种状况一般都是一个主进程几个子进程。要想知道哪一个是主进程,哪一个是子进程可使用这个命令 pstree -g
。他会以树的形式展现父子进程
有的时候你明确知道所运行的任务使用了哪一个端口号,你想经过端口号来杀死进程。因此先查询出来占用这个端口号程序的 pid 便可。
lsof -i:端口号
复制代码
有时候你下载了某个软件,可是只能在下载的目录使用这个命令,好比 node,git 等等。这是由于你没有将他配置成为环境变量,有点相似 js 中的全局变量跟局部变量。
linux 中配置环境变量有不少种方式,例如配置只对当前用户有效的环境变量、配置临时环境变量、配置全部用户都能用的环境变量。
配置只针对本身的环境变量
在本身的家目录下有一个 .bash_profile 的文件。使用 vim 编辑便可。(在 linux 中以点开头的文件至关于 windows 下面的隐藏文件,所以 ls \ ll 是查询不到的,须要用 ll -a
才能查询到)
# Nodejs
export NODEJS_HOME=/usr/local/lib/nodejs/node-v10.15.0-linux-x64/bin
export PATH=$NODEJS_HOME:$PATH
复制代码
你能够采用上面的代码来配置你的环境变量,第一行写是什么软件的注释,第二行建立一个指向该软件运行命令的变量第三行将其中的变量替换成第二行写的变量便可。
配置针对全局用户的环境变量
跟配置针对本身的环境变量相同,只是配置文件的位置不一样。 vim etc/profile
。
这里须要注意写完了还不行,须要从新加载一下配置文件才能生效,
sourch /etc/profile
// .bash_profile 也同样
复制代码
若是把 js 看作是一个系统,给这个系统添加软件最简单的方式是用 npm 。一样的 linux 也有相似于 npm 的 yum。用 yum 安装软件跟 npm 同样简单。若是你不知道你要安装的软件的包名最简单的办法就是百度,举个安装 node 的例子。
搜索:yum 安装 node 海量的答案等着你。不过结果可能没有那么满意,由于 yum 并不可能支持全部的安装包,有的可能没有 yum 源须要添加 yum 源。有的多是经过 wget 让你下载二进制压缩格式。可是你须要知道有 yum 这个东西
在本身的电脑上下载东西都是经过浏览器找到下载文件单击下载就能够了,linux 上要想下载文件就须要经过 wget 了。基本使用命令是:
wget <下载连接>
复制代码
windows 上能够下载一些支持 ftp 协议的软件进行下载,像我用的就是 xftp 跟前文介绍的 xshell 是同一家公司出的界面简洁功能强大
mac 上可使用 ForkLift
这种软件一般都会分为俩栏,左边一栏是本身本地的目录,右边一栏是服务器的目录。上传就是本身本地的文件拖拽到服务器上,下载就是服务器的文件拖拽到本身本地。使用起来是 so easy 的。
有的命令会执行很长时间,像下载文件,解压大型文件。等着他下载或者是解压完成是很是浪费时间的,固然你也能够启动多个命令窗口来执行不一样的任务。可是当你关闭命令窗口的时候这个命令就会中断。因此必定要学会如何让程序后台执行。
在运行的命令后面添加 &。举个例子
tar -xzf web.tar.gz &
复制代码
须要注意的是我将选项 v 给去掉了由于虽然拿到后台运行了可是输出信息仍是会打印到前台来。若是想不打印能够将内容指定到一个文件中例如:
tar -xzvf web.tar.gz > out.file &
复制代码
想知道这个命令是否执行完只须要用 jobs
fg 1
1 是 jobs 中括号中的数值。有的时候咱们也不知道这个命令执行多久,须要中途将他拿到后台执行能够按 CTRL + Z (MAC 上按 command + z) 。这个并不会在后台执行,而是挂起状态要想让他在后台执行须要用
bg 1
其中的 1 跟
fg 1
同样。固然了这种用法你关闭了终端他就中止了,彻底能够多开几个标签页执行命令。
使用这个命令即便终端关闭了也不会影响到程序的执行
nohup tar -xzvf web.tar.gz > out.file &
复制代码
linux 上的命令真的太多了。仔细斟酌以后以为上面的命令的频率是最高的。为了给他家提供好的交流环境我特意创建了交流群,你有更好的命令欢迎加我微信(微信号:xu645352780 )讨论,文章将会保持一致更新哦。