Linux进阶之路

Linux进阶之路(学习笔记,更新中.....)

  • 第一章 Linux基础-概述
    • Linux的概述
    • Linux的安装
    • Linux的目录结构
  • 第二章 Linux实操-基础介绍
    • 远程登录与上传下载
    • vi和vim
    • 开机、重启和用户登录注销
  • 第三章 Linux实操篇-用户管理
    • 基本介绍
    • 添加用户
      • 命令介绍
      • 给用户指定或者修改密码
    • 删除用户
      • 命令介绍
    • 查询用户信息
      • 命令介绍
    • 切换用户
      • 命令介绍
    • 用户组
      • 组的介绍
      • 增加、删除组
      • 增加用户时直接指定组
      • 修改用户的组
    • 关于用户和用户组的配置文件
      • /etc/passwd文件
      • /etc/shadow文件
      • /etc/group文件
  • 第四章 Linux实操篇-实用指令
    • 运行级别
      • 运行级别说明
      • 切换到指定的运行级别
      • 如何找回系统的root密码
    • 帮助指令
      • 介绍
      • man指令
      • help指令
      • 真正的帮助指令
    • 文件目录类指令
      • pwd指令
      • ls指令
      • cd指令
      • mkdir指令
      • rmdir指令
      • touch指令
      • cp指令
      • rm指令
      • mv指令
      • wc指令
      • cat指令
      • more指令
      • less指令
      • > 指令 和 >> 指令
      • echo 指令
      • head 指令
      • tail 指令
      • ln 指令
      • history 指令
    • 时间日期类指令
      • date 指令
      • cal 指令
    • 搜索查找类指令
      • find 指令
      • locate 指令
      • grep 指令和管道符号 |
    • 压缩和解压类指令
      • gzip/gunzip 指令
      • zip/unzip 指令
      • tar 指令
  • 第五章 组管理和权限管理
    • linux组基本介绍
    • 文件/目录 所有者
      • 查看文件的所有者
      • 修改文件的所有者
    • 文件/目录 所在组
      • 查看文件/目录所在组
      • 修改文件/目录所在组
    • 其他组
    • 改变用户的所在组
    • 权限的基本介绍
    • 权限详解
      • rwx作用到文件
      • rwx作用到目录
    • 修改权限 -chmod
      • 基本说明
      • 第一种方式:+ - = 变更权限
      • 第二种方式:通过数字变更权限
    • 修改文件的所有者-chown
    • 修改文件所在组-chgrp
  • 第六章 实操篇 crond任务调度
    • 原理示意图
    • 概述
    • 基本语法
    • 参数细节说明
  • 第七章 实操篇 Linux磁盘分区、挂载
    • 分区基础知识
      • 分区的方式
    • Linux分区
      • 原理介绍
      • 硬盘说明
      • 使用lsblk指令查看当前系统的分区情况
      • 给系统添加一块硬盘
    • 磁盘情况查询
      • 查询系统整体磁盘使用情况
      • 查询指定目录的磁盘占用情况
      • 磁盘情况-工作使用指令
  • 第八章 实操篇 网络配置
    • 自动获取
    • 静态IP

第一章 Linux基础-概述

Linux的概述

  1. Linux学习方向
  • Linux运维
  • Linux嵌入式开发
  • 在Linux下做各种程序开发
  1. Linux的应用领域
  • 个人桌面应用领域:此领域时linux应用最薄弱的领域,传统linux由于界面简单、操作复杂、应用软件少一直被windows压制,但近些年来随着ubuntu、fedora 等优秀桌面环境的兴起,同时各大硬件厂商对其支持的加大,linux在个人桌面领域的占有率在逐渐的提高。
  • 服务器领域:linux在服务器领域的应用是最强的。linux免费、稳定、高效等特点在这里得到了很好的体现,近些年来linux服务器市场得到了飞速的提升,尤其在一些高端领域尤为广泛。
  • 嵌入式领域:近些年来linux在嵌入式领域的应用得到了飞速的提高。linux运行稳定、对网络的良好支持性、低成本,且可以根据需要进行软件裁剪,内核最小可以达到几百KB等特点,使其近些年来在嵌入式领域的应用得到非常大的提高。主要应用:机顶盒、数字电视、网络电话、程控交换机、手机、PDA、智能家居、智能硬件等都是其应用领域。以后再物联网中应用会更加广泛。
  1. Linux的发行版
    Ubuntu(乌班图)、RedHat(红帽)、CentOS、Debain[蝶变]、Fedora、SuSE、OpenSUSE、国产的红旗Linux

