Linux操作系统

1. 概述

1.1 Linux

发音 读法不下10种:/li'n^ks/(“里那克斯”)或/'li:nэks/(“里讷克斯”)或/li'nju:ks/(“里纽克斯”) ... linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多企业级 的项目都会部署到Linux/unix系统上。 常见的操作系统(windows、IOS、Android、Mac) windows和linux对比的优劣势 Windows主要面对个人用户,主要用于日常工作以及玩游戏,软件游戏丰富;而Linux主要面对开发者用 户,主要用于程序开发,软件较少,对于普通用户来说,用处不大。 Linux更受开发者的青睐,由于Linux系统稳定、安全、强大,非常适合作为开发环境或实际生产环境。相 反,Windows则聚焦在桌面操作系统上,适合大多数的计算机用户,能提供丰富的软件服务和简单的操作方 式。事实上Linux也一直在尝试为众多的家庭用户做出改变,光是桌面环境Linux就有Gnome、Unity等风 格。 GUI & CLI

1.2 发展史

百科:Linux发展史

1.3 发行版本

从技术上来说,李纳斯•托瓦兹开发的 Linux 只是一个内核。内核指的是一个提供设备驱动、文件系统、进程 管理、网络通信等功能的系统软件,内核并不是一套完整的操作系统,它只是操作系统的核心。一些组织或 厂商将 Linux 内核与各种软件和文档包装起来,并提供系统安装界面和系统配置、设定与管理工具,就构成 了 Linux 的发行版本。 在 Linux 内核的发展过程中,各种 Linux 发行版本起了巨大的作用,正是它们推动了 Linux 的应用,从而让 更多的人开始关注 Linux。因此,把 Red Hat、Ubuntu、SUSE 等直接说成 Linux 其实是不确切的,它们是 Linux 的发行版本,更确切地说,应该叫作“unix为核心的操作系统软件包”。 Linux 的各个发行版本使用的是同一个 Linux 内核,因此在内核层不存在什么兼容性问题,每个版本有不一 样的感觉,只是在发行版本的最外层(由发行商整合开发的应用)才有所体现。 目前Linux 的发行版本大体有4大体系:

Linux操作系统_第1张图片

而我们的CentOS7 属于红帽体系下的产品。

2. 环境安装

2.1 VMware Workstation

2.1.1 介绍 VMware Workstation(中文名“威睿工作站”)是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的 桌面上同时运行不同的操作系统,和进行开发、测试 、部署新的应用程序的最佳解决方案。VMware Workstation可在一部实体机器上模拟完整的网络环境,以及可便于携带的虚拟机器,其更好的灵活性与先 进的技术胜过了市面上其他的虚拟计算机软件。对于企业的 IT开发人员和系统管理员而言, VMware在虚拟 网路,实时快照,拖曳共享文件夹,支持 PXE 等方面的特点使它成为必不可少的工具。 主要通途: 目前我们使用的windows系统,如果想使用Linux有三种方案可以选择: 卸载本机的Wondows安装Linux 电脑装双系统 通过虚拟机在windows上安装Linux 其他产品推荐: VirtualBox

2.2 centos7安装

2.2.1 安装

VMware安装centos7_未系上弦月的博客-CSDN博客

2.2.2 VM快照

右键虚拟机,鼠标移动快照,点击拍摄快照,保存快照。如果后续环境出现问题可以恢复快照到快照保存的状态

2.2.3 VM克隆

右键虚拟机,移动到管理,点击克隆,会克隆出一个和当前一样环境的虚拟机。

3. 认识linux 系统&基本操作

3.1 linux系统结构

linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其 他的目录。 深刻理解linux树状文件目录是非常重要的,这里我给大家说明一下。 记住一句经典的话:在Linux世界里,一切皆文件。

具体结构介绍(记住重点的,其余可以了解)

/bin [重点] (/usr/bin 、 /usr/local/bin) 是Binary的缩写, 这个目录存放着最经常使用的命令 /sbin [重点] (/usr/sbin 、 /usr/local/sbin) s就是Super User的意思,这里存放的是系统管理员使用的 系统管理程序。

