前端工程师应该知道的Linux知识(一)

随着业务架构演进,服务端和客户端的渲染层均交由FEer处理,越来越多的前端开始接触Linux,做一些安装部署NodeJS项目之类的工作,本篇的主要内容就是介绍Linux下的基础知识和常用命令,帮助前端工程师在服务器中自由自在的傲游。

发行版

目前互联网公司使用的发行版主要是如下三个

  • CentOS
  • Debian
  • Ubuntu

如何知道一台机器的发行版?

lsb_release -a

想知道一台机器的基本信息(内核版本等)?

uname -a

基本概念

用户与用户组

在Linux下,每个用户都属于一个用户组。文件和目录的读写权限等会根据用户用户组来区分。对于组外的用户,称之为其他用户`。

目录

在Linux下目录是一等公民,万物开始于/。我们先说明一下系统根目录下常规的一些文件夹都是做什么的?详情见这张表

目录名 简介
/opt 第三方软件
/bin 一般用户可用一些执行文件
/sbin 一些系统执行文件
/tmp 临时文件
/home 一般用户的文件目录
/root root用户的文件目录
/boot 内核文件和开机引导程序等
/dev 设备文件
/etc 各种软件的配置文件和启动脚本
/lib 一些系统依赖的库
/usr 一些系统软件所在目录
/var 一些系统的日志文件和缓存文件

上面这张表中/boot目录以上的是我们一定要理解清楚的目录,至于/boot及以下的目录只需大概了解就好。

包管理工具

每个平台下有自己的包管理工具,作为一个常用Mac的前端工程师,你一定知道Homebrew,自己也常常brew install,安完就能在命令行中使用了,非常方便。Homebrew默认的源是在海外的,很慢很慢,所以大家一般会替换为国内的源,就跟npm切成淘宝源一个意思。

为什么扯这么多Mac上的东西那?原因在于,这套包管理机制和Linux各个发行版是一致的。各个发行版中推荐使用的包管理工具如下

  • CentOS -> yum
  • Debian -> apt-get
  • Ubuntu -> apt-get

通过包管理工具,可以轻松安装相应的包,直接就可以在命令行中使用。

其他还有一些相应格式安装包对应的安装工具,比如用于安装.deb文件的dpkg,还有用于安装.rpm文件的rpm

包的其实也不是什么高深的东西?其实就是一个或多个拥有可执行权限的文件,比如我们执行node命令,实际上就是执行了一个可执行的二进制文件。

我们可以使用which命令查看可执行文件在哪里?例如which node

基本命令

帮助命令

man

绝大部分的软件安装都为执行程序提供了帮助手册
编译安装的软件,可以配置/etc/man.config
指定man手册路径

man命令大多给出的文档非常详细,可能有的时候并不想详读,这时候推荐使用tldr查看帮助文档。tldr是一个在线的帮助文档工具,提供的文档比较社区化,简短易懂,悲伤的是Linux机器上默认是没有tldr的,需要自己安装下,详细文档在这里。

目录&文件命令

命令 简介 示例
cp 复制文件/目录 cp path/to/file.ext path/to/copy.ext
cp path/to/file.ext path/to/copy
rm 删除文件/目录 rm path/to/file
rm -r path/to/folder
mv 移动文件/目录 mv source target
which 查找命了文件所在位置 which node
find 查找文件或目录 find root_path -name '*.ext'
find root_path -size +500k -size -10MB
ln 创建文件/目录的链接 ln node-v6.2 node
touch 新建空文件 touch filename
file 查看文件类型 file filename
pwd 查看当前工作目录 pwd
cd 切换工作目录 cd /path
ls 显示目录内容 ls -lh
mkdir 创建新的目录 mkdir –p /directory
du 统计目录及文件的空间占用情况 du -sh
du -h --max-depth=N path/to/folder

Tips: 几个常见的命令行参数
-h -human-readable 以人能看懂的方式展示
-r 递归文件夹
-f -force 强制

内容查看命令

命令 简介 示例
cat 查看显示文件内容 cat filename
more/less 分页查看文件内容 less filename
head/tail 查看文件开头/末尾的部分内容 tail -f web.log
wc 统计文件内容的单词数量等信息
grep 检索过滤文件内容 `cat package.json grep 'vue'`

在文件查看命令中,我个人最推荐使用less命令,比较强大,基本可以满足我个人的所有需求


此为第一节全部内容,下一节我将详细介绍一些进程管理,CPU,内存使用量相关的命令,敬请期待。

Hi,我叫Geoff Zhu,是一名前端工程师,我会不定期的在这个博客中更新一些我写的东西,希望能对你有所帮助。这是我的Github,如果可以给个star什么的,不胜感激。

你可能感兴趣的:(linux,linux入门)