大数据学习之Linux

标签: linux

Linux笔记总结

学习目标:

  • 了解Linux的发展历程(概述)

  • VM虚拟机和Linux的安装 (熟练掌握)

  • 掌握Linux的文件目录结构

  • 熟练掌握Linux中的文本编辑器 - VI/VIM(重点)

  • 掌握Linux中的网络配置系统管理操作

  • 在Windows中通过远程工具连接Linux系统

  • Linux中的常用命令(重中之重)

  • 掌握Linux中软件的管理-YUM操作

  • 掌握克隆虚拟机

  • 掌握一些Linux系统常见错误

  • 了解一些Linux真实的面试真题

一、Linux概述

​ 本章节就是对Linux的历史发展进行阐述,学习方案就是 听故事,讲故事,能大体了解Linux的基本发展史以及一些关于操作系统的概念即可!

1.认识操作系统

  • 概念:一句话总结就是把计算机系统中对硬件设备的操作封装起来,供应用软件调用。

  • 常见操作系统:

    • PC端:

      在这里插入图片描述

    • 移动端:
      在这里插入图片描述

    • 服务端:

在这里插入图片描述

小结:操作系统所涉及的领域大概就这三个,PC端,移动端,服务端。

2.Linux的由来

  • Unix和Minix

​ 说道Linux的由来 先得聊聊Unix,Unix也是一个操作系统,但是最大的问题就是 硬件捆绑 ,所谓的硬件捆绑就是Unix系统都是针对专门的硬件系统开发的,不同厂商都是为自己的服务器开发专门的Unix操作系统,其次 出于商业等方面因素的考虑,AT&T在1979年发行第七版Unix系统时收回了Unix的版权。在Unix收回版权的背景下,出于学院教学的需要,荷兰阿姆斯特丹的Vrije大学计算机科学系的Andrew S. Tanenbaum教授开发了一个“类Unix”系统:Minix。之所以称为类Unix,是由于Tanenbaum教授为了避免版权纠纷在开发过程中刻意完全不看Unix本身代码,但同时要做到在使用时让用户的操作方式和使用Unix时一样

  • Linux的诞生

    Minix最有名的学生用户是Linus Torvalds,他在芬兰的赫尔辛基大学用Minix操作平台建立了一个新的操作系统的内核,他把它叫做Linux。

    Linux是 Linus Torvalds受到Minix的影响而开发的(Linus Torvalds不喜欢他的386电脑上的MS-DOS操作系统,安装了Minix,并以它为样本开发了原始的Linux内核)。

在这里插入图片描述

3.Linux作为服务器端系统的优势

Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debain、Fedora、SuSE、OpenSUSE。

Linux的优势主要体现在下面几个方面:

  • 性能强劲,安全稳定

    ​ Linux本来就是基于Unix概念而发展出来的操作系统,当然也继承了Unix稳定高效的特点。使用Linux系统的主机连续工作1年以上不死机、不重启是非常常见的。所以很多电影、动画中的特效制作这样需要强大运算能力的工作都是运行在Linux系统之上。

  • 可定制
    如果你对Linux足够了解,完全可以使用Linux内核搭配需要的组件构成一个定制版系统,甚至你可以修改Linux源码进行深度定制
  • 免费或少许费用
    学习Linux可以免费使用Linux的各种发行版,在商业用途中往往也只是支付很少的费用即可
  • 硬件配置要求低
    Linux内核只有几KB大小,仅运行内核的话需要的系统开销很小,以命令行方式操作Linux也一样。以图形化界面方式运行Linux需要的资源也比Windows更少。
  • 嵌入移动设备
    由于Linux只需要很少的资源就能够驱动所有硬件设备工作,所以非常适合嵌入到手机等移动设备中,例如现在我们使用的Android系统就是以Linux为核心的。

4.Linux和Windows区别

在这里插入图片描述

3.在创建好的虚拟机上安装Linux系统

​这个有一个具体的安装教程,有需要的私聊我,这里需要大家多踩坑,踩多了就熟练了!!哈哈哈哈哈哈哈

二、VM(Vmware)虚拟机和Linux的安装

1.安装VM虚拟机软件(15.5的版本)

还是一样,需要安装教程的私聊我。

注意:虚拟机安装好某一个版本就行,都是通用的!

2.创建一个新的虚拟机

​ 安装虚拟机,按照教程操作即可!需要特别的注意的是选择 网络连接的时候,我们推荐使用NAT连接方式,另外还有 桥接方式 ,下面一起讨论一下 这两种方式有什么区别。

2.1 桥接模式