/home [重点] 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用 户的账号命名的。

/root [重点] 该目录为系统管理员,也称作超级权限者的用户主目录。

/etc [重点] 所有的系统管理所需要的配置文件和子目录 my.conf

/usr [重点] 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与 windows下的program files目录。

/opt [重点] 这是给主机额外安装软件所摆放的目录。如安装ORACLE数据库就可放到该目录下。默认 为空。

/usr/local [重点] 这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程 序。

/boot [重点] 存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件

/var [重点] 这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括 各种日志文件。

/tmp 这个目录是用来存放一些临时文件的。

3.2 开关机操作

3.2.1 VM开关机

启动,关机,重启

挂起:挂起不是关机,下次打开还是会在那个界面

3.2.2 Linux指令开关机

shutdown –h now 立该进行关机 【halt】

shudown -h 1 “hello,关机" "hello, 1 分钟后会关机了"

shutdown –r now 现在重新启动计算机 [reboot]

halt 关机,作用和上面一样.

reboot 现在重新启动计算机

sync 把内存的数据同步到磁盘.

注意细节: 不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中

3.3 基本指令

查看本机ip地址 ip addr 

文件夹
进入/opt cd /opt
进入usr/local 文件夹 cd /usr/1ocal/

查看当前文件夹下的所有文件信息 ls

当前在local目录下进入进入etc root@sunwz Tocal]# cd etc/

返回上一个层级 cd ..
当前在local目录下进入进入etc root@sunwz local]# ./cd etc/ /表示当前文件夹

4. vi & vim

所有的 Linux 系统都会内建 vi 文本编辑器。就如同window的记事本默认的功能一样。

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

4.1 vi和vim常用的三种模式

正常模式: 以 vim 打开一个文件就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按 键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处 理你的文件数据。在正常模式下可以使用快捷键

插入模式(编辑模式): 按下i(insert), I, o, O, a, A, r, R等任何一个字母之后才会进入编辑模式, 一般来说按i即可.

命令行模式 在这个模式当中, 可以提供你相关指令,完成读取、存盘、替换、离开 vim 、显示行号等的动作则是在此模 式中达成的!

4.2 vim安装及应用

vim的使用和vi是一致的,只不过功能比vi更强大。

输入vim检测是否可用 vim安装命令 yum-y install vim* 

4.3 vi和vim快捷键

1. 拷贝当前行 yy , 拷贝当前行向下的5行 5yy,并粘贴 p。【快捷键在正常模式下使用】

2. 删除当前行 dd , 删除当前行向下的5行 5dd

3. 在文件中查找某个单词 [命令模式下 /关键字 , 回车 查找 , 输入 n 就是查找下一个 ]

4. 设置文件的行号,取消文件的行号.[命令行下 : set nu 和 :set nonu]

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

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

7. 编辑 /etc/profile 文件,并将光标移动到 20行 shift+g

5. 用户管理

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

5.1 用户操作

添加用户

基本语法 useradd 用户名

同时可以给用户指定登录密码: passwd 用户名
用户创建的时候会默认给用户创建一个和用户名相同的一个家目录。当使用创建的用户登录的时候,cd -默认回到自己的家目录中。
当我们创建用户的时候,如果想将这用户指定到某一个家目录中,可以使用命令

useradd -d /home/lisidejia lisi


用户切换:命令 su 用户名如果是权限低的用户切换权限高的用户,需要输入密码,如果是权限高的用户切换低的用户,不需要密码 su root  需要密码  su lisi(root权限高于lisi不需要输入密码)  

删除用户


基本语法:
userdel 用户名 默认是保留家目录 

userdel zhangsan


userdel -r 用户名 用户和家目录一起删除

userdel -r zhangsan 

查询用户信息指令

基本语法:

id 用户名

id zhangsan

如果想查看当前系统所有的用户信息 cat /etc/passwd

切换用户

在操作Linux中,如果当前用户的权限不够,可以通过 su - 指令,切换到高权限用户,比如root

基本语法: su – 切换用户名

su root

细节说明 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。 当需要返回到原来用户时,使用exit指令如果 su – 没有带用户名,则默认切换到root用户

