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

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

发行版

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

  • CentOS
  • Debian
  • Ubuntu

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

lsb_release -a

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

uname -a

基本概念

用户与用户组

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

目录

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

目录名简介
/opt第三方软件
/bin一般用户可用一些执行文件
/sbin一些系统执行文件
/tmp临时文件
/home一般用户的文件目录
/rootroot用户的文件目录
/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.jsongrep ‘vue’`

在文件查看命令中,我个人最推荐使用less命令,比较强大,基本可以满足我个人的所有需求
《前端工程师应该知道的Linux知识(一)》

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

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

    原文作者:GeoffZhu
    原文地址: https://segmentfault.com/a/1190000012721734
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