写点什么

Linux 极速上手,超全面总结

作者:Java高工P7
  • 2021 年 11 月 11 日
  • 本文字数:10324 字

    阅读完需:约 34 分钟


1 Linux 入门


============================================================================


1.1 为什么是 Linux




Linux 是一个开源、免费的操作系统,其稳定性、安全性和处理多并发等已经受到业界的认可,同时,由于是 Linux 是开源的,所以,用户可以根据自己的需求修改代码,在商业使用上还不会像 Windows 一样有很多局限性。


Linux 是在伟大的 GNU 计划上产生的,它建立在 Unix 的基础上。GNU 计划表示操作系统上的任何软件都应该是开源的,而且是可以任意删除与修改的。



上述图像表示:应用程序→shell 命令解释器→Linux 内核→硬件。


1.2 为什么是 CentOS,而不是其他 Linux 发行版




Linux 发行版有很多,包括 CentOS、Ubantu、红帽等。我们之所以用 CentOS,是因为大数据的开发一般都在 CentOS 上运行的,Python 一般都是在 Ubantu 上运行。


1.3 什么是虚拟机




虚拟机就像是一个虚拟的计算机,当配置好这个计算机的内存、网络等一系列硬件后,就可以在上面安装系统。


常用的虚拟机软件是 Vmware,我们可以在该软件上安装 CentOS 或者 Ubantu 操作系统。


2 VMware、CentOS 的安装


=====================================================================================


2.1 手动安装




自己动手一步步安装 CentOS,而不是用 VMware 软件的傻瓜式安装。安装文档和安装包在如下链接,


链接:https://pan.baidu.com/s/14yTMA6B6t48xqfnI4mrwRw


提取码:ming


————参考尚硅谷


2.2 自动安装




用安装好的 VMware 的自动安装来安装 CentOS,真的太香了。


2.3 走过的弯路




1) 如果不用 VMware 的自动安装,而是按照教程安装,要时刻做好系统崩溃的准备。


2) 虚拟机中系统的关机千万不能用直接关闭虚拟机来解决,而是在该系统中老老实实的点关机,不然该系统很容易奔溃。这一点很容易理解,就像我们自己电脑的 windows 一样。


3) 如果自己安装 VMware tools 的话,我之前也写了一个教程,但是这只是不是再 VMware 的自动安装下才有的,如果是 VMware 的自动安装,它会自动安装。


4) 推荐先按照这份教程手动的安装,先了解一下 Linux 的很多细节,后期再通过 VMware 自动安装。


5) 在配置虚拟机时,网络连接存在三种方式,包括桥接模式、网络地址转化模式(NAT-Network Address Transaction)、主机模式,我们一般选择 NAT 模式。三者的区别如下:



如上图所示,


  • NAT 模式的意思就是我的电脑上单独产生一个字段与虚拟机连接。


好处与坏处:


  1. 虚拟机不占用其他的 ip,所以不会 ip 冲突

  2. 内网的其他人不能和虚拟机通讯


  • 桥接模式则是,我的电脑上不单独产生一个字段与虚拟机连接,该实验室网络环境下,包括虚拟机、我的电脑、同事小乐的电脑都用的是 192.168.14.x 字段。


好处与坏处:


  1. 内网的其他人可以和虚拟机通讯。

  2. 一个网址的最后一位,0 是保留地址,255 是广播地址,1 是网关地址,所以,桥接模式中,最多只能有 253 台服务器。


  • 主机模式则是把虚拟机单独看成一台新的主机来对待。(不常用)


3 Linux 的目录结构


===============================================================================


3.1 介绍




与 Windows 不同的是,在 Linux 中,万物都可以当成文件来对待。即使是一个硬件设备,在 Linux 中,也是使用文本来标记。如下图,硬件对应的是不同目录下的文件:



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


3.2 Linux 的文件目录树(我也太强了,尽然直接把它总结了出来)





另外还有五个目录,分别是:


  • /boot 分区:用于 Linux 系统的启动

  • /swap 分区:虚拟内存。作用是当我的物理内存不够用的时候,可以临时作为虚拟内存

  • /proc:这个目录是一个虚拟的目录,它是系


统内存的映射,访问这个目录来获取系统信息


  • /srv:service 缩写,该目录存放一些服务启动之后需要提取的数据。

  • /sys:这是 linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs


学习 Linux,一定要在脑海中形成一个目录树,一看到什么目录,就知道这个目录的作用是什么。


