Linux和Git世界之旅

老实说,在大流行期间,我不会学习Linux,我认为在此OS上工作的能力不会使我变得更有生产力。但是,事实证明,Linux技能确实可以帮助我更快地完成工作。当我被建议“看看Linux”时,一切就开始了。然后我想,该为我做什么,什么都没做,甚至连9月份的#IBelieveinDoing都证明只与Linux有关。



我觉得一切都会对我有用,并开始了Linux世界之旅。在#IBelieveinDoing问题中,不仅有关于Linux的教程,而且还有关于Git的教程。在这些系统之间可以得出一些相似之处。Linux是程序员使用的开源OS,而Git是版本控制系统,用于在开发程序时跟踪对源代码的更改。应当指出,学习Linux和Git真是令人兴奋的经历。但是Git是一个非常复杂的系统,因此基础知识比Linux基础知识更难掌握。 在本文中,我想与您分享在掌握Linux和Git时学到的知识。











基本的Linux命令



pwd:此命令用于显示有关工作目录的信息。



ls:使用此命令可以显示有关目录内容的信息。如果以这种形式执行,没有命令行参数,它将以默认格式提供信息。



cd:此命令用于更改目录。





试用Linux命令



cp:该命令用于复制文件和文件夹。



mv:使用此命令,您可以重命名或移动文件和文件夹。



touch:此命令用于创建空文件并更改文件的时间戳。



cat:此命令允许您查看文件的内容,借助它的帮助您可以创建文件的副本,将某些文件的内容附加到其他文件。



tree:此命令允许您以树状格式显示目录信息。默认情况下,该命令在其输出结构中显示有关文件夹和文件的信息以及有关文件和文件夹数量的信息。这是其用法的一个例子





使用树命令的示例



这里的文件夹名称以蓝色突出显示,文件名称为白色。在此命令显示的结构中使用其他颜色。



echo:此命令用于在屏幕上显示传递给它的数据。



grep:此命令用于处理文本数据。特别是,它允许您搜索字符串。



tail:此命令打印文件的最后10行。





使用grep和cat命令的示例



awk:该命令旨在与相应的实用程序一起使用,该实用程序为我们提供了用于处理字符串的强大工具,其功能可与成熟的编程语言中提供的功能相媲美。



在Linux中,您可以使用管道,管道是一种单向管道,可用于在进程之间进行通信。描述管道时,使用符号(|)。例如,使用此符号,您可以将一个命令的输出路由到另一个命令的输入。





使用管道的示例



ssh:此命令允许您使用ssh客户端,该客户端用于连接到远程系统并在它们上执行命令。SSH协议旨在组织计算机的安全交互。



rm:此命令用于删除文件和文件夹。例如,以格式调用它rm file会导致文件的删除,而以rm -r directory格式会导致目录及其所有内容的删除。



Linux目录结构



