[Linux服务器] Linux 完整学习笔记

88 0
Honkers 3 小时前 | 显示全部楼层 |阅读模式

一、Linux 概述与环境搭建

1.1 Linux 内核与系统组成

Linux 系统由两部分组成:

  • Linux 系统内核:提供系统最核心的功能,如调度 CPU、调度内存、调度文件系统、调度网络通讯、调度 IO 等。
  • 系统级应用程序:出厂自带程序,可供用户快速上手操作系统,如文件管理器、任务管理器、图片查看、音乐播放等。

Linux 内核是免费开源的,任何人都可以下载内核源码并查看且修改。
可以通载 Linux 内核。

Linux 系统架构图(示意):

  1. 应用程序
  2. Shell(命令解释器)
  3. 操作系统内核
  4. 硬件
复制代码

用户 → 使用 → 第三方程序 → 调用 → 内核 → 调度 → 硬件
用户 → 使用 → 系统程序 → 调用 → 内核 → 调度 → 硬件

1.2 Linux 发行版

任何人都可以封装 Linux,目前市面上有非常多的 Linux 发行版,常用的如下:

发行版说明
Linux Mint基于 Ubuntu,界面友好
Ubuntu最流行的桌面 Linux
Arch Linux滚动更新,高度可定制
CentOS企业级,RedHat 免费版
RedHat商业企业级
Debian稳定,Ubuntu 的上游
FedoraRedHat 的社区版
openSUSE德国出品
deepin国产,界面美观
中标麒麟 / 红旗 Linux国产政府用

1.3 VMware 虚拟机与快照

VMware 虚拟机(Workstation 和 Fusion)支持为虚拟机制作快照

通过快照将当前虚拟机的状态保存下来,在以后可以通过快照恢复虚拟机到保存的状态

类似于游戏存档,死亡后回档即可,故在进行任何测试之前拍摄快照很有必要,平时在系统稳定运行时拍摄快照也是很重要的。

快照时间线示意图:

  1. 快照1 快照3
  2. ↑ ↑
  3. ──●──●──●──●──●──→ 时间线
  4. 当前状态
  5. 快照2
复制代码

Windows 快速查看 VMware 网络连接: 使用 ncpa.cpl 指令快速查看 VMware 网络连接情况。


二、Linux 目录结构

Linux 的文件系统是一个独立且唯一的树形结构,以根目录 / 为起点。

2.1 常用目录说明

目录重要性说明
/bin常用Binary 的缩写,存放最经常使用的命令(也在 /usr/bin、/usr/local/bin)
/sbinSuper User 的意思,存放系统管理员使用的系统管理程序(也在 /usr/sbin、/usr/local/sbin)
/home常用存放普通用户的主目录,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名
/root常用该目录为系统管理员(超级权限者)的用户主目录
/lib系统开机所需要最基本的动态连接共享库,作用类似于 Windows 里的 DLL 文件
/lost+found一般情况下是空的,当系统非法关机后,就存放了一些文件
/etc常用所有的系统管理所需要的配置文件和子目录,比如安装 mysql 数据库的 my.conf
/usr常用用户的很多应用程序和文件都放在这个目录下,类似于 Windows 下的 program files
/boot常用存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件
/proc不能动虚拟目录,是系统内存的映射,访问这个目录来获取系统信息
/srv不能动service 缩写,该目录存放一些服务启动之后需要提取的数据
/sys不能动Linux 2.6 内核的一个很大的变化,该目录下安装了 2.6 内核中新出现的文件系统 sysfs
/tmp存放一些临时文件的目录
/dev类似于 Windows 的设备管理器,把所有的硬件用文件的形式存储
/media常用Linux 系统会自动识别一些设备,如 U 盘、光驱等,识别后 Linux 会把识别的设备挂载到这个目录下
/mnt常用系统提供该目录是为了让用户临时挂载别的文件系统的,可以将外部的存储挂载在 /mnt/ 上
/opt给主机额外安装软件所存放的目录,如安装 ORACLE 数据库就可放到该目录下,默认为空
/usr/local常用给主机额外安装软件所安装的目录,一般是通过编译源码方式安装的程序
/var常用存放着不断扩充的东西,习惯将经常被修改的目录放在这个目录下,包括各种日志文件
/selinuxSELinux 是一种安全子系统,能控制程序只能访问特定文件,有三种工作模式,可以自行设置