4 远程管理 Linux


==============================================================================


Xshell5 对应的是命令行的管理,XFtp5 对应的是文件的上传和下载。安装包在这里:


链接:https://pan.baidu.com/s/1TDuSI8JjFhwCzPtF_GFC3A


提取码:ming


————参考尚硅谷


备注:在工作中,大部分时候,我们都是用命令行远程管理 Linux 服务器的,这也就是为什么我们要通过这两个工具来连接到自己电脑中 VMware 中 CentOS 的原因。


5 Vi 和 Vim 编辑器


==============================================================================


所有的 Linux 系统都会内建 Vi 文本编辑器。Vim 具有程序编辑的能力,可以看做是 Vi 的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。


5.1 Vim 三种模式的切换




有个地方需要修改一下,就是去掉图中命令模式到命令行的三个选择的冒号。



| 选项 | 作用 |


| --- | --- |


| q | 离开 vim |


| q! | 不想保存修改强制离开 |


| wq | 保存后离开 |


5.2 Vim 常用的快捷键




  • 拷贝当前行:yy,拷贝当前行向下的 5 行:5yy。粘贴:p。【一般模式】

  • 删除当前行:dd,删除当前行向下的 5 行:5dd 【一般模式】

  • 在文件中查找某个单词 【命令模式下:/关键字,回车查找,输入 n 就是查找下一个】

  • 编辑/etc/profile 文件,使用快捷键到底文档的最末行[G]和最首行[gg]【一般模式下】

  • 在一个文件中输入“hello”,然后又撤销这个动作 u【一般模式下】


备注:更多 Vim 快捷键请点击:Vim快捷键


6 Linux 用户、组与权限管理


===================================================================================


6.1 为什么需要 Linux 不同用户




因为在实际的工作中,是不可能让每一个人都用最高管理权限的 root 用户,只能是让他们用到低第一级的用户权限。登录时尽量少用 root 帐号登录,因为它是系统管理员,最大的权限,避免操作失误。


如果在操作中真的需要管理员权限,可以利用普通用户登录,登录后再用”su-root’命令来切换成系统管理员身份。


6.2 用户组管理




在 linux 中每个文件有所有者、所在组、其它组的概念。用户组是为了让系统可以对有共性的多个用户进行统一的管理。


当我们创建一个用户后,默认会在/home/xx 创建一个和用户名相同的目录,该目录就是该用户的家目录。当一个新用户登录后,默认会切换到/home/xx 下。一个用户默认是不能进入到其他用户的该目录下。

6.2.1 新建以及删除用户

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


  • useradd -d(可以不加,不加的话默认放在/home) 新的用户名 【root 用户下】

  • 在 root 用户下,用 su–切换到其他用户不需要填密码


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


,反正,则需要填 root 的密码。


  • 当需要返回到原来用户时,使用 exit 指令

  • 如果 su–没有带用户名,则默认切换到 root 用户

  • passwd sharm 普通用户更新密码(sharm 为我的普通用户)

  • 删除用户和用户主目录用:userdel [-r 目录] [用户名] (一般在实际工作中保留主目录,那就是 userdel [用户名])

6.2.2 组管理

1)文件/目录的所有者一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。


2)查看文件的所有者与所在组的指令——ls ahl (第一个为所有者名称,第二个为所在组名称)


3)组自身的一些命令:


  • 增加组:groupadd lab

  • 新增一个用户,并且将他指定到一个新增的组中 groupadd -g lab sharm(当这个语句用不了的话就只能是一步一步操作)


4)文件与组的一些操作:


  • 修改文件的所有者:chown 用户名 文件名 (修改文件的所有者时,它的所在组还是属于原来的组)

  • 运用 chown 同时修改所有者和所有组:chown newowner:newgroup 文件名

  • 修改文件所在的组: chgrp 组名 文件名

  • 删除组:groupdel lab (前提是这个组里没有用户了)


5)所有者与所在组之间的一些操作


  • 在已有组中添加一个新用户: useradd -g 组名 新用户

  • 修改所有者的所在组:usermod -g 新的组名 用户

  • 改变该用户登陆的初始目录:usermod –d 目录名 用户名


备注:文件的所在组不一定是所有者的所在组。

6.2.3 用户和组的相关文件

  • /etc/passwd 文件——用户(user)的配置文件,记录用户的各种信息


每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell


  • /etc/shadow 文件——口令的配置文件


