Linux核心目录结构-命令-服务器-vim编辑器

Linux核心目录结构

一、Linux核心目录结构

1.1.Linux核心目录(根下)

  • 目录(windows叫文件夹),一般是用来分类存放文件
  • / 根,斜线. \反斜线.
根下的核心目录说明
⭐️ /etc/系统服务配置文件的目录,存放系统,服务,命令的配置
⭐️ /home/普通用户家目录,比如dange用户 /home/dange/
⭐️ /root皇宫,root用户家目录
/dev/device 设备文件目录,硬盘,光盘…
⭐️ /tmp/临时文件,临时问价存放目录
/proc/系统服务,进程信息,类似于汽车的仪表盘

在这里插入图片描述
在这里插入图片描述

  • /bin:存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里;
  • /etc:存放系统管理和配置文件;
  • /home:存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示;
  • /usr:用于存放系统应用程序/opt:额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里;
  • /proc:虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息;
  • /root:超级用户(系统管理员)的主目录(特权阶级o);
  • /sbin: 存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等;
  • /dev:用于存放设备文件;
  • /mnt:系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统;
  • /boot:存放用于系统引导时使用的各种文件;
  • **/lib **:存放着和系统运行相关的库文件 ;
  • /tmp:用于存放各种临时文件,是公用的临时文件存储点;
  • /var:用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等;
  • /lost+found:这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里。

1.2.路径表示形式

  • 绝对路径
  • 相对路径

二、Linux核心命令详解

2.1.cd与pwd

命令说明
cdchange directory 进入到某个目录
pwdprint working directory 显示当前所在的目录(绝对路径)
cd ~回到家目录
cd回到家目录
cd …进入到上级目录
cd …/…/进入到多层目录
cd -返回上次所在目录,cd - ,- 是 cd 的选项
cd .进入当前目录(未来一般与复制,移动一起用)

2.2.mkdir创建目录

命令说明
mkdirmake directory
mkdir -p递归创建多层目录,-p表示选项
mkdir -p test/{testa,testb}/{a,b}创建多个目录
mkdir -pv test/{testa,testb}/{a,b}创建多个目录,并显示创建过程
[10:32:16 root@rocky8-1 ~]#mkdir -pv test/{testa,testb}/{a,b}
mkdir: created directory 'test'
mkdir: created directory 'test/testa'
mkdir: created directory 'test/testa/a'
mkdir: created directory 'test/testa/b'
mkdir: created directory 'test/testb'
mkdir: created directory 'test/testb/a'
mkdir: created directory 'test/testb/b'
[10:33:30 root@rocky8-1 ~]#
[10:33:52 root@rocky8-1 ~]#tree test
test
├── testa
│   ├── a
│   └── b
└── testb
    ├── a
    └── b

6 directories, 0 files
[10:36:08 root@rocky8-1 ~]#mkdir -pv test/a/b/c/d/e/f/g/{a,b,c,d}
mkdir: created directory 'test'
mkdir: created directory 'test/a'
mkdir: created directory 'test/a/b'
mkdir: created directory 'test/a/b/c'
mkdir: created directory 'test/a/b/c/d'
mkdir: created directory 'test/a/b/c/d/e'
mkdir: created directory 'test/a/b/c/d/e/f'
mkdir: created directory 'test/a/b/c/d/e/f/g'
mkdir: created directory 'test/a/b/c/d/e/f/g/a'
mkdir: created directory 'test/a/b/c/d/e/f/g/b'
mkdir: created directory 'test/a/b/c/d/e/f/g/c'
mkdir: created directory 'test/a/b/c/d/e/f/g/d'
[10:36:12 root@rocky8-1 ~]#tree test
test
└── a
    └── b
        └── c
            └── d
                └── e
                    └── f
                        └── g
                            ├── a
                            ├── b
                            ├── c
                            └── d

11 directories, 0 files

2.3.touch创建文件

2.4.ls 查看目录内容

命令说明
lslist 列表
-llong以长格式显示(显示详细信息,比较文件时间,大小,所有者)
-ttime 按照修改时间排序
-r… 逆序排序,一般-rt 一起用
-h以人类可读形式显示大小

2.5.mv move移动、改名

操作前要备份
类似于剪切并粘贴.

2.6.cp copy 复制文件或目录【操作前备份】⚠️

cp命令选项说明
-aall 简单理解为复制所有
详情:-dpr
-r递归复制,复制目录及目录的内容
-p复制的时候保持属性不变
-d可以复制软链接

cp隐藏功能:备份

# 创建/backup/目录
# 把系统的网卡配置文件备份到/backup/目录下
mkdir /backup/
cp /etc/sysconfig/network-scripts/ifcfg-ens160 /backup/
ll /backup/

# 如果要恢复
# cp /backup/ifcfg-ens160 /etc/sysconfig/network-scripts/ifcfg-ens160

2.7.rm remove移除,删除文件或目录⚠️

rm命令选项说明
-fforce 强制删除不提示,危险
-r递归删除,删除目录及目录的内容,没有需求不要加上-r
# 删除/test/a.txt文件
mkdir -pv /test/{a,b}/{c,d}
touch /test/a.txt

# 强制删除文件/test/b.txt
rm -f /test/b.txt

# 删除目录 /test/
rm -fr /test/
ls -l /test
[root@rocky8-1 /]#rm /test/a.txt
rm: remove regular empty file '/test/a.txt'? y

2.8.echo 输出信息到屏幕

关于大于号补充:
重定向:改变数据输出方向。默认输出到屏幕,现在可以让他输出到文件中。

> 叫做重定向符号,先清空文件内容,然后再写入

