为了让你今后的学习更舒畅,我们今天先来学习一下 Linux 系统~
知识点
- Linux 简介
- 实验环境的使用
- Linux 终端
- Linux 目录结构
- Linux 文件的基本操作
- 总结
Why Linux
Windows 可能给了你电脑启蒙,但在计算机世界里,Linux 的地位比 Windows 更加重要,没有 Linux 就没有现在的互联网生态。
迄今为止,80% 以上的智能手机,都使用着基于 Linux 内核的 Android 系统;全球排名前 500 的超级计算机中,98% 在用 Linux;绝大部分你所使用的互联网产品,也都运行在 Linux 系统的服务器上……
与 Windows 相比,Linux 可能没那么容易上手,但却是用来学习计算机技术最好的工具。进程、线程是什么?文件是如何管理的?网络如何互联?书本上的解释始终是云里雾里,但通过亲手在 Linux 中操作,你会恍然大悟:原来这些概念是这么回事。
Linux 提供了一个驱动力,让你去接触和掌握计算机的核心秘密。在 Linux 出现以前,这些秘密只有极少数精英才能掌握,现在变成了全世界每个人都可以平等享用的盛宴。
同时 Linux 是一个安全、稳定、自由的系统,你可以把它定制成任何你想要的样子。在企业里,非常多的 IT 技术工程师都会用 Linux 作为开发机,也会把 Linux 打造成 Web 或数据库服务器等。Linux 的用途还有很多,等着你去探索~
进入实验环境
根据课程的不同,实验楼提供了 4 种实验环境,分别为:桌面环境、终端环境、Jupyter Notebook、Web IDE。而本课程和实验楼的大部分课程,使用的都是你眼前的 Linux 桌面环境。
实验桌面上的程序包括下面几类:
- Xfce 终端:Linux 中控制电脑的窗口,打开它你可以通过 Linux 命令控制电脑的一切。Linux 中很多操作都需要输入命令来进行,这一点与 Windows 上依靠鼠标操作是不同的,这个输入命令的入口就叫「终端」。
- Firefox 浏览器:浏览器,可以用在需要前端界面的课程里。
- GVim:一款好用的 Vim 编辑器,具体用法可参考课程 Vim 编辑器。
- gedit、Sublime:同样是代码编辑器,如果你对 gvim 的使用不熟悉,可以用这两个作为代替。
双击桌面上的 Xfce 终端
打开终端,依次点击菜单上的 编辑
- 首选项
, 可以修改终端的背景、字体、字号、光标样式等属性,右下角的输入法图标可以切换输入法。
学习前的心理建设
Linux 的基本操作主要分为「目录操作」和「文件操作」两部分,在以后的学习中你会常常用到。
💡 提前的心理建设:
对于从未接触过 Linux 的同学来说,下面介绍的命令有些多,记不住会很烦躁,在这里要提前告诉大家:
不用硬记!
不用硬记!
不用硬记!
学习 Linux 常用命令,有点像学习 Windows、Mac 或者 PS、Word 的 快捷键,死记硬背是没有用的,在使用中多操作几次,自然就记住了。
下面的这些操作,希望你都能在环境中跟着敲一遍,最后整理成一个 脑图 或 笔记 ,以后忘了命令时随时翻阅。相信几次之后,你想忘都忘不掉了。
Linux 目录操作
首先我们来学习 Linux 目录的常用操作命令。
Linux 的目录类似于 Windows 系统中的文件夹。我们看一下刚刚打开的 终端
界面,它的第一行开头是:
shiyanlou:~/ $
这就代表着你当前所处的目录位置:打开终端后,会默认从当前的用户目录开始操作,这就好比你打开“我的电脑”,会默认显示所有磁盘的目录。
shiyanlou
代表你当前的用户名,如果你的用户名叫 tony,就会显示 tony:~/ $
。后面的美元符号 $
是「命令提示符」,提示你:请在它后面输入命令。
💡 查看目录中的内容:ls
我们来输入第一个命令:在 $
后输入 ls
,可查看当前目录下的文件和目录。
可以看到当前目录下,有 Code 和 Desktop 两个目录。(蓝色字代表是目录,白色字代表是文件)
💡 进入目录:cd
使用 cd 命令可进入其他目录,如果想进入 Code 目录,请输入(注意区分大小写):
cd Code
即可进入 Code 目录。
快捷操作
常用快捷键:
按按键盘的 上下键
试试? 可快速选择前面输过的命令。
输入 cd ..
可以回到上一级目录,类似 Windows 的「向上」。
cd ..
cd -
表示回到上一次所在的目录,类似 Windows 的「后退」。
cd -
cd ~
表示回到当前用户的主目录,类似 Windows 的「回到桌面」。
cd ~
cd /
表示进入根目录,它是一切目录的父目录
cd /
全试过一遍后,我们输入cd ~
返回用户主目录,继续后面的学习。
💡 注意:上面的快捷操作,符号都必须是英文符号,否则会报错。
查看目录结构:tree
使用 tree 命令,可以列出一个文件夹下的所有子文件夹和文件(以树形结构来进行列出)。
tree
下图为 Linux 操作系统目录结构的简介,最左边就是根目录:
还记得怎么进入根目录吗?我们来点刺激的,输入:
cd /
再输入:
tree
执行指令后,终端会像走马灯一样,遍历出系统里的所有目录和文件,这时按下 ctrl + c
键即可停止。
绝对路径
Linux 进入目录的方式有绝对路径
和相对路径
两种。
之前我们都是用 相对路径
进入目录的,这相当于你在 Windows 系统下,在当前文件夹中点击下一个文件夹进入;
而 绝对路径
是一个以根目录 / 为起点的完整路径,如: /home/shiyanlou/Code
,可以类比 Windows 上的 C:\Users\电脑用户名\Desktop
。
使用 pwd 命令可以获取当前目录的绝对路径:
有了绝对路径后,不管你当前在哪个目录下,都可以通过指令进入指定目录:
cd /home/shiyanlou/Code
💡 提示:如果忘记了目录名、文件名或命令,可使用 Tab 键自动补全,还可避免输入错误;连续按两次 Tab 可以显示全部候选结果。
新建目录
使用 mkdir
命令可创建目录,mkdir mycode
的意思就是新建一个名为 mycode
的目录。
先输入cd ~
返回用户主目录,然后练习一下:
还可以在 mkdir
后加入 -p
参数,一次性创建多级目录,如:
请按照上面的步骤,尝试一下创建多级目录的操作,然后点击「下一步」按钮~
Linux 文件操作
下面是 Linux 中对文件的常用操作,包含新建、复制、删除等。
💡 新建空白文件
使用 touch
命令可以新建文件,比如我想再新建一个名为 “hello” 的文件,可输入:
touch hello
“hello” 文件就被创建出来了,用 ls
命令查看一下:
(该命令不会覆盖已有同名文件)
💡 复制
使用 cp
命令(Copy)复制文件到指定目录下,比如要把 hello
文件复制到 one/two
这个目录下:
cp hello one/two/ tree one
如果要复制目录,需要在 cp
后加上 -r
,然后接上 目录名 目标目录名
:
mkdir test cp -r test one/two tree one
上面的操作中,我们先新建了一个 test
目录,然后把它复制进了 one/two
这个目录中,再通过tree one
直接查看 one 的目录结构。
💡 删除
使用 rm
命令删除文件:
ls rm hello ls
删除目录要加上 -r
选项,类似 cp -r
拷贝目录,会删除目录和目录下的所有内容:
mkdir test ls rm -r test ls
💡 移动文件 / 目录与重命名
使用 mv
命令可以移动文件或目录。
首先,我们进入到 /home/shiyanlou
目录,使用 touch
创建空文件 test1
:
cd ~ touch test1
然后,我们创建一个新目录 dir1
,ls
查看一下
mkdir dir1 ls
使用 mv
命令 将 test1
移动到 dir1
目录,代码如下:
mv test1 dir1
然后进入 dir1
目录查看一下
cd dir1 ls
mv
命令还可以用来重命名,如 mv test1 test2
, 会把 test1
重命名为 test2
:
ls mv test1 test2 ls
查看文件内容
使用 cat
命令,可以将文件中的内容打印到屏幕上,使用方法是 cat 文件路径
。
现在还没有文件,我们先从其他地方复制过来一个:
cp /etc/passwd passwd ls
这样就把 passwd
文件从 /etc
目录拷贝到了当前目录中,然后我们用 cat passwd
显示文件中的内容:
cat passwd
使用 cat -n
可以带行号地打印文件内容:
cat -n passwd
编辑文件
写代码需要用到文本编辑器,这里给新手推荐两个简单、好用的编辑工具:gedit 和 Sublime 。
SublimeText
Sublime Text 是一套跨平台的文本编辑器,支持基于 Python 的插件,支持语法高亮,具有轻量、入门简单等特点。
实验环境中内置了 Sublime Text2 编辑器,点击实验环境左下角 应用程序菜单 - 开发 - sublime
即可打开:
启动 sublime 后,依次点击菜单栏的 File
- New File
或 按下ctrl + n
,可以新建文件,然后在 sublime 中写入以下内容:
hello shiyanlou
然后按 ctrl + s
保存文件到桌面,命名为 hello
在终端中查看一下:
测试成功!
gedit
gedit 是 Linux 系统自带的文本编辑器,比 Sublime 更简单,我们会在以后介绍。
有一定基础的同学,也可以使用 Vim 编辑器:
Vim 编辑器是功能强大的跨平台文本文件编辑工具,支持 Linux / Mac OS X / Windows 系统。Vim 素有编辑器之神的称号,但学习曲线陡峭,需要系统学习才能使用好它。
实验楼有系统的 **Vim 教程**,但不建议现阶段学习(自带劝退属性),先学会 Python 才是正经事。
帮助命令
在 Linux 环境中,如果你遇到困难,可以使用 man
命令,它是 Manual pages
的缩写。例如输入 man cat
,可以获取 cat 命令的详细的帮助文件。进入到 man 的页面后,按 q
可以退出 man。
有些命令可以使用 --help
选项查看帮助文档。
对于初学者而言,查看帮助信息的文档未必看得懂,所以寻求帮助的最佳途径是:
利用互联网和搜索引擎去快速查找相关命令的使用范例,并亲自在 Linux 上进行模仿练习。
超级重要的总结
“第一节课程的学习就要结束了,但结束之前,小楼还有一些压箱底的东西要告诉你。”
想要成为编程世界中的王者,必须做到三件事:
「练习」
「思考」
「总结」
在今后的学习中,你表面上是在修炼 「编程能力」,同时也在修炼「学习能力」。这两种能力,都能确定地提高你未来的地位和收入,并决定你的人生尺度。
这个世界进步得太快:算盘被计算器取代、纸张被电子产品取代、农民和矿工被现代化机械取代……甚至设计师、文案这种创造性的工作,也会被人工智能取代。
但如果,这世界需要我们学什么的时候,我们都可以主动去学,并且很快学好,那么 —— 焦虑、担心这些负面情绪将不复存在,你会变得更快乐,也会比身边 99% 的人走得更远。
其实能看到这里的你,已经站在 90% 人的前面了,接下来,我们会继续通过文字和任务,去引导你培养这两种能力。
当然,最最最重要的,还是你自己去「 做 」。
这节课结束之后,交给你两个简单但非常重要的「任务」:
任务1、课后总结
找一个脑图或笔记工具,把今天学到的知识点总结进去,并用自己的语言进行注解。
你可以使用 XMind 免费版(需下载),或 幕布 (笔记工具,可在线编辑),或其他任何脑图、笔记工具。
你的总结应该类似这样:
任务2、完成课后练习
第二个任务是一个课后挑战:用今天学到的 Linux 基本操作,完成一个综合练习。
题目很简单,却是你迈向独立思考的重要一步,请务必完成。
(点击上方的「章节列表」,选择下一个实验「创建代码文件」,即可进入挑战)
挑战:创建代码文件
介绍
在这个挑战中,你需要在指定的目录下创建一个代码文件,然后拷贝到指定的目录。
挑战全程在 Xfce 终端中操作,忘记命令时可以翻阅上节的笔记,这是你的第一个挑战,加油!
目标
- 请在
/home/shiyanlou
目录下创建shiyanlou.py
文件。 - 在文件中输入以下内容:
print('hello shiyanlou')
- 进入
Code
目录,新建名为test
的目录,然后将刚创建的/home/shiyanlou/shiyanlou.py
文件复制到目录/home/shiyanlou/Code/test
中。
提示语
touch
创建文件- 可使用
Sublime、gedit、Vim
等编辑器 mkdir
创建目录cd ~
返回home
目录cp
复制- 使用
Sublime
写入代码后,注意保存的位置。
请务必注意文件的路径,确保文件路径为 /home/shiyanlou/shiyanlou.py
和 /home/shiyanlou/Code/test/shiyanlou.py
。可使用 pwd
命令自查,否则将无法通过检测。
知识点
- Linux 目录结构
- Linux 文件操作
- cp 命令
- mkdir 命令