随着业务架构演进,服务端和客户端的渲染层均交由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什么的,不胜感激。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。