问题

Linux该如何入门?

回答
想要踏入 Linux 的世界,就像学习一门新的语言一样,一开始会觉得陌生,但随着探索的深入,你会发现它充满逻辑和力量。下面,我将为你一步步拆解 Linux 的入门路径,力求详细,让你能更扎实地迈出第一步。

第一步:认识 Linux,它是什么,为何要学?

首先,别被“Linux”这个名字吓到。它不是一个操作系统,而是一个内核。我们日常接触的所谓“Linux”系统,比如 Ubuntu, Fedora, CentOS 等,实际上是基于 Linux 内核,并加上了各种软件组合而成的发行版。你可以把它想象成乐高积木,Linux 内核是核心的那个连接件,而各种发行版就是用这个连接件拼搭出来的不同主题的积木套装。

那么,为什么要学 Linux 呢?

服务器领域的主导者: 绝大多数的互联网服务器、云计算平台都运行在 Linux 上。如果你想从事后端开发、运维、云计算相关工作,Linux 是绕不开的技能。
开发者友好: 许多编程语言、开发工具、版本控制系统(如 Git)在 Linux 上有着最佳的支持和生态。
开源精神: Linux 是开源软件的典范,这意味着你可以自由地查看、修改和分发它的源代码。这背后是一种开放、协作的精神,非常值得学习和体验。
灵活性和定制性: Linux 系统极其灵活,你可以根据自己的需求进行高度定制,从桌面环境到系统服务,都可以随心所欲。
学习底层原理的机会: 使用 Linux,你会接触到更底层的操作系统概念,比如文件系统、进程管理、网络配置等,这对于理解计算机工作原理非常有帮助。

第二步:选择一个“门”,如何开始体验 Linux?

既然要学,总得有个地方实践。有几种主流的方式可以让你开始接触 Linux:

1. 虚拟机(Virtual Machine): 这是最推荐的入门方式。你可以使用 VMware Workstation Player(免费)、VirtualBox(免费)等软件,在你的 Windows 或 macOS 系统中虚拟出一台独立的电脑,然后在里面安装 Linux 发行版。这样做的好处是:
安全隔离: 不会影响你现有的操作系统,即使搞砸了,删掉虚拟机就行。
灵活尝试: 可以安装不同的发行版,体验各种桌面环境,随时可以重装或回滚。
资源占用相对可控: 可以根据你的电脑配置分配虚拟机的 CPU、内存、硬盘等资源。

推荐的虚拟机软件:
VirtualBox: 免费且功能强大,跨平台支持好,非常适合初学者。
VMware Workstation Player: 免费版本,性能和稳定性通常比 VirtualBox 更好一些,但功能上有所阉割。

2. 双系统(Dual Boot): 如果你对自己的操作能力有信心,并且想获得更接近原生性能的体验,可以考虑在电脑上同时安装 Windows/macOS 和 Linux。这样做需要你在安装时对硬盘进行分区。
优点: 性能最好,直接利用硬件资源。
缺点: 安装过程相对复杂,操作不当可能导致现有系统数据丢失,切换系统需要重启。

3. WSL (Windows Subsystem for Linux): 如果你使用的是 Windows 10 或 Windows 11,这是另一个非常方便的选择。它允许你在 Windows 中直接运行一个 Linux 环境,并且与 Windows 文件系统能够很好地交互。
优点: 无需虚拟机,安装简单,启动速度快,与 Windows 结合紧密。
缺点: 主要适用于命令行环境,图形界面的支持相对有限,性能上可能不如原生或虚拟机。

第三步:选择你的“第一个家”,推荐的 Linux 发行版

市面上的 Linux 发行版众多,各有千秋。对于初学者,选择一个易于上手且社区活跃的发行版至关重要。

Ubuntu: 毫无疑问是初学者的首选。它拥有极其庞大的用户社区,丰富的使用文档和教程,软件安装和管理也相对简单。Ubuntu 有桌面版和服务器版,桌面版提供了友好的图形界面,让你能像使用 Windows 一样使用它。
Linux Mint: 基于 Ubuntu,但提供了更传统、更稳定的桌面体验,对于从 Windows 过来的用户来说,可能更容易适应其界面和操作逻辑。
Fedora: 由 Red Hat 公司赞助的社区项目,以其前沿的技术和最新的软件版本而闻名。如果你对尝试新事物感兴趣,Fedora 是个不错的选择,但有时可能不如 Ubuntu 稳定。
CentOS Stream/Rocky Linux/AlmaLinux: 这些是 RHEL(Red Hat Enterprise Linux)的开源衍生版。如果你将来想接触企业级服务器环境,学习它们会很有帮助。但对于纯粹的桌面入门,它们可能略显“硬核”。