Linux的安装

  1. 安装VM和CentOS
    安装步骤:
  • 先安装virtual machine
  • 再安装Linux (CentOS)
  1. VM安装步骤
  • 去BIOS里修改设置开启虚拟化设备支持
  • 安装虚拟机软件
  1. CentOS安装步骤
  • 创建虚拟机
  • 开始安装系统(CentOS)
  1. vmtools的安装
    为了让我们在windows下更好的管理vm虚拟机,可以直接粘贴命令在windows 和 centos系统之间,可以设置windows和centos的共享文件夹,我们需要安装vmtools。
    安装步骤:进入centos,点击vm菜单的->install vmware tools,centos会出现一个vm的安装包,点击右键解压, 得到一个安装文件,进入该vm解压的目录 ,该文件在 /root/桌面/vmware-tools-distrib/下,安装 ./vmware-install.pl ,全部使用默认设置即可,需要reboot重新启动即可生效。

Linux的目录结构

linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。在Linux世界里,一切皆文件

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

第二章 Linux实操-基础介绍

远程登录与上传下载

  1. 为什么需要远程登录Linux
  • linux服务器是开发小组共享的.
  • 正式上线的项目是运行在公网的.
  • 因此程序员需要远程登录到centos进行项目管理或者开发.
  1. 远程登录工具( XShell5)
    Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。
  2. 远程上传下载工具(XFTP5)
    xftp5是一个基于 windows 平台的功能强大的SFTP、FTP 文件传输软件。使用了Xftp 以后,windows 用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件。

vi和vim

  1. 所有的 Linux 系统都会内建 vi 文本编辑器。
    Vim 具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
  2. vi和vim常用的三种模式
    正常模式
    以 vim 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以『删除字符』或『删除整行』来处理档案内容,也可以使用『复制、贴上』来处理你的文件数据。
    插入模式
    按下i, I, o, O, a, A, r, R等任何一个字母之后才会进入编辑模式, 一般来说按i即可.
    命令模式
    在这个模式当中, 可以提供你相关指令,完成读取、存盘、替换、离开 vim 、显示行号等的动作则是在此模式中达成的!
  3. vi和vim常用的快捷键
命令 作用
:set nu 设置行号
:set nonu 取消行号
G 到第最后一行
gg 到第一行
nG 到第n行
:n 到第n行
$ 移至行尾
0 移至行首
x 删除光标所在处字符
nx 删除光标所在处后的n个字符
dd 删除/剪切光标所在行
ndd 删除/剪切光标所在处后的n行
dG 删除光标所在行到文件末尾的内容
D 删除光标所在处到行尾的内容
:n1,n2d 删除n1行到n2行
yy 复制光标所在行
nyy 复制光标所在处后的n行
p 粘贴光标所在行下
P 粘贴光标所在行上
r 取代光标所在处字符
R 从光标所在处开始替换字符,按ESC结束
u 取消上一步操作
/String 搜索指定字符串,搜索时忽略大小写:set ic
n 搜索指定字符串出现的下一处位置
:%s/old/new/g 全文替换指定字符串
:n1,n2s/old/new/g 在一定范围内替换指定字符串
:w 保存修改
:w new_filename 另存为指定文件
:wq 保存修改并退出
ZZ 快捷键,保存修改并退出
q! 不保存修改退出
wq! 保存修改并退出(文件所有者及root用户可使用)

开机、重启和用户登录注销

  1. 关机、重启命令
    命令介绍
命令 作用
shutdown -h now 表示立刻关机
shutdown -h 1 表示1分钟以后关机
shutdown -r now 表示立刻重启
halt 直接使用,效果等价与关机
reboot 重启系统
syn 把内存的数据同步到磁盘