1.局域网内,物理机之间是可以相互访问的!
2.如果使用的是桥接模式,那么这台虚拟机可以和局域网内的任意物理机相互访问
3.以上桥接模式存在一些以下问题
------ip占有的是局域网,这样一定程度上影响了我们对物理机的扩展
-----存在网络安全问题

2.2 NAT连接模式

1.如果使用的是NAT连接,那么1号物理机和它的虚拟机会组成一个小型局域网
2.有了小型局域网,别的物理机就不能访问1号的虚拟机了,另外也解决网络扩展问题。

2.3 二者区别

在这里插入图片描述

3.安装 Cenos7

(需要的私聊)

注意:手动分区

三、Linux的目录结构

在这里插入图片描述

概述:在Linux中,一切皆文件。

在Linux中比如进程,磁盘,内存等等都以文件的形式来体现。之前我在学习的过程中,我的老师就告诉我一个道理,Linux入门一定要脑子里面有树形的目录结构,这句话同样送给大家!

重点了解掌握的目录,其他的一些我就不做介绍了

/bin 目录 :系统有很多放置执行档的目录,但/bin比较特殊。因为/bin放置的是在单人维护模式下还能够被操作的指令。在/bin底下的指令可以被root与一般帐号所使用,主要有:cat,chmod(修改权限), chown, date, mv, mkdir, cp, bash等等常用的指令。

/boot 目录:主要放置开机会使用到的档案,包括Linux核心档案以及开机选单与开机所需设定档等等。Linux kernel常用的档名为:vmlinuz ,如果使用的是grub这个开机管理程式,则还会存在/boot/grub/这个目录。

/dev 目录:在Linux系统上,任何装置与周边设备都是以档案的型态存在于这个目录当中。 只要通过存取这个目录下的某个档案,就等于存取某个装置。比要重要的档案有/dev/null, /dev/zero, /dev/tty , /dev/lp*, / dev/hd*, /dev/sd*等等

/etc 目录:系统主要的设定档几乎都放置在这个目录内,例如人员的帐号密码档、各种服务的启始档等等。 一般来说,这个目录下的各档案属性是可以让一般使用者查阅的,但是只有root有权力修改。 FHS建议不要放置可执行档(binary)在这个目录中。 比较重要的档案有:/etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/等等。 另外,其下重要的目录有:/etc/init.d/ :所有服务的预设启动script都是放在这里的,例如要启动或者关闭iptables的话: /etc/init.d/iptables start、/etc/init.d/ iptables stop

/etc/xinetd.d/ :这就是所谓的super daemon管理的各项服务的设定档目录。

/etc/X11/ :与X Window有关的各种设定档都在这里,尤其是xorg.conf或XF86Config这两个X Server的设定档。

/home 目录:这是系统预设的使用者家目录(home directory)。 在你新增一个一般使用者帐号时,预设的使用者家目录都会规范到这里来。比较重要的是,家目录有两种代号:
~ :代表当前使用者的家目录,而 ~guest:则代表用户名为guest的家目录。

/lib 目录:系统的函式库非常的多,而/lib放置的则是在开机时会用到的函式库,以及在/bin或/sbin底下的指令会呼叫的函式库而已 。 什么是函式库呢?妳可以将他想成是外挂,某些指令必须要有这些外挂才能够顺利完成程式的执行之意。 尤其重要的是/lib/modules/这个目录,因为该目录会放置核心相关的模组(驱动程式)。

/opt 目录:这个是给第三方协力软体放置的目录 。 什么是第三方协力软体啊?举例来说,KDE这个桌面管理系统是一个独立的计画,不过他可以安装到Linux系统中,因此KDE的软体就建议放置到此目录下了。 另外,如果妳想要自行安装额外的软体(非原本的distribution提供的),那么也能够将你的软体安装到这里来。 不过,以前的Linux系统中,我们还是习惯放置在/usr/local目录下。

/root 目录:系统管理员(root)的家目录。 之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时,该目录就能够拥有root的家目录,所以我们会希望root的家目录与根目录放置在同一个分区中。

/sbin 目录:Linux有非常多指令是用来设定系统环境的,这些指令只有root才能够利用来设定系统,其他使用者最多只能用来查询而已。放在/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。至于某些伺服器软体程式,一般则放置到/usr/sbin/当中。至于本机自行安装的软体所产生的系统执行档(system binary),则放置到/usr/local/sbin/当中了。常见的指令包括:fdisk, fsck, ifconfig, init, mkfs等等。