每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:保留


  • /etc/group 文件——组(group)的配置文件,记录 Linux 包含的组的信息


每行的含义:组名:口令:组标识号:组内用户列表(一般是看不到的)


6.3 关机与重启




  • shutdown -h now(立刻关机) ? ? ? ? ? shutdown -h 1 (一分钟后关机) ,其中 h 表示 halt,关机

  • shotdown -r now (立刻重启) ? ? ? ? ? shutdown -r 2 (二分钟后重启 ) ,其中 r 表示 reboot,重启


注意:在关机和重启前,一定要打入 sync 将内存的数据写入磁盘。


6.4 运行级别




Linux 的几个运行级别如下图所示:



常用的运行级别是 3 和 5。我们在主界面下的运行级别就是 5,用 Xshell 登录就是 3。如果要修改默认的运行级别,可通过 vim 来修改/ect/inittab 文件中的 id:5:initdefault: 这一行中的数字。或者直接在终端的命令行输入:init 5。


例题:当忘记 root 密码时,如何找回密码:


启动时->快速输入 enter->输入 e-> 进入到编辑界面-> 选择中间有 kernel 项->输入 e(edit)-> 在该行的最后写入 1 [表示修改内核,临时生效]-> 输入 enter->输入 b [boot]-> 进入到单用模式。


7 Linux 实用指令


==============================================================================


7.1 帮助指令



7.1.2 man [命令或者配置文件]

示例: man cd 查看 cd 命令的作用(全而杂)

7.1.2 help [命令]

示例: help cd 查看 cd 命令的作用


7.2 文件和目录相关的指令



7.2.1 pwd

该命令行的意思就是 print working directory,显示当前工作目录的绝对路径。

7.2.2 ls [选项] 显示当前目录下的文件和目录

选项:


-a :显示当前目录所有的文件和目录,包括隐藏的 (文件名以.开头就是隐藏,默认是不显示的)


-l : 以列表的方式显示信息


-h : 显示文件大小时,以 k , m, G 单位显示


示例:


  • ls -alh 显示当前目录的全部文件和目录

  • ls -alh /home 显示/home 目录的全部文件和目录

7.2.3 cd [选项] 进入到某个目录

示例:


  • cd ~或者 cd: 回到自己的家目录

  • cd … 回到当前目录的上一级目录

  • cd ./tp 到当前目录的 tp 目录下


绝对路径和相对路径:


7.2.4 mkdir

该命令行的意思就是 make directory,新建一个文件夹(目录)


示例:


  • 单级目录:mkdir 目录名 mkdir sharm 创建 sharm 这个文件夹

  • 多级目录:mkdir –p 目录名 【指的是中间的目录不存在也能直接创建,一次可以创建多级文件夹】

7.2.5 touch [文件名] [文件名] ……

创建一个或者多个空文件,如果文件存在,则刷新文件的修改时间

7.2.6 rmdir [空目录]

只能删除空目录

7.2.7 remove [文件名]

删除文件

7.2.8 rm -rf [空目录或者非空目录]

删除空或者非空目录,其中选项 r 表示文件与子目录全部删除,f 表示全部删除,不需要询问

7.2.9 clear 或者 Ctrl+L

清除 bash 上的命令行

7.2.10 cp [选项] [source 源] [dest 目的文件]

选项为-r 表示递归复制整个文件夹

7.2.11 mv

移动文件或者重命名


示例:


  • 将 /home/aaa.txt 文件 重新命名为 pig.txt


mv /home/aaa.txt /home/pig/txt


  • 将 /home/pig.txt 文件 移动到 /root 目录下


mv /home/pig.txt /root/


  • 将/sharm 目录下的 dataset 文件夹移动到/sharm 目录下的/Tumor 下


mv /sharm/dataset /sharm/tumor/

7.2.12 cat [选项 -n 表示显示行号]

以只读形式打开文件


说明:


如果需要一行行,输入 enter;


如果需要翻页,输入空格键;


如果需要退出,输入 q。

7.2.13 more

采用 more 来查看文件


说明:


空格键 代表向下翻一页;


enter 代表向下翻一行;


q 代表立刻离开 more ,不再显示该文件内容;


ctrl+F 表示向下滚动一屏;


ctrl+B 表示返回上一屏;


= 表示输出当前行的行号。

7.2.14 less

和 more 的功能类似,但是其并不是一次将整个文件加载进来再显示,而是根据需要再显示,之后看大型的日志一般推荐 less。


