文章目录
- [Linux - 01](#Linux - 01)
- 一、概述
- [二、Linux 环境搭建](#二、Linux 环境搭建)
- 三、基本指令操作
-
- [1. 关机指令(一般不需要使用)](#1. 关机指令(一般不需要使用))
- [2. 目录相关的指令](#2. 目录相关的指令)
- [3. 文件属性相关的指令](#3. 文件属性相关的指令)
- [4. 文件内容相关的指令](#4. 文件内容相关的指令)
- [5. 硬链接和软连接](#5. 硬链接和软连接)
- [四、Vim 编辑器](#四、Vim 编辑器)
-
- [1. 概述](#1. 概述)
- [2. 相关指令](#2. 相关指令)
- [3. 使用](#3. 使用)
Linux - 01
一、概述
-
Linux 是一套免费使用 和自由传播 的类 Unix 操作系统,是一个基于 POSIX(可移植操作系统接口)和 UNIX 的多用户 、多任务 、支持多线程 和多 CPU 的操作系统;
-
Linux 是一个操作系统,操作系统本身也是一个软件;
-
Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议,它支持 32 位和 64 位硬件;
-
Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统;
-
目前市面上比较知名的 Linux 发行版有:Ubuntu、RedHat、CentOS 等。
二、Linux 环境搭建
-
在阿里云官网上,购买云服务器 ECS (新用户可以免费使用三个月)之后,可以看阿里云官方文档 快速入门:文档 1、文档 2
- 这里使用 CentOS 7;
- 通过 Workbench 远程连接了云服务器 ECS 的实例;
- 通过部署 Apache 服务熟悉云服务器。
注意点:
- 如果在创建 ECS 实例时未设置密码,则需要通过控制台设置登录密码 ,设置实例密码方法;
- 云服务器就是一台远程电脑,服务器一般不会关机;
- 要熟悉在控制台中设置安全组规则的方法,及时将所需的端口号开放,否则外界无法访问。
- 可以在官网下载 Xshell 和 Xftp ,Xshell 是远程连接工具 ,Xftp 可以用于文件上传(在联想应用商店中也可以下载);
- 下载好后,为了后续操作,要在安全组中打开所需的端口号:
- Xshell 端口号:22;
- Xftp 端口号:21。
- 使用 Xshell 连接服务器,显示
Welcome to Alibaba Cloud Elastic Compute Service !
表示连接成功
- 上传文件时,只需要打开 Xftp,将 Windows 中的文件(如:jar 包、安装包等)直接拖到远程 Linux 服务器对应位置即可
三、基本指令操作
-
Linux 系统开机时,会启动许多程序,这些程序叫做"守护进程"(daemon),在 Windows 中叫做"服务"(service);
-
Linux 系统最高权限账户为 root,可以操作一切;
-
服务器很少关机,除非特殊情况,不得已才会关机;
-
在 Linux 系统中进行命令操作时,没有错误就代表操作成功;
-
在 Linux 系统中一切皆文件,根目录 是
/
,所有文件都挂载在这个节点下; -
所有的 Linux 指令可以组合使用;
-
绝对路径 都是以
/
开头,相对路径 可以用../../
返回到所需的目录继续寻找; -
输入文件的前几个字母,按 Tab 键会自动补全;
-
不要 使用
rm -rf /
,这会使系统中所有的文件被删除! -
Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限;
-
Linux 系统为了保护系统的安全性,对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定;
-
在 Linux 系统中:
- 对于每个文件来说,都有一个特定的所有者,也就是对该文件具有所有权的用户;
- 对于用户来说,是按组分类的,一个用户属于一个或多个组;
- 文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户;
- 因此,Linux 系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。
-
用指令
ifconfig
可以查看网络配置; -
CentOS 7 系统中的网络配置目录 在:
/etc/sysconfig/network-scripts
; -
在 Linux 中可以使用
Ctrl + C
来中断正在执行的命令。
1. 关机指令(一般不需要使用)
指令 | 说明 |
---|---|
sync | 将数据由内存同步到硬盘中,要在关机前执行 |
shutdown | 关机指令 |
reboot | 重启 |
halt | 关闭系统 |
注意 :可以通过
man shutdown
来看帮助文档。
2. 目录相关的指令
指令 | 说明 |
---|---|
cd + /绝对路径 | 使用绝对路径切换到指定目录下 |
cd ... | 返回上一级目录 |
cd .../.../相对路径 | 在当前目录下,使用相对路径切换到指定目录下,一次 ../ 表示退回一次上级目录 |
cd 相对路径 | 在当前目录下,使用相对路径切换到指定目录,注意 路径前没有 / |
cd ~ | 无论现在在哪个目录,直接切换到当前用户目录 root 下,相当于 cd /root |
pwd | 显示当前所在目录的绝对路径 |
ls | 查看并列出当前目录下的所有文件 |
ls + 目录 | 查看并列出指定目录下的所有文件 |
ls -a | 查看全部的文件,包括隐藏文件 |
ls -l | 列出所有的文件,包含文件的属性和权限,没有隐藏文件 |
mkdir + 目录名 | 创建一个目录 |
mkdir -p 目录1/目录2/目录3 | 递归创建多级目录 |
rmdir + 目录名 | 删除一个空的目录,如果该目录不为空,则删除失败 |
rmdir -p 目录1/目录2/目录3 | 递归删除层级目录,从目录 3 开始向上删除,直到遇到不为空的文件夹或者全部删除为止 |
cp + 原来的文件 + 新的位置 | 复制文件,这里新的位置使用绝对路径和相对路径都可以 |
cp -r + 原来的目录 + 新的位置 | 复制目录,使用 -r 实现递归复制 |
rm 文件名 | 删除文件 |
rm -r 目录名 | 递归 删除一个目录,不用管目录是否为空,注意和 rmdir + 目录名 对比 |
rm -rf 目录名 | rm -r 在删除前会询问,而 rm -rf 则直接删除 |
mv + 文件/目录 + 新的位置 | 移动文件或者目录,这里新的位置使用绝对路径和相对路径都可以 |
mv + 文件/目录 + 新的名称 | 重命名 |
Linux 系统中的目录:
对目录的解释:
- /bin :Binary 的缩写,存放着最经常使用的命令;
- /boot :存放启动 Linux 时使用的一些核心文件,包括一些连接文件和镜像文件(不要操作);
- /dev :Device 的缩写,存放着 Linux 的外部设备,在 Linux 中,访问设备和访问文件的方式相同;
- /etc :用来存放系统管理所需要的所有配置文件和子目录;
- /home :用户的主目录,在 Linux 中,每个用户都有一个自己的目录,目录名一般以用户的账号命名;
- /lib :存放着系统最基本的动态连接共享库,作用类似于 Windows 中的 DLL 目录(不要操作);
- /lost+found :这个目录一般情况为空,但是当系统非法关机时,这里就存放了突然关机的一些文件;
- /media :Linux 系统会自动识别一些设备,如 U 盘、光驱等,当识别后,就会把识别的设备挂载到这个目录下;
- /mnt :系统提供该目录是为了用户临时挂载别的文件系统的,我们后面会把一些本地文件挂载在这个目录下;
- /opt :用于给主机额外安装软件的目录,默认为空,之后可以将安装的 MySQL 数据库等放在该目录下;
- /proc :一个虚拟的目录,是系统内存的映射,可以通过直接访问这个目录来获取系统信息(不要操作);
- /root :系统管理员目录,也称为超级权限者的用户主目录;
- /run :是一个临时文件系统,存储系统启动以来的信息,当系统重启时,这个目录中的文件应该被删除或清除;
- /sbin :存放系统管理员使用的系统管理程序;
- /srv :该目录存放一些服务启动之后需要提取的数据;
- /sys :这是 Linux 2.6 内核的一个很大变化,该目录安装了 2.6 内核中新出现的一个文件系统 sysfs;
- /temp :这个目录用来存放一些临时文件,用完可以删掉,例如安装包等;
- /usr :用户的很多应用程序和文件都会放在这个目录下,类似于 Windows 中的 Program Files 目录;
- /usr/bin :系统用户使用的应用程序;
- /usr/sbin :超级用户使用的比较高级的管理程序和系统守护程序;
- /usr/src :内核源代码默认的放置目录;
- /var :存放着不断扩充的东西,习惯将那些经常被修改的东西放在这个目录下,例如各种日志文件等。
指令实际操作
3. 文件属性相关的指令
指令 | 说明 |
---|---|
chown --R 属主名 文件名 | 更改文件属主 ,参数 -R 表示递归 ,会使该目录下的所有文件的属组都会更改,一般不需要更改 |
chgrp -R 属组名 文件名 | 更改文件属组 ,一般不需要更改 |
chmod -R xxx 文件或目录 | 更改文件属性 |
注意 :更改文件属性时,其中的 x 为 0 - 7 的数字,代表每个组的权限:r --- 4、w --- 2、x --- 1,例如:rwx --- 7、r-x --- 5。
使用 ls -l
指令来显示一个文件的属性以及文件所属的用户和组:
对文件属性的解释:
- 第 1 个字符 确定文件类型,代表这个文件是目录、文件或链接文件等:
- d :目录文件;
- - :文件;
- l :链接文档;
- b :装置文件里面的可供储存的接口设备(可随机存取装置);
- c :装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
- 第 2 到 10 个字符 ,三个为一组,共三组,每一组是
rwx
的三个参数的组合,三个参数的位置固定 :
- 参数 :
- r :read,代表可读;
- w :write,代表可写;
- x :execute,代表可执行;
- - :减号,代表没有权限。
- 组 :
- 第一组:owner,表示文件创建者或所有者对该文件所具有的权限;
- 第二组:group,表示文件创建者或所有者所在组的同组其他用户所具有的权限;
- 第三组:others,表示其他组的其他用户所具有的权限。
指令实际操作
4. 文件内容相关的指令
指令 | 说明 |
---|---|
cat | 从第一行开始显示文件内容,可以用来读文章、配置文件等 |
tac | 和 cat 指令相反,从最后一行开始显示文件内容 |
nl | 在文件内容前,显示行号,方便看代码 |
more | 一页一页显示文件内容,空格可以翻页,Enter 可以逐行显示,:f 可以显示当前行号,q 退出 |
less | 基本操作和 more 相同,此外,用方向键 ↑ 和 ↓ 可以控制翻页,用 / 或 ? + 字符串可以查询指定的字符串 |
head -n xx | 只看前 xx 行,xx 为数字,如果没有 -n 参数,默认显示 10 行 |
tail -n xx | 只看后 xx 行 |
tail -f | 把文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要文件更新就可以看到最新的文件内容 |
man + 指令 | 查看相应指令的使用文档 |
注意:以上指令后面直接加要操作的文件名即可。
部分指令实际操作
5. 硬链接和软连接
指令 | 说明 |
---|---|
ln f1 f2 | 给文件 f1 创建一个硬链接 f2 |
ln -s f1 f3 | 给文件 f1 创建一个软链接 f3 |
touch + 文件名 | 创建文件 |
echo "字符串" >> f1 | 向文件 f1 中输入字符串 |
Linux 的链接 分为两种:硬链接 (Hard Link)和软链接 (也叫符号链接,Symbolic Link)。
- 硬链接 :通过索引节点来进行连接,在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。比如:A 是 B 的硬链接(A 和 B 都是文件名),则 A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号相同 ,即一个 inode 节点对应两个不同的文件名,两个文件名指向同一个文件,A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止"误删"的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除;
- 软链接 :软链接文件有类似于 Windows 的快捷方式,它实际上是一个特殊的文件。在软链接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。比如:A 是 B 的软链接(A 和 B 都是文件名),A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号不相同 ,A 和 B 指向的是两个不同的 inode,继而指向两块不同的数据块。但是 A 的数据块中存放的只是 B 的路径名(可以根据这个找到 B 的目录项)。A 和 B 之间是"主从"关系,如果 B 被删除了,A 仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。
总结:
- 硬链接相当于 Java 中对象的引用,一个对象的引用可以有多个,但是这些引用都指向内存中的同一个地址;
- 软链接相当于 Windows 的快捷方式,卸载软件后,快捷方式也将无效。
指令实际操作
四、Vim 编辑器
1. 概述
-
Vim 是从 vi 发展出来的一个文本编辑器,有代码补完、编译及错误跳转等方便编程的功能,在程序员中被广泛使用;
-
Vim是一个高度可配置的文本编辑器,旨在使创建和更改任何类型的文本都非常高效;
-
Vim 官网 :点此进入;
-
Vim 有三种使用模式:
- 命令模式(Command mode):此状态下敲击键盘动作会被 Vim 识别为命令,而非输入字符;
- 输入模式(Insert mode):该模式下可以输入字符,编辑文本;
- 底线命令模式(Last line mode):在该模式下,可以输入单个或多个字符的命令。
-
进入和退出三种模式的方式
模式 | 进入方式 | 退出方式 |
---|---|---|
命令模式 | vim 指令 + 文件名 |
|
输入模式 | 在命令模式下输入 i |
按 Esc 退出,切换到命令模式 |
底线命令模式 | 在命令模式下输入 : |
按 Esc 退出,切换到命令模式 |
注:
- 命令模式只有一些最基本的命令,因此,要依靠底线命令模式输入更多命令;
- 更详细的使用和操作在第三小节。
2. 相关指令
命令模式下
指令 | 说明 |
---|---|
i | 切换到输入模式 |
: | 切换到底线命令模式 |
x | 删除文本内容,也就是删除当前光标所在处的字符,也可以通过按键 Delete 来实现 |
PageUp 按键 | 屏幕向上移动一页 |
PageDown 按键 | 屏幕向下移动一页 |
数字 + 空格 | 光标向右移动 n 个位置 |
数字 + Enter | 光标向下移动 n 行 |
/ + 字符串 | 搜索 指定字符串,搜索到后使用 n 或 N 跳转到下一个或上一个 |
u | 撤销 前一个操作,相当于 Windows 中的 Ctrl + Z |
输入模式下,主要是输入字符,编辑文本,因此没有指令,是通过键盘上的按键来进行操作
按键 | 说明 |
---|---|
字符键 | 输入字符 |
Enter、Backspace、Delete、方向键 | 换行、删除前、删除后、移动光标 |
Insert | 输入方式切换为 Insert 和 replace 模式 |
Esc | 退出输入模式,切换到命令模式 |
底线命令模式下
指令 | 说明 |
---|---|
q + 回车 | 退出程序,即退出 Vim |
w + 回车 | 保存文件,切换到命令模式 |
wq + 回车 | 组合指令,保存并退出 Vim |
set nu | 显示行号 |
set nonu | 取消行号 |
Esc 按键 | 退出底线命令模式,切换到命令模式 |
3. 使用
使用 vim
指令 + 文件名,进入命令模式
在命令模式下,输入 i
指令,进入输入模式
在命令模式下,输入 :
指令,进入底线命令模式
使用 cat
指令查看文件内容