三、基础命令

3.1 命令通用格式

无论是什么命令,在 Linux 中,命令有其通用的格式:

  1. command [-options] [parameter]
复制代码
  • command:命令本身
  • -options:[可选,非必填] 命令的一些选项,可以通过选项控制命令的行为细节
  • parameter:[可选,非必填] 命令的参数,多数用于命令的指向目标等

3.2 帮助命令

man 命令

获取帮助信息。

  1. man [命令或配置文件] # 功能:获得帮助信息
  2. # 案例:查看 ls 命令的帮助信息
  3. man ls
复制代码
help 命令
  1. help 命令 # 功能:获得 shell 内置命令的帮助信息
复制代码

3.3 ls 命令

ls 命令格式:ls [-a -l -h] [Linux路径](选项加 R 代表递归,将子目录中的文件都罗列出来)

示例说明:

  • ls -l /home/itheima:以列表的形式,显示 /home/itheima 目录内的内容
  • cp -r test1 test2:cp 是命令本身,-r 是选项,test1 和 test2 是参数,意思是复制文件夹 test1 成为 test2

ls 选项说明:

选项说明
无选项以平铺形式,列出当前工作目录下的内容
-aall 的意思,即列出全部文件(包含隐藏的文件/文件夹)。以 . 开头的,表示是 Linux 系统的隐藏文件/文件夹(只要以 . 开头,就能自动隐藏),只有通过 -a 选项,才能看到这些隐藏的文件/文件夹
-l以列表(竖向排列)的形式展示内容,并展示更多细节
-h以易于阅读的形式,列出文件大小,如 K、M、G。-h 选项必须要搭配 -l 一起使用

参数作用: 可以指定要查看的文件夹(目录)的内容,如果不给定参数,就查看当前工作目录的内容。

命令选项组合使用: 命令的选项是可以组合使用的,比如 ls -lah,等同于 ls -a -l -h。

3.4 cd 命令 / pwd 命令

cd 命令

cd 来自英文:Change Directory

  1. cd [Linux路径]
复制代码
  • 没有选项,只有参数,表示目标路径
  • 使用参数,切换到指定路径
  • 不使用参数,切换工作目录到当前用户的 HOME

特殊路径符:

符号含义
.表示当前目录,如 cd ./Desktop 表示切换到当前目录下的 Desktop 目录内,和 cd Desktop 效果一致
..表示上一级目录,如 cd .. 即可切换到上一级目录,cd ../.. 切换到上二级的目录
~表示 HOME 目录,如 cd ~ 即可切换到 HOME 目录或 cd ~/Desktop,切换到 HOME 内的 Desktop 目录
pwd 命令

pwd 来自英文:Print Work Directory

  1. pwd
复制代码
  • 无选项,无参数,直接输入 pwd 即可
  • 作用是:输出当前所在的工作目录

3.5 绝对路径和相对路径

  • 绝对路径:以根目录为起点,描述路径的一种写法,路径描述以 / 开头
  • 相对路径:以当前目录为起点,描述路径的一种写法,路径描述无需以 / 开头

3.6 HOME 目录

Linux 系统的命令行终端,在启动的时候,默认会加载:

  • 当前登录用户的 HOME 目录作为当前工作目录,所以 ls 命令列出的是 HOME 目录的内容
  • HOME 目录:每个 Linux 操作用户在 Linux 系统的个人账户目录,路径在:/home/用户名

3.7 less 命令

less 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。

less 操作键:

操作功能说明
空白键向下翻动一页
[pagedown]向下翻动一页
[pageup]向上翻动一页
/字串向下搜寻「字串」的功能;n:向下查找;N:向上查找
?字串向上搜寻「字串」的功能;n:向下查找;N:向上查找
q离开 less 这个程序

3.8 mkdir 命令

通过 mkdir 命令可以创建新的目录(文件夹)。mkdir 来自英文:Make Directory

  1. mkdir [-p] Linux路径
复制代码
  • 参数必填,表示 Linux 路径,即要创建的文件夹的路径,相对路径或绝对路径均可
  • -p 选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录

示例:

  1. # 错误示例:会报错,因为上级目录 itcast 和 good 并不存在
  2. mkdir itcast/good/666
  3. # 正确示例:使用 -p 选项,将一整个链条都创建完成
  4. mkdir -p itcast/good/666
  5. cd itcast/good/666
  6. pwd
  7. # 输出:/home/itheima/itcast/good/666
复制代码

3.9 rmdir 命令

5. rmdir:删除空目录

  1. rmdir [OPTION]... DIRECTORY...
复制代码

rmdir 只能用于删除空目录。如果目录非空,使用该命令会提示错误。

3.10 touch 命令

6. touch:创建空文件

  1. touch [OPTION]... FILE...
复制代码

touch 命令用于创建一个或多个空文件。touch test.txt 会在当前目录下创建一个名为 test.txt 的空文件。

3.11 cat 命令

  1. cat Linux路径
复制代码
  • cat 同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用

示例:

  1. [itheima@bogon ~]$ cat test.txt
  2. itheima is a brand of itcast.
复制代码

3.12 more 命令

more 命令同样可以查看文件内容,同 cat 不同的是:

  • cat 是直接将内容全部显示出来
  • more 支持翻页,如果文件内容过多,可以一页一页的展示
  1. more Linux路径
复制代码
  • 同样没有选项,只有必填参数,参数表示:被查看的文件路径
  • 按 q 退出

3.13 cp 命令

cp 命令可以用于复制文件\文件夹,cp 命令来自英文单词:copy

  1. cp [-r] 参数1 参数2
复制代码
  • -r 选项,可选,用于复制文件夹使用,表示递归
  • 参数1,Linux 路径,表示被复制的文件或文件夹
  • 参数2,Linux 路径,表示要复制去的地方

3.14 mv 命令

mv 命令可以用于移动文件\文件夹,mv 命令来自英文单词:move

  1. mv 参数1 参数2
复制代码
  • 参数1,Linux 路径,表示被移动的文件或文件夹
  • 参数2,Linux 路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在

3.15 rm 命令

rm 命令可用于删除文件、文件夹,rm 命令来自英文单词:remove

  1. rm [-r -f] 参数1 参数2 ...... 参数N
复制代码
  • 同 cp 命令一样,-r 选项用于删除文件夹
  • -f 表示 force,强制删除(不会弹出提示确认信息)
    • 普通用户删除内容不会弹出提示,只有 root 管理员用户删除内容会有提示
    • 所以一般普通用户用不到 -f 选项
  • 参数1、参数2、……、参数N 表示要删除的文件或文件夹路径,按照空格隔开

rm 通配符: rm 命令支持通配符 *,用来做模糊匹配:

  • test*,表示匹配任何以 test 开头的内容
  • *test,表示匹配任何以 test 结尾的内容
  • *test*,表示匹配任何包含 test 的内容

注意: su root 命令进入管理员模式,exit 命令退回普通用户模式。

3.16 which 命令 / find 命令 / locate 命令

which 命令

通过 which 命令,查看所使用的一系列命令的程序文件存放在哪里。

  1. which 要查找的命令
复制代码
find 命令

在 Linux 系统中,可以通过 find 命令去搜索指定的文件。

按文件名查找:

  1. find 起始路径 -name "被查找文件名"
  2. # 被查找文件名,支持使用通配符 * 来做模糊查询
复制代码

按文件大小查找:

  1. find 起始路径 -size +|-n[kMG]
  2. # +、- 表示大于和小于
  3. # n 表示大小数字
  4. # kMG 表示大小单位,k(小写字母)表示 kb,M 表示 MB,G 表示 GB