选项:


7.2.15 >与 >>

单个>:输出重定向指令 (会将原来的文件的内容跟覆盖)


两个>>:追加指令 (不会覆盖原来文件的内容,而是追加到文件的尾部)


示例:


  • ls -l >sharm.txt (功能描述:列表的内容写入文件 sharm.txt 中(覆盖写))

  • ls -l >>sharm.txt (功能描述:列表的内容追加到文件 sharm.txt 的末尾)

  • cat 文件 1 > 文件 2 (功能描述:将文件 1 的内容覆盖到文件 2)

  • cat 文件 1 >> 文件 2 (功能描述:将文件 1 的内容追加到到文件 2 末尾)

  • echo “内容”> 文件 (将内容下写道文件中(覆盖写))

  • echo “内容”>> 文件 (将内容下追加到文件末尾)

7.2.16 echo $PATH

输出当前的环境变量


示例:


  • echo hello world 在命令行(控制台)输出 hello world

7.2.17 head 文件

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


示例:


  • head -n 5 文件 (查看文件头 5 行内容,5 可以是任意行数)

7.2.18 tail 文件

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


示例


  • tail -n 5 文件(功能描述:查看文件后 5 行内容,5 可以是任意行数)

  • tail -f 文件(功能描述:实时追踪该文档的所有更新)

7.2.19 ln -s [原文件或目录] [软链接名]

给原文件创建一个软链接,软链接也成为符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径,当我们使用 pwd 指令查看目录时,仍然看到的是软链接所在目录。


示例:


  • ln -s /root/ linkToRoot 在/home 目录下创建一个软连接 linkToRoot,连接到/root 目录

  • rm -rf [软链接名] 删除软链接。删除软链接时,软链接名后面不要带斜杠

7.2.20 history

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


示例:


  • history 显示所有的历史命令

  • history 10 显示最近使用过的 10 个指令

  • !5 (在已经输入 history 的前提下,执行历史编号为 5 的指令)


7.3 时间日期类



7.3.1 date

示例:


  • date 显示当前时间

  • date +%Y 显示当前年份

  • date +%m 显示当前月份

  • date +%d 显示当前是那一天

  • date “+%Y-%m-%d %H:%M:%S” 显示当前年月日时分秒(中间的-可以用任何符号代替,但最前面的+一定要有)

  • date -s 字符串时间(“2020-11-11 12:22:56”) 作用:自己人为设置当前时间

7.3.2 cal

显示本月日历


示例:


  • cal 显示本月日历

  • cal 2020 显示 2020 年日历


7.4 搜索查找类



7.4.1 find [搜索范围] [选项] [文件]

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



示例:


  • find /home -name hello.txt 根据文件名称查找/home 目录下的 hello.txt 文件

  • find /home -user sharm 根据文件所有者查找/home 目录下用户名为 sharm 的文件

  • find /home -size +10M 查找整个 linux 系统下大于 10M 的文件(+n 大于-n 小于 n 等于)

7.4.2 locate

locate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。


示例:


  • updatedb


locate hello.txt 查找整个 Linux 系统下 hello.txt 的位置

7.4.3 grep 与管道符“|”

grep 的作用是过滤查找,|的作用是将前一命令的结果传到后一命令上


grep 的选项:


-n 显示匹配行及行号;


-i 忽略字母大小写;


示例:


  • grep -n if /home/hello.txt

  • cat /home/hello.txt |grep -n if 两者的作用相同,均是在 hello.txt 文件中找到 if 的行号,就像英文中的主动与被动语法。


7.5 压缩和解压类



7.5.1 gzip 与 gunzip

gzip 为压缩文件命令,只能将文件压缩为*.gz 文件(不能压缩文件夹);gunzip 为解压文件命令


示例:


  • gzip /home/hello.txt 将 hello.txt 文件压缩成*gz 的压缩包(删除原文件)

  • gunzip /home/hello.txt.gz 将 hello.txt.gz 解压缩为原文件类型,同时可以 加入选项-d 将解压后的文件存放在指定目录

7.5.2 zip 与 unzip

即可以压缩/解压缩文件,还可以压缩/解压缩文件夹


选项:


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


-d 指定压缩后文件的存放目录


示例:


  • zip -r nn.zip /home/temp/ 将/home 目录下的 temp 文件夹压缩成名为 nn.zip 的文件,同时保留原文件,注意,要写全,如/home/temp/

  • unzip -d /home/haha nn.zip 将 nn.zip 文件解压到/home/haha 中,如果没有该目录,则自动创建该目录(在当前文件夹中操作另一个文件夹,那么该文件夹的前面不要加/,不然电脑会识别到根目录的下一层上)