我强烈建议初学者从 Ubuntu 桌面版开始。

第四步:安装你的第一个 Linux 系统

以 Ubuntu 桌面版为例,在虚拟机中安装是一个循序渐进的过程:

1. 下载 Ubuntu 镜像: 访问 Ubuntu 官网 (ubuntu.com),下载最新 LTS (Long Term Support,长期支持) 版本的桌面 ISO 镜像文件。LTS 版本通常更稳定,支持时间更长。
2. 创建虚拟机: 打开你的虚拟机软件(如 VirtualBox)。
点击“新建”或“创建虚拟机”。
选择“典型”或“自定义”模式(自定义模式能让你更了解每一步的设置)。
为虚拟机命名(例如:“My Ubuntu VM”)。
设置内存大小(建议至少 4GB,越多越好,取决于你的物理内存)。
创建虚拟硬盘(动态分配大小,建议至少 30GB)。
在虚拟机设置中,找到“存储”选项,将你下载的 Ubuntu ISO 文件加载到虚拟光驱中。
3. 启动虚拟机并安装 Ubuntu:
启动你刚刚创建的虚拟机。它会从 ISO 镜像启动。
你会看到 Ubuntu 的安装界面。选择“Install Ubuntu”。
选择语言: 简体中文。
键盘布局: 通常选择“美式键盘”。
更新和其他软件:
“正常安装”会包含浏览器、办公软件、图片编辑器等常用软件。
“最小安装”只包含基础系统和 Web 浏览器。
勾选“安装第三方软件用于显卡和 WiFi 硬件以及其他媒体格式”可以省去后续一些驱动安装的麻烦。
安装类型:
清除整个磁盘并安装 Ubuntu: 这是虚拟机中最安全的选项,它会格式化虚拟机里的虚拟硬盘,然后安装 Ubuntu。
如果你是安装双系统,这里会有“与 Windows 共享磁盘安装”等选项,需要格外小心操作。
设置时区、用户名和密码: 填写你的信息,并设置一个安全的密码。 请牢记你的用户名和密码!
开始安装: 等待安装完成。
重启: 安装完成后,它会提示你重启。在重启前,记得从虚拟机设置中移除 Ubuntu 的 ISO 文件,以免再次从安装盘启动。

第五步:进入 Linux 的世界,拥抱命令行

安装完成后,你就会看到熟悉的 Ubuntu 桌面。但 Linux 的真正力量,很多时候体现在命令行界面(Terminal)。

认识 Terminal (终端):

Terminal 是一个强大的文本界面,你可以在这里输入命令来与操作系统进行交互。你可以通过点击桌面上的 Terminal 图标或者使用快捷键 `Ctrl + Alt + T` 来打开它。

一些你必须知道的基础命令:

在 Terminal 中,你输入命令,按下回车键执行。命令通常由“命令名”和“选项”(以 `` 开头)以及“参数”组成。