注意细节:我们关机或者重启机器之前,应使用syn命令将内存中的数据持久化到磁盘中,防止数据丢失。

  1. 用户的登录和注销
  • 基本介绍
    • 登录时尽量少用root账号登录,因为他是系统管理员,他拥有最大的权限 ,避免操作失误。可以使用普通用户登录,登录后在用“su - 用户名”命令进行用户的切换。
    • 在提示符下输入“logout”即可注销用户
      注意细节:
    • logout 注销指令在图形运行级别下无效,在运行级别3有效

第三章 Linux实操篇-用户管理

基本介绍

Linux进阶之路_第1张图片

说明:

  • Linux系统是一个多用户多任务的操作系统,任何一个需要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
  • Linux的用户需要至少属于一个组。

添加用户

命令介绍

命令 作用
useradd [选项] 用户名 添加一个用户

示例:useradd xm 添加一个名为xm的用户。
细节说明:

  • 当创建用户成功后,会自动的创建和用户同名的家目录
  • 也可以通过“useradd -d 指定目录 用户名”命令给用户指定家目录,进行创建用户。

给用户指定或者修改密码

命令 作用
passwd 用户名 给用户指定密码

示例:passwd xm

删除用户

命令介绍

命令 作用
userdel 用户名 删除一个用户,保留家目录
userdel -r 用户名 删除一个用户,不保留家目录

注意细节:我们一般在删除用户时,会保留其家目录。

查询用户信息

命令介绍

命令 作用
id 用户名 查询用户信息

示例:id root
若用户不存在,则返回“无此用户”。

切换用户

命令介绍

在Linux中,若用户的权限不够,可通过“su - 用户名”切换为高权限用户,比如root。

命令 作用
su - 用户名 切换用户

注意细节:

  • 从高权限的用户切换为权限低的用户,不需要输入密码,反之需要。
  • 当需要返回原来的用户时,使用exit指令。

用户组

组的介绍

在Linux系统中,有组的概念,系统可以对有共性的多个用户进行同一的管理。

增加、删除组

命令 作用
groupadd 组名 增加一个用户组
groupdel 组名 删除一个用户组

增加用户时直接指定组

命令 作用
useradd -g 用户组 用户名 添加一个指定用户组的用户

示例:useradd -g wudang zwj 添加一个名为zwj的用户,将其指定到wudang组(需要先创建wudang组)。

修改用户的组

命令 作用
usermod -g 用户组 用户名 修改用户的用户组

示例:usermod -g shaolin zwj 将用户zwj从原来的wudang组修改为shaolin组(需要先创建shaolin组)

关于用户和用户组的配置文件

/etc/passwd文件

用户(user)的配置文件,记录用户的各种信息。
每行的含义:用户名:口令:用户ID:组ID:注释性描述:家目录(主目录):登录shell

/etc/shadow文件

口令的配置文件。
每行的含义:** 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志**

/etc/group文件

组(group)的配置文件,记录Linux包含的组的信息。
每行含义:组名:口令:组ID:组内用户列表

第四章 Linux实操篇-实用指令

运行级别

运行级别说明

运行级别 说明
0 关机
1 单用户(找回丢失密码)
2 多用户状态没有网络服务
3 多用户状态有网络服务
4 系统未使用保留给用户
5 图形界面
6 重启系统

常用运行级别是3和5, 要修改默认的运行级别可改文件。
/etc/inittab的id:5:initdefault:这一行中的数字即代表系统默认的运行级别。

Linux进阶之路_第2张图片

切换到指定的运行级别

运行级别 说明
init [012356] 切换系统的运行级别

如何找回系统的root密码

思路:init 1 切换运行级别到系统的单用户模式,然后修改root密码。因为单用户模式不需要密码就可以登录。
解决步骤:

  • 在开启虚拟机的时候迅速按下esc键进入到引导界面;
  • 输入小写e进入命令编辑模式,用上下键移动到第二项kernel/vmlinuz……;
  • 按小写e,然后输入1按回车把模式更改成单用户模式;
  • 按下b进入启动引导模式,接下来可以看到虚拟机已经进入到了单用户模式,并且使用的是不需要密码的root账户登录的;
  • 在命令行输入passwd root更改root密码;
  • 在命令行输入reboot重启机器即可。

帮助指令

介绍