/srv 目录:srv可以视为service的缩写,是一些网路服务启动之后,这些服务所需要取用的资料目录。 常见的服务例如WWW, FTP等等。 举例来说,WWW伺服器需要的网页资料就可以放置在/srv/www/里面。呵呵,看来平时我们编写的代码应该放到这里了。

/tmp 目录:这是让一般使用者或者是正在执行的程序暂时放置档案的地方。这个目录是任何人都能够存取的,所以你需要定期的清理一下。当然,重要资料不可放置在此目录啊。 因为FHS甚至建议在开机时,应该要将/tmp下的资料都删除。

四、Linux中的文本编辑器 - VI/VIM

1.一般模式

概述:通常进行一些修剪操作(复制,粘贴,删除),vim 命令打开文件后默认的状态就是一般模式。

常见的操作:

在这里插入图片描述

2.编辑模式

概述:上面一般模式只能进行一些修剪操作,如果想对文本进行插入内容操作,那就得切换到编辑模式进行。

3.指令模式

概述:在一般模式中或者编辑模式,当我们输入 ESC 再输入一个 : 就切换到指令模式。切换到指令模式后,就可以通过一些指令来控制操作文本。

常用指令如下:

在这里插入图片描述

4.总结

在这里插入图片描述

五、网络配置和系统管理操作

1.查看网络IP 和 网关以及修改ip为静态

1.1 Linux上查看IP

ifconfig 

1.2 如何查看和配置虚拟机的网络

注意:虚拟机的网络配置直接影响 Linux系统的 网络信息

1.打开虚拟机网络编辑器

在这里插入图片描述

2.修改虚拟网卡Ip

在这里插入图片描述

注意:将来Linux的ip网段取决于 虚拟网卡IP的网段

1.3 区别Linux中IP的动态分配和静态设置

场景描述:在通常默认情况下,Linux的ip分配取决于虚拟机的网络设置,默认情况下按照我们指定的范围进行自动分配,这样的话就导致一个现象,每次重启,关机Linux,下次再用的时候发现ip就变了。但是我们在频繁的连接Linux的情况下,不希望它的ip总是变。所以我们可以通过修改Linux中的网络配置文件将它的ip设置为静态的。需要注意,在设置的时候也不是随意赋值ip ,还是要遵循虚拟机的网络配置信息。

1.体验Linux系统和物理机进行网络通信

ping 主机地址

2.体验Linux和外网进行通信

ping 外网域名/外网ip

3.修改Linux中的ip为静态的

修改前:

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
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="ens33"
UUID="96ef33f8-eb1e-4585-afe1-ee6d868abf00"
DEVICE="ens33"
ONBOOT="yes"

修改后:

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
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="ens33"
UUID="96ef33f8-eb1e-4585-afe1-ee6d868abf00"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.2.100
GATEWAY=192.168.2.2
DNS1=192.168.2.2

在这里插入图片描述

2.修改Linux的主机名

小结: 通过VIM编辑器打开 etc/hostname文件,然后就可以把自己期望的主机名称写进去就可以,但是想要生效,必须重启Linux。

3.关闭防火墙

为什么要关闭防火墙?

由于我们目前是学习阶段,建议把防火墙都关掉,目的为了避免将来开发中出现一些网络无法连接以及一些权限不够的情况。

1.用 systemctl 服务管理关闭防火墙

1. 基本语法(对服务进行整体操作)
systemctl  start | stop | restart | status	  服务名
示例:查看防火墙服务的状态
systemctl status firewalld

#关闭防火墙服务的开机自启状态
systemctl disable firewalld
#开启防火墙服务的开机自启状态
systemctl enable firewalld

2.service(在Centos6中主打) 服务管理和systemctl(在Centos7中主打)

service 所属服务的目录如下

– /etc/init.d 目录下保留service管理的服务=
– netconsole=
– network

systemctl所属服务的目录如下
– /usr/lib/systemd/system
– Linux 中所有的服务。

六、远程登录

前言:在真实开发中,Linux往往都是充当真实服务器,一般情况下都会有专业人员(运维工程师)来直接接触,我们在操作的时候往往是在Windows下通过远程登录的方式来操作。固然就需要运行在Windows系统上的远程登录的软件工具了,市面上有很多这样的工具,例如:XShell、SSH Secure Shell、FinallShell ,这个没有固定的标准,根据自己的喜好来选择就行,我们使用FinallShell 是一款用户体验不错的软件。

1.安装FinallShell

傻瓜式安装,需要的私聊

2.远程连接Linux系统

1). 选择连接Linux系统

在这里插入图片描述

2). 输入Linux的用户名和密码连接
在这里插入图片描述

**3). 根据上一步,点击确定准备连接 **