`pwd` (print working directory): 显示你当前所在的目录。就像你在文件管理器中看到你现在身处哪个文件夹一样。
`ls` (list): 列出当前目录下的文件和子目录。
`ls l`: 以长格式显示,包含文件权限、所有者、大小、修改时间等详细信息。
`ls a`: 显示所有文件,包括隐藏文件(以 `.` 开头的文件)。
`cd` (change directory): 切换目录。
`cd /home/your_username`: 进入你的用户主目录。
`cd ..`: 回到上一级目录。
`cd ~`: 回到你的用户主目录。
`cd`: 如果不带参数,也会回到你的用户主目录。
`mkdir` (make directory): 创建新目录。
`mkdir new_folder`: 在当前目录下创建一个名为 `new_folder` 的目录。
`rmdir` (remove directory): 删除空目录。
`rmdir old_folder`: 删除名为 `old_folder` 的空目录。
`touch`: 创建一个空文件,或者更新已有文件的访问和修改时间。
`touch new_file.txt`: 创建一个名为 `new_file.txt` 的空文件。
`cp` (copy): 复制文件或目录。
`cp file1.txt file2.txt`: 将 `file1.txt` 复制成 `file2.txt`。
`cp file1.txt /path/to/directory/`: 将 `file1.txt` 复制到指定目录。
`cp r folder1 folder2`: 递归复制目录 `folder1` 到 `folder2`。
`mv` (move): 移动文件或目录,也可用于重命名。
`mv file1.txt /path/to/new_location/`: 将 `file1.txt` 移动到新位置。
`mv old_name.txt new_name.txt`: 将 `old_name.txt` 重命名为 `new_name.txt`。
`rm` (remove): 删除文件或目录。 这是一个危险的命令,删除的文件通常无法恢复! 请谨慎使用。
`rm file_to_delete.txt`: 删除文件。
`rm r folder_to_delete`: 递归删除目录及其内容。
`rm rf folder_to_delete`: 强制递归删除目录及其内容,非常危险!
`cat` (concatenate): 连接文件并打印到标准输出设备(屏幕)。常用于显示文件内容。
`cat my_file.txt`: 显示 `my_file.txt` 的内容。
`more` / `less`: 分页显示文件内容。当文件很大时很有用。`less` 比 `more` 功能更强大,可以使用方向键和 PageUp/PageDown 滚动。
`grep`: 在文件中搜索匹配的字符串。
`grep "keyword" file.txt`: 在 `file.txt` 中搜索包含 "keyword" 的行。
`man` (manual): 显示命令的手册页(说明文档)。这是学习命令用法的最佳途径。
`man ls`: 显示 `ls` 命令的详细说明。按 `q` 键退出手册。

第六步:学习包管理,软件安装的利器

在 Linux 中,软件通常通过“包”(package)的形式进行分发和安装。包管理工具可以帮助你方便地搜索、安装、更新和卸载软件。

Ubuntu 使用的是 APT (Advanced Package Tool)。

更新软件包列表: 在安装新软件前,最好先更新本地的软件包索引,确保获取到最新的软件信息。
```bash
sudo apt update
```
`sudo` 是一个非常有用的命令,允许你以管理员(root 用户)的权限执行命令。在输入 `sudo` 命令后,系统会要求你输入你的用户密码。
升级已安装的软件包:
```bash
sudo apt upgrade
```
安装软件包:
```bash
sudo apt install package_name
```
例如,安装 `git`:
```bash
sudo apt install git
```
搜索软件包:
```bash
apt search keyword
```
例如,搜索与“web server”相关的软件包:
```bash
apt search web server
```
卸载软件包:
```bash
sudo apt remove package_name
```
卸载软件包并删除配置文件:
```bash
sudo apt purge package_name
```

第七步:了解 Linux 的核心概念

在实践中不断学习,同时也要花点时间理解一些核心概念,这将帮助你更深入地理解 Linux 的运作方式。

文件系统层级结构 (FHS Filesystem Hierarchy Standard): Linux 系统有一个标准的目录结构,理解它能帮助你快速找到你需要的文件和配置。
`/`: 根目录,所有目录的起点。
`/bin`: 用户命令(binary files),如 `ls`, `cp`, `mv` 等。
`/sbin`: 系统管理命令(superuser binary files),通常只有 root 用户才能执行。
`/etc`: 配置文件目录。
`/home`: 用户主目录,每个用户都有一个以自己名字命名的子目录。
`/usr`: 用户程序和数据目录,包含很多子目录如 `/usr/bin`, `/usr/lib` 等。
`/var`: 变量数据目录,包含日志文件(`/var/log`)、缓存文件等。
`/tmp`: 临时文件目录。
用户和权限: Linux 是一个多用户系统,每个文件和目录都有所有者、所属组以及其他用户的权限(读、写、执行)。理解 `chmod` 和 `chown` 命令是管理权限的关键。
进程管理: 系统上运行的程序就是进程。你可以使用 `ps` 命令查看进程,`kill` 命令终止进程。
Shell: 你输入的命令就是在 Shell 中执行的。最常见的 Shell 是 Bash (Bourne Again Shell)。Shell 不仅仅是命令解释器,它还支持脚本编程,可以让你自动化许多任务。

第八步:持续学习与实践

Linux 的学习是一个持续的过程。以下是一些建议:

动手实践: 不要害怕在虚拟机里尝试各种命令和操作。
阅读文档和教程: Linux 有大量的优质文档和教程。遇到问题时,先尝试搜索。
参与社区: 如果遇到无法解决的问题,可以到相关的 Linux 论坛或社区寻求帮助。
学习 Shell 脚本: 一旦熟悉了基本命令,就可以开始学习编写 Shell 脚本来自动化重复性任务,这是 Linux 管理和开发的强大技能。
探索不同的桌面环境: Ubuntu 默认是 GNOME 桌面环境,你也可以尝试 KDE Plasma, XFCE, LXQt 等,找到你喜欢的风格。
了解发行版的特点: 当你对 Ubuntu 熟悉了,可以尝试其他发行版,了解它们的异同。

一些入门建议,让你少走弯路:

不要一开始就尝试在物理机上安装双系统(除非你对硬盘操作非常熟悉)。 虚拟机是最佳的起点。
不要只停留在图形界面。 命令行是 Linux 的灵魂,勇敢地去学习和使用它。
遇到问题,先 Google (或百度/必应)。 大多数初学者遇到的问题,都可能已经被别人遇到并解决了。搜索时,尽量使用英文关键词,信息会更全面。
要有耐心。 学习新事物需要时间,保持好奇心和探索精神。

Linux 的世界广阔而精彩,它就像一把瑞士军刀,你可以用它来完成各种各样的事情。祝你在 Linux 的探索之旅中充满乐趣和收获!

网友意见

user avatar

很多人想学习Linux,却不知道怎么着手,甚至不知道Linux有哪些方向,跟题主一样迷茫。基于此,我特地写了篇文章介绍Linux方向性问题,没想到一不小心成了爆款:

看完这个回答,相信很多人至少知道了目前 Linux 从业者所从事的几个方向,对于方向选择有个大概的认知。

自我介绍一下。我是良许,本科及硕士所学专业却是机械,毕业后从零开始自学转行 IT,1 年后被世界 500 强外企所录用,目前是 Linux 工程师

本文将根据我的从业经验及与同行大佬的交流,介绍一些Linux学习方法,并且在文末赠送一些Linux书籍的电子版及及视频教程等资源,希望对大家有帮助!

书籍篇

对于Linux书籍的推荐,我特地写了几个回答来介绍,这里就不重复贴回答了:

有没有学习Linux比较好的入门书籍?

求推荐学习linux命令的书籍?

有没有比《鸟哥的Linux私房菜》更好的书?

嵌入式Linux有哪些好书推荐?

资源篇

不管学习什么技术,资源都是必不可少的。想当年,我自学转行,靠的就是大量的优质资源。优质资源会助你一臂之力,让你快速入门。

当然,我也整理了另外一些不错的资源,写在这个回答里了,大家可以看看:

想进大厂的同学,一定要好好学算法,这是面试必备的。这里准备了一份 BAT 大佬总结的 LeetCode 刷题宝典,很多人靠它们进了大厂。

如何入门并深入学习Linux

1. Linux学习路径

Linux应用开发自学之路这篇文章介绍了我从零开始自学转行Linux的完整过程,被很多大号转载,并且影响了很多人,大家可以参考。

自学简单编程可行吗?这篇文章更详细介绍了我是如何自学转行的,包括心路历程,转行过程,转行中需要注意的地方,以及更高效转行成功的方法。

Linux 思维导图整理(建议收藏)这是一个技术大佬整理的Linux思维导图,包括:Linux学习路径,Linux基础入门,Linux内核学习路线,Linux命令参考,Linux命令速查等等。这份导图虽然不是100%全面,但如果能够将里面全部内容掌握下来,你也是个高手了。

2. Linux环境搭建

2.1 虚拟机安装与配置

既然要学习Linux那肯定需要一个Linux环境。那么环境搭建有两个选择:1. 安装虚拟机;2. 直接在实体机上安装。对于这两个选择,我更倾向于第1个,因为前期学习一些命令及基础知识,直接在虚拟机上进行就可以了。

手把手教你安装Linux虚拟机

手把手教你配置Linux虚拟机

虚拟机常用的有两种:Vmware,VirtualBox。Vmware功能更强大,但是是收费的。而VirtualBox虽然功能不及Vmware,但对于新手完全够用了。这两篇文章所使用的是Wmare,手把手教你安装并配置虚拟机,图文并茂,一路跟下来就可以安装并配置好虚拟机,完成最基本的搭建。

2.2 主机与虚拟机文件共享

虚拟机安装好之后,还有一项很重要的工作要做,那就是实现虚拟机与主机的互通,也就是互相共享文件。实现文件共享有很多方式,一般而言有以下几种:

特别地,对于Vmware有一套自己的专属文件共享方式,VirtualBox应该也有,但我没去研究过。对于Windows与Linux之间的文件共享,我们一般会用到一款很强大的共享工具——WinSCP,当然还有很多类似工具,比如Xftp,FileZilla。这些工具其实都是基于FTP协议,使用起来也大同小异,都非常方便。

2.3 终端工具

作为一名Linux工程师,不管是运维还是开发,我们很多时间会是在命令行下工作。我一般是把虚拟机打开着,然后使用终端工具远程到虚拟机进行操作。这里推荐一款很强大的终端工具——MobaXterm,它的功能十分强大,界面也非常友好,我用上一次就爱不释手。

当然还有很多好用的终端工具,比如XShell、secureCRT、Putty、telnet等,选择一个自己最喜欢的工具即可。

2.4 编程工具

如果你是一名Linux开发人员,那你的工作肯定少不了编程。我一般的作法是,在Window上使用代码编辑工具编好代码,然后在Linux下编译。我经常使用两个工具:Notepad++Sourceinsight

使用notepad++远程编辑虚拟机文档

代码阅读神器——Sourceinsight

当然我们也可以直接在Linux下写代码,在Linux下编译。Linux下写代码也有很多软件,常用的比如最性感的编辑器——Sublime Text。

想进大厂的同学,一定要好好学算法,这是面试必备的。这里准备了一份 BAT 大佬总结的 LeetCode 刷题宝典,很多人靠它们进了大厂。

3. Linux基础知识

Linux环境搭建完毕之后,我们就可以正式进入到Linux的学习中来。

3.1 Linux系统架构

学习Linux,我们肯定要知道Linux的系统架构是怎样的。一般而言,Linux是由以下几部分构成:

  • 内核
  • bootloader
  • 文件系统
  • Shell
  • 应用程序

内核是Linux系统的核心,它往下直接与硬件打交道,向上连接应用程序。它是由Linux社区来共同维护,其中Linus是核心人物。内核主要是由C语言及少量汇编语言编写而成,是最著名的一个开源项目之一。内核的源码在这里,但对于初学者,就别指望能把它看懂。

初学者只要了解一些内核的基本架构即可,后期可以再进一步深入学习。网络上有一张非常经典的内核架构图,可以借助来理解内核。

Bootloader就是一个单片机程序,用来引导系统启动。这个程序比较简单,有些高手甚至自己手写了bootloader程序。

Linux文件系统有ext3、ext4等,而windows 有 fat32 、ntfs等。做底层开发的工程师需要深入了解,在此不赘述。

3.2 Shell

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器)。它的基本作用如下图示:

对于Shell的使用,有非常多坑,初学者一定要规避。在此,我也找了两篇Shell面试题,以帮助大家学习进步:

必会的 24 道 Shell 脚本面试题

10 个实战与面试【常用 Shell 脚本】编写

3.3 Vim

Vim是Linux里非常重要的一个编辑器,但是,它比较难,对于初学者非常不友好,号称上古神器。Vim有很多命令,所以我们首先要学习Vim的基本命令

如果你觉得Vim不好学,那么我介绍一款提高Vim水平的游戏。这款游戏灵感来自PacMan,让你使用Vim的命令去控制主角躲避怪物。把这款游戏玩熟练了,你的Vim水平也上了很大一个台阶。

当然如果是官方标配版的Vim,那其实还是非常不好用的。好在Vim社区有很多大神,他们开发了很多实用的插件,让Vim用起来不再那么难用,比如以下三款非常实用的插件:

Vim的三款实用插件

3.4 其它

除了以上3点,Linux系统还有很多基础知识,这些知识很多很细,没办法一篇文章讲完,需要在实践中慢慢学习。

比如Linux系统的目录结构,它是一个树状结构,跟Windows系统有本质的区别。

还有,Linux有很多快捷键,掌握了这些快捷键会为我们提高不少效率。

虚拟终端快捷键

4. Linux命令

众所周知,Linux有非常多命令,但是,刚开始学Linux千万别贪多,别想着一口吃成大胖子。对于普通人而言,先学会一些最基本的命令,再去拓展其它更高阶的命令。

Linux命令基本格式及目录处理命令

超好用的Unix/Linux 命令技巧 大神为你详细解读

给Linux小白看的命令行极简教程

