此笔记为学习https://www.bilibili.com/video/BV1nW411L7xm/?vd_source=3f851e85e66ef33269a2eefee664cec2的学习记录,目前持续更新中,希望能找到运维的实习吖 O(≧▽≦)O

Linux的终端终端组成部分

Linux关机命令

  1. shoutdown -h now(正常关机)
  2. halt(关闭内存)
  3. init 0

使用VMware备份操作系统快照

  • 保存某个时期系统状态,短期备份

克隆

  • 复制,长期备份,必须关闭敞口

Linux系统的文件文件与文件夹

Linux系统的文件目录结构

Linux的基本指令指令与选项

  • 标准格式:#指令主体 [选项] [操作对象]

基础指令ls指令

  • ls:列出当前目录所有文件

  • ls 路径:列出指定路径下的文件

      • 蓝色表示文件夹
      • 黑色表示文件
      • 绿色表示拥有的权限
  • ls 选项 路径:列出指定路径下的文件并以指定的格式显示

    • ls -l:详细列表形式展示

    • ls -a:显示所有文件(包括隐藏文件)

    • ls -lh 路径:列出指定文件夹的名称,并显示大小

pwd指令

  • pwd:打印当前工作路径

cd命令

  • cd 路径:用于切换当前工作目录

mkdir指令

  • mkdir 路径:创建目录
  • mkdir -p 路径:一次性创建多个不存在的目录
  • mkdir 路径1 路径2 路径3 ...:一次性创建多个目录

touch指令

  • touch 文件路径:创建文件
  • touch 文件1 文件2:当前路径下创建多个文件

cp指令

  • cp 被复制的文档路径 文档被复制到的路径:复制一个文件
  • cp -r 被复制的文档路径 文档被复制到的路径:递归复制

mv指令

  • mv 需要移动的文档 需要保存的位置:移动文档到新的位置(可以用来重命名)

rm指令

  • rm 选项 需要移除的文件路径
    • rm 文件名:不带选项,需要频繁输入y或n
    • rm -f 文件名:强制删除,不提示是否删除
    • rm -r 文件名:递归删除
    • rm 部分名字*: *为通配符,删除某些字段开头的文件

vim命令

  • vim 文件的路径:编写某个文件

输出重定向

  • 正常执行的指令 >/>> 文件的输出路径:输出结果到指定的地方

    • >:覆盖输出,会覆盖掉原来文件的内容

    • >>:追加输出,在原始内容末尾继续添加

cat指令

  • cat 文件的路径:cat有直接打开一个文件的功能
  • cat 待合并的文件路径1 待合并的文件路径2... > 合并之后的文件路径:合并若干个文件并存到一个文件中,配合输出重定向使用

进阶指令df指令

  • df:查看磁盘空间

free指令

  • free -m:表示以mb为单位查看剩余内存

head指令

  • head -n 文件路径:查看一个文件的前n行,默认n为10

tail指令

  • tail -n 文件路径:查看一个文件的最后的n行,默认n为10
  • tail -F 文件的路径:查看一个文件的动态变化

less指令

  • less 需要查看的文件路径:查看文件,以较少的内容进行输出,用辅助功键(空格翻页、上下键/回车一行行查看、数字+空格指定行)能查看更多

wc指令

  • wc 选项 文件的路径:统计文件内容信息(行数、单词数、字节数)
    • wc -l:行数
    • wc -w:单词数
    • wc -c:字节数

date指令(重点)

  • date:表示操作时间日期(读取、设置),输出格式为2023年9月26日21:49:17

  • date +%F:输出形式为2023-9-26

  • date +"+%F %T":引号表示年月日与时分秒成为一个整体,输出形式 2023-9-26 21:49:17

  • date -d "-1 day":获取之前或者之后的某个时间(备份)

cal指令

  • cal:直接输出当前月份的日历
  • cal -3:输出上月、本月、下月的日历
  • cal -y 年份:输出整年的月份

clear/按下ctrl+L指令

  • clear:清除终端中已经存在的命令和结果(信息)

管道

  • :管道一般可以用于“过滤,”特殊“,”拓展处理“