>叫做追加重定向,把信息写入到末尾
重定向符号好多

##输出信息到文件中
echo hello world >> /test/hello.txt
ls -l /test/

cat /test/hello.txt
输有规律的内容
echo {0..10}
0 1 2 3 4 5 6 7 8 9 10

温馨提示:{}生成序列
简单是与echo使用输出
普通是与touch、mkdir一起使用,批量创建文件或目录

2.9.cat 显示文件内容

  • cat主要功能显示文件内容
  • concatenate合并文件
cat命令选项说明
-nnumber 显示文件内容及行号
  • 显示文件内容并显示行号
# 显示文件内容并显示行号
cat -n /etc/sysconfig/network-scripts/ifcfg-ens160
  • 扩展 合并
# 扩展 合并
输出 hello.txt和file.txt 2个文件的内容
cat hello.txt
cat file.txt
echo file.txt hello.txt

# 保存到1个文件中
cat file.txt hello.txt >> all.txt
echo all.txt
  • cat可创建文件:命令如下
cat >>test.txt<<EOF
向文件写入多行内容
使用
EOF

三、Linux环境的初步优化【centos7.9】

3.1.检查虚拟机是否联网–虚拟机是否可以访问外部网络

ping baidu.com

3.2.配置阿里云 centos镜像yum源(安装软件的软件仓库)

阿里云 centos镜像源网站:https://developer.aliyun.com/mirror/centos

默认情况下yum下载软件的时候是从随机地址下载
配置yum从国内下载(仅执行即可)

# 配置阿里云 centos镜像yum源
## 备份yum源配置
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
## 下载 命令1
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
## 下载 命令2
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

3.3.安装Linux常用工具

# 安装Linux常用工具
yum -y install tree vim wget lrzsz 
yum -y install net-tools sysstat iotop iftop htop unzip nc nmap telnet bc 
yum -y install psmisc httpd-tools bind-utils nethogs expect ntpdate
# 终端复用器软件就是会话与窗口的“解绑”工具
yum -y install epel-release
yum -y install screen
# 命令补全
yum -y install bash-completion bash-completion-extras

# 安装linux娱乐工具
yum install -y sl cowsay
运行 tree 命令,运行 sl 命令
命令作用
tree以树形显示目录结构
psmiscpstree 等命令
vimvi升级版
wget下载工具
bash-completion(默认源)自动补全增强工具,可以补全命令参数
bash-completion-extras(epel)自动补全超级增强工具,可以补全命令参数
lrzsz上传下载工具 rz和sz
net-toolsifconfig route命令属于的软件包
sysstatsar iostat 属于的软件包
iotop查询系统每个进程的io读写情况 swap写入情况
iftop查询网络流量情况
nethogs显示每个进程的流量情况
htoptop升级版
unzip解压
ncncat 类似telnet
nmap网络扫描工具
telnet检查端口是否开启
bc基础计算器
lsof显示所有被打开的文件
digDNS解析 bind-utils软件包
nslookupDNS解析 bind-utils软件包
hostDNS解析 bind-utils软件包
htpasswd创建密码文件 存放用户名和加密的密码 一般用于 nginx 简单认证中
mkpasswd生成随机密码 属于expect软件包

3.4.软件安装完成后并检查后拍摄快照

  • 检查是否有“完成”提示“Complete”

3.5.vi-vim编辑器详解

3.5.1.vi/vim区别

内容区别
vi系统自带,不需要额外安装,,没有vim功能多
vim在最小化安装的版本默认没有,需要额外安装,vi的升级版(vi imporved),未来大部分情况都是用vim即可

3.5.2.vi/vim基本使用

3.5.2.1.打开文件(不存在也OK)
ls -l /test/
vim /test/log.txt

⚠️ vi/vim
如果文件不存在会自动创建;
如果目录不存在不会创建,会在保存并退出的时候报错。
报错信息:文件路径不存在
“/test/a/a/a.txt” E212: Can’t open file for writing
Press ENTER or type command to continue

3.5.2.2.进入编辑模式
  • 按字母 i 即可,编辑这个文件
3.5.2.3.保存并退出
  • 输入:wq write(写,保存)quit(退出)
  • :q! 强制退出不保存
  • :wq! 强制退出并保存
3.5.2.4.检查
cat /test/log.txt

3.5.3.vim的模式转换

  • 命令格式:通过vi/vim打开文件后进入的模式,默认进入的模式,可以输入各种vi/vim命令(快捷键)
  • 编辑模式(插入模式):用于编辑,修改文件内容,需要按对应的命令(快捷键)
  • 底行模式:保存退出,搜索使用。(输入:之后进入的地方)
  • 可视块模式:用于批量编辑

在这里插入图片描述

3.5.4.vim快捷键 ⭐️⭐️⭐️⭐️⭐️

  • 创建测试文件
cat /etc/services /etc/sysconfig/network-scripts/ifcfg-eth0 >> /test/vim.log
# 只操作/test/vim.log文件
  • 移动光标类快捷键-必会⭐️⭐️⭐️⭐️⭐️
  • 行之间调整: 上下调整
行之间调整: 上下调整
移动到最后一行  G(shift+g)
移动到第1行 gg
移动到某一行 100gg
  • 列之间调整:左右
光标移动到行首 ^(shift+数字6)
光标移动到行尾 $(shift+数字4)
  • J上⬆️
  • H左⬅️ L右 ➡️
  • K下⬇️
  • 复制,删除(剪切),粘贴⭐️⭐️⭐️⭐️⭐️
复制当前行  yy
删除当前行  dd
粘贴到当前行后 p
重复粘贴   3p   粘贴三次
  • 其它快捷键⭐️⭐️⭐️⭐️⭐️