在这里插入图片描述

4). 查看连接后的界面

OK!以后就在这里操作Linux系统了!

七、Linux的常用基本命令(重点)

概述: Linux中的最有魅力的就是命令,也是和Linux交互的一个重要的手段。
我们学习命令按照分门别类,这样效率就会提高。

1.帮助命令

man 命令
help 命令
注意:
man和help都属于帮助命令,但是二者是有区别的。help命令属于 shell的内置命令。
在Linux中所有的命令总的分为 内置命令和外置命令。当Linux系统启动的时候,就会内置命令加载到内存中以便使用,而外置命令则不会随着系统启动加载。本质上就是性能的差异,内置命令的效率要更高。在系统中通过 (type 命令)就可判断它是否是内置命令 。

2.文件目录相关的命令

1.查看当前所在目录
pwd

2.列出目录的内容
ls
ls -l
ls -al
ll

3.切换目录
cd 相对路径 / 绝对路径
**注意:**只要cd后面 带/的都是绝对路径其他的就是相对路径

4.创建一个新的目录
mkdir 目录
mkdir -p 目录/目录

5.删除目录
– 删除一个空目录
rmdir 目录
– 删除一个非空目录
rm -rf 目录

6.创建文件
touch 文件
**注意:**Linux中文件没有后缀名的概念

7.复制文件
cp 文件 目标路径

8.删除文件目录
rm -r 目录 -->递归删除,但是我们还得一步一步进行操作才能删除
rm -rf 目录 --> 强制递归删除,一步到位

  1. 移动文件
    mv 文件 移动到的目标目录
  1. 查看文件
  • cat 文件 (适合查看比较小的文件,因为它不会对内容进行分页显示)
  • more 文件 (适合查看大文件,它分屏显示)
  • less 文件 (适合查看大文件,它分屏显示,区别于more,它按需加载内容其次支持内容搜索)

11.echo – 在控制台输出内容
– 将输入的内容输出到控制台(没有太大意义)
– echo $PATH --输出当前用户下的系统环境变量内容

  1. head – 查看文件头部内容(默认显示10行,也可以加 -n 行数 来灵活控制)
  1. tail --查看文件尾部内容
    – tail 文件 (用的不多)
    – tail -f 文件 (一般用于查看动态日志)
  1. > 输出重定向 , >> 追加
    echo “aaaaa” > test.txt 覆盖添加内容
    echo “ccccc” >> test.txt 不覆盖追加内容
  1. ln 软链接
    概述:**类似Windows中的快捷方式,
    语法演示:ln -s [原文件或目录] [软链接名]
    ln -s /etc/sysconfig/network-scripts/ net_link
    查看结果:发现软链接创建成功
    访问软链接: cd net_link 结果就是和/etc/sysconfig/network-scripts/

注意:当cd net_link后发现 内容没问题,但是现实的当前路径是net_link,这是为什么,因为软链接自身会在Linux有独立的数据块,但是注意这个独立的数据块和真实的路径下的文件或者目录内容是共享的

操作软链接的坑:

  1. 删除软链接: rm -rf 软链接名,而不是rm -rf 软链接名/
  2. 在创建软连接的时候一定要自定软链接名称

一旦采坑了解决方案

  1. history 命令
    查看所有执行过的命令的历史记录

3.时间日期类

语法
(1)date (功能描述:显示当前时间)
(2)date +%Y (功能描述:显示当前年份)
(3)date +%m (功能描述:显示当前月份)
(4)date +%d (功能描述:显示当前是哪一天)
(5)date “+%Y-%m-%d %H:%M:%S” (功能描述:显示年月日时分秒)

4.用户管理类型的命令

概述: Linux中用户管理一般都专人来做,但是也不排除自己开发的时候会设计到一些基本操作。
要去了解Linux系统下几个文件。home目录 ,passwd 文件(存放用户的信息),shadow文件(存放的是用户的对应的加密后的密文),group文件(存放的是组的信息)。

1.useradd 创建用户
[[email protected] ~]# useradd tangseng
[[email protected] ~]#ll /home/

2.设置密码
[[email protected] ~]# passwd tangseng

3 id 查看用户是否存在
[[email protected] ~]#id tangseng

4 cat /etc/passwd 查看创建了哪些用户
[[email protected] ~]# cat /etc/passwd

5 su 切换用户
[[email protected] ~]#su tangseng
[[email protected] ~]#echo $PATH
[[email protected] ~]#exit
[[email protected] ~]#su - tangseng
[[email protected] ~]#echo $PATH