复制代码

示例:

  1. find / -size -10k # 查找小于 10KB 的文件
  2. find / -size +100M # 查找大于 100MB 的文件
  3. find / -size +1G # 查找大于 1GB 的文件
复制代码

find 常用参数说明:

参数说明
-name pattern按文件名查找,支持通配符 * 和 ?
-type type按文件类型查找,f(普通文件)、d(目录)、l(符号链接)等
-size [+-]size[cwbkMG]按文件大小查找
-mtime days按修改时间查找,支持 + 或 -
-user username按文件所有者查找
-group groupname按文件所属组查找
-amin n查找在 n 分钟内被访问过的文件
-atime n查找在 n×24 小时内被访问过的文件
-mmin n查找在 n 分钟内被修改过的文件
-mtime n查找在 n×24 小时内被修改过的文件
locate 命令

locate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。locate 指令无需遍历整个文件系统,查询速度较快。

  1. locate 搜索文件
复制代码

特别说明: 由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。

3.17 grep 命令

可以通过 grep 命令,从文件中通过关键字过滤文件行。

  1. grep [-n] 关键字 文件路径
复制代码
  • 选项 -n,可选,表示在结果中显示匹配的行的行号
  • 参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使用 " " 将关键字包围起来
  • 参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口

3.18 wc 命令

可以通过 wc 命令统计文件的行数、单词数量等。

  1. wc [-c -m -l -w] 文件路径
复制代码
选项说明
-c统计 bytes 数量
-m统计字符数量
-l统计行数
-w统计单词数量
  • 参数,文件路径,被统计的文件,可作为内容输入端口

3.19 管道符 |

管道符的含义是:将管道符左边命令的结果,作为右边命令的输入。

  1. cat test.txt | grep "关键字"
  2. ps -ef | grep tail
复制代码

3.20 echo 命令

可以使用 echo 命令在命令行内输出指定内容。

  1. echo 输出的内容
复制代码
  • 无需选项,只有一个参数,表示要输出的内容,复杂内容可以用 " " 包围

3.21 head 命令

(4) head:从文件头开始查看内容

  1. head [OPTION]... [FILE]...
复制代码

head 命令从文件头开始查看内容,使用 -n 行数 可以指定查看的行数。

3.22 tail 命令

使用 tail 命令,可以查看文件尾部内容,跟踪文件的最新更改:

  1. tail [-f -num] Linux路径
复制代码
  • 参数,Linux 路径,表示被跟踪的文件路径
  • 选项,-f,表示持续跟踪
  • 选项,-num,表示,查看尾部多少行,不填默认 10 行

3.23 反引号与重定向符号

反引号 `

通过将命令用反引号(通常也称之为飘号)包围,被包围的内容,会被作为命令执行,而非普通字符。

  1. [itheima@bogon ~]$ echo `pwd`
  2. /home/itheima
复制代码
重定向符号
  • >,将左侧命令的结果,覆盖写入到符号右侧指定的文件中
  • >>,将左侧命令的结果,追加写入到符号右侧指定的文件中
  1. echo "hello" > test.txt # 覆盖写入
  2. echo "world" >> test.txt # 追加写入
复制代码

3.24 test 命令

  1. test EXPRESSION
  2. # 或
  3. [ EXPRESSION ] # 注意方括号内必须有空格
复制代码

文件测试操作:

操作符描述示例
-e文件是否存在[ -e file.txt ]
-f是普通文件[ -f /path/to/file ]
-d是目录[ -d /path/to/dir ]
-r可读[ -r file.txt ]
-w可写[ -w file.txt ]
-x可执行[ -x script.sh ]
-s文件大小 > 0[ -s logfile ]
-L是符号链接[ -L symlink ]

3.25 sed 命令

Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

  1. sed [-hnV][-e<script>][-f<script文件>][文本文件]
复制代码

参数说明:

  • -e
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行