撤销快捷键  u(undo)
显示行号  :set nu  或 :set number
取消显示行号   :set nonu
搜索(默认就是向下找)  /你要搜索的内容
继续向下搜索   n(next)
继续向上搜索  N

了解:
搜索默认向上找  ?/你要的内容
临时取消语法高亮  :noh  一般用于 /搜索错误,可以使用.
  • 在光标的下一行插入:o(小写字母O)
  • 把ssh替换为test
    • :%s#ssh#test#g
    • %s表示从第1行到最后一行
    • s#找谁#替换成什么内容#g表示替换

3.6.vim批量操作

vim /test/vim.log
  • 批量处理行:复制、删除,了解
shift+v 进入到可视行模式(批量操作行)
按上下键,按j(向下选取列)或者k(向上选取列),选择要处理的范围
如果删除按d,如果复制按y
  • 批量删除某部分内容,批量增加内容⭐️⭐️
  • 1️⃣ 批量删除文件开头的 #
定位到某列
按ctrl+v,进入批量操作模式
选择要操作的区域
然后按d,删除.
  • 2️⃣ 批量给文件开头增加内容 #dange
按ctrl+v,进入批量操作模式
选择要操作的区域
选完后,按shift+i(I),进入编辑模式
写入内容
按esc等待

3.7.vim多窗口编辑多文件功能

  • 在使用vim打开文件时,可以通过选项设置同时打开多个窗口
选项含义
-o水平分割窗口
-O垂直分割窗口
  • 切换窗口命令(Ctrl+w)

  • 同时按住Ctrl+w后松开,然后按方向键进行切换,详情如下:

命令含义
向上切换文件
向下切换文件
向左切换文件
向右切换文件
s单个文件再做水平切割,也适用于单文件修改
v单个文件再做垂直切割,也适用于单文件修改
vim -O test1.txt test2.txt

在这里插入图片描述

3.8.快捷键小结

vim快捷键
移动到最后一行  G(shift+g)
移动到第1行 gg
移动到某一行 100gg
复制当前行  yy
删除当前行  dd
粘贴到当前行后 p
重复粘贴   3p   粘贴三次
撤销快捷键  u(undo)
显示行号  :set nu  或 :set number
取消显示行号   :set nonu
搜索(默认就是向下找)  /你要搜索的内容
继续向下搜索   n(next)
继续向上搜索  N

3.9.故障案例

  • vim 编辑文件故障提示:
E325: ATTENTION
E325: 注意
Found a swap file by the name "/test/.vim.log.swp"
发现交换文件 "/test/.vim.log.swp"
          owned by: root   dated: Sat Apr 13 19:19:24 2024
          所有者: root   日期: Sat Apr 13 19:19:24 2024
         file name: /test/vim.log
         文件名: /test/vim.log
          modified: YES
          修改过: YES
         user name: root   host name: host-200-king
         用户名: root   主机名: host-200-king
        process ID: 3753
        进程 ID: 3753
While opening file "/test/vim.log"
正在打开文件 "/test/vim.log"
             dated: Sat Apr 13 19:17:45 2024
             日期: Sat Apr 13 19:17:45 2024

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.
(2) An edit session for this file crashed.
    If this is the case, use ":recover" or "vim -r /test/vim.log"
    to recover the changes (see ":help recovery").
    If you did this already, delete the swap file "/test/.vim.log.swp"
    to avoid this message.
    如果是这样,请用 ":recover" 或者 "vim -r /test/vim.log"
    恢复修改的内容(请见 ":help recovery").
    如果你已经进行了恢复,请删除交换文件  "/test/.vim.log.swp"
    以避免再看到此信息。

Swap file "/test/.vim.log.swp" already exists!
交换文件 "/test/.vim.log.swp" 已存在!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:
以只读方式打开([O]), 直接编辑((E)), 恢复((R)), 删除交换文件((D)), 退出((Q)), 中止((A)):

在这里插入图片描述

  • 原因 :
    • 1️⃣ vi/vim编辑文件的时候,会生成临时文件(隐藏文件).
    • 2️⃣ 通过保存退出,隐藏文件消失.
    • 3️⃣ 异常情况,断电,同时编辑这个文件,就会有这个提示.
  • 解决 :
    • :A: 方案1:删除临时文件,工作中也可以删除,根据提示的路径删除对应的临时文件即可,重新打开文件。
    • :B: 方案2:恢复未保存数据
vim -r /test/vim.log
rm -f /test/.vim.log.swp
重新打开文件即可修复了。

四.服务器分类

4.1.服务器分类

  • 服务器可以叫做Servers,一般用于运行Linux系统或windows系统的设备,支撑各种app,网站,小程序稳定运行。
  • 服务器更加稳定,更容易扩展。
服务器分类特点选型建议
物理服务器物理设备,但是购买后自己部署,需要租机房,带宽…各种费用.测试环境,访问量大使用物理。
公有云:云服务器可以按需分配(按照要求选择配置),用户不需要关注物理设备中小型初创
私有云:虚拟机/虚拟化…自己准备物理设备,自定义,数据更安全。对于安全性有要求

4.1.1.物理服务器

  • 相关视频链接:https://www.bilibili.com/video/BV1rb411n7a8

  • 物理服务器分类:机架式服务器(抽屉),塔式服务器,刀片服务器

  • 在这里插入图片描述

  • 物理服务器 品牌:dell,国产服务器,华为,浪潮…

4.1.2.云服务器

  • 云服务器品牌:
    • 国内:阿里云、腾讯云、华为云(政企)
    • 国外:aws(亚马逊),谷歌云(GCP),微软云(Azure)
  • 机柜
  • IDC(数据中心)机房