6 userdel 删除用户
(1)userdel 用户名 (功能描述:删除用户但保存用户主目录)
(2)userdel -r 用户名 (功能描述:用户和用户主目录,都删除)

5.用户组的管理

1 groupadd 新增组
基本语法
groupadd 组名
案例实操
添加一个xitianqujing组
[[email protected] opt]#groupadd xitianqujing

2 groupdel 删除组
基本语法
groupdel 组名
案例实操
删除xitianqujing组
[[email protected] opt]# groupdel xitianqujing

3 groupmod 修改组
1.基本语法
groupmod -n 新组名 老组名
案例实操
[[email protected] ~]#groupadd xitianqujing
[[email protected] ~]# groupmod -n xitian xitianqujing

6.文件权限类命令(精准掌握)

概述: Linux系统是电箱多用户的操作系统,不同的用户拥有不同的权限。为了保护系统的安全性,Linux对权限加以严谨的控制,下面就一起来掌握如何控制文件的权限。

1.Linux中文件的属性详解

在这里插入图片描述

注意: 如果没有权限,就会出现减号[ - ]而已。从左至右用0-9这些数字来表示

(1)0首位表示类型

在Linux中第一个字符代表这个文件是目录、文件或链接文件等等

- 代表文件

d 代表目录

l 链接文档(link file)

(2)第1-3位确定属主(该文件的所有者)拥有该文件的权限。—User

(3)第4-6位确定属组(所有者的同组用户)拥有该文件的权限,—Group

(4)第7-9位确定其他用户拥有该文件的权限 —Other

1.2 rxw作用文件和目录的不同解释

(1)作用到文件:

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

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

的目录有写权限,才能删除该文件.

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

(2)作用到目录:

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

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

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

**1.3 通过 ll 命令来查看 文件基本属性介绍如下图 **

在这里插入图片描述

(1)如果查看到是文件:链接数指的是硬链接个数。创建硬链接方法: ln [原文件] [目标文件]

ln test.txt ying.t

(2)如果查看的是文件夹:链接数指的是子文件夹个数。

2.chmod 改变权限

注意:我们操作改变权限从两个方面讲解,一是改变文件的权限,二是改变目录的权限,这个知识点有点绕,结合下面模拟的场景去理解效果更好!

一:改变文件的权限

第一步:用root用户登录进入到 /home目录下创建一个文件 touch test 。 由于root是Linux的超级用户,那么对创建的文件具有读写的权限,于是乎可以往里面写点内容。

第二步:创建一个用户 zhangsan ,让这个用户用自己默认的组。然后再FinallShell中打开一个新的窗口,并且切换当前用户为zhangsan。进入到/home目录下,此时观察zhangsan用户对 test文件的权限,发现只有读(r)的权限。

第三部:点开root用户的窗口,利用命令 chmod o+w test 修改test文件的权限为其他用户可写。

第四部:回到zhangsan登录的窗口重新查看/home目录发现已经有了对test文件写的权限了,打开文件编辑发现可以了。

小结:以上操作就是将一个文件的权限针对其他用户的改变,从没有写权限改为有写权限,但是带没完事,因为还有一个组的概念。请看下面操作!

第五步:创建一个用户lisi, 并且指定lisi所属组为root组 useradd -g root lisi 。

第六步:再打开一个新的FinallShell窗口,并切换成lisi用户,进入到/home目录下,查看组的权限对test文件没有写的权限,进而试一下 发现确实不能编辑。

第七步:回到root登录窗口对test文件的组权限进行修改 chmod g+w test

第八步:回到lisi登录的窗口再次查看test文件发现组的权限有了写权限,试一下,果然可以编辑了

小结: 后四步操作展示的就是文件权限针对组权限的改变,此处由于用户和组都存在权限的限制,有可能混淆,那么就记住这样一个原则:

看权限如何看:
我是谁(当前登录用户)
我要操作谁(目录或者是文件)
我要操作的目录或者是文件属于谁(目录或文件的所属主)
我要操作的目录或者是文件属于哪个组
明确我是当前文件或者是目录的所属主或者所属组再或者其他

二:改变目录的权限

第一步:在root用户下准备三个普通用户分别是a,b,c 。然后指定 a 用户所属a组,b用户所属b组,c用户所属b组。分别执行以下命令:

  1. useradd a
  2. useradd b
  3. useradd -g b c

第二步:分别准备两个新的的窗口切换用户a和用户c登录

第三步:在a用户登录的窗口进入/home目录下对b文件夹分别进行 读(ls)写(mkdir) 执行(cd) 操作,发现权限都不够!

第四部:回到root用户窗口修改权限,由于a用户和b用户是不同组那么就就关注权限的后三位

