Linux 基础篇
# 1. Linux入门
最新 Linux 源码下载:The Linux Kernel Archives (opens new window)
Linux 和 Unix 关系图:
# 2. VM 和 Linux 的安装
# 2.1 虚拟机的使用
# 2.1.1 克隆
如果已经安装了一台 Linux 操作系统,并还想要更多的,这时没必要重新安装,只需要克隆就可以了:
- 方式1:直接拷贝一份安装好的虚拟机文件
- 方式2:使用 VMware 的克隆操作。注意,克隆时要先关闭要克隆的这台 Linux 系统。
# 2.1.2 快照
快速恢复到快照时的运行状态。
# 2.1.3 迁移和删除
虚拟系统本质就是文件。迁移只需要文件夹的整体拷贝或剪切到另外位置。删除可以直接删除对应文件夹即可。
# 2.2 网络连接的三种方式
张三、李四、王五三人此时在同一个网段下(都是192.168.0.X),他们可以进行相互通信。
# 1)桥接模式(张三)
在桥接模式下,虚拟机 IP 地址需要与主机在同一个网段,给虚拟系统再分配一个本网段的 IP。虚拟系统可以和外部系统通讯,但这容易造成 IP 冲突。
# 2)NAT 模式(王五)
NAT 模式,就是网络地址转换模式。虚拟系统可以和外部系统通讯,不造成 IP 冲突。此时192.168.0.50 是个代理,虚拟系统只是通过代理来和外部进行通信,但是外部无法直接访问到192.168.100.88 ,所有右侧只有一个箭头。
# 3)仅主机模式(李四)
一个独立的系统,不和外部产生联系。
# 2.3 vmtools
vmtools 可以让我们在 Windows 下更好的管理虚拟机,比如可以设置 Windows 和 Centos 共享文件。
# 2.3.1 vmtools 的安装
- VMware 上方
虚拟机
->(重新)安装 VM tools
- 桌面上出现一个 VMware tools,打开里面有个 xxx.tar.gz,将其拷贝到 /opt
- 使用解压命令
tar -zxvf xx.tar.gz
得到一个安装文件 - 进入该安装文件夹里面,执行命令
./vmware-install.pl
进行安装,安装过程全部回车默认即可,直到安装完成。
注意点:
- 安装过程需要有 gcc,
gcc -v
查看版本。- 第一步的点击
(重新)安装 VM tools
后可能没有反应,只需要取消一下再重新点一下即可。
# 2.3.2 主机与 VM 共享文件夹
- 安装 VMtools 后,在 VMware 的
设置
->选项
->共享文件夹
- 在这个界面中,先点击
总是启用
,然后在下面文件夹中添加
需要共享的文件夹 - 在虚拟系统中,
/mnt
里可以找到共享的文件夹,对其的修改也会同步到主机中
# 3. Linux 的目录结构
# 3.1 基本介绍
Linux 采用层级目录结构,最上层是根目录 /
。
在 Linux 世界里,一切皆文件。
# 3.2 具体的目录结构
目录 | 说明 |
---|---|
/bin | 或 /usr/bin、/usr/local/bin。Binary 的缩写,存放着最经常使用的命令。 |
/sbin | 或 /usr/sbin、/usr/local/sbin。s —— Super User,存放着系统管理员使用的程序。 |
/home | 存放普通用户的主目录,每个用户有一个自己的目录。 |
/root | 系统管理员的主目录 |
/lib | 系统开机所需要的最基本的动态链接共享库。几乎所有应用程序都需要这些库。 |
/lost+found | 一般为空,当系统非法关机时这里就存放了一些文件、 |
/etc | 所有的系统管理所需要的配置文件和子目录。比如安装 mysql 时的 my.conf |
/usr | 用户安装的很多应用程序都放在这个目录下。类似于 Windows 的 program files。 |
/boot | 存放着启动 Linux 时使用的核心文件 |
/proc | 【不能动】。是一个虚拟目录,它是系统内存的映射,访问这个目录来获取系统信息。 |
/srv | 【不能动】。service 的缩写,存放一些服务启动后需要提取的数据 |
/sys | 【不能动】。安装了 2.6 内核中新出现的一个文件系统 sysfs |
/tmp | 存放临时文件 |
/dev | 把所有设备硬件用文件的形式存储 |
/media | Linux 自动识别的一些设备(如 U 盘、光驱)挂载到这个目录下。 |
/mnt | 让用户临时挂载别的文件系统。我们可以将外部存储挂载到 /mnt 下,然后进入里面查看内容 |
/opt | 主机额外安装软件所存放的目录。如安装 Oracle 就可以放到这里面 |
/usr/local | 这是另一个给主机额外安装软件所存放的目录。这里一般是通过编译源码方式安装的程序。(软件的使用目录,软件安装的目标目录) |
/var | 存放着不断扩充着的东西,习惯将经常修改的目录放在这里面,如日志文件。 |
/selinux | Security-Enhanced Linux。SELinux 是一种安全子系统,它能控制程序只能访问特定文件。 |
# 3.3 文件目录的相关指令
# 3.3.1 *pwd
显示当前工作目录的绝对路径。
# 3.3.2 *ls
ls [选项] [目录或文件]
- -a:显示包括隐藏文件在内的所有文件
- -l:以单列的方式显示详细信息
- -h:给人看的
补充知识点:
- Linux 下,隐藏文件是以
.
开头- 命令的选项可以组合使用,无顺序差别,比如 ls 的选项可以组合成
ls -al
或者ls -la
。ls
命令还可以指定一个目录,比如ls -l /root
# 3.3.3 *cd 切换到指定目录
cd ~
:回到家目录,若你是 root ,则到/root
;若是 tom,则到/home/tom
cd ..
:回到上一级目录cd /usr
:切换到 /usr 目录
cd ..
可以连续使用,比如:当前在/home/tom
下,使用cd ../../root
即可到/root
# 3.3.4 mkdir 创建目录
mkdir [选项] 要创建的目录
- -p:创建多级目录
案例:
- 创建一个目录:mkdir /home/dog
- 创建多级目录:mkdir -p /home/animal/tiger
# 3.3.5 rmdir 删除目录
rmdir [选项] 要删除的空目录
- rmdir 删除的是空目录,如果目录下有内容时无法删除
- 如果需要删除非空目录,应该使用
rm -rf 要删除的目录
,-r 递归删除,-f 强制删除
# 3.3.6 touch 创建空文件
touch 文件名
# 3.3.7 *cp 拷贝
cp [选项] src dst
- -r:递归复制整个文件夹
- 强制覆盖不提示的方法:
\cp
,比如\cp -r /home/src /opt
# 3.3.8 *rm 移除文件或目录
rm [选项] 要移除的文件或目录
-r:递归删除整个文件夹
-f:强制删除不提示,不加此选项时,每删除一个文件都要提示一次
rm -rf [dir]
一定要灰常小心地操作!!直接删了整个目录了!
# 3.3.9 mv 移动(文件/目录)或重命名
mv old new
- 可以移动并且重命名
案例:
- mv cat.txt pig.txt:将 cat.text 重命名为 pig.txt
- mv /home/src /opt/:将 /home/src 移动到 /opt 下面
# 3.3.10 cat
只能查看不能修改,比 vim 更安全,因此对于重要的文件,建议用 cat
命令。
cat [选项] 文件名
- -n:显示行号
- 为了浏览方便,一般会带上管道命令
| more
管道命令:将前一个指令的输出作为后一个指令的输入
案例:
- cat -n /etc/profile | more :查看 profile 文件内容,可以使用
more
命令的按键进行交互。
# 3.3.11 more
more 指令以全屏的方式按页显示文本内容。常见操作:
操作 | 功能 |
---|---|
空白键 | 向下翻页 |
Enter | 向下翻一行 |
q | 离开 more |
Ctrl F | 向下滚动一屏 |
Ctrl B | 返回上一屏 |
= | 输出当前行号 |
:f | 输出文件名和当前行号 |
# 3.3.12 less
用来分屏查看文件内容,与 more 指令类似,但更加强大。支持各种终端;显示文本时按需加载文本内容,对大型文件效率较高。
查看较大的文件时,更建议使用 less
命令。
常见操作:
操作 | 功能 |
---|---|
空白键 | 向下翻页 |
[pagedown] | 向下翻页 |
[pageup] | 向上翻页 |
/str | 向下搜索 “str”。n 下一个,N 上一个 |
?str | 向上搜索 “str”。n 上一个,N 下一个 |
q | 离开 less |
# 3.3.13 echo 输出内容到控制台
echo [选项] [输出内容]
案例:
- ⭐️ echo 输出环境变量:
echo $PATH
,其中$
后面接环境变量名。- 输出主机名:
echo $HOSTNAME
# 3.3.14 head 显示文件开头部分
head 文件
默认显示文件前 10 行内容。
- -n:指定显示前几行,比如 head -n 5 foo.txt
# 3.3.15 tail 显示文件结尾部分
tail 文件
显示文件最后默认 10 行内容。
- -n:指定行数
- -f:实时追踪该文档的所有更新,并打印出来
-f 的作用:
- 做服务器管理时,需要监控某个文件,比如监控发包、网络的实时变化,可以用这个选项。
# 3.3.16 >
和 >>
重定向
>
输出重定向>>
重定向并追加
案例:
ls -l > foo.txt
:将 ls 的输出覆盖写入 foo.txt 中,该文件不存在时,会自动创建这个文件cat foo.txt > bar.txt
:将 foo.txt 内容覆盖到 bar.txtecho “hello” >> foo.txt
:将 hello 追加到文件后面
# 3.3.17 ln 创建软链接
ln,是 link 的缩写,创建一个软链接(类似 Windows 的快捷方式),主要存放了链接其他文件的路径。
ln -s [原文件或目录] [软链接名]
:给原文件创建一个软链接。
e.g. 在 /home
目录下创建一个软连接 myroot,连接到 /root
目录:
ln -s /root /home/myroot
- rm 删除的是软链接,不会删除到原文件
- pwd 查看目录时仍然看到的是软链接所在目录
rm /home/myroot
:myroot 后面不要加/
,否则会视为一个目录
# 3.3.18 history
history 查看已经执行过的历史命令,也可以执行历史命令
history
:显示所有的历史命令history 10
:显示最近使用过的 10 个指令!5
:指令历史编号为 5 的指令
# 4. 远程登录到 Linux 服务器
我们这里使用 Xshell 6 和 Xftp 6 来作为远程登录客户端。
Xshell 是用来远程登录服务器并对其进行操作的,Xftp 是用来本地和服务器进行文件传输的。
在虚拟机中使用 ifconfig
查看 IP 地址,ens33
就是网卡,在第一部分的 inet
中可以看到 IP。
然后尝试主机与虚拟机能否连通:在主机中用 ping <IP>
测试是否能够成功。
在 Xshell 和 Xftp 中新建会话即可。
Windows 还可以用 FinalShell 作为远程登录工具,免费且相当于Xshell + Xftp 的合体。