查看当前用户/登录用户

基本语法 whoami/ who am I

5.2 用户组

因为一个系统下可能存在若干个用户,如果管理员统一为每一个用户都指定一遍权限,那是很麻烦的,随意linux有组的概念,我们可以
给这个组直接指定权限,那么该组下的用户就可以直接获取当前组的权限并使用。

类似于角色,系统可以对有共性的多个用户进行统一的管理。

查看组信息


cat /etc/group 查看之后发现之前创建的zhangsan、lisi、用户因为没有指定过组,默认自己一组(冗余信息)

新增组

语法: groupadd 组名

groupadd xiangmu

增加用户时直接加上组

语法: useradd –g 用户组 用户名

useradd -g xaingmu zhangsan

修改用户的组

语法: usermod –g 新的组名 用户名

usermod -g xiaoshou zhangsan

删除组

语法: groupdel 组名

groupdel xiaoshou

用户和组的相关文件

/etc/passwd 文件

用户(user)的配置文件,记录用户的各种信息

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

组(group)的配置文/etc/group

文件时间:不活动时间:失效时间:保留 [件,记录Linux包含的组的信息

每行含义:组名:口令:组标识号:组内用户列表

6. 超级实用指令合集

6.1 运行级别

基本介绍:

运行级别说明: 0 :关机

1 :单用户 [类似安全模式, 这个模式可以帮助找回root密码]

2:多用户状态没有网络服务

3:多用户状态有网络服务 [使用]

4:系统未使用保留给用户

5:图形界面 【】

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

命令:init [012356]

6.2 帮助指令

6.2.1 man 获得帮助信息

语法: man [命令或配置文件] (功能描述:获得帮助信息)

案例:man ls

6.2.1 man 获得帮助信息help指令

语法: help 命令 (功能描述:获得shell内置命令的帮助信息)

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

6.3 文件目录操作

6.3.1 pwd 指令

语法 : pwd (功能描述:显示当前工作目录的绝对路径)

案例:显示当前工作目录的绝对路径 

6.3.2 ls 指令

语法 : ls [选项] [目录或是文件]

常用选项

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

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

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

ls -lh # 以人类可读的方式显示当前目录中的文件和目录大小

ls -t # 按照修改时间排序显示当前目录中的文件和目录

ls -R # 递归显示当前目录中的所有文件和子目录

ls -l /etc/passwd # 显示/etc/passwd文件的详细信息

6.3.3 cd 指令

语法: cd [参数] (功能描述:切换到指定目录)

常用参数

绝对路径【从 / 开始定位】和相对路径【从当前的位置开始定位】

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

cd .. 回到当前目录的上一级目录

案例1:使用绝对路径切换到root目录 [cd /root]

案例2: 使用相对路径到/root 目录 [ cd ../root]

案例3:表示回到当前目录的上一级目录 [ cd ..] 案例4:回到家目录 [ cd ~ ]

6.4 文件夹操作dir

6.4.1 mkdir指令

mkdir [make directory]指令用于创建目录

语法: mkdir [选项] 要创建的目录 mkdir ss

6.4.2 rmdir指令

rmdir [remove directory]指令删除空目录

语法: rmdir [选项] 要删除的空目录

案例1:删除一个目录 /home/dog

使用细节 rmdir 删除的是空目录,如果目录下有内容时无法删除的。

提示:如果需要删除非空目录,需要使用 rm -rf 要删除的目录, -r 删除多层级, -f linux特点,所有添加-f都 表示强制删除不提示

6.5 文件操作

6.5.1 touch指令

文件创建方式一:

touch指令创建空文件, 还可以更新文件的修改时间

基本语法: touch 文件名称 应用实例 案例1: 创建一个空文件 hello.txt

说明:如果文件存在,则表示刷新该文件的修改时间.

文件创建方式二:用vi编辑一个空白文件

6.5.2 cp指令

cp [copy 拷贝]指令拷贝文件到指定目录

基本语法 cp [选项] source【源】 dest【目的文件】

常用选项 -r :递归复制整个文件夹

[root@sunwz opt]# cp aa.xx /tmp/

[root@sunwz opt]# cd ~

[root@sunwz ~]# cp /opt/aa.xx /tmp/

[root@sunwz ~]# cp -r /opt/ww /tmp/

[root@sunwz ~]# cp -r /opt/xx /tmp/

6.5.3 rm指令

rm 指令移除文件或目录 基本语法

rm [选项] 要删除的文件或目录

常用选项

-r :递归删除整个文件夹

-f : 强制删除不提示

使用细节

强制删除不提示的方法:带上 -f 参数即可 rm –rf /home/bbb

6.5.4 mv指令

mv 移动文件与目录或重命名

基本语法 mv oldNameFile newNameFile (功能描述:重命名)

mv /temp/movefile /targetFolder (功能描述:移动文件或目录)

应用实例 案例1: 将 /home/aaa.txt 文件 重新命名为 pig.txt

案例2:将 /home/pig.txt 文件 移动到 /root 目录下

 mv /opt/aa.xx /tmp/

 mv /opt/ww/ /tmp/

 mv /opt/xx/ /tmp/

 mv /tmp/aa.xx /tmp/aa.java

mv /tmp/ww /tmp/xx

 mv /tmp/xx /tmp/rr

6.6 文件查看

6.6.1 cat指令

cat 查看文件内容 基本语法

cat [选项] 要查看的文件

-n :显示行号 cat -n /etc/profile

使用细节 cat 只能浏览文件,而不能修改文件 注意:一旦文件过大不能用cat

6.6.2 more指令

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

基本语法:more 要查看的文件

案例: 采用more查看文件 /etc/profile    more  /etc/profile

Linux操作系统_第2张图片

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

基本语法: less 要查看的文件 案例: 采用less查看一个大文件文件 less xx.txt

Linux操作系统_第3张图片

 6.6.3 echo指令

echo输出内容到控制台。

基本语法:echo [选项] [输出内容]

案例: 使用echo 指令输出环境变量 echo $PATH

6.6.4 head指令

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

基本语法: head 文件 (功能描述:查看文件头10行内容)

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

案例: 查看/etc/profile 的前面5行代码 head -n 5 /etc/profile

6.6.5 tail指令

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

基本语法

1. tail 文件 (功能描述:查看文件头10行内容)

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

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

案例2: 实时监控一个文档, 看看到文件有变化时,是否看到, 实时的追加日期

tail -f /opt/xx.txt

6.6.6 > 指令 和 >>

指令 > 输出重定向和  >> 追加

基本语法 1. ls -l >文件 (功能描述:列表的内容写入文件a.txt中(覆盖写))

2. ls -al >>文件 (功能描述:列表的内容追加到文件aa.txt的末尾) 1 echo $PATH

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

4. echo "内容">> 文件

案例1: 将 /home 目录下的文件列表 写入到 /home/info.txt 中

ls –l /home/ > /home/info.txt [如果文件不存在,则会自动创建]

案例2: 将当前日历信息 追加到 /home/mycal 文件中

date >> /home/mycal.

6.6.7 history指令

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

基本语法 :history (功能描述:查看已经执行过历史命令)

案例1: 显示所有的历史命令

案例2: 显示最近使用过的10个指令。

案例3: 执行历史编号为5的指令 !5  # !行号 不是显示历史指令, 而是直接执行历史的哪个指令。 !50

6.7 时间日期

6.7.1 date指令-显示当前日期

基本语法 1. date (功能描述:显示当前时间)

2. date +%Y (功能描述:显示当前年份)

3. date +%m (功能描述:显示当前月份)

4. date +%d (功能描述:显示当前是哪一天)

5. date "+%Y-%m-%d %H:%M:%S"(功能描述:显示年月日时分秒)java中 yyyy-MM-dd hh:mm:ss.S

案例1: 显示当前时间信息

案例2: 显示当前时间年月日

案例3: 显示当前时间年月日时分秒

[root@sunwz ww]# date +%Y-%m-%d" "%H:%M:%S 2023-03-13 22:12:21

[root@sunwz ww]# date +%Y-%m-%d' '%H:%M:%S 2023-03-13 22:12:28

[root@sunwz ww]# date "+%Y-%m-%d %H:%M:%S" 2023-03-13 22:12:59 1

6.7.2 date指令-设置日期

基本语法:

date -s 字符串时间应用实例

案例1: 设置系统当前时间 , 比如设置成 2020-11-11 11:22:22

[root@sunwz ww]# date -s "2023-3-15 20:16:46"

6.7.3 cal指令

查看日历指令 基本语法:cal [选项](功能描述:不加选项,显示本月日历)

 案例: 显示2020年日历  cal 2020

6.8 搜索查找

6.8.1 find指令

find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。 基本语法:find [搜索范围] [选项]

案例1: 按文件名:根据名称查找/home 目录下的hello.txt文件

find /home -name hello.txt

案例2:按拥有者:查找/opt目录下,用户名称为 nobody的文件

find /opt -user nobody

案例3:查找整个linux系统下大于10M的文件(+n 大于 -n小于 n等于)

find / -size +10M

Linux操作系统_第4张图片

 

 6.8.2 locate指令

locate指令可以快速定位文件路径。

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

基本语法: locate 搜索文件 特别说明 由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。

案例1: 请使用locate 指令快速定位 hello.txt 文件所在目录

[root@sunwz ~]# yum list | grep locate mlocate

[root@sunwz ~]# yum -y install locate*

updatedb // 创建locate的数据库

locate hello.txt

6.8.3 grep指令和 管道符号 |

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

基本语法: grep [选项] 查找内容 源文件 常用选项 

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

案例1: 请在 /etc/profile 文件中,查找 "if" 所在行,并且显示行号

grep –n if /etc/profile #在/etc/profile 中查找 if ,并显示行,区别大小写]

grep –ni if /etc/profile #在/etc/profile 中查找 if ,并显示行,不区别大小写]

ll /etc/ | grep pass less /opt/ww/西游记.txt | grep 大闹天宫

ps -aux | grep nginx

6.9 压缩和解压类

6.9.1 gzip/gunzip 指令

gzip 用于压缩文件, gunzip 用于解压的

基本语法 gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件)

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