chmod o=rwx b

第五步:回到用户a的登录窗口再次进行对b文件夹的读(ls)写(mkdir) 执行(cd) 操作,发现有权限!

第六步:在c用户登录的窗口进入到/home目录下对b文件夹分别进行 读(ls)写(mkdir) 执行(cd) 操作,发现权限都不够!

第七步:回到root用户窗口修改权限,由于c用户和b用户是同组那么就就关注权限的中间三位

chmod g=rwx b

第八步:回到用户c的登录窗口再次进行对b文件夹的读(ls)写(mkdir) 执行(cd) 操作,发现有权限!

3.利用数字表示权限

在这里插入图片描述

对应规则:把我们的 u,g,o 分为三个组,其中u中的 rwx 权限对应421,这样就可以用数字表示u的rwx权限了。

例如:0表示 — 没有权限
1表示 --x 只有执行权限
2表示 -w- 只有写的权限
3表示 -wx 有写和执行的权限
4表示 r-- 只有读的权限
5表示 r-x 有读和执行的权限
6表示 rw- 有读写权限
7表示 rwx 有读写执行的权限

综上所述:如果想表达有总的权限,666=rw- rw- rw- 777=rwx rwx rwx

4.sudo 设置普通用户具有root权限

添加atguigu用户,并对其设置密码。
[[email protected] ~]#useradd atguigu
[[email protected] ~]#passwd atguigu

修改配置文件

[[email protected] ~]#vi /etc/sudoers
##修改 /etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下所示:
## Allow root to run any commands anywhere
root    ALL=(ALL)     ALL
atguigu   ALL=(ALL)     ALL
##或者配置成采用sudo命令时,不需要输入密码
## Allow root to run any commands anywhere
root      ALL=(ALL)     ALL
atguigu   ALL=(ALL)     NOPASSWD:ALL
##修改完毕,现在可以用atguigu帐号登录,然后用命令 sudo ,即可获得root权限进行操作。

案例实操:

(1)用普通用户在/opt目录下创建一个文件夹
[[email protected] opt]$ sudo mkdir module

总结: 让普通用户拥有root权限大概分为两步操作,第一步就是修改/etc/sudoers 文件,配置指定普通用户的拥有root权限。配置完后重新连接一下,配置文件就生效了。第二部在操作的时候加上 sudo命令就相当于临时获取root权限可以为所欲为。

5.usermod 修改用户

基本语法:

usermod -g 用户组 用户名

选项说明:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iRWb3fyU-1598776119065)(Linux-笔记总结.assets/image-20200807171652007.png)]

案例实操:

(1)将用户加入到用户组
[[email protected] opt]#usermod -g root zhubajie

6.chown 改变所有者

概述: 在Linux中文件和目录的所属用户(主)和所属组都是可以改变的,下面我们就试一下。

1.修改目录或文件的所属用户(主)

chown zhangsan(用户名称) test(文件)

chown zhangsan(用户名称) abc(目录)

注意:修改所属组的时候也可以加上 -R 加上之后代表递归,就是当前abc目下的所有目录都属于zhangsan这个用户了

2.修改目录或文件的所属用户(主),原理和上面一样,只是命令不一样

chgrp zhangsan(组名称) test(文件)

chgrp zhangsan(组名称) abc(目录)

3.直接利用 chown 命令完成所属用户和所属组的同时修改

chown zhangsan:zhangsan bcd

7.搜索查找类命令

在Linux中如果需要查找目录或者文件可以使用一下三种命令来实现。重点学习locate和grep。

一、 find 查找文件或者目录

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

用法演示:find [搜索范围] [选项] [匹配内容]

find test 当前目录中查找

find / -name test.txt 根据名字查找

find / -user zhangsan 根据名字查找

find / -size +512c 根据文件大小查找

​ 单位:

b —— 块(512字节)

c —— 字节

w —— 字(2字节)

k —— 千字节

M —— 兆字节

G —— 吉字节

二、locate快速定位文件路径

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

用法演示:locate 搜索的文件名称

注意2个事项:

  1. 当新建的文件不能立刻用locate进行搜索,因为新建的问价不会建立索引,必须执行一下 updatedb才可以用。
  2. 在tmp文件下的文件无法用locate 进行搜索,因为tmp文件夹下的文件Linux不会对其建立索引

三、grep 过滤查找及“|”管道符

**概述:**管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理

用法演示1: grep 选项 查找内容 源文件 (grep单独使用)

grep -n tomcat catalina.properties --> 在catalina.properties文件中查找tomcat并且显示行号

