文章目录
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 服务熟悉云服务器。
- 可以在官网下载 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 | 关闭系统 |
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 系统中的目录:
指令实际操作
3. 文件属性相关的指令
指令 | 说明 |
---|---|
chown –R 属主名 文件名 | 更改文件属主,参数 -R 表示递归,会使该目录下的所有文件的属组都会更改,一般不需要更改 |
chgrp -R 属组名 文件名 | 更改文件属组,一般不需要更改 |
chmod -R xxx 文件或目录 | 更改文件属性 |
使用 ls -l
指令来显示一个文件的属性以及文件所属的用户和组:
指令实际操作
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 仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。
指令实际操作
四、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
指令查看文件内容