高阶指令hostname指令

  • hostname:输出完整主机名
  • hostname -f:输出当前主机名中的FQDN(全限定域名)

id指令

  • id:默认显示当前执行该命令的用户的基本信息
  • id 用户名:显示指定用户的基本信息

whoami指令

  • whoami:一般用于shell脚本,用于获取当前操作的用户名方便记录日志

ps -ef指令(重点)

  • ps -ef:查看服务器的进程信息

    • -e:等价于“-A”表示列出全部的进程
    • -f:显示全部的列(显示全字段)

  • ps -ef|grep 进程名称:在ps的结果中过滤出想要查看的进程状态

top指令(重点)

  • top:查看服务器进程占用资源
    • 运行top的时候,可以按下快捷键:

      • M:表示将奖结果按照内存(MEM)从高到低进行降序排序
      • P:表示将结果按照CPU的使用率从高到低进行降序排序
      • 1:当服务器拥有多个CPU的时候可以使用“1”快捷键来切换是否显示各个CPU的详细情信息

du -sh指令

  • du -sh 目录路径:查看目录的真实大小
    • -s:summaries,只显示汇总的大小
    • -h:以高可读的形式显示

find指令

  • find 路径范围 选项 选项的值:用于查找文件(共有55个指令)
  • 选项:
    • -name:按照文档名称进行搜索
    • -type:按照文档的类型进行搜索
      • 文档类型:“-”表示文件(用“f”来代替),“d”表示文件夹

service指令(重点)

  • service 服务名 start/stop/restart:用于控制一些软件的服务启动/停止/重启

kill指令(重点)

  • kill 进程PID:杀死进程
  • kill all 进程名称:与kill相似

ifconfig指令(重点)

  • ifconfig:获取网卡信息
    • inet addr就是网卡的IP地址

reboot指令

  • reboot:重新启动计算机
  • reboot -w:模拟重启(实际不重启)

shutdown指令(重要)

  • shutdown -h now "关机提示"或者shutdown -h 指定时间 "关机提示":关机
    • 取消关机:
      • centos7.x之前的版本:Ctrl+c
      • centos7.x之后的版本 shutdown -c

uptime指令

  • uptime:输出计算机从开机到现在的时间

uname指令

  • uname:获取操作系统的类型
  • uname -a:获取全部的系统信息(类型、全部主机名、内核版本、发布时间、开源计划)

netstat -tnlp指令

  • netstat -tnlp:查看网络的连接状态

man指令

  • man 命令:手册