用法演示2: ls /etc/sysconfig/network-scripts/ | grep 33 --> 这个用法很常用熟练掌握

8.压缩和解压类命令

本章节主要讲Linux系统中如何打压缩包和解压缩包。分为3种命令来实现,重点掌握最后一种。

一、gzip/gunzip 压缩/解压缩

用法演示: gzip 文件 (功能描述:压缩文件,只能将文件压缩为.gz文件)*

gunzip 文件.gz (功能描述:解压缩文件命令)

注意:使用gzip的时候打完包会把源文件删掉,而且不能将多个文件打到一个包里,而且不能打包目录所以不推荐使用。

二、zip/unzip 压缩/解压缩

用法演示: zip [选项] XXX.zip 将要压缩的内容 (功能描述:压缩文件和目录的命令)

​ unzip [选项] XXX.zip (功能描述:解压缩文件)

​ 选项: zip压缩的时候加 -r 可以实现递归压缩

​ unzip -d 可以指定解压缩的目录

压缩:zip -r my.zip wangwu catalina.properties xiaoaojianghu.txt

解压缩:unzip -d zhaocq my.zip

三、tar 打包/解包

用法演示:tar [选项] XXX.tar.gz 将要打包进去的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)

打包: tar -zcvf my.gz.tar catalina.properties xiaoaojianghu.txt

解包: tar -zxvf my.gz.tar -C wangwu

9.磁盘分区类命令

本章节主要了解磁盘以及分区的使用情况的查看,另外也体验一下Linux中进行挂载设备和卸载设备的操作

一、df 查看磁盘空间使用情况

语法演示:df 选项 (功能描述:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况)

df -h

二、fdisk 查看分区

语法演示: fdisk -l (功能描述:查看磁盘分区详情)

三、 lsblk 查看设备挂载情况

语法演示: lsblk -f

四、mount/umount 挂载/卸载

挂载演示: mount [-t vfstype] [-o options] device dir (功能描述:挂载设备)

mkdir /mnt/cdrom/ 建立挂载点

mount -t iso9660 /dev/cdrom /mnt/cdrom/ 设备/dev/cdrom挂载到 挂载点 : /mnt/cdrom中

lsblk -f 查看挂载情况

卸载演示:umount /mnt/cdrom

10.进程线程类命令

本章节主要讲解在Linux中怎么利用命令操作进程

一、ps 查看当前系统进程状态

语法演示1: ps -aux 查看所有进程

语法演示2: ps -aux | grep xxx(进程名称) 查看所有进程(这种常用)

**语法演示3:**ps -ef | grep xxx(进程名称) 可以查看子父进程之间的关系

二、 kill 终止进程

语法演示: kill [选项] 进程号 通过进程号杀死进程

kill -9 进程号 (强杀!)

三、 pstree 查看进程树

**语法演示:**pstree [选项]

在这里插入图片描述

案例实操:

(1)显示进程pid

[[email protected] datas]# pstree -p

(2)显示进程所属用户

[[email protected] datas]# pstree -u

四、top 查看系统健康状态

语法演示: top [选项]

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

案例实操:

[[email protected] atguigu]# top -d 1

[[email protected] atguigu]# top -i

[[email protected] atguigu]# top -p 2575

执行上述命令后,可以按P、M、N对查询出的进程结果进行排序

11. crontab 系统定时任务

1 crontab 服务管理
重新启动crond服务
[[email protected] ~]# service crond restart

2 crontab 定时任务设置
基本语法
crontab [选项]
选项说明
在这里插入图片描述
参数说明
[[email protected] ~]# crontab -e
(1)进入crontab编辑界面。会打开vim编辑你的工作。

          • 执行的任务
            在这里插入图片描述

案例实操
每隔1分钟,向/root/bailongma.txt文件中添加一个11的数字
*/1 * * * * /bin/echo ”11” >> /root/bailongma.txt

12. RPM

.1 RPM概述
RPM(RedHat Package Manager),RedHat软件包管理工具,类似windows里面的setup.exe
是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。
RPM包的名称格式
Apache-1.3.23-11.i386.rpm
-“apache” 软件名称
-“1.3.23-11”软件的版本号,主版本和此版本
-“i386”是软件所运行的硬件平台,Intel 32位微处理器的统称
-“rpm”文件扩展名,代表RPM包

2 RPM查询命令(rpm -qa)
1.基本语法
rpm -qa (功能描述:查询所安装的所有rpm软件包)
2.经验技巧
由于软件包比较多,一般都会采取过滤。rpm -qa | grep rpm软件包
3.案例实操
(1)查询firefox软件安装情况
[[email protected] Packages]# rpm -qa |grep firefox
firefox-45.0.1-1.el6.centos.x86_64