当我们不熟悉某个指令,我们可以使用Linux提供的帮助指令来了解使用这个指令。

man指令

指令 作用
man [命令或配置文件] 获得指令的帮助信息

示例:man ls 查看ls命令的帮助信息

help指令

指令 作用
help [命令] 获得shell内置命令的帮助信息

示例:help cd 查看cd命令的帮助信息

真正的帮助指令

CSDN、百度

文件目录类指令

pwd指令

指令 作用
pwd 显示当前工作目录的绝对路径

ls指令

指令 作用
ls [选项] [目录或是文件] 显示目录或者文件的信息

常用选项

  • -a:显示当前目录的所有文件和目录,包括隐藏的。
  • -l:以列表的方式显示信息。
  • -h:以人类便于查看的方式显示,一般便于查看文件大小。
  • -R: --recursive,递归显示子目录
    示例:ls -al 以列表的方式显示当前目录下的所有文件和目录,包括隐藏的。

cd指令

change directory

指令 作用
cd [参数] 切换到指定目录

常用参数

  • cd~或cd :回到当前用户的家目录
  • cd… :回到当前目录的上一级目录

理解绝对路径和相对路径
绝对路径:以‘/’开头的路径,‘/’代表根目录。(需深刻理解Linux的目录结构)
相对路径:不以‘/’开头的路径,相对路径相对的是当前目录。

mkdir指令

make directory

指令 作用
mkdir [选项] 要创建的目录 创建一个目录

常用选项

  • -p:创建多级目录

示例:mkdir -p /home/animal/tiger 在home目录下创建animal/tiger目录

rmdir指令

指令 作用
rmdir [选项] 要删除的空目录 删除空目录

常用选项

  • -p 递归删除非空目录
注意细节:
rmdir删除的是空目录,如果目录下有内容时无法删除。
如果需要删除非空目录,需要使用“rm -rf 要删除的目录”指令进行删除。

touch指令

指令 作用
touch 文件名称 文件名称 … 创建空文件

示例:touch /home/hello.txt /home/hi.txt 在home目录下创建hello.txt文件和hi.txt文件

cp指令

指令 作用
cp [选项] source dest 复制source源文件到dest目录下

常用选项

  • -r :递归复制整个文件夹

示例:cp /home/dog/hello.txt /home 将 /home/dog文件夹下的hello.txt文件复制到/home目录下

注意细节:
若复制文件夹中存在多个文件,会报“略过文件”错误,加上 -r 即可。
强制覆盖不提示方法:\cp

rm指令

指令 作用
rm [选项] 要删除的文件或目录 移除【删除】文件或目录

常用选项:

  • -r:递归删除整个文件夹
  • -f: 强制删除不提示

示例:rm /home/hello.txt 移除/home目录下的hello.txt文件
rm -rf /home/zwj/test 递归删除/home/zwj下的test目录。

mv指令

指令 作用
mv oldFileName newFilename 给文件冲命名
mv 要移除的文件 目标目录 将指定文件移动到指定目录

示例:mv /home/hello.txt d.txt 将home目录下的hello.txt文件重命名为d.txt ,并移动到当前目录
mv d.txt /home/test 将d.txt文件移动到test目录下

wc指令

指令 作用
wc [选项] 输出每个指定文件的行数、单词计数和字节数

常用选项:

  • -c: --bytes,输出字节数统计
  • -m:–chars,输出字符数统计
  • -l:–lines,输出行数统计
  • -L:–max-line-length,显示最长行的长度
  • -w:–words,显示单词计数

cat指令

指令 作用
cat [选项] 要查看的文件 查看文件内容,以只读的方式打开

常用选项:

  • -n:显示行号
注意细节:
cat只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道命令‘| more’
cat 文件名 | more[分页浏览]

more指令

more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键。

指令 作用
more 文件 按页显示文件内容

常用快捷键

操作 功能说明
空格键[space] 代表向下翻一页
Enter键 代表向下翻一行
q 代表立刻离开more,不再显示改文件内容
Ctrl+F 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行号
:f 输出文件名和当前行号

less指令

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

指令 作用
less 文件 分屏查看文件内容

常用快捷键