Linux使用树状目录结构。该层次结构的开始在根目录中。所有其他目录都嵌套在此目录中。指定文件和文件夹的路径时,正斜杠(/用于分隔目录名称



这就是Linux系统上文件系统的结构。





Linux



中的目录结构这些是一些重要文件夹的特征。

目录路径 笔记
/


根目录。
/home


用户资料的存储目录。
/boot


这是运行Linux所需的文件的存储位置。
/bin


可执行文件位于此处。
/var


包含系统和已安装程序使用的各种文件。这些可以是日志文件,数据库,缓存的网页内容。


绝对地址和相对地址



绝对文件路径始终包含从根目录到包含所需文件的目录的完整路径。



相对路径是相对于当前目录的。





实验路径



下表描述了一些特殊的相对路径。

相对路径 描述 范例注释
.


当前工作目录。
ls .


显示有关当前目录内容的信息。
..


父目录。
cd ..


上一级转到父目录。
-


上一个工作目录。
cd -


返回上一个工作目录。




使用特殊相对路径的示例



硬链接和硬链接



软(符号)文件链接包含指向文件名的指针。这些链接类似于用于从不同目录快速访问文件的快捷方式。如果删除了具有软链接的文件,则该链接将保留,但将停止工作。



硬链接是指向硬盘驱动器上文件所在位置的链接。只要文件至少存在一个硬链接,系统就会认为该文件存在。实际上,如果文件具有多个硬链接,则可以将其与具有多个名称的文件进行比较。



该命令用于创建文件的硬链接和软链接ln这是一个使用它创建符号链接的示例:



ln -s /path/to/file linkname


命令行为控制



Linux命令的行为可以通过在调用它们时传递命令行参数(开关,选项,标志)来控制。它们通常看起来像连字符(-),后跟一个字母的键名(例如,这种构造可能看起来像 -a)。它们也可以看起来像两个连字符(--),后跟更长的键名(--all)。



要查找有关Linux命令的更多信息,可以使用内置的帮助系统,该系统可通过command访问man。例如,ls您可以使用该命令获取有关命令的帮助man ls。以下是该命令的结果。





Ls命令



参考命令参考页面分为几个部分。其中包括:



  • NAME(名称)。它包含命令的名称以及其作用的简要说明。
  • SYNOPSIS(命令语法摘要)。这是如何使用命令的图。
  • DESCRIPTION(描述)。本节详细介绍了该命令及其支持的命令行开关。


例如,该命令ls通常与一个选项一起使用,该选项-l使您可以显示有关目录内容的详细信息。





使用ls -l命令



在上一个图像中,您可能已经注意到view结构drwxr-xr-x这是文件权限的描述。



档案权限



假设我们有以下构造描述文件权限:



- rwx r-- r--


请注意,其中可以区分四组符号:



  1. 第一个符号表示我们正在处理的内容。即,如果此处有(-符号,则我们前面有一个文件。字母(d)表示目录。字母(l)用于链接。
  2. 以下三个符号可让您知道所有者对给定文件必须具有的权限:r-读取,w-写入,x-执行。完整的权限集由一个序列表示rwx,如果缺少某个权限,则在相应位置放一个符号(-)。
  3. , ( , ). , .
  4. , , , , .


该命令用于管理文件权限chmod。例如,为了增加访问文件权限的现行规则来运行它,你可以用下面的方式调用:chmod +x <filename>。设计+x表明已为所有用户添加此权限。



让我们讨论使用配置文件权限的一些细节chmod。因此,为了向所有用户分配一定的权限,使用了与上述类似的构造+x。 (+运算符用于添加权限,(-运算符用于删除权限,(=运算符用于为拥有文件(u,user)的用户,组(g,组),其他用户(o,其他)和所有用户(a,全部)。这是在视图构造中完成的chmod u=rwx,g=rx,o=rx filename



分配权限时,它们通常以数字形式编写。八进制代码对应于某些权利。因此,x相应的代码1w适当的代码2r相应的代码4。代码0对应于完全没有使用该文件的权限。文件的权限由一个三位数的数字描述,数字的顺序与许可组的上述顺序相对应。也就是说,第一个数字描述文件所有者的权限,第二个数字描述组权限,第三个数字描述其他用户的权限。这些数字是授权代码的总和rwx



例如,一种格式的命令chmod 444 filename意味着每个人将仅具有读取文件的权利(r--r--r--),而该格式的命令chmod 700 filename表明所有者将具有读取,写入和运行文件的权利(rwx, 4+2+1),其他任何人都无权对该文件执行任何操作。 (rwx------)。



使用Git



使用Git时,通常使用以下操作序列:



  1. 修改本地工作目录中的文件。
  2. 文件索引(命令git add)。
  3. 将索引数据的快照保存在内部数据库(git commit)中。
  4. 将更改从本地存储库提交到远程(git push)。
  5. 将更改从远程存储库加载到本地存储库(git pull)。


这是说明此步骤顺序的图。





使用Git时,典型的Git工作流



文件可以处于不同的状态。





文件状态



  • Untracked是Git不会监视更改的文件。该文件可以添加到索引中并处于暂存状态。
  • 未修改-已被监视但其内容未更改的文件。如果删除此文件,将不再对其进行监视。如果更改它,它将进入已修改状态。
  • 已修改-正在监视的文件,其内容已更改。可以建立索引并将其置于暂存状态。
  • 暂存是正在监视的文件并包含在索引中。可以将相应的更改合并到Git数据库中。


让我们看一些Git命令。



git init:此命令在目录中创建一个空的Git存储库。这是创建新存储库的第一步。执行完此命令后,可以使用命令git addgit commit





Git init



git add命令:此命令将文件添加到索引。它以以下形式支持git add .将所有未索引的文件添加到索引中,以以下形式git add filename-将特定文件添加到索引中,以表单git add dirname-将目录添加到索引中。





Git add



git commit命令:此命令将更改写入本地存储库。类似于命令名称,将这些更改称为“ commits”。每个提交都有一个唯一的标识符,这使得使用提交更加容易。





Git commit



git status命令:此命令允许您获取有关存储库当前状态的信息。





Git status



git config命令:此命令允许您自定义Git。在设置中,可以注意Gituser.nameuser.email。它们包含提交中使用的用户名和电子邮件地址,并指出是谁创建的。如果在调用命令时使用git config标志,则--global设置将应用于所有本地存储库。如果没有此标志,则设置仅适用于当前存储库。





Git config



git checkout命令:此命令用于在存储库的分支之间切换(如git checkout <branch_name>)。在它的帮助下,您可以创建一个新分支并切换到该分支(git checkout -b <new_branch>)。



git merge:此命令允许您合并存储库的分支。它将一个分支中的更改合并到另一个分支中。例如,有一个分支正在开发新的项目功能。此功能完成后,更改将推送到存储稳定功能的分支。



git clone:此命令用于创建远程存储库的本地工作副本。执行后,远程资源库的资料将下载到计算机中。克隆现有存储库相当于使用以下命令创建新存储库git init... 但是在克隆时,我们有一个可用的存储库,其中已经有东西,而在执行命令时git init,则有一个空的存储库。



git pull:此命令用于从远程存储库下载新数据。



git push:此命令可用于将本地提交推送到远程存储库。调用此命令时,需要向其传递有关远程存储库和本地存储库分支的信息,这些信息需要发送到远程存储库。



结果



我告诉了您在进入Linux和Git的过程中学到的所有知识。那真是太让人激动了。希望您会做类似的事情,学习新的东西,从而拓宽您的专业视野。



如果您最近掌握了一些有趣的东西-请告诉我们。










All Articles