4.2.IDC机房和机柜知识【了解】

4.2.1.IDC机房

  • 为企业提供存放服务器的空间和提供大量带宽,宽带分为单线带宽和多线(BGP线路)带宽。
  • 联通、移动、电信、教育、广电、铁通。不同线路之间通信很慢。
  • 单线,1M/30元,只有某一个线路比如,联通,做CDN服务的企业,或者CDN服务器。
  • 多路(BGP线路):4线 联通、移动、电信、教育,1M/120-300元,企业多数都会买BGP机房。

在这里插入图片描述

4.2.2.机柜和服务器

在这里插入图片描述

  • 通常机柜都是42U约2米高,一般每个服务器之间都会留有散热的空余空间。

4.2.3.IDC机房服务器上架流程

4.2.3.1.购买服务器
  • 服务器配置清单,价格清单(找不低于三家),发给老大选择。
  • 老大审核后,申请财务支付。走钉钉流程。
4.2.3.2.上架服务器
  • 1️⃣ 第一种上架方式:
    • 把购买的服务器直接送到托管的IDC机房,由IDC机房的人负责上架(7–8 个)
    • 然后由运维人员去装系统,初始化,测试网络连接
    • 回公司远程连接,配置各种服务。
  • 2️⃣ 第二种上架方式:
    • 把购买的服务器送到公司,做好RAID,做好系统,然后送到IDC机房
    • 运维人员自行上架,装系统,初始化,测试
    • 回公司远程连接,配置各种服务、压力测试,正式上线
4.2.3.3.和IDC约定上架日期

确定好上架日期之后,提上架工单

  • 上架人员:姓名、身份证、服务器型号、机柜号、IP地址