操作 功能说明
空格键[space] 向下翻动一页
[pagedown] 向下翻动一页
[pageup] 向上翻动一页
/String 向下搜索指定字符串 n:向下查找;N:向上查找
?String 向上搜索指定字符串 n:向下查找;N:向上查找
q 离开less这个程序

> 指令 和 >> 指令

指令 作用
命令 /文本 > 文件 输出重定向,会将原来的内容覆盖
命令/文本 >> 文件 追加,不会覆盖原来的文件内容,而是追加到文件的尾部
示例:
ll > a.txt 将文件目录的信息写入到a.txt文件中(覆盖写),若文件不存在,则创建此文件。
ls -la >> b.txt 将文件目录的详细包括隐藏信息写入到b.txt文件中(追加)
cat 文件1 > 文件2 将文件1的内容覆盖写入到文件2
echo “文本内容” >> 文件 将“文本内容”写入到文件

echo 指令

指令 作用
echo [选项] [输出内容] 输出内容到控制台
示例:
echo $PATH 使用echo指令输出环境变量,输出当前的环境路径
echo helloWorld 输出helloWorld到控制台

head 指令

head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容

指令 作用
head 文件 查看文件头10行的内容
head -n 查看文件的头n行内容

注意细节:head 5等价与head -n 5

tail 指令

tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容。

指令 作用
tail 文件 查看文件后10行的内容
tail -n 查看文件的后n行内容
tail -f 文件 实时追踪文件的所有更新,常用 。Ctrl+C退出监控

ln 指令

软链接也叫符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径。

指令 作用
ln -s [原文件或者目录] [软链接名] 给原文件或目录创建一个软链接

示例:ln -s /root /home/linkToRoot 在home目录下创建一个软链接linkToRoot链接到/root目录
注意细节:

  • -s(symbolic):对源文件建立符号连接,而非硬连接;
  • 删除软链接命令rm -rf /home/linkToRoot 只能用此命令进行删除,注意:linkToRoot后面千万不要加/,会递归删除掉root目录下的文件。若不小心删了,可用“cp -R /etc/skel/.[!.]* ./”恢复,但root用户的一些日志文件和安装资料将会丢失。
  • 当我们在linkToRoot目录下用pwd指令查看目录时,我们看到的仍然是软链接所在的目录。

history 指令

查看已经执行过的历史命令,也可以执行历史命令。

指令 作用
history 查看已经执行过的历史命令
history n 查看最近使用过的n个指令
!n 执行编号为n的指令

时间日期类指令

date 指令

指令 作用
date 显示当前时间
date +%Y 显示当前年份
date +%y 显示当前年份后两位数字
date +%m 显示当前月份
date +%M 显示当前分钟
date +%d 显示当前是哪一天
date +%D 类似于%m/%d/%y
date +%H 显示当前小时
date +%h 类似于%b,本地化月份
date +%S 显示当前秒
date +%s 自1970-01-01 00:00:00 UTC至今的时间戳
date “+%Y-%m-%d %H:%M:%S” 显示当前年月日时分秒
date -s 字符串时间 设置自系统时间。格式为:%Y-%m-%d %H:%M:%S

cal 指令

指令 作用
cal [选项] 显示本月日历

常用选项

  • -1:显示当月日历
  • -3:显示当月的前后三个月的日历
  • -s:显示当月日历,一周的第一天为星期日
  • -m:显示当月日历,一周的第一天为星期一

示例:cal 2022 显示2022年全年的日历

搜索查找类指令

find 指令

find指令将从指定目录向下递归的遍历其各个子目录,将满足条件的文件或者目录显示在终端。

指令 作用
find [搜索范围] [选项] 从搜索范围递归的搜索满足条件的文件

常用选项:

  • -name(查询方式):按照指定的文件名查找模式查找文件
  • -user(用户名):查找属于指定用户名所有文件
  • -size(文件大小):按照指定的文件大小查找文件
    查找文件时,可用通配符“ * ”进行通配查询

locate 指令

locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员需定期更新locate时刻。

指令 作用
locate 搜索文件 快速定位文件所处的绝对路径

注意细节:由于locate指令基于数据库进行查询,所以第一次运行前,必须使用“updatedb”指令创建locate数据库。

grep 指令和管道符号 |