练习题

  1. 如何通过命令行重启linux操作系统?
    • reboot
  2. 如何在命令行中快速删除光标前/后的内容?
    • 前:ctrl + u 后:ctrl + k
  3. 如何删除/tmp下所有A开头的文件?
    • cp /etc/passwd /tmp/
  4. 如何查看系统最后创建的3个用户?
    • cp /etc/passwd /tmp/
  5. 如何查看系统最后创建的3个用户?
    • tail -3 /etc/passwd
  6. 什么命令可以统计当前系统中一共有多少账户?
    • wc -l /etc/passwd
    • cat /etc/passwd|wc -l
  7. 如何创建/tmp/test.conf文件?
    • touch /tmp/test.conf
  8. 如何通过vim编辑打开/tmp/test.conf?
    • vim /tmp/test.conf
  9. 如何查看/etc/passwd的头3行和尾3行?
    • head -3 /etc/passwd
    • tail -3 /etc/passwd
  10. 如何一次性创建目录/text/1/2/3/4?
    • mkdir -p /text/1/2/3/4
  11. 如何最快的返回到当前账户的家目录?
    • cd ~
    • cd
  12. 如何查看/etc所占的磁盘空间?
    • du -sh /etc
  13. 如何删除/tmp下所有的文件?
    • rm -rf /tmp/*
  14. 尝试启动Apache的服务,并且检查是否启动成功。
    • service httpd start
    • ps -ef|grep httpd
  15. 使用已学命令杀死Apache的进程。
    • killall httpd

vi编辑器vim的三种模式(重点)

  1. 命令模式

  2. 编辑模式(输入模式)

  3. 末行模式(尾行模式)

命令模式光标移动

  1. 移动到行首:^
  2. 移动到行尾:$
  3. 移动到首行:gg
  4. 移动到末行:G
  5. 翻屏:
    • 向上:按键PageUp/Ctrl+b
    • 向上:按键PageDown/Ctrl+f

复制

  1. 复制光标所在行:yy
  2. 光标的当前行在内,向下复制指定的行数:数字yy
  3. 可视化复制:ctrl+v,然后方向键上下左右进行选择

粘贴

  1. 想要粘贴的地方:p

剪切/删除

  1. 剪切/删除光标所在行:dd(删除之后的下一行上移)
  2. 剪切/删除光标的当前行在内,向下进行删除/剪切指定的航:数字dd
  3. 剪切/删除光标的当前行在内,但是不上移:D

撤销/恢复

  • 输入: :u/u
  • 恢复:ctrl+r

光标迅速移动

  1. 快速移动到指定行:数字G
  2. 以当前行为标准向上/下/左/右移动:数字+方向键

模式间的切换

末行模式保存

  • 保存::w
  • 另存为::w 路径

退出

  • 退出::q

保存并退出

  • 输入::wq

强制

  • 强制退出但不保存::q!

调用外部的命令

  • 输入::!外部命令

搜索/查找

  • 输入:/关键,通过按键选择上一个(N)下一个(n)

取消高亮

  • 输入::nohl

替换

  • :s/搜索的关键词/新的内容:替换光标所在行第一处符合条件的内容
  • :s/搜索的关键词/新的内容/g:替换光标所在行的全部符合条件的内容
  • :%s/搜索的内容/新的内容:替换整个文档每行第一个符合条件的内容
  • :%s/搜索的关键词/新的内容/g:替换整个文档符合条件的内容
    • %表示整个文件
    • g表示全局

行号

  • 显示::set nu
  • 取消显示::set nonu

多个文件切换

  • 查看当前已经打开的文件名称::files

  • 切换文件的方式

    • 切换指定文件:open 已经打开的文件名
    • 通过其他命令来切换上/下一个文件
      • :bp:切换到上一个文件
      • :bn:切换到下一个文件

编辑模式进入

  • a:光标前插入
  • i光标后插入

退出

  • 按下esc

实用功能代码着色

  • 开启显示::syntax on
  • 关闭显示::syntax off

vim中计算器的使用

  1. 进入编辑模式
  2. 按下按键ctrl+r,然后输入 =,光标回来到最后一行
  3. 输入需要计算的内容然后按下回车

拓展vim的配置

  1. 在文件打开的时候在末行模式下的输入的配置(临时的)

  2. 个人配置文件(~/.vimrc,没有的话需自行创建)

  3. 全局配置文件(vim自带,/etc/vimrc)

异常退出

  • 解决方法:

    • 将交换文件(在编程过程中产生的临时文件)删除掉即可:rm -f 临时文件名

别名机制(使用)

退出方法

  • :x:没有修改直接退出,修改了将保存后退出

Linux自有服务运行模式

  • 与该级别有关的几个命令:

    • init 0:关机
    • init 3:切换到不带桌面的模式
    • init 5:切换到图形化界面
    • init 6:重启电脑

用户与用户组管理

  • 注意三个文件
    • /etc/passwd:储存用户关键信息
    • /etc/group:储存用户组的关键信息
    • /etc/shodow:储存用户密码信息

用户管理

  1. 添加用户
    • useradd 选项 用户名,常用选项:

      • -g:表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名
      • -G:表示指定用户的用户附加3组,选项的值可以是用户组的id,也可以是组名
      • -u:自定义用户id

  2. 修改用户
    • usermod 选项 用户名,常用选项:
      • -g:表示指定用户的用户主组,选项值可以是用户组的id,也可以是组名
      • -G:表示指定用户的用户附加组,选项值可以是用户组的id,也可以是组名
      • -u:修改用户ID(用户的标识符)
      • -l 新用户名 旧用户名:修改用户名
  3. 设置密码
    • passwd 用户名
  4. 删除用户
    • userdel 选项 用户名,常用选项:
      • -r:删除用户的同时,删除其家目录

用户组管理

  1. 用户组添加
    • groupadd 选项 用户名,常用选项:
      • -g:类似用户添加里的“-u”,-g表示选择自己设置一个自定义的用户组id数字
  2. 用户组编辑
    • groupmod 选项 用户组名,常用选项:
      • -g:类似用户添加里的“-u”,-g表示选择自己设置一个自定义的用户组id数字
      • -n:类似于用户修改“-l”,表示设置新的用户组名称
  3. 用户组删除
    • groupdel 用户组名

网络设置

  • 网卡位置:

  • 重启网卡:service network restart

  • 查看服务的快捷方式
    • 在/etc/init.d存放着相对应的服务快捷方式
  • 创建软链接
    • ln -s 原始文件的路径 快捷方式的路径
  • 重启网卡
    • 停止网卡:ifdown 网卡名
    • 开启网卡:ifup 网卡名

ssh服务

  • 默认端口号:22
    • 端口文件在/etc/ssh/ssh_config
    • 端口号范围在0-65535
    • 不能使用已被占用的端口号
  • 服务启动/停止/重启:service sshd start/stop/restart

远程终端

  • 常用工具:Xshell、Putty、secureCRT

ssh文件传输设置主机名

  1. 临时设置主机名:hostname 主机名
  2. 永久设置主机名:
    • 找到主机名的配置文件:/etc/sysconfig/network
    • 修改其中的HOSTNAME为新主机名
  3. 修改Linux服务器的hosts文件,将新主机名指向本地(设置FQDN)

chkconfig

  • 开机启动服务查询:chkconfig --list


  • 删除服务:chkconfig --del httpd 服务名

  • 添加开机启动服务:chkconfig -add 服务名

  • 设置服务在某个级别下开机启动/不启动:chkconfig -level 连在一起的启动级别 服务名 on/off

ntp服务

  1. 一次性同步时间(简单):ntpdate 时间服务器的域名或IP地址
    • IP地址查询亦可访问http://www.ntp.org.cn/
  2. 设置时间同步服务
    • 服务名:ntpd
    • 启动ntpd服务:service ntpd start
    • 设置ntpd服务开机自启:chkconfig --level 35 ntpd on

防火墙服务

  • 查看防火墙是否开机启动:chkconfig --list | grep iptables
  • iptables服务启动/重启/关闭:service iptables start/stop/restart
  • 查看iptables的状态:service iptables status
  • 查看规则的命令:iptables —L-n
  • 简单设置防火墙规则:
    • 保存防火墙规则:/etc/init.d/iptables save

rpm管理

  • 查询:rpm -qa|grep 关键词,选项:

    • -q:查询
    • -a:全部
  • 卸载:rpm -e 软件的名称

  • 安装

    • 方法:

      • 从光盘中下载(旧版本)
      • 去官网下载
    • 以光盘文件为例:

      • 查看块状文件:lsblk

      • Name:名称,Size:设备大小,Type:类型,MountPoint:挂载点(类似windows下盘符)

        • 光盘的挂载与解挂:
          • 解挂:umount 当前设备的挂载点(路径)(相当于U盘在windows上已经被弹出了,但是没有拔下电脑USB接口。)
          • 挂载:mount 设备原始地址 要挂载的位置路径
    • 安装软件的命令:rpm -ivh 软件包完整名称,选项:

      • -i:安装
      • -v:显示进度条
      • -h:表示以”#“形式显示进度条

cron/crontab计划任务

  • crontab 选项,常用选项:

    • -l:列出指定用户的计划任务列表
    • -e:编辑指定用户的计划任务列表
    • -u:指定的用户名,如果不指定,则表示当前用户
    • -r:删除指定用户的计划任务列表
  • 编辑计划任务

  • crontab权限问题:超级用户可以通过配置来设置某些用户不允许设置计划任务,配置文件(黑名单)位于:/etc/cron.deny,里面写用户名,一行一个;还有一个配置文件(白名单)设置允许用户设置计划任务:/etc/cron.allow(白名单高于黑名单)

Linux权限管理权限概述

权限介绍

身份介绍

  • Owner身份(文件所有者,默认为文档的创建者)
  • Group身份(与文件所有者同组的用户)
  • Others身份(其他人,相对于所有者)

  • Root用户(超级用户)