Linux的10个最危险的命令

常用的命令可能就二三十个,当你把这二三十个命令都用得非常熟之后,你才算刚入门。当然,你别小看这些基础命令,很多基础命令有着自己的高级用法,当你把高级用法都玩透了,你就开始慢慢脱离小白了。

5分钟 more 命令从入门到精通

Linux下 ls 命令的高级用法8例

Linux 下你所不知道的 7 个 SSH 命令用法

5. Linux神器

在 Linux 下工作,有一些工具可能大大提高你的工作效率。有些工具大家可能耳熟能详,但还有更多神器可能连听都没听说过。

比如我们程序员经常需要绘制一些流程图,我们可以使用一些诸如EA之类的绘图工具,但这类工具很多都很庞大,而且比较难学。在Linux下其实我们可以使用dot工具简单高效绘图!

程序员轻松绘图神器

再如,我们如果和同事协作开发,想要把自己的操作过程录制下来,发给同事然后同事继续你的工作。或者,别人使用你的电脑,你想把他的操作记录下来,以免后期争议。这时,Script命令就派上用场了。

Linux终端里的记录器

当然还有很多非常实用的神器,限于篇幅就不一一列举了。

如何高效回退到特定层级目录?

Linux任务的前后台管理

Linux下如何高效切换目录?

6. Linux趣应用

工作都是乏味的,我们要在工作中找到一些乐趣。作为一个免费的操作系统,大量的爱好者为 Linux 写了很多很有趣的应用,不仅可以帮助我们提高工作效率,而且还可以给我们枯燥的生活带来乐趣。

Linux 终端给人的感觉就是黑漆漆一片,里面只能显示一些字符,而从来没见过显示图片的,但是,实际上,Linux 终端除了显示字符外,当然也可以显示图片(然后就可以用来看女神照片)。那是怎么实现的呢?这篇文章有答案:

什么?Linux 终端也可以用来看女神照片?

人这一辈子,真的是非常不容易:读书时,被老师、同学嘲笑,工作时,被老板、同事嘲笑,就连出去撸个串儿,还可能被朋友嘲笑……这些也就算了,毕竟大家还都是同类,都是活生生的人。但是,你如果被 Linux 终端给嘲笑了,你的内心会是什么感受?

说出来也许你不信,我被 Linux 终端嘲笑了…….

       [alvin@VM_0_16_centos ~]$ sldkf    Why are you doing this to me?!  -bash: sldkf: command not found [alvin@VM_0_16_centos ~]$ iehf    You are not as bad as people say, you are much, much worse.  -bash: iehf: command not found [alvin@VM_0_16_centos ~]$ sdfas    How many times do I have to flush before you go away?  -bash: sdfas: command not found     

Git 是用来做啥的?想必码农朋友都知道,Git 是版本控制软件,是软件开发过程中团队协作不可或缺的软件。但是,作为版本控制软件的 Git ,能跟聊天工具扯上关系吗?这二者似乎毫无关系,但脑洞大开的外国朋友活生生将 Git 改造成了一个聊天工具!

Git 居然可以用来跟女神聊天?

等等类似于此类的应用,这些应用虽然不是学习过程中的必需品,但却可以给我们的学习生活带来很多乐趣!

7. Git

作为程序员,肯定不是离开Git。Git是版本控制软件,是软件开发过程中团队协作不可或缺的软件。但可悲的是,在学校里很少会有Git相关课程,所以很多大学生都不知道有Git这个东西。

对于Git的入门,建议看 Pro Git 这本书,它是一本免费开源书,在它的官网上就可以直接在线阅读。

git-scm.com/book/zh/v2

Git虽然命令也很多,但基本的常用的也没几个。在使用Git的过程中,我们也要注意一些 Git 提交规范

如何高效的使用 Git

学会这两件事,让你成为 Git 老司机

你可能不太会用的 10 个 Git 命令

使用Git,就不得不提到GitHub。GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。由于开发人员多为男性,故又名GayHub……

很多小伙伴知道使用Git,却不知道如何在GitHub上与其他小伙伴一起协作,为此我特地写了一篇文章来介绍GitHub的协作方法

如何在GitHub上大显身手?

除此之外,还有你必须收藏的 GitHub 技巧

后记

Linux博大精深,绝非一篇文章就能讲透的。本文根据自己的一些经验,介绍了一些方向性的东西。大家如果按着这些方向去学习,也一定会成为大神!