grep过滤查找,管道符“ | ”表示将前一个命令的处理结果输出传递给后面的命令处理。

命令 作用
grep [选型] 查找内容 源文件 顾虑查找符合条件的内容

常用选项:

  • -n:显示匹配行及行号
  • -i:忽略字母大小写

示例:cat hello.txt | grep -ni yyds 在hello.txt文件中查找yyds字符串

压缩和解压类指令

gzip/gunzip 指令

指令 作用
gzip 文件 压缩文件,只能将文件压缩为*.gz文件
gunzip 文件.gz 解压缩文件

注意细节:当我们使用gzip对文件进行压缩后,不会保留原来的文件
示例:

  • gzip hello.txt hi.txt 压缩hello.txt文件和hi.txt文件
  • unzip hello.txt.gz hi.txt.gz 解压缩hello.txt文件和hi.txt文件

zip/unzip 指令

zip用于压缩文件,unzip用于解压缩文件,这对指令在项目打包发布中很有用

指令 作用
zip [选项] xxx.zip 将要压缩的内容 压缩文件和目录的命令
unzip [选项] xxx.zip 解压缩文件

zip常用选项:

  • -r:递归压缩,即压缩目录

unzip常用选项:

  • -d<目录> :指定解压后文件的存放目录
示例:
zip mypackage.zip -r /home :递归压缩/home目录下所有内容并打包为mypackage.zip文件存放到当前目录下。
unzip mypackage.zip -d /home/temp :将mypackage.zip压缩文件解压存放到/home/temp下。

tar 指令

tar指令时打包指令,打包后的文件是“ *.tar ”格式的文件。tar是打包,不是压缩。

指令 作用
tar [选项] xxx.tar.gz 打包的内容 打包/解压目录/文件,压缩后的文件格式为.tar.gz

常用选项:

  • -c(create):产生.tar打包文件
  • -x(extract):解压.tar打包文件
  • -t :查看.tar打包文件
  • -v :显示详细信息
  • -z :支持gzip解压文件
  • -f :指定压缩后的文件名
示例:
tar -zcvf a.tar.gz /home/a.txt /home/b.txt 将home目录下的a.txt和b.txt文件压缩为a.tar.gz文件
tar -zcvf myhome.tar.gz /home/ 将home文件夹压缩为myhome.tar.gz
tar -zxvf a.tar.gz 将a.tar.gz解压到当前目录
tar -zxvf myhome.tar.gz -C /home/temp 将myhome.tar.gz文件解压到/home/temp目录下

第五章 组管理和权限管理

linux组基本介绍

在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其他组的概念。

文件/目录 所有者

查看文件的所有者

一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
想要查看文件的所有者,一般运用“ ls -ahl ”指令进行查看。

修改文件的所有者

指令 作用
chown 用户名 文件名 将指定文件的所有者指定给指定用户

文件/目录 所在组

当某个用户创建了一个文件后,默认这个文件的所在组就是该用户所在的组。

查看文件/目录所在组

ls -ahl 或者 ll -ah

修改文件/目录所在组

指令 作用
chgrp 组名 文件名 修改文件的所在组

其他组

除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组。

改变用户的所在组

在添加用户时,可以指定将该用户添加到哪一个组中,同样的用root的管理权限可以改变某个用户所在的组。

指令 作用
usermod -g 组名 用户名 改变用户的所在组
usermod -d 目录名 用户名 改变该用户登录的初始目录(家目录)

权限的基本介绍

ls -l 中显示以下内容
-rwxrw-r–. 1 tom root 177 2月 14 04:38 aaa.tar.gz

参数 说明
- 第0位确定文件类型(文件类型常见的有“d 目录”、“- 普通文件”、“l 链接文件”、“c 符号文件,如鼠标,键盘”、“b 块文件,如磁盘”)
rwx 第1-3位确定所有者(该文件的所有者)拥有该文件的权限
rw- 第4-6位确定所在组(同用户组)拥有该文件的权限
r– 第4-6位确定所在组(同用户组)拥有该文件的权限
1 权限后的数字代表的是:如果是文件,表示硬链接的数,如果是目录则表示该目录的子目录个数
tom 文件的所有者
root 文件的所在组
177 文件的大小(字节),如果是文件夹,显示4096个字节
2月 14 04:38 文件的最后修改日期
aaa.tar.gz 文件名