3 RPM卸载命令(rpm -e)
1.基本语法
(1)rpm -e RPM软件包
(2) rpm -e --nodeps 软件包
案例实操
[[email protected] Packages]# rpm -e firefox

4 RPM安装命令(rpm -ivh)
基本语法
rpm -ivh RPM包全名

案例实操
安装firefox软件
[[email protected] Packages]# pwd
/media/CentOS_6.8_Final/Packages
[[email protected] Packages]# rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm

13.YUM仓库配置

1 YUM概述
YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装,如图8-1所示
在这里插入图片描述
2 YUM的常用命令
基本语法
yum [选项] [参数]

在这里插入图片描述

案例实操
[[email protected] ~]#yum -y install firefox.x86_64

版权声明:本文为qq_43182741原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43182741/article/details/108307781

智能推荐

ActiveMQ学习4-ActiveMQ的安全机制和集群模式

ActiveMQ的安全机制和集群模式 20 ActiveMQ安全机制 20.1 Web 控制台安全 20.2 消息服务器Broker安全 21 ActiveMQ主从集群 21.1 使用集群的重要性 20.2 主从集群的方式 20.2.1 shared filesystem Master-Slave方式主从集群 20.2.2 shared database Master-Slave方式主从集群 20...

说说 Python Django 应用的基础目录结构

通过以下 django-admin 指令创建应用之后,就会生成应用的基础目录结构。 比如,我们建立了一个叫 ‘first’ 的应用,它的目录结构是这样的: 目录或文件 说明 最外层的 first/ 这是新应用的根目录,所有与该应用相关的内容都放在这里。 manage.py 用于管理 Django 项目的命令行工具。 里面一层的 first/ 目录 是一个...

Springboot整合rabbitMQ

依赖: 配置文件application.yml RabbitConfig 消息生产者RabbitProducer 消息消费者RabbitCustomer 通过Controller进行调用 启动项目后调用接口: 结果:...

Thread.join()方法的使用

如果一个线程A执行了thread.join()语句,代表当前线程A等待thread线程终止后才从thread.join()方法返回 并且这个方法具有超时特性,可以添加参数设置 输出结果: jdk中Thread.join()方法的源码(进行了部门调整)   每个线程终止的条件是前驱线程的终止,每个线程等待前驱线程终止后,才从join()方法返回,  当线程终止时,会调用自身的no...

linux服务器部署jenkins笔记

安装jenkins参考文档:https://blog.csdn.net/tomatocc/article/details/83930714 1. 打开jenkins官网:https://jenkins.io/download/ 将war包下载到本地 **ps:**这里要注意的是要下载左边下方的war包,不要下载右边下面的war包。左边是稳定版本,右边是最新版本,建议大家使用稳定版本(我刚开始下载的...

猜你喜欢

k8s部署elasticsearch集群

百度营销大学     环境准备 我们使用的k8s和ceph环境见: https://blog.51cto.com/leejia/2495558 https://blog.51cto.com/leejia/2499684 ECK简介 Elastic Cloud on Kubernetes,这是一款基于 Kubernetes Operator 模式的新型编排产品,用户可使用该产品在...

saas-export项目-AdminLTE介绍与入门

AdminLTE介绍 (1)AdminLTE是什么? AdminLTE是一款建立在bootstrap和jquery之上的开源的模板主题工具 (2)AdminLTE有什么特点? 提供一系列响应的、可重复使用的组件, 并内置了多个模板页面 自适应多种屏幕分辨率,兼容PC和移动端 快速的创建一个响应式的Html5网站 AdminLTE 不但美观, 而且可以免去写很大CSS与JS的工作量 AdminLTE...

MyBatis中ResultMap结果集映射

用于解决属性名和字段名不一致的情况: resultMap 元素是 MyBatis 中最重要最强大的元素。...

编写一个shell

编写shell的过程: 1.从标准输入中读入一个字符串。 2.解析字符串 3.创建一个子进程的执行程序。 4.子进程程序替换。 5.父进程等待子进程退出。...

WEB自动化测试中Xpath定位方法

前言: Xpath是在XML文档中查找信息的一种语言,使用路径表达式来选取XML文档中的节点或节点集,由于XML与HTML结构类似(前者用于传输数据,后者用于显示数据),所以Xpath也常用于查找HTML文档中的节点或节点集。 一  路径表达式: 路径以“/”开始     表示找到满足该绝对路径的元素; 路径以//”开始  ...