前言在翻译了TypeScript官方文档后,我用VuePress搭建了一个博客,实现了GitHub和GiteePages的自动部署,但最终还是决定自己搭建一个网站,并在建站过程在博客中,肯定会用到Linux命令,所以本文写了一个足够基础的Linux命令,涵盖了博客建站系列文章中用到的各种命令,方便查询和学习。0.Owner,Group,Others,RootLinux系统是一个多用户系统,将文件访问者身份分为三种:文件所有者(Owner)在创建用户时,Linux会为该用户创建一个主目录,路径为/home/<用户名>,我们可以使用cd~快速进入home目录。如果你想放一个私有文件,你可以把它放在你的主目录下,然后设置为只有你自己可以查看。群组(Group)每个用户都有一个用户组,方便多人操作时给一组人分配权限。创建用户时,会自动创建一个与其同名的用户组。如果一个用户同时属于多个组,则该用户需要在用户组之间切换,才能拥有其他用户组的权限。其他人是既不是文件所有者也不是文件所属组成员的用户。超级用户(Root)Root用户是一种特殊的用户,该用户可以访问所有文件。1.adduseradduserandpasswdchangepassword#addusernamedgitaddusergit#setthepasswordofgituserpassedgit但是由于创建的用户权限较低,所以有时候我们需要提权用户,这时候我们可以做this:#将打开sudoers配置文件sudovisudo注意sudoers配置文件也是编辑的,使用这个命令会比使用sudovim/etc/sudoers更安全,除了语法验证,它也会被多个用户编辑锁定文件。打开sudoers配置文件后,我们添加这一行配置:#AllowgittorunanycommandsanywheregitALL=(ALL:ALL)ALL简单解释一下这句话gitALL=(ALL:ALL)ALL:git代表申请的用户规则第一个ALL表示规则适用于所有主机,第二个ALL表示规则适用于所有用户,第三个ALL表示规则适用于所有组,第四个ALL表示规则适用于所有命令.我们保存退出后,git用户就会获得root权限。2.lslistfilesanddirectorieslslistfilesanddirectories[root@iZ2zelearn-typescript.git]#lsbranchesconfigdescriptionHEADhooksindexinfoobjectsrefsls-lashowallfilesanddirectories(includinghidden)by-aand-al显示详细列表组成:[root@iZ2zelearn-typescript.git]#ls-latotalusage20drwxrwxr-x7gitgit132December1512:33.drwx------3gitgit127December1514:51..drwxrwxr-x2gitgit6Dec1512:21branches-rw-rw-r--1gitgit66Dec1512:21config-rw-rw-r--1gitgit73Dec1512:21描述-rw-rw-r--1gitgit23Dec1512:21HEADdrwxrwxr-x2gitgit4096Dec1513:10hooks-rw-rw-r--1gitgit217Dec1512:33indexdrwxrwxr-x2gitgit21Dec1512:21infodrwxrwxr-x10gitgit90Dec1512:33objectsdrwxrwxr-x4gitgit31Dec1512:21refseachline共有7列,我们以分支为例来解释各栏含义:drwxrwxr-x2gitgit6December1512:21branches文件类型及权限信息链接号或一级子目录号所属组文件大小,单位字节最后修改时间文件名关注第一栏内容。以drwxrwxr-x为例,这里一共有10位,第一位表示文件类型,其中-表示普通文件,d表示目录文件。第2~4位代表所有者权限,其中r代表读权限,w代表写权限,x代表可执行权限,-代表无权限,第2~5位为rwx,表示所有者可以读,编写并实施。第5到7位代表组用户权限,这里也是rwx。第8位到第10位表示其他用户权限,这里是r-x,表示可读和可执行权限,但没有写权限。这里补充一点:root用户创建的文件夹默认权限为rwxr-xr-x:[root@iZ2zewww]#mkdirtest[root@iZ2zewww]#ls-ldrwxr-xr-x2rootroot61217号23:53测试创建文件默认权限为rw-r--r--,注意创建文件时会默认去掉x权限:[root@iZ2zewww]#touchindex.html[root@iZ2zewww]#ls-l-rw-r--r--1rootroot0December1723:54index.html这就是为什么我们有时需要在创建文件后添加执行权限的原因。3.chown改变文件属主,也可以改变文件组chown(changeowner)语法:#-R:递归改变文件组chown[–R]属主名文件名chown[-R]属主名:属组名文件名将index.html的所有者更改为git:[root@iZ2zewww]#chowngitindex.html[root@iZ2zewww]#ls--rw-r--r--1gitroot012Month1723:54index.html将index.html的所有者和组更改为git:[root@iZ2zewww]#chowngit:gitindex.html[root@iZ2zewww]#ls-l-rw-r--r--1gitgit012月17日23:54index.html4。chmod改变文件权限除了用rwx这种方式,还可以用数字来表示。数组与字母的对应关系为:r:4w:2x:1的对应关系,主要是为了推导方便。比如我们想要一个文件是可读可写的,那么我们可以方便的设置权限为6(4+2)。同理,如果我们知道一个权限是3,我们也可以推导出这个权限是可写和可执行的,因为只有2+1才能等于3。来看看chmod(改变模式)的具体语法:#-R:递归更改属于组的文件chmod[-R]xyz文件或目录其中xyz分别代表Owner、Group、Others的权限。如果我们这样设置一个文件的权限Permissions:chomd750index.html我们可以知道Owner的权限是7,表示可读、可写、可执行,Group的权限是5,表示可读、可执行,而Others的权限为0,表示不可读、不可写、不可执行。对应的字母是:rwxr-x---。除了这种数字方式,还有一种使用符号类型来改变权限的方式:在这种方式中,我们将Owner、Group、Others这三个身份缩写为u(User)、g、o,用a来表示他们对于所有的身份,都使用+-=来表示增加、移除、设置一个权限,而rwx则继续表示读、写、执行权限。例如:chomdu+x,g-x,o-xindex.html表示Owner加执行权限,GroupandOthers去掉执行权限。当然我们也可以直接设置权限chmodu=rwx,g=rx,o=rindex.html此时文件的权限就相当于-rwxr-xr--。另外,我们也可以省略ugoa等身份内容,直接写:chmod+xindex.html此时相当于使用a,会为所有身份增加执行权限。5.suswitchidentity#切换到git用户sugit6.whoami显示用户名#whoamiroot7。pwd显示当前目录[git@iZ2zewww]$pwd/home/www9.cd切换工作目录#enter/home/www/cd/home/www#进入自己的home目录cd~#进入当前目录的上下两层:cd../..10.mkdir创建目录mkdir创建目录:mkdirnew_foldermkdir-p递归创建目录:mkdir-pone/two/three11。touch创建文件修改文件或目录的时间属性。当文件不存在时,系统会创建一个空白文件touchnew_file12。echo打印输出echo是一个用于打印输出的shell命令:#显示转义字符echo"\"testcontent\""创建或覆盖文件内容为“testcontent”:echo"testcontent">index.html如果你想要添加内容,请使用>>:[root@iZ2zewww]#echo"testcontent">index.html[root@iZ2zewww]#catindex.htmltestcontent[root@iZ2zewww]#echo"testcontent">>index.html[root@iZ2zewww]#catindex.htmltestcontenttestcontent13.catlinkfile并打印输出查看文件内容:cat~/.ssh/id_rsa.pub清除index.html的内容:cat/dev/null>index.html将index.html的内容写入second.html:catindex.html>第二个。html将index.html的内容附加到second.html:catindex.html>>second.html将index.html和second.html附加到third.html:catindex.htmlsecond.html>>third.html14.cp复制文件或目录将目录website/下的所有文件复制到新目录static:#-r:如果给定的源文件是目录文件,将复制该目录下的所有文件cp–rwebsite/static15.mv移动并重命名文件重命名:mvindex.htmlindex2.html隐藏文件:#添加.mvindex.html到文件名.index.html移动文件:#只是移动mv/home/www/index.html/home/static/#移动并重命名mv/home/www/index.html/home/static/index2.html批量移动:mv/home/www/website/*/home/www/static16.rmdeleteafileordirectory#系统会询问rmfile#-f表示直接删除#-r表示删除目录下的所有文件#删除当前目录下的所有文件和目录rm-r*#跑掉rm-rf/*17。vi/vimLinux内置vi文本编辑器,Vim是从vi发展而来的文本编辑器。基本上vi/vim分为三种模式,分别是Commandmode、Insertmode和Lastlinemode。我们在运行的时候引入这三种模式:我们执行vimindex.html,如果没有这个文件,会创建一个文件:vimindex.html此时界面是:这是命令模式,在命令模式,任何输入的字符都会被视为命令,下面几个常用的命令:i切换到输入模式。x删除当前光标位置的字符。:切换到底线命令模式。当我们按下i,我们会进入输入模式:在输入模式下,左下角有一个--INSERT--标志:此时我们可以进行各种输入,当输入完成后,按ESC键回到命令模式:此时左下角的INSERT已经消失了。如果我们要保存退出,首先输入:进入底线命令模式:在底线命令模式下,常用的命令有:w保存文件q退出程序。我们输入wq保存退出,此时我们已经发现并创建了一个HTML文件。18、ssh远程连接工具注意ssh监听端口为22,其基本语法为:ssh[OPTIONS][-pPORT][USER@]HOSTNAME[COMMAND]监听端口示例:ssh-p300git@8.8.8.8开启调试模式:#-v详细模式,打印运行状态调试信息ssh-vgit@8.8.8.8系列文章系列文章目录地址:https://github.com/mqyqingfeng/Blog微信:《mqyqingfeng”,加我到世优唯一的读者群。如有错误或不准确的地方,请务必指正,万分感谢。如果你喜欢或者有启发,欢迎star,这也是对作者的鼓励。