权限详解

rwx作用到文件

  • [ r ] 代表可读(read):可以读取,查看
  • [ w ] 代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写的权限,才能删除该文件
  • [ x ] 代表可执行(execute):可以被执行

rwx作用到目录

  • [ r ] 代表可读(read):可以读取,ls查看目录内容
  • [ w ] 代表可写(write):可以修改,目录内创建+删除+重命名目录
  • [ x ] 代表可执行(execute):可以进入该目录

修改权限 -chmod

基本说明

通过chmod指令,可以修改文件或目录的权限

第一种方式:+ - = 变更权限

u:所有者 g:所有组 o:其他人 a:所有人(u/g/o 的总和)

  • chmod u=rwx,g=rx,o=x 文件目录名
  • chmod o+w 文件目录名
  • chmod a-x 文件目录名

第二种方式:通过数字变更权限

规则:r=4 w=2 x=1,rwx=4+2+1=7
“chmod u=rwx,g=rx,o=x 文件目录名”指令相当于 “chmod 751 文件目录名”

修改文件的所有者-chown

指令 作用
chown newowner file 改变文件的所有者
chown newowner:newgroup file 改变文件的所有者和所在组
  • -R : 如果是目录,则使其下所有子文件或目录递归生效

修改文件所在组-chgrp

指令 作用
chgrp newgroup file 改变文件的所有组
  • -R : 如果是目录,则使其下所有子文件或目录递归生效

第六章 实操篇 crond任务调度

原理示意图

概述

任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:1.系统工作:有些重要的工作必须周而复始的执行。如病毒扫描,mysql备份。
2. 个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。

基本语法

指令 作用
crontab [选项] 定时任务调度
service crond restart 重启任务调度

常用选项:

  • -e :编辑crontab定时任务
  • -l :查询crontab任务,列出当前有哪些任务调度
  • -r :删除当前用户所有的crontab任务,终止任务调度

示例:①crontab -e进入任务编辑页面;②输入“*/1 * * * * ls -l /etc >> /tmp/to.txt”;③当保存退出后就开启了一个定时任务;④该命令含义为每个整分时crond机制会调度“ ls -l /etc >> /tmp/to.txt ”命令。

参数细节说明

5个占位符的说明

项目 含义 范围
第一个* 一小时当中的第几分钟 0-59
第二个* 一天当中的第几个小时 0-23
第三个* 一个月当中的第几天 1-31
第四个* 一年当中的第几月 1-12
第五个* 一周当中的星期几 0-7(0和7都代表星期日)

特殊符号的说明

特殊符号 含义
* 代表任何时间。比如第一个 * 就代表一小时中每分钟都执行一次的意思
, 代表不连续的时间。比如“ 0 8,12,16 * * * 命令”,就代表在每天的8点整,12点整,16点整都执行一次命令
- 代表连续的时间范围。比如“ 0 5 * * 1-6 命令”,代表在周一到周六的每天的凌晨5点整执行命令
*/n 代表每隔多久执行一次。比如“ */10 * * * * 命令”,代表每隔10分钟就执行一遍命令

特定时间执行任务案例

时间 含义
45 22 * * * 命令 在22点45分执行命令
0 17 * * 1 命令 在每周一的17点整执行命令
0 5 1,15 * * 命令 在每个月的1号和15号的凌晨5点整执行命令
40 4 * * 1-5 命令 在每周一到周五的凌晨4:40分执行命令
*/10 4 * * * 命令 每天的凌晨4点开始每隔10分钟执行一次命令
0 0 1,15 * 1 命令 每月1号和15号,每周一的0点0分执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱

第七章 实操篇 Linux磁盘分区、挂载

分区基础知识

分区的方式

  1. mbr分区
  • 最多支持四个主分区
  • 系统只能安装在主分区
  • 扩展分区要占一个主分区
  • MBR最大只支持2TB,但拥有最好的兼容性
  1. gtp分区
  • 支持无限多个主分区(但操作系统可能有限制,比如windows下最多128个主分区)
  • 最大支持18EB的大容量(1EB=1024PB,1PB=1024TB)
  • windows7 64位以后支持gtp分区