最后,最近很多小伙伴找我要Linux学习路线图,于是我根据自己的经验,利用业余时间熬夜肝了一个月,整理了一份电子书。无论你是面试还是自我提升,相信都会对你有帮助!目录如下:

免费送给大家,只求大家金指给我点个赞!

电子书 | Linux开发学习路线图

也希望有小伙伴能加入我,把这份电子书做得更完美!

另外,想进大厂的同学,一定要好好学算法,这是面试必备的。这里准备了一份 BAT 大佬总结的 LeetCode 刷题宝典,很多人靠它们进了大厂。

有收获?希望老铁们来个三连击,给更多的人看到这篇文章

推荐阅读:

类似的话题

  • 回答
    想要踏入 Linux 的世界,就像学习一门新的语言一样,一开始会觉得陌生,但随着探索的深入,你会发现它充满逻辑和力量。下面,我将为你一步步拆解 Linux 的入门路径,力求详细,让你能更扎实地迈出第一步。第一步:认识 Linux,它是什么,为何要学?首先,别被“Linux”这个名字吓到。它不是一个操.............
  • 回答
    要配置一台 Linux 学习主机,我的建议是:够用就成,别贪大求全,先把基础打扎实最重要。 很多人一上来就想搞服务器级别的配置,其实对于学习来说,很多时候是过犹不及,反而会增加不必要的复杂度和成本。我帮你拆解一下,怎么选怎么配,让你心里有数。 一、 我为什么推荐自己组装?1. 成本控制: 这是最直接.............
  • 回答
    30岁想转行Linux运维,这可是个相当不错的想法!说实话,虽然听起来有点挑战,但现在的IT行业,尤其是运维这块,对有经验、有责任心的人才需求还是很旺盛的。如果你是下定决心要干,那咱们就一步一步来,把这个“何去何从”给梳理清楚。首先,咱们得承认,30岁转行,和刚毕业的小伙子比,咱们有优势,也有挑战。.............
  • 回答
    Linux Kernel 4.9 中引入的 BBR (Bottleneck Bandwidth and Roundtrip propagation time) 算法代表了 TCP 拥塞控制领域的一个重要进步。与之前广泛使用的算法(如 Cubic、Reno、NewReno)相比,BBR 具有以下显著优.............
  • 回答
    要说 Linux 的核心思想,那得从它诞生的时代背景聊起。那时候,操作系统还是一个比较封闭且昂贵的东西,主要是大型机和小型机的天下。普通人想要玩点啥,要么得花大价钱,要么只能玩一些非常简陋的系统。这时候,一个叫 Linus Torvalds 的芬兰大学生,出于对现有操作系统的“不满”和对学习计算机原.............
  • 回答
    当Linux系统更新后无法启动时,确实会让人感到焦虑和无助,但通过系统性排查和步骤操作,通常可以逐步解决问题。以下是详细的心理状态分析和应对步骤: 一、心情与心理状态1. 焦虑与着急:系统无法启动意味着无法进行常规操作,可能涉及重要数据丢失或服务中断,导致用户感到紧张。2. 无助感:如果对系统技术细.............
  • 回答
    Linux 系统确实具有“天生安全基因”,其整体安全性设计在操作系统层面具有显著优势,这源于其设计哲学、技术架构和开源生态的综合影响。以下从多个维度详细分析 Linux 的安全性特点及其优势: 1. 设计哲学:最小化、模块化与隔离性Linux 的设计哲学强调最小化攻击面和模块化架构,这些原则直接提升.............
  • 回答
    在Linux下进行Socket编程时,需要注意以下几个关键点,以确保程序的稳定性、安全性、性能和跨平台兼容性: 一、基础概念与步骤1. Socket类型与协议选择 TCP(面向连接):适合可靠数据传输,需通过三次握手建立连接。 UDP(无连接):适合低延迟场景,但可能丢失数据包。 .............
  • 回答
    Linux 之所以坚持使用宏内核(Monolithic Kernel)架构,主要源于其设计哲学、性能需求、开发历史以及对系统稳定性和可扩展性的追求。以下从多个角度详细分析这一选择的合理性: 1. 性能优势:减少上下文切换和系统调用开销 宏内核的直接性:在宏内核中,所有操作系统功能(如进程调度、设备驱.............
  • 回答
    Linux 内核是不是“屎山”?这个问题就像问“大海是咸的吗?”一样,答案既肯定又否定,而且极其复杂。要深入探讨这个问题,需要剥开一层层关于软件工程、历史、社区协作以及现实世界妥协的复杂性。“屎山”的定义:一个主观但有共识的标签首先,我们得理解“屎山”这个词在软件开发语境下的含义。它通常指的是: .............
  • 回答
    很多使用过 macOS 的朋友,在转向 Linux 时,常常会怀念 macOS 那种优雅、流畅且高度整合的桌面体验。毕竟,macOS 在用户界面和交互设计上一直有其独到之处。那么,Linux 内核的发行版本中,有没有能够提供类似体验的选择呢?答案是肯定的,而且不止一个,只是需要我们花点心思去挑选和配.............
  • 回答
    在 Linux 和 Windows 这两大操作系统之间,关于文件管理机制谁更优秀的讨论一直不绝于耳。要给出一个绝对的答案并不容易,因为“优秀”的标准会因使用者的需求、习惯和技术背景而异。但是,我们可以从多个维度来剖析 Linux 和 Windows 的文件管理机制,以便更清晰地理解它们的差异和各自的.............
  • 回答
    许多人认为 Linux 是一个强大的、多功能的操作系统,这毋庸置疑。但要说它是“实时操作系统”,那可就得打个问号了。这并不是说 Linux 在某些情况下做不到一些接近实时的事情,而是说它从本质上讲,不是为那种严格的、毫秒级的甚至微秒级的时间要求而设计的。咱们先聊聊什么是“实时操作系统”(RTOS)。.............
  • 回答
    在Linux下寻找真正意义上“断电可靠”的文件系统,这就像是在问有没有一种永不生锈的金属,答案是:没有绝对的,但有一些文件系统在设计上极大地增强了在异常断电情况下的数据完整性和恢复能力。这里的“断电可靠”不仅仅是说数据不丢失,更重要的是在断电后,文件系统能够以一个一致、可用的状态恢复,而不是变成一堆.............
  • 回答
    在 Linux 内核切换到分页模式后,`ljmp $__BOOT_CS,$1f` 这行代码的出现,标志着一个关键性的步骤:执行一次远距离跳转,将 CPU 的执行流从一个代码段切换到另一个代码段,并且是从保护模式下的一个代码段跳转到已经配置好的分页模式下的新代码段。 让我们一层层剖析它的含义,就像剥洋.............
  • 回答
    在 Linux 内核中,为多线程(更准确地说,为进程中的线程)分配和管理栈空间是一个至关重要的环节,它直接关系到程序的执行稳定性、资源利用率以及并发安全性。理解这一模型,需要我们深入到用户空间和内核空间两个层面,以及它们之间的交互。核心概念:栈(Stack)首先,让我们明确栈是什么。栈是一种后进先出.............
  • 回答
    在Linux主机中增加一块内存条后,物理地址的扩展是一个相对底层和自动化的过程,主要依赖于硬件(内存控制器、CPU)和操作系统内核的协同工作。这并非一个需要用户手动干预的“步骤”,而是系统识别和利用新增内存的内在机制。下面我将尽量详细地解释这个过程,尽量剥离掉任何可能让人觉得是AI生成的痕迹,用一种.............
  • 回答
    关于 Linux 内核为何要映射到所有物理内存这个问题,咱们得从几个关键点来掰扯清楚。这可不是什么凭空捏造的规定,而是有着非常扎实的底层逻辑和实际运行需求驱动的。首先,得明白一个最核心的概念:内核就是整个操作系统的“大脑”。它负责管理硬件资源,调度进程,处理各种系统调用,保证程序能够正常运行。如果内.............
  • 回答
    在 Linux 世界里,确实有很多软件能带来一种独特且令人愉悦的“快感”,这种快感并非来自游戏或娱乐,而是源于其高效、自由、可定制性以及解决问题的能力。对我而言,这种“快感”主要体现在以下几个方面,以及与之相关的软件: 1. 对系统的完全掌控与自由:软件代表: 命令行工具(Bash/Zsh, Vim.............
  • 回答
    在Linux系统中,本机(localhost)和本机(localhost)之间的Socket通信,也就是通常所说的本地回环(Loopback)通信,是不走物理网卡的。这是一个非常重要的概念,理解它能帮助我们更清晰地认识网络通信的底层机制。让我们来详细剖析一下这个过程:1. 本地回环接口:`lo`Li.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有