案例1: gzip压缩, 将 /home下的 hello.txt文件进行压缩 gzip /home/hello.txt

案例2: gunzip压缩, 将 /home下的 hello.txt.gz 文件进行解压缩 gunzip /home/hello.txt.gz

6.9.2 zip/unzip 指令

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

基本语法

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

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

zip常用选项 -r:递归压缩,即压缩目录 unzip的常用选项

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

案例1: 将 /home下的 所有文件进行压缩成 mypackage.zip [退出home]

zip -r mypackage.zip /home/

案例2: 将 mypackge.zip 解压到 /opt/tmp 目录下

unzip –d /opt/tmp mypackage.zip #如果/opt/tmp 不存在,会自动创建

6.9.3 tar 指令

tar 指令 是打包指令,最后打包后的文件是 .tar.gz 的文件。 [可以压缩,和解压]

基本语法 tar [选项] XXX.tar.gz 打包的内容/目录 (功能描述:打包目录,压缩后的文件格式.tar.gz) 选项说明

Linux操作系统_第5张图片

案例1: 压缩多个文件,将 /home/a1.txt 和 /home/a2.txt 压缩成 a.tar.gz 【zcvf】 zxvf

tar zxvf  /home/a1.txt /home/a2.txt

7. RPM 与 YUM

7.1 RPM(了解)

一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。 RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文 件格式名称虽然打上了RedHat的标志,但理念是通用的。

7.2 Yum(在线傻瓜式安装)

Yum 是一个Shell 软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自 动处理依赖性关系,并且一次安装所有依赖的软件包。

yum的基本指令

查询yum服务器是否有需要安装的软件

yum list | grep xx软件列表

安装指定的yum包 yum install xxx 下载安装

案例:请使用yum的方式来安装firefox 指令 Yum install firefox //会自动的下载适合你系统的最新版本

yum list installed #查看已经安装的

[swz@root opt]# yum list installed | grep firefox yum remove firefox # 删除安装的软件

 

 

你可能感兴趣的:(linux,运维,服务器)