Linux分区

原理介绍

  1. Linux来说无论有几个分区,分给哪一个目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。
  2. Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。

硬盘说明

  1. Linux硬盘分为IDE硬盘和SCSI硬盘,目前基本上时SCSI硬盘。
  2. 对于IDE硬盘,驱动器标识符为“hdx”,其中“hd”表明分区所在设备的类型,这里是指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“”代表分区,前四个分区用数字1到4表示,它们是主分区和扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示第二个IDE硬盘上的第二个主分区或扩展分区。
  3. 对于SCSI硬盘则标识为“sdx~”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。

使用lsblk指令查看当前系统的分区情况

指令 作用
lsblk [选项] 查看当前系统的分区情况

常用选项:

  • -f :输出设备的文件系统信息

给系统添加一块硬盘

在挂载硬盘是使用到的指令

指令 作用
fdisk 磁盘目录 给磁盘分区
fdisk -l 显示磁盘分区
mkfs -t ext4 磁盘目录 格式化磁盘格式为ext4
mount 磁盘目录 挂载目录 将磁盘挂载到某个目录上
umount 磁盘目录/挂载目录 将磁盘从某个目录上卸载

步骤:

  1. 虚拟机添加硬盘,reboot
  2. 分区 fdisk /dev/sdb
    • m 显示命令列表
    • p 显示磁盘分区,同fdisk -l
    • n 新增分区
    • d 删除分区
    • w 写入并退出
      说明:开始分区后输入n,新增分区,然后选择p,分区类型为主分区,给分区编号为1。两次回车后默认剩余全部空间写入分区。最后输入w写入分区并退出,若不保存退出输入q。
  3. 格式化 mkfs -t ext4 /dev/sdb1
  4. 挂载 先创建一个/home/newdisk目录,挂载mount /dev/sdb1 /home/newdisk
  5. 设置可以自动挂载(永久挂载,当系统重启时,任然可以挂载到/home/newdisk)
    vim /etc/fstab
    /dev/sdb1 /home/newdisk ext4 defaults 0 0

磁盘情况查询

查询系统整体磁盘使用情况

指令 作用
df [选项] 查询系统整体磁盘使用情况

常用选项:

  • -h:–human-readable print sizes in human readable format (e.g., 1K 234M 2G)
  • -l:–local 只显示本机的文件系统
    一般使用df -lh查看系统整体磁盘使用情况

查询指定目录的磁盘占用情况

指令 作用
du [选项] 目录 查看指定目录的磁盘占用情况,默认为当前目录

常用选项:

  • -s:指定目录占用大小汇总
  • -h:带计量单位
  • -a:含文件
  • –max-depth=n :子目录深度n
  • c:列出明细的同时,增加汇总值
    一般使用“ du -ach --max-depth=1 /opt ”查看指定目录的磁盘占用情况

磁盘情况-工作使用指令

  1. 统计/home文件夹下文件的个数
    ls -l /home | grep “^-” | wc -l
  2. 统计/home文件夹下目录的个数
    ls -l /home | grep “^d” | wc -l
  3. 统计/home文件夹下的文件的个数,包括子文件夹
    ls -lR /home | grep “^-” | wc -l
  4. 统计/home文件夹下的目录的个数,包括子文件夹里的
    ls -lR /home | grep “^d” | wc -l
  5. 以树状显示目录结构
    tree

第八章 实操篇 网络配置

自动获取

DHCP:动态获取ip
缺点:linux启动后会自动获取IP,每次自动获取的ip地址可能不一样。这样非常不利于做服务器,因为服务器的ip需要是固定的。

静态IP

vim /etc/sysconfig/network-scripts/ifcfg-eth0
ifcfg-eth0文件说明

EVICE=eth0 //接口名(设备,网卡)
TYPE=Ethernet //网络类型(通常是Ethernet)
UUID=878f38f3-d242-46c0-8a18-406a25efd730 //随机ID
ONBOOT=yes 
NM_CONTROLLED=yes
BOOTPROTO=dhcp
HWADDR=00:0C:29:15:92:07
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
LAST_CONNECT=1644908595

你可能感兴趣的:(学习之路,linux,centos,服务器)