7.5.3 tar

tar 指令 是打包指令,最后打包后的文件是 .tar.gz 的文件。该命令可以压缩,也可以解压缩


选项:



示例:


  • tar -zcvf a.tar.gz haha.txt mimi.txt 将 haha.txt 和 mimi.txt 合并打包为 a.tar.gz 文件

  • tar -zcvf myhome.tar.gz /home/ 将/home 文件夹下的所有东西打包成一个 myhome.tar.gz 文件

  • tar -zxvf a.tar.gz 将 z.tar.gz 压缩文件解压到该原目录下

  • tar -zxvf a.tar.gz -C /opt/tmp 将 a.tar.gz 压缩文件解压到/opt/tmp 文件夹下,该文件夹需要事先创建


8 权限管理


=========================================================================


8.1 权限介绍




命令行输入 ls -l ,会出现如以下所示的输出,它们分别代表的是:


-rwxrw-r-- 1 root police 1213 Feb 2 09:39 abc.txt


  • 第 0 位确定文件类型,其中-:普通文件;d:目录;l:连接文件;c:字符设备文件[键盘,鼠标];b:块设备文件[硬盘]

  • 第 1-3 位确定所有者(该文件的所有者)拥有该文件的权限(r:读权限;w:写权限;x:执行权限)

  • 第 4-6 位确定所属组(同用户组的)拥有该文件的权限

  • 第 7-9 位确定其他用户拥有该文件的权限

  • 1:如果是文件,表示硬链接的数目(一般都是 1);如果是目录,则表示有多少个子目录

  • root 表示所有者名称

  • police 表示所属组名称

  • 1213:表示文件存储的大小,如果是目录,则统一为 4096

  • Feb209:39 表示文件最后的修改时间


8.2 rwx 权限详情




1)rwx 作用到文件


  • [r]代表可读(read):可以读取,查看

  • [w]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件

  • [x]代表可执行(execute):可以被执行


2)rwx 作用到目录


  • [r]代表可读(read):可以读取,ls 查看目录内容

  • [w]代表可写(write):可以修改,目录内创建+删除+重命名目录

  • [x]代表可执行(execute):可以进入该目录


8.3 修改权限命令——chmod




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


1) 第一种方式,通过+、-、=变更权限


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


示例:


  • chmod u=rwx,g=rx,o=x 文件、目录 【表示:给所有者 rwx, 给所在组的用户 rx, 给其他人 x】

  • chmod o+w 文件、目录 【表示:给其它用户增加 w 的权限】

  • chmod a-x 文件、目录 【表示:给所有用户 去掉 x 权限】


**2) 第二种方式,通过数字变更权限


r=4 w=2 x=1 rwx=4+2+1=7**


示例:


  • chmod u=rwx,g=rx,o=x 文件、目录


chmod 751 文件、目录 两者的功能是相同的


备注:对于目录,只有给用户“执行”的权限,才能进入,同时该用户要重新登录一次。需要用 root 角色来更改各个用户的权限。


9 任务调度


=========================================================================


很多时候,我们在 linux 中,需要自动执行某一个脚本(代码),这个时候,我们就需要任务调度的作用。任务调度分为两类,第一类,系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等。第二类,个别用户工作:个别用户可能希望执行某些程序,比如对 mysql 数据库的备份。


任务调度的两种方式:


1)直接通过命令行来调度


2)通过调用脚本来调度


本质上两者是相同的,只不过当内容太多时,放在脚本中比较方便。


9.1 crontab [选项]




选项:


-e 编辑 crontab 定时任务


-l 查询 crontab 任务


-r 删除当前用户所有的 crontab 任务


快速入门:


第一步:设置任务调度文件:/etc/crontab


第二步:设置个人任务调度。执行 crontab –e 命令。


第三步:接着输入任务到调度文件


如:*/1 * * * * ls –l /etc/ > /tmp/to.txt


意思说每小时的每分钟执行 ls –l /etc/ > /tmp/to.txt 命令


占位符的说明:



参数说明:


  • 星号 * 代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。

  • 逗号,代表不连续的时间。比如“0 8,12,16 * * * 命令”,就代表在每天的 8 点 0 分,12 点 0 分,16 点 0 分都执行一次命令

  • 破折号 - 代表连续的时间范围。比如“0 5 * * 1-6 命令”,代表在周一到周六的凌晨 5 点 0 分执行命令

  • 这个符号*/n 代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔 10 分钟就执行一遍命令


案例:


  • 45 22 * * * 命令 在每天的 22 点 45 分执行命令

  • 0 17 * * 1 命令 每周 1 的 17 点 0 分执行命令

  • 0 5 1,15 * * 命令 每月 1 号和 15 号的凌晨 5 点 0 分执行命令

  • 40 4 * * 1-5 命令 每周一到周五的凌晨 4 点 40 分执行命令

  • */10 4 * * * 命令 每天的凌晨 4 点,每隔 10 分钟执行一次命令(就在 4 点这个区间)

  • 0 0 1,15 * 1 命令 每月 1 号和 15 号,每周 1 的 0 点 0 分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。


操作示意:


  • 案例 1:每隔 1 分钟,就将当前的日期信息,追加到 /tmp/temporary/writeDate.log 文件中(直接用命令行形式)


crontab -e


(vim 的输入操作) */1 * * * date >> writeDate.log (各个符号中的空格很重要,同时该命令行的前提是我已经进入到该目录下)


crontab -r(删除定时调度)


  • 案例 2:每隔 1 分钟, 将当前日期和日历都追加到 /home/mycal.log 文件中(用脚本形式)(思路,我先把写好的脚本放在某个文件夹下,然后通过 crontab 调度这个脚本)


cd /tmp/tp/crontask.sh (放脚本的位置)


在该脚本中写入 date >> /tmp/tp/mycal.log


cal >> /tmp/tp/mycal.log (存放保存文件的位置)


[root@localhost tp]# chmod 755 ./crontask.sh (对了,还要给它一个可执行的权限)


crontab -e


*/1 * * * * /tmp/tp/mycal.log


crontab -r


10 磁盘分区与挂载


=============================================================================


10.1 分区的方式




1) mbr 分区:


  • 最多支持四个主分区

  • 系统只能安装在主分区

  • 扩展分区要占一个主分区

  • MBR 最大只支持 2TB,但拥有最好的兼容性


2) gtp 分区(?):


  • 支持无限多个主分区(但操作系统可能限制,比如 windows 下最多 128 个分区)

  • 最大支持 18EB 的大容量(1EB=1024PB,1PB=1024TB)

  • windows764 位以后支持 gtp


10.2 Linux 分区与 Windows 分区的区别




1) Windows 分区



2)Linux 分区


  • 对 Linux 来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux 中每个分区都是用来组成整个文件系统的一部分。

  • Linux 采用了一种叫“载入(mount)”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。

  • 示意图【分区和文件目录】



10.3 Linux 下的磁盘说明




Linux 硬盘分 IDE 硬盘和 SCSI 硬盘,目前基本上是 SCSI 硬盘。


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

  • 对于 SCSI 硬盘则标识为“sdx~”,SCSI 硬盘是用“sd”来表示分区所在设备的类型的,其余则和 IDE 硬盘的表示方法一样。sdb1 [表示第 2 块 scsi 硬盘的第 1 个分区]


10.4 lsblk 或者 lsblk -f (老师不离开)




查看所有设备(光驱 /media,u 盘, 硬盘)挂载情况



10.5 经典案例——在系统中增加一块硬盘,挂载到/home/newdisk 上




步骤:


  1. 增加一块硬盘 1G [到设置中添加一块硬盘即可]



  1. 重启一下服务器 reboot

  2. lsblk



  1. 给 sdb 硬盘分区,分区命令:fdisk /dev/sdb


选项:


m 显示命令列表


p 显示磁盘分区 同 fdisk –l


n 新增分区


d 删除分区


w 写入并退出


说明:开始分区后输入 n,新增分区,然后选择 p ,分区类型为主分区。两次回车默认剩余全部空间。最后输入 w 写入分区并退出,若不保存退出输入 q。



  1. 格式化 sdb1


mdfs -t ext4 /dev/sdb1 [把 /dev/sdb1 分区格式化]



  1. 挂载


mkdir /home/newdisk


mount /dev/sdb1 /home/newdisk [说明;挂载时,当前目录不要在 /home/newdisk ]

用户头像

Java高工P7

关注

还未添加个人签名 2021.11.08 加入

还未添加个人简介

评论

发布
暂无评论
Linux极速上手,超全面总结