4.2.3.4.去IDC机房需要准备的工具
  • 身份证
  • U盘、光盘、移动光驱、空白光盘、螺丝刀
  • (也可以提前配置好无人值守安装服务
4.2.3.5.去机房配置服务器细节
  • 1️⃣ 先去IDC机房等记
    • 去前台等记,拿到工牌
    • 寄存背包,登机领取显示器、键盘或者小推车
  • 2️⃣ 配置服务器
    • 做RAID、装系统、配网络、配置防火墙
    • 初始化、测试SSH连接,确保投过跳板机能正常连接
  • 3️⃣ 收尾
    • 去前台归还工牌,小推车(放显示器和键盘)
    • 拿回自己的东西
    • 手工回公司

五、目录结构深入–文件–了解

5.1./etc/下面

/etc/文件说明企业说明
/etc/hostname主机名配置文件每个Linux主机配置主机名,根据主机名区别不同功能
/etc/hosts主机名和ip的对应关系在网站中做访问使用
/etc/sysconfig/network-scripts/ifcfg-eth0网卡配置文件物理机要改改,云服务器自动
/etc/rc.local开机启动的文件把需要开机的时候自动运行的命令,服务放到这个文件中
/etc/fstab开机挂载的配置文件配置磁盘挂载使用
/etc/motd文件中的内容会在用户登录系统后显示出来显示温馨提示,佛祖保佑,永不宕机
/etc/issue
/etc/issue.net
文件中的内容在用户登录系统前显示出来这个文件内容应该清空

5.1.1.修改主机名⭐️⭐️⭐️⭐️⭐️

修改主机名建议:看到主机名就能知晓,这个节点的作用。
推荐英文,“-”,“.”就行,不要加入其它特殊符号,不要加入中文字符

  • 下表为系统主机配置记录表
ip地址-内网ip地址-公网主机名cpu内存硬盘其它系统服务
10.0.0.200模板机1120centos 7.9网站服务器
10.0.0.201web01.baidu.cn1120centos 7.9baidu.cn网站服务器
# 命令同时修改临时+永久  表示一直有效
hostnamectl set-hostname 新的主机名
hostname 主机名

#查看主机名
hostnamectl
hostname
cat /etc/hostname
# 重新登录 远程连接
  • 老的方法(适用于旧的系统)
  • 1️⃣ 命令行通过hostname命令修改(临时修改,重启Linux后有效)
  • 2️⃣ 手动修改/etc/hostname文件内容(永久修改,重启Linux后有效)

5.1.2.网卡配置文件

网卡配置文件说明
/etc/各种配置的目录
/etc/sysconfig system configure系统配置文件
/etc/sysconfig/network-scripts/网络的配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0 或 ens33if interface 网卡接口
eth网卡
[root@host-200 etc]#nmtui
[root@host-200 etc]#cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=06a8264a-8768-481b-a23d-ba2ee1dc1c72
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.200  # 网卡ip地址
PREFIX=24
GATEWAY=10.0.0.2
DNS1=223.5.5.5
DNS2=223.6.6.6
IPV6_PRIVACY=no

DNS1,DNS2 dns
修改网卡配置文件
重启服务
systemctl restart network

DNS(域名解析服务)用于把域名转换为ip.
jd.com 域名
ip
域名baidu.com -> DNS -> ip地址

5.1.3./etc/rc.local 开机自启动配置文件【⚠️谨慎使用】

  • 主要掌握这个文件的用途
第一次使用这个文件之前需要给/etc/rc.d/rc.local增加执行权限.
chmod +x /etc/rc.d/rc.local
在/etc/rc.local中写个shutdown -h now 或者 reboot
试试就逝世.

了解:温馨提示

/etc/rc.local 本质是个快捷方式(软链接),源文件是/etc/rc.d/rc.local

5.1.4./etc/motd issue

建议:motd写入系统的基本信息,固定不变的
issue文件清. >/etc/issue

  • nano工具可以实现文本的编辑,上手容易,适合初学者
  • gedit工具是图形工具

范例: 创建登录提示文件 /etc/motd
参考网站: https://www.bootschool.net/ascii-art

  • issue内容
[10:11:57 root@host-200 etc]#cat /etc/issue
\S
Kernel \r on an \m

[10:28:17 root@host-200 etc]#cat /etc/issue.net
\S
Kernel \r on an \m

在这里插入图片描述

5.2./var/下面

  • var 经常变化的内容,variable。比如:日志
  • Linux有些异常的时候,我们要查看对应的日志
  • Linux中的日志反映出,记录着系统,服务的运行情况
  • Linux系统日志
/var/ 经常变化的内容说明应用建议
/var/log系统及服务的各种日志记录
/var/log/secure存放用户登录情况日志分析是有恶意破解情况
/var/log/message通用各种服务的日志,日志很多分析服务,系统异常
  • Linux服务日志
  • 以secure为例,查看登录日志
让他连接失败几次
查看日志
ssh -p 22 root@10.0.0.200
# ssh远程连接的命令
-p 指定端口号
root 用户名
ip

然后查看/var/log/secure
Failed password 提示密码错误

5.3./proc/下面

这个目录下面存放的是系统的各种进程信息,Linux内核信息,系统信息。
这是个虚拟目录,不会占用磁盘空间。

/proc/ 系统,进程信息,内核说明应用建议
/proc/cpuinfocpu信息未来监控使用,获取cpu信息
/proc/meminfo内存信息未来监控使用,获取内存指标
/proc/loadavg系统负载信息,衡量系统繁忙程度进程详解
/proc/mounts系统挂载信息nfs服务详解

5.3.1.cpu信息

  • cpu颗数,cpu核心数
    • cpu颗数,有多少个物理的cpu
    • cpu核心数:1颗中有多少个核心,,每个核心相当于是1个工人
# 查看cpu信息,核心数,颗数
lscpu
CPU(s) 核心数
座 Socket:cpu颗数

5.3.2.内存信息–熟悉

  • 内存,磁盘(硬盘)
    • 硬盘永久存储数据的地方.
    • 内存临时存放数据的地方.
  • 内存
    • cpu速度太快,硬盘速度太慢,cpu就要等着硬盘,造成系统缓慢.
    • 内存速度比cpu慢,比硬盘快。CPU ==>内存 ==>磁盘
    • 运行磁盘程序,运行在内存中.

六、日志查询4剑客 : cat/head/tail/more/less

6.1.概述

查看日志不要使用,cat或vim,vi命令。未来的日志文件。有的日志可达:40G或以上.
如果使用cat查看,会刷屏根本听不下来.
如果使用vi/vim查看,从磁盘中加载到内存,占用系统内存,很容易导致系统内存不足.

  • Linux查询日志,文件较大,通过cat,vi/vim进行查看,系统可能卡死,可能内存不足。
  • 推荐使用不会占用系统太多资源的命令,查看日志:head/tail ,less/more

故障案例:

  • vim 打开大日志文件导致内存…不足–1.9G文件
  • 解决办法:关闭进程 或者结束进程
    在这里插入图片描述

6.2.日志查询命令使用

6.2.1.head 显示文件的头几行,默认是前10行

head选项说明
-n num显示头num行,默认显示头10行
# 显示/etc/passwd 文件的前5行
head -n5 /etc/passwd
head -n 5 /etc/passwd
head -5 /etc/passwd

⚠️温馨提示:
一般情况下,使用-数字即可。
如果-5报错或无法使用,则使用-n5形式。

6.2.2.tail 显示文件的后几行,默认是后10行

tail选项说明
-n num显示头num行,默认显示最后10行
-f显示文件末尾的实时更新==(一般用于查看日志)==
# 显示/etc/passwd 文件的后5行
tail -n5 /etc/passwd
tail -5 /etc/passwd
  • 可以实时查看文件的末尾的更新
# 查看/var/log/secure 末尾的实时更新
tail -f /var/log/secure
  • 打开2个窗口,一个查看,一个写入
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 其它命令:tailf === tail -f

⚠️ 温馨提示:如何查看日志,要看每一行吗?

看日志要抓住核心,关键,线索
这些线索一般是:==关键词语错误提示:==failed,failure,error …
/var/log/secure 中 查看,Failed password

6.2.3.less 按页显示文件内容

  • 一页一页翻看问价内容,也可以进行搜索.
less选项与快捷方式说明
q退出查看
空格/f下一页
b上一页(back)
G最后1行
g第1行
99g到第99行
/内容搜索内容,n继续向下搜索,N继续向上搜索
选项
less -N显示行号

6.2.4.more 按页显示文件内容,到达最后一行就退出

  • more功能没有less多.

6.2.5.小结

  • 前后多少组合
  • head/tail
  • less/more
  • 大文件避免使用cat/vi/vim查看…

七、wc统计

  • world count/calcuate 统计文件中单词情况,大小,行数,未来工作中用于统计行数
  • 简单使用是统计文件的行数,未来还可以统计一些命令的结果有多少行
wc选项说明
-l统计行数

7.1.统计/etc/services文件有多少行

# 统计/etc/services文件有多少行
wc -l /etc/services

在这里插入图片描述

7.2.案例:统计系统用户登录错误次数Failed password

温馨提示:未来使用wc使用案例
1️⃣ 一般都是配合其它命令,可以取出xxxx次数.
2️⃣ 还可以放在脚本中进行判断.

# 1.过滤出日志中错误信息
grep 'Failed password' /var/log/secure # 过滤

# 2.交给wc -l 统计次数
# grep 命令的结果传递给wc -l 命令
grep 'Failed password' /var/log/secure | wc -l

在这里插入图片描述
在这里插入图片描述

7.3.管道符号 |

  • grep 命令过滤:在文件中,命令结果中找出你要的内容.
  • 管道符号 |
  • 命令1 | 命令2 | …
  • 把前一个命令的结果,传递给后面的命令使用

八、查询命令位置

熟悉下面的几个命令即可

  • which
  • whereis
  • 查找命令绝对路径

8.1.which

  • 查询命令的位置
[root@host-200 ~]#which wc mkdir sed awk ping ip shutdown
/usr/bin/wc
/usr/bin/mkdir
/usr/bin/sed
/usr/bin/awk
/usr/bin/ping
/usr/sbin/ip
/usr/sbin/shutdown

8.2.whereis

  • 查询命令及相关文件的位置
[root@host-200 ~]#whereis wc mkdir sed awk ping ip shutdown
wc: /usr/bin/wc /usr/share/man/man1/wc.1.gz
mkdir: /usr/bin/mkdir /usr/share/man/man1/mkdir.1.gz
sed: /usr/bin/sed /usr/share/man/man1/sed.1.gz
awk: /usr/bin/awk /usr/libexec/awk /usr/share/awk /usr/share/man/man1/awk.1.gz
ping: /usr/bin/ping /usr/share/man/man8/ping.8.gz
ip: /usr/sbin/ip /usr/share/man/man8/ip.8.gz
shutdown: /usr/sbin/shutdown /usr/share/man/man8/shutdown.8.gz
[root@host-200 ~]#whereis -b ls awk
ls: /usr/bin/ls
awk: /usr/bin/awk /usr/libexec/awk /usr/share/awk
[root@host-200 ~]#whereis -b wc mkdir sed awk ping ip shutdown
wc: /usr/bin/wc
mkdir: /usr/bin/mkdir
sed: /usr/bin/sed
awk: /usr/bin/awk /usr/libexec/awk /usr/share/awk
ping: /usr/bin/ping
ip: /usr/sbin/ip
shutdown: /usr/sbin/shutdown

九、文件比较命令【服务配置对比新旧文件】

  • 未来在服务的配置中,我们需要对比下新旧的配置文件,查看修改了哪些内容.
  • 这时候就需要进行问价的对比操作,可以使用diff,vimdiff命令实现.

9.1.diff

echo 'hello world' >>test1.txt
echo 'hello wow' >>test2.txt
diff test1.txt test2.txt

a append 增加
c 替换,修改
d 删除

在这里插入图片描述

9.2.vimdiff

vimdiff test1.txt test2.txt
[root@host-200 test]#diff test1.txt test2.txt
1,2c1
< hello world
< 1
---
> hello wow
4a4,7
> 456
> 7
> 7
> 53
6c9,10
< 5
---
> 667
> 

在这里插入图片描述

十、排序去重组合⭐️⭐️⭐️⭐️⭐️

  • 未来生产环境,统计分析,日志分析,系统信息分析,必备命令。
  • sort:排序
  • uniq:去重并统计次数

10.1.sort排序-n,-r,-k,-t⭐️⭐️⭐️⭐️⭐️

sort选项说明
-nnumber把要排序的内容当做是数字按照数字大小进行排序,默认是升序排序(小—大)
-k指定某一列,根据某一列进行排序
-rreverse逆序排序
-t指定分隔符,单个字符,只能是1个字符,默认是空格.

10.1.1.基数数字排序:对文件的数字进行排序⭐️⭐️⭐️⭐️⭐️

[root@host-200 test]#sort sort.txt
1
3
34
4
4
5
5
6
6
6
6
7
8
99993
[root@host-200 test]#sort -n sort.txt
1
3
4
4
5
5
6
6
6
6
7
8
9.9
34
99993
  • 温馨提示:
    • sort默认是按照字母/字符进行对比,会造成数字对比失败
    • 解决 -n

10.1.2.基数数字排序:对文件的数字进行逆序排序

  • 按照逆序(大—小)进行排序
sort -nr sort.txt

10.1.3.对文件的某一列进行排序⭐️⭐️⭐️⭐️⭐️

# 顺序排序
# -n 代表数字
# -k2 代表第二列
sort -n -k 2 sort-1.txt
sort -nk2 sort-1.txt

# 逆序排序
# 如果是逆序排序则加上 -r 即可
# -r 代表reverse,逆序排序
sort -nr -k2 sort-1.txt
sort -nrk2 sort-1.txt
[root@host-200 test]#vi sort-1.txt
[root@host-200 test]#wc -l sort-1.txt
5 sort-1.txt
[17:02:11 root@host-200 test]#cat sort-1.txt
zhangsan    18
lisi        24
wangwu      16
libai       68
marry       34
[root@host-200 test]#sort -n -k 2 sort-1.txt
wangwu      16
zhangsan    18
lisi        24
marry       34
libai       68
[root@host-200 test]#sort -nk2 sort-1.txt
wangwu      16
zhangsan    18
lisi        24
marry       34
libai       68

10.1.4.企业面试题 : ll /etc/ 取出大小最大的前五个

  • 企业面试题:ll /etc/ 取出大小最大的前五个
  • 提示:需要使用管道
  • 翻译:对 ll /etc/ 进行逆序排序,取出前5个就行.
  • 方法1:
# 对 ll /etc/ 进行逆序排序
ll /etc/ | sort -nrk5
# 取出前五个就行
ll /etc/ | sort -nrk5 | head -5
  • 方法2:默认排序,取出最后5个
ll /etc/ | sort -nk5 | tail -5

在这里插入图片描述

10.1.5.指定分隔符进行排序⭐️

  • 案例:对passwd文件的第3列进行排序(逆序)
  • cp /etc/passwd .
  • 希望sort命令排序的时候每一列之间如果不是空格,sort也能识别.
  • sort使用-t选项就行,指定分隔符(每一列之间通过什么分割的).
sort -t ':' -nrk3 /etc/passwd

10.1.6.通过sort对多列进行同时排序

  • sort -rn -k2 -k4 sort-2.txt
  • 多列排序说明 -k2 -k4表示先对第2列进行排序,如果第2列有重复的则对第4列排序
  • 表示优先对第2列排序,第4列是辅助的
cat >/test/sort-2.txt<<EOF
zhangsan 24 linux学院 29999
lisi 18 java学院 8999
wangwu 20 前端学院 7999
zs 18 linux学院 7855
zs1 18 linux学院 4455
zs2 14 linux学院 13055
zs3 35 linux学院 12055
zs5 16 linux学院 9855
zs4 21 linux学院 5855
EOF
[root@host-200 test]#sort -rn -k2 sort-2.txt
zs3 35 linux学院 12055
zhangsan 24 linux学院 29999
zs4 21 linux学院 5855
wangwu 20 前端学院 7999
zs 18 linux学院 7855
zs1 18 linux学院 4455
lisi 18 java学院 8999
zs5 16 linux学院 9855
zs2 14 linux学院 13055

[root@host-200 test]#sort -rn -k2 -k4 sort-2.txt
zs3 35 linux学院 12055
zhangsan 24 linux学院 29999
zs4 21 linux学院 5855
wangwu 20 前端学院 7999
lisi 18 java学院 8999
zs 18 linux学院 7855
zs1 18 linux学院 4455
zs5 16 linux学院 9855
zs2 14 linux学院 13055

10.1.7.以.点为分隔符对第3列和第4列排序⭐️⭐️⭐️⭐️⭐️

  • 以.点为分隔符
cat >/test/sort-3.txt<<EOF
192.168.3.1 00:0F:AF:81:19:1F
192.168.3.2 00:0F:AF:85:6C:25
192.168.3.3 00:0F:AF:85:70:42
192.168.2.20 00:0F:AF:85:55:DE
192.168.2.21 00:0F:AF:85:6C:09
192.168.2.22 00:0F:AF:85:5C:41
192.168.0.151 00:0F:AF:85:6C:F6
192.168.0.152 00:0F:AF:83:1F:65
192.168.0.153 00:0F:AF:85:70:03
192.168.1.10 00:30:15:A2:3B:B6
192.168.1.11 00:30:15:A3:23:B7
192.168.1.12 00:30:15:A2:3A:A1
192.168.1.1 0:0F:AF:81:19:1F
192.168.2.2 00:0F:AF:85:6C:25
192.168.3.3 00:0F:AF:85:70:42
192.168.2.20 00:0F:AF:85:55:DE
192.168.1.21 00:0F:AF:85:6C:09
192.168.2.22 00:0F:AF:85:5C:41
192.168.0.151 00:0F:AF:85:6C:F6
192.168.1.152 00:0F:AF:83:1F:65
192.168.0.153 00:0F:AF:85:70:03
192.168.3.10 00:30:15:A2:3B:B6
192.168.1.11 00:30:15:A3:23:B7
192.168.1.12 00:30:15:A2:3A:A1
192.168.1.1 00:0F:AF:81:19:1F
192.168.2.2 00:0F:AF:85:6C:25
192.168.3.3 00:0F:AF:85:70:42
192.168.2.20 00:0F:AF:85:55:DE
192.168.1.21 00:0F:AF:85:6C:09
192.168.2.22 00:0F:AF:85:5C:41
192.168.0.151 00:0F:AF:85:6C:F6
192.168.1.152 00:0F:AF:83:1F:65
192.168.0.153 00:0F:AF:85:70:03
192.168.3.10 00:30:15:A2:3B:B6
192.168.1.11 00:30:15:A3:23:B7
192.168.3.12 00:30:15:A2:3A:A1
EOF
指定分隔符,多列排序的时候容易出现排序失误
这时候需要我们手动告诉sort,排序的范围

# 以.点为分隔符
sort -t '.' -rn -k3 -k4 sort-3.txt
sort -t '.' -rn -k3,3 -k4,4 sort-3.txt

-rn 数字逆序排序
-k3,3 表示仅对第三列排序
-k4,4 对第四列排序

在这里插入图片描述

10.2.uniq:去重(去掉重复的留下唯一的)

unique独一无二

  • 去重(去掉重复的留下唯一的)
uniq选项说明
-c去重并显示次数(重复次数)
cat >/test/uniq.txt<<EOF
zhangsan
zhangsan
zhangsan
zhangsan
lisi
wangwu
zhangsan
lisi
wangwu
zhangsan
lisi
wangwu
zhangsan
lisi
wangwu
zhangsan
lisi
wangwu
lily
EOF
# 1.进行排序
sort uniq.txt

# 2.排序之后进行去重
sort uniq.txt | uniq -c

# 3.然后可以对uniq -c结果进行排序(最大的在最上面,降序排序)
sort uniq.txt | uniq -c | sort -rn

在这里插入图片描述

10.3.企业实战案例–日志分析⭐️⭐️

  • 分析日志/var/log/secure 日志

  • 上传到Linux中(lrzsz)

  • yum install -y lrzsz

    • rz上传到Linux中(拖拽)
    • sz从Linux下载到windows中
案例:统计secure-ip.txt 文件中每个ip出现的次数并取出前5.
1.通过sort处理下
2.去重uniq -c
3.sort对次数进行排序
4.head取出前5

sort secure-ip.txt | head -50
sort secure-ip.txt | uniq -c | sort -rn | head -5

10.4.小结

  • 1️⃣ sort排序.
  • 2️⃣ uniq去重统计次数,一般与sort搭配.
  • 3️⃣ sort用于进行排序,文件内容,命令结果.
  • 4️⃣ uniq与sort共同实现去重统计次数.

十一、日期组合

在Linux中,我们需要日常查看系统的时间,保证整个网站所有服务器的系统时间一致的.
未来在运维的日常操作中,书写脚本的时候也需要使用时间,比如 创建以当前日期命名的文件,目录,备份.

  • date
  • ntpdate
  • 特殊符号

11.1.date

  • 设置或查看系统的时间,时间命令
  • 未来主要用于查看日期或去日期
date选项说明
+以xxxx格式显示日期与时间
%F 年-月-日
%Y-%m-%d
%w 周几
+%T
%H:%M:%S 时:分:秒
-d根据说明修改时间
-s修改时间
  • 按照指定格式显示时间或日期⭐️⭐️
# 案例  按照指定格式显示日期 年--2024-04-14
date +%F
2024-04-14

full 可以理解为完整日期
# 案例  按照指定格式显示日期 年月日 20240414
# Year month day
date +%Y%m%d
20240414
# 案例  显示当前时间 时::秒
# Hour Mintue Second
# T time
date +%T
date +%H:%M:%S
19:43:08
# 案例  显示当前日期为 年--日_周几
# w week
date +%Y-%m-%d_%w
2024-04-14_0
  • 按照说明显示指定时间或日期
[19:46:42 root@host-200 test]#date -d '-1 day'
Sat Apr 13 19:49:39 CST 2024
[19:49:39 root@host-200 test]#date -d '+2 day'
Tue Apr 16 19:50:03 CST 2024
[19:50:03 root@host-200 test]#date -d '20251212 11:11:11'
Fri Dec 12 11:11:11 CST 2025
[19:50:38 root@host-200 test]#date -d '+1 day'
Mon Apr 15 19:51:18 CST 2024
[19:51:18 root@host-200 test]#date -d '1 day'
Mon Apr 15 19:51:24 CST 2024
[19:51:24 root@host-200 test]#date -d '+2 day' +%F
2024-04-16

# 案例  显示1天的日期 按照年--日_周几_小时 格式显示
date -d '-1 day' +%F_%w_%H
[19:51:54 root@host-200 test]#date -d '-1 day' +%F_%w_%H
2024-04-13_6_19
  • 手动修改时间
date -s '20240413 13:14:52'
date -s '20240413'

11.2.ntpdate 同步时间的命令

# 修改系统时间,让系统时间不同步
date -s '20240413 13:14:52'
# 安装时间同步命令
yum install -y ntpdate
# 运行时间同步
ntpdate ntp1.aliyun.com

[root@host-200 test]#ntpdate ntp1.aliyun.com
14 Apr 20:01:11 ntpdate[3207]: step time server 120.25.115.20 offset -207460751.679543 sec
# 最后检查
date命令查看时间

提示offset xxx sec 表示同步成功

ntpdate ntp1.aliyun.com 是阿里云的时间服务器之一,未来也可以自己搭建.
ntp1…ntp7

11.3.修改时区–熟悉

# 修改时区
timedatectl set-timezone Asia/Shanghai
# 查看时区
timedatectl status
[root@host-200 test]#timedatectl status
      Local time: Sun 2024-04-14 20:17:54 CST
  Universal time: Sun 2024-04-14 12:17:54 UTC
        RTC time: Sun 2024-04-14 12:17:55
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: n/a
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

11.4.应用实战

  • date应用场景:企业备份的时候,给压缩包加上时间
创建文件或目录,给文件名或目录名字加上个时间。
  • 特殊符号 ``,反引号里面的命令会被优先执行
ll `which find`的执行流程

1.先执行which命令找出find命令的绝对路径位置
2.输出这个位置(显示)
3.运行 ll命令 find命令的位置
[root@host-200 test]#which find
/usr/bin/find
[root@host-200 test]#ll /usr/bin/find
-rwxr-xr-x. 1 root root 199304 Oct 31  2018 /usr/bin/find
[root@host-200 test]#ll `which find`
-rwxr-xr-x. 1 root root 199304 Oct 31  2018 /usr/bin/find
  • 创建backup-etc-今天的年-月-日.txt
date +%F
touch backup-etc-`date +%Y-%m-%d`.txt
touch backup-etc-`date +%F`.txt

11.5.小结

  • 掌握Linux系统时间相关的命令:date,ntpdate,timedatectl
  • 核心掌握date时间格式 +%F,%w,%T
  • 核心掌握时间同步方法
  • 企业案例:创建文件或目录并且名字中包含日期

十、今日总结

  • 核心:查看日志命令:head/tail,less/more
  • 核心:查看实时更新:tail/tail -f
  • 核心:wc统计次数,行数。未来主要与其他命令配合,统计次数。
  • 熟悉了解的命令:which、whereis、diff、vimdiff
  • 核心:排序去重组合:sort与uniq核心⭐️⭐️⭐️⭐️⭐️
  • 日期组合:date、ntpdate,创建带日期的文件案例。
  • 特殊符号:
    • | 管道符号:前1个命令输出给后面命令使用,一般过滤。
    • `` 反引号:优先运行里面的命令,用于获取命令的结果,把命令的结果二次使用,创建文件、目录、存放。

十、007

endl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

良辰美景好时光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值