文章目录
1. 入门概述
1.1 我们为什么要学习Linux
linux诞生了这么多年,以前还喊着如何能取代windows系统,现在这个口号已经小多了,任何事物发展都有其局限性都有其天花板。就如同在国内再搞一个社交软件取代腾讯一样,想想而已基本不可能,因为用户已经习惯于使用微信交流,不是说技术上实现不了解而是老百姓已经习惯了,想让他们不用,即使他们自己不用亲戚朋友还是要用,没有办法的事情。
用习惯了windows操作系统,再让大家切换到别的操作系统基本上是不可能的事情,改变一个人已经养成的习惯太难。没有办法深入到普通老百姓的生活中,并不意味着linux就没有用武之地了。在服务器端,在开发领域linux倒是越来越受欢迎,很多程序员都觉得不懂点linux都觉得不好意思,linux在开源社区的地位依然岿然不动。
尤其是作为一个后端程序员,是必须要掌握Linux的,因为这都成为了你找工作的基础门槛了,所以不得不学习!
1.2 Linux 简介
Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX(可移植操作系统接口) 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
1.3 Linux 发行版
Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
1.4 Linux 应用领域
今天各种场合都有使用各种 Linux 发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,通常服务器使用 LAMP(Linux + Apache + MySQL + PHP)或 LNMP(Linux + Nginx+ MySQL + PHP)组合。
目前 Linux 不仅在家庭与企业中使用,并且在政府中也很受欢迎。
- 巴西联邦政府由于支持 Linux 而世界闻名。
- 有新闻报道俄罗斯军队自己制造的 Linux 发布版的,做为 G.H.ost 项目已经取得成果。
- 印度的 Kerala 联邦计划在向全联邦的高中推广使用 Linux。
- 中华人民共和国为取得技术独立,在龙芯处理器中排他性地使用 Linux。
- 在西班牙的一些地区开发了自己的 Linux 发布版,并且在政府与教育领域广泛使用,如 Extremadura 地区的 gnuLinEx 和 Andalusia 地区的 Guadalinex。
- 葡萄牙同样使用自己的 Linux 发布版 Caixa Mágica,用于 Magalh?es 笔记本电脑和 e-escola 政府软件。
- 法国和德国同样开始逐步采用 Linux。
1.5 Linux vs Windows
1.6 环境搭建
Linux 的安装,安装步骤比较繁琐,现在其实云服务器挺普遍的,价格也便宜,如果直接不想搭建,也可以直接买一台学习用用!
安装CentOS(虚拟机安装,耗资源)
1、可以通过镜像进行安装!
2、可以使用我已经制作好的镜像!视频中讲解了该种方式!
3、安装 VMware 虚拟机软件,然后打开我们的镜像即可使用!
购买云服务器
虚拟机安装后占用空间,也会有些卡顿,我们作为程序员其实可以选择购买一台自己的服务器,这样的话更加接近真实线上工作;
1、阿里云购买服务器:https://www.aliyun.com
2、购买完毕后,获取服务器的ip地址,重置服务器密码,就可以远程登录了
3、下载 xShell 工具,进行远程连接使用!连接成功效果如下:
注意事项:
如果要打开端口,需要在阿里云的安全组面板中开启对应的出入规则,不然的话会被阿里拦截!
2. 走进Linux世界
linux 没有输出 代表成功
2.1 系统目录结构
登录系统后,在当前命令窗口下输入命令:ls / 查看所有目录
树状目录结构:(Linux的一切资源都挂载在这个 / 根节点下)
- /bin: 存放二进制可执行命令
- /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
- /dev : 存放外部设备特殊文件
- /etc: 系统管理和配置文件
- /home: 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的
- /lib: 这个目录里存放着系统最基本的动态连接共享库,作用类似windows里的.dll文件
/sbin 超级管理命令,这里存放的是系统管理员使用的管理程序
- /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
- /media: linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
- /mnt: 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
- /opt: 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
- /proc: 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
- /root: 该目录为系统管理员,也称作超级权限者的用户主目录。
- /sbin: s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
- /srv: 该目录存放一些服务启动之后需要提取的数据。
- /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
- /tmp: 这个目录是用来存放一些临时文件的。
- /usr: 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
- /var: 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
- /run: 是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
- /www : 存放服务器网址相关的资源,
主要的目录
/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给 root 使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。
2.2 Linux 文件颜色表示
白色 文件,例如 hello.md hello.py hello.txt等类型的文件
蓝色 目录
绿色 可执行文件
红色 压缩文件
浅蓝 链接文件
灰色 其他文件
红色 文件有问题
黄色 设备文件、block、char、fifo
绿色背景 文件夹
2.3 关机命令
不管是重启系统还是关闭系统,首先要允许sync命令,把内存中的数据写道磁盘中.
sync # 将数据由内存同步到硬盘中
shutdown # 关机指令,你可以man shutdown 来看一下帮助文档
shutdown -h 10 # 这个命令告诉大家,计算机将在10分钟后关机
shutdown -h now # 立即关机
shutdown -h 20:35 # 系统会在今天20:25关机
shutdown -h +10 # 十分钟后关机
shutdown -r row # 立即重启
shutdown -r +10 # 系统十分钟后重启
reboot # 就是重启,等同于 shutdown -r row
halt # 关闭系统,等同于shutodwn -h now 和 poweroff
2.4 辅助工具
man 查看使用文档
--help 查看帮助文档
2.5 目录切换
cd # 切换目录
cd .. # 返回上一级
cd ./ # 当前目录
cd ~ # 换到当前用户目录
clear # 清屏
pwd # 查看当前用户所在目录
2.6 目录CURD
ls # 列出所有目录
ls -a # all 查看全部的文件,包括隐藏文件
ls -l # list 列出所有的文件,包含文件属性和权限,没有隐藏文件
ls -al # 理出所有文件 包含隐藏文件
rm # 移除文件或者目录
rm -f # 忽略不存在的文件,不会出现警告,强制删除!
rm -r # 递归删除目录!
rm -i # 互动,询问是否删除
rm -rf # 强制递归删除 不询问
mv 文件 位置 # 移动(剪切)文件或者目录| 如果文件名一直 === 重命名
mv -f # 强制
mv -u # 只替换已经更新过的文件
mv -i # 若目标文件已经存在时,就会询问是否覆盖
mv 文件名 文件名 # 重命名文件夹
mkdir [目录名] # 创建目录
mkdir -p [目录名]/[目录名] # 递归创建
rmdir [目录名] # 删除空目录
rmdir -p [目录名]/[目录名] # 递归删除
cp 原来的地方 新的地方 # 拷贝文件 如果文件重复 选择覆盖或放弃
touch [文件] # 创建文件
2.7 文件内容查看
Linux系统中使用以下命令来查看文件的内容:
# 读文章、配置文件都使用cat tac命令
cat [文件] # 从第一行开始显示
tac [文件] # 从最后一行开始显示 倒序查看
nl [文件] # 从第一行开始显示,输出时显示行号
more [文件] # 分页显示 (空格翻页,回车滚动页面)
more :f [文件] # 分页,行号显示
less [文件] # 它可以往前翻页!(空格翻页,上下键代表翻动页面!退出 q)
head -n 20 # 前20行
tail -n 20 # 后20行
# 相关属性
/ # 向下查询字符串
? # 向上查询字符串
n # 向下寻找
N # 向上寻找
q # 退出
回车 # 逐步查看
空格 # 翻页查看
上下键 # 上下翻滚
-n # 参数来控制显示几行
2.8 网络配置
cd /etc/sysconfig/network-scripts/ifcfg-nth33 # 网络配置目录
cd /etc/sysconfig/network-scripts/ifcfg-nth0 # 网络配置目录
ifconfig # 查看网络配置
ip addr # 查看网络配置
3. Vim编辑器
3.1 什么是Vim编辑器
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。
vim 则可以说是程序开发者的一项很好用的工具。
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。
连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。
vim键盘图:
3.2 三种使用模式
命令模式(Command mode) # 用户刚刚启动 vi/vim,便进入了命令模式。
- : # 切换到底线命令模式,以在最底一行输入命令。
- i # 切换到输入模式,以输入字符
- u # 重复动作
- 数字 空格 # 横向快捷切换光标,数字w+空格
- 数字 回车 # 纵向快捷切换关闭,数字+回车
- /word # 搜索
- n,N # 向下搜索 向上搜索
- G,g # 跳到文件最后一行/第一行
输入模式(Insert mode) # 在命令模式下按下i就进入了输入模式。
- enter # 回车键,换行
- back space # 退格键,删除光标前一个字符
- del # 删除键,删除光标后一个字符
- 方向键 # 在文本中移动光标
- home end # 移动光标到行首/行尾
- Page Up/Page Down # 上/下翻页
- insert # 切换光标为输入/替换模式,光标将变成竖线/下划线
- esc # 退出输入模式,切换到命令模式
底线命令模式(Last line mode) # 在命令模式下按下:(英文冒号)就进入了底线命令模式。
- :w # 保存
- :q # 离开
- :wq # 存储后离开
- :wq! # 强制存储后离开
- :set nu # 显示行号
- :set nonu # 取消行号
3.3 执行流程
简单的说,我们可以将这三个模式想成底下的图标来表示:
完整演示说明: 新建或者编辑文件 → i 键 进入编辑模式 → 编写内容 → 退出编辑模式 → esc → 进入底线命令模式:wq保存退出!