当前位置: 首页 > Linux

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

时间:2023-04-07 01:47:50 Linux

随着业务架构??的演进,服务端和客户端的渲染层由FEer来处理,越来越多的前端开始接触Linux,做一些NodeJS项目安装部署等本文主要内容是介绍Linux下的基础知识和常用命令,帮助前端工程师在服务器端自由使用Maxthon。Distributions目前互联网公司使用的发行版主要有以下三种:CentOS、Debian、Ubuntu是如何知道一台机器的发行版的?lsb_release-a想了解一台机器的基本信息(内核版本等)?uname-基本概念用户和用户组在Linux中,每个用户都属于一个用户组。文件和目录的读写权限是根据用户和用户组来区分的。对于组外的用户,称为其他用户`。目录在Linux下是一等公民,一切都以/开头。先解释一下系统根目录下的一些常规文件夹是干什么的?详见本表目录名介绍/opt第三方软件/bin一般用户可以使用一些可执行文件/sbin一些系统可执行文件/tmp临时文件/home一般用户文件目录/root根用户文件目录/boot内核文件andboot引导程序等/dev设备文件/etc各种软件配置文件和启动脚本/lib一些系统依赖库/usr一些系统软件所在的目录/var上表中的一些系统日志文件和缓存文件上面的/boot目录是我们必须要了解清楚的目录。至于/boot及以下的目录,我们只需要粗略的了解一下即可。包管理工具每个平台都有自己的包管理工具。作为一个经常使用Mac的前端工程师,你肯定知道Homebrew,而且经常会自己brewinstall。安装好之后就可以在命令行使用了,非常方便。Homebrew默认源是海外的,速度很慢,所以大家一般都换成国内的源,这和把npm切入淘宝源是一样的。你为什么要谈论这么多关于Mac的事情?原因是这种包管理机制与Linux的各个发行版是一致的。各发行版推荐的包管理工具如下:CentOS->yumDebian->apt-getUbuntu->apt-get通过包管理工具,可以方便的安装对应的包,直接在命令行使用。还有其他安装工具对应相应格式的安装包,如安装.deb文件的dpkg,安装.rpm文件的rpm等。包裹居然不是高深的东西?其实就是一个或多个具有可执行权限的文件。比如我们在执行node命令的时候,实际上执行的是一个可执行的二进制文件。我们可以使用which命令查看可执行文件在哪里吗?比如whichnodebasiccommandhelpcommandman大多数软件安装都会提供程序执行的帮助手册编译安装的软件,可以配置/etc/man.config指定man手册路径有时候不想看详细。这个时候推荐使用tldr查看帮助文档。tldr是一个在线帮助文??档工具。提供的文档相对基于社区,简短且易于理解。遗憾的是在Linux机器上默认没有tldr。你需要自己安装。详细的文档在这里。Directory&File命令命令介绍示例cpcopyfile/directorycppath/to/file.extpath/to/copy.extcppath/to/file.extpath/to/copyrmdeletefile/directoryrmpath/to/filerm-rpath/to/foldermvmovefile/directorymvsourcetargetwhich查找文件的位置whichnodefind查找文件或目录findroot_path-name'*.ext'findroot_path-size+500k-size-10MBln创建文件/directorylinklnnode-v6.2nodetouch创建一个空文件touchfilenamefile查看文件类型filenamepwd查看当前工作目录pwdcd切换工作目录cd/pathls显示目录内容ls-lhmkdir创建新目录mkdir–p/directorydu统计目录和文件空间占用du-shdu-h--max-depth=Npath/to/folderTips:几个常用的命令行参数-h-human-readable以人类可读的方式显示-r递归文件夹-f-force强制内容查看command命令介绍示例catview显示文件内容catfilenamemore/less分页查看文件内容lessfilenamehead/tail查看文件开头/结尾的部分内容tail-fweb.logwc统计文件内容的字数和其他信息grep检索过滤文件内容catpackage.jsongrep'vue'文件查看命令中个人比较推荐使用less命令,比较强大,基本可以满足我个人的所有需求。这就是第一节的全部内容,我会在下一节中详细介绍一些与进程管理、CPU、内存使用相关的命令,敬请期待。大家好,我叫GeoffZhu,我是一名前端工程师。我会不定期更新我在这个博客里的一些写法,希望对你有所帮助。这是我的Github,如果你能给个star什么的,我将不胜感激。