Linux总结

目录

学习阶段

  • 第一阶段:熟练操作Linux基本命令,包括文件操作(rm 、mkdir、chmod、chown);文件编辑工具使用(vi、vim);用户管理(useradd、userdel、usermod)等。

  • 第二阶段:Linux的各种配置(环境变量配置、网络配置、服务配置等)。

  • 第三阶段:Linux搭建对应语言的开发环境(JavaEE、Python、大数据等)。

  • 第四阶段:能编写Shell脚本,对服务器进行维护。

  • 第五阶段:能进行安全设置,防止攻击,保障服务器正常运行,能对系统调优。

  • 第六阶段:深入理解Linux系统,熟练掌握大型网站应用架构组成,并熟悉各个环节的部署和维护方法。

基本介绍

概述

Linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多企业级的项目都会部署到Linux/Unix系统上。

常见的操作系统:Windows、Mac OS、IOS、Android、

Linux创始人: Linus Torvalds。

Linux主要的发行版:Ubuntu(乌班图)、RedHat(红帽)、CentOS、Debain(蝶变)、Fedora、SUSE、OpenSUSE。
在这里插入图片描述

Linux和Unix

Linux和Unix的关系及区别(详解)

Linux 是一个类似 Unix 的操作系统,Unix 要早于 Linux,Linux 的初衷就是要替代 UNIX,并在功能和用户体验上进行优化,所以 Linux 模仿了 UNIX(但并没有抄袭 UNIX 的源码),使得 Linux在外观和交互上与 UNIX 非常类似。

说模仿可能会被人喷,你也可以说微创新或者改进。
相比于 UNIX,Linux 最大的创新是开源免费,这是它能够蓬勃发展的最重要原因;而目前的 UNIX大部分都是收费的,小公司和个人都难以承受。
正是由于 Linux 和 UNIX 有着千丝万缕的联系,所以人们把 Linux 叫做 “类UNIX系统” 。

在这里插入图片描述

Linux和Windows的比较

在这里插入图片描述

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 [重点] :所有的系统管理所需要的配置文件和子目录。

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

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

  • /proc [一般不要动] :此目录是一个虚拟的目录,它是系统内存的映射,访问此目录来获取系统信息。

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

  • /sys [一般不要动] :这是Linux2.6内核的一个很大的变化,此目录下安装了2.6内核中新出现的一个文件系统。

  • /tmp :此目录是用来存放一些临时文件的。

  • /dev :类似于Windows的设备管理器,把所有的硬件用文件的形式存储。

  • /media [重点] :Linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux会把识别的设备挂载到此目录下。

  • /mnt [重点] :系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在 /mnt 下,然后进入该目录就可以查看里面的内容了。/mnt 目录可以实现磁盘扩容。

  • /opt:这是给主机额外安装软件所摆放的目录,如安装Oracle数据库就可放到该目录下,默认为空。工作中,我们尽量将安装软件统一放到该目录下。

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

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

  • /selinux:SELinux是一种安全子系统,它能控制程序只能访问特定文件。类似360安全卫士,当有黑客入侵到服务器后,就会触发/selinux安全系统。

小结:

  1. Linux的目录中有且仅有一个根目录 ” / “。
  2. Linux的各个目录存放的内容是规划好的,不要乱放文件。
  3. Linux是以文件的形式管理我们的设备,因此Linux系统,一切皆为文件。

远程登录Linux

为什么需要远程登录Linux

项目开发中,具体的情况如下:

  1. Linux服务器是开发小组共享的。
  2. 正式上线的项目是运行在公网的。
  3. 因此需要远程登录到Linux系统进行项目管理或者开发。
  4. 远程登录客户端有XShell、Xftp等,其他工具大同小异。

示意图:
在这里插入图片描述

XShell工具

XShell的安装和使用

XShell是一个强大的安全终端模拟软件,它支持SSH1,SSH2,以及Microsoft Windows平台的TELNET协议。

XShell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。

Xftp工具

Xftp的安装和使用

Xftp:基于 MS windows平台的功能强大的SFTP、FTP文件传输软件。简单来说,通过这款软件你可以在你的电脑和云服务器之间传输文件。

Xftp是一个功能强大的SFTP、FTP 文件传输软件。使用了 Xftp 以后,MS Windows 用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件。Xftp 能同时适应初级用户和高级用户的需要。它采用了标准的 Windows 风格的向导,它简单的界面能与其他 Windows 应用程序紧密地协同工作,此外它还为高级用户提供了众多强劲的功能特性。

Linux命令

关机/重启命令

 shutdown -h now    立刻进行关机
 shutdown -h 1      1分钟后关机
 shutdown -r now	立刻重启机器
 halt			    和上面作用一样
 reboot			    立刻重启机器
 sync				把内存的数据同步到磁盘

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

用户登录/注销

  1. 登录时尽量少用root账号登录,因为它是系统管理员,最大的权限,避免操作失误,可以先用普通用户登录,登录后再用
    su - 用户名 命令来切换成系统管理员身份。

  2. 在提示符下输入logout即可注销用户。

  3. logout注销指令在图形运行级别无效,关于运行级别下面会讲。

运行级别

Linux系统的7个运行级别

  • 运行级别0 :系统关机状态,系统默认运行级别不能设置为0,否则不能正常启动。

  • 运行级别1 :单用户工作状态,root权限,用于系统维护,禁止远程登录。

  • 运行级别2 :多用户状态,没有NFS。

  • 运行级别3 :完全的多用户状态(有NFS),登录后进入控制台命令行模式。

  • 运行级别4 :系统未使用,保留。

  • 运行级别5 :X11控制台,登录后进入图形GUI模式。

  • 运行级别6 :系统正常关闭并重启,默认运行级别不能设置为6,否则不能正常启动。

常用运行级别是3和5,要修改默认的运行级别可修改文件
/etc/inittab 的 id:5:initdefault 这一行中的数字;或使用命令 init [0123456]

运行级别原理

  • 在目录/etc/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service)。

  • 在/etc/rc.d下有7个名为rcN.d的目录,对应系统的7个运行级别。

  • rcN.d目录下都是一些符号链接文件,这些链接文件都指向init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字。

  • 系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件。

  1. 对于以K开头的文件,系统将终止对应的服务。
  2. 对于以S开头的文件,系统将启动对应的服务。
  • 查看运行级别用:runlevel

  • 进入其它运行级别用:init N

  • 另外init0为关机,init 6为重启系统

帮助指令

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

man获得帮助信息

  • 基本语法
	# 功能描述: 获得帮助信息
	man [命令或配置文件]
  • 示例:查看 ls 命令的帮助信息
    在这里插入图片描述

help指令

  • 基本语法
	# 功能描述: 获得shell内置命令的帮助信息
	help 命令
  • 示例:查看cd命令的帮助信息
    -

执行历史命令

history命令:用于显示历史记录和执行过的指令命令。history命令读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。
history命令:是被保存在内存中的,当退出或者登录shell时,会自动保存或读取。在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量 HISTSIZE进行控制。默认是不显示命令的执行时间,命令的执行时间,history 已经记录,只是没有显示。

  • 基本语法
	history 
  • 示例
  1. 显示所有的历史执行命令
    在这里插入图片描述

  2. 显示最近使用过的10个指令
    在这里插入图片描述

  3. 执行历史编号为5的指令

	!5 
  1. 如想查询某个用户在系统上执行了什么命令,可以使用root用户身份登录系统,检查Home目录下的用户主目录下的.bash_history文件,该文件记录了用户所使用的命令和历史信息。
    在这里插入图片描述

用户管理

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

添加用户

  • 基本语法
	useradd 用户名
  • 示例:添加一个用户 tom
    在这里插入图片描述
  • 注意:
  1. 当创建用户成功后,会自动创建和用户同名的home目录。
    在这里插入图片描述
  2. 也可以通过 useradd -d 指令目录 用户名 给新创建的用户指定home目录。
    在这里插入图片描述

修改密码

  • 基本语法
	passwd 用户名
  • 示例:给 tom 指定密码
    在这里插入图片描述

删除用户

  • 基本语法
	userdel 用户名
  • 示例:删除用户 tom
    在这里插入图片描述
  • 注意:使用 userdel 删除用户不会删除用户主目录。

查询用户信息

  • 基本语法
	 id 用户名
  • 示例:查询 root 用户的信息
    -
  • 当用户不存在时返回无此用户
    在这里插入图片描述

切换用户

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

  • 基本语法
	su - 切换用户名
  • 示例:从 root 切换到 tom, 再从 tom切换到 root
    在这里插入图片描述

  • 注意

  1. 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
  2. 当需要返回到原来用户时,使用exit命令。

查看当前用户/登录用户

  • 基本语法
	whoami 或者 who am i
  • 示例
    在这里插入图片描述

用户组管理

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

新增组

  • 基本语法
	groupadd 组名
  • 示例:添加一个组 developer
    在这里插入图片描述

删除组

  • 基本语法
	groupdel 组名
  • 示例
    在这里插入图片描述

新增用户时直接分配组

  • 基本语法
	useradd -g 组名 用户名
  • 示例:将 zhangsan 分配到 developer 组
    在这里插入图片描述

修改用户组

  • 基本语法
	usermod -g 组名 用户名
  • 示例:将 zhangsan 分配到 test 组
    在这里插入图片描述

用户和组的相关文件

  • /etc/passwd 文件:用户(user)的配置文件,记录用户的各种信息。
    在这里插入图片描述
    每行的含义:
	用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
  • /etc/shadow 文件:口令的配置文件。
    在这里插入图片描述
    每行的含义:
	登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
  • /etc/group 文件:组(group)的配置文件,记录Linux包含的组的信息。
    在这里插入图片描述
    每行的含义:
	组名:口令:组标识号:组内用户列表

目录操作类

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

  • 基本语法
	pwd
  • 示例
    在这里插入图片描述

查看所有文件目录

  • 基本语法
	ls [选项] [目录或是文件]
  • 常用选项
	-a 显示当前目录的所有文件和目录,包括隐藏的。
	-l 以列表的方式显示信息
  • 示例
    在这里插入图片描述

切换到指定目录

  • 基本语法
	cd [参数] 
  • 常用参数
	目录的绝对路径或相对路径
	cd ~ 回到自己的家目录
	cd .. 回到当前目录的上一级目录
  • 示例
    在这里插入图片描述

创建目录

  • 基本语法
	mkdir [选项] 要创建的目录
  • 常用选项
	-p 创建多级目录
  • 示例
    在这里插入图片描述

删除空目录

  • 基本语法
	rmdir  [选项] 要创建的目录
  • 示例
    在这里插入图片描述
  • 注意
  1. rmdir 删除的是空目录,如果目录下有内容是无法删除的。
  2. 如果需要删除非空目录,需要使用 rm -rf 要删除的目录。

文件操作类

创建空文件

  • 基本语法
	touch 文件名称
  • 示例
    在这里插入图片描述

编辑文件 vi / vim 文本编辑器

复制文件

  • 基本语法
	cp [选项] source dest
  • 常用选项
	-r 递归复制整个文件夹
  • 示例
    -
  • 注意
  1. 强制覆盖不提示的方式:\cp

删除文件/目录

  • 基本语法
	rm [选项] 要删除的文件或目录
  • 常用选项
	-r 递归删除整个文件夹
	-f 强制删除不提示
  • 示例 :删除一个文件
    在这里插入图片描述
  • 示例:递归删除目录
    在这里插入图片描述

移动/重命名文件与目录

  • 基本语法
	# 重命名
	mv oldNameFile newNameFile 
	
	# 移动文件
	mv /temp/file /targetFolder
  • 示例
    在这里插入图片描述

查看文件内容 cat 指令

  • 基本语法
	cat [选项] 要查看的文件
  • 常用选项
	-n 显示行号
  • 示例
    在这里插入图片描述
  • 注意:cat只能浏览文件,不能修改文件,为了浏览方便,一般会带上管道命令 | more ,例如 cat -n /etc/profile | more

查看文件内容 more 指令

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

  • 基本语法
	more 要查看的文件
  • more指令中内置了若干快捷键(键入more指令进入内容后输入):
操作功能说明
space 空格键代表向下翻一页
enter代表向下翻一行
q代表立刻离开more ,不再显示该文件内容
ctrl+F向下滚动一屏
ctrl+B返回上一屏
=输出当前行的行号
:f输出文件名和当前行的行号

查看文件内容 less 指令

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

  • 基本语法
	less 要查看的文件

输出重定向指令 > 、追加内容到文件指令 >>

  • 示例
  1. ls -l > 文件 列表的内容写入到a.txt中,覆盖写
    在这里插入图片描述
  2. ls -al >>文件 列表的内容追加到文件aa.txt的末尾
    在这里插入图片描述
  3. cat file1 > file2 将文件1的内容覆盖到文件2
    在这里插入图片描述
  4. echo "内容" >> file1 追加内容到文件1
    在这里插入图片描述

输出内容到控制台 echo 指令

  • echo 输出内容到控制台。

  • 基本语法

	echo [选项] [输出内容]
  • 示例
  1. 使用 echo 指令输出环境变量在这里插入图片描述

  2. 使用 echo 指令输出 hello
    在这里插入图片描述

输出内容到控制台 head 指令

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

  • 基本语法

	# 查看文件前10行内容
	head 文件	
	
	# 查看文件前 5 行内容
	head -n 5 文件
  • 示例
  1. 查看 /etc/profile 的前5行内容
    在这里插入图片描述

输出内容到控制台 tail 指令

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

  • 基本语法

	# 查看文件后10行内容
	tail 文件	
	
	# 查看文件后 5 行内容
	tail -n 5 文件

	# 实时追踪该文档的所有更新
	tail -f 文件
  • 示例
    1.查看 /etc/profile 最后5行内容
    在这里插入图片描述

软链接 ln 指令

文件组管理(重点)

查看文件的所有者

修改文件的所有者

创建组

查看文件/目录所在组

修改文件所在组

改变用户所在组

权限管理(重点)

rwx 权限详解

修改权限 chmod

修改文件所有者 chown

修改文件所在组 chgrp

时间日期类

显示当前日期

设置日期

查看日历指令

搜索查找类

find

locate

grep指令和管道符号 |

压缩和解压类

gzip / gunzip

zip / unzip

tar

定时任务调度

crond任务调度

磁盘分区/挂载

两种分区方式

Windows下的磁盘分区

Linux分区原理示意图

磁盘情况查询

查询系统整体磁盘使用情况
查询指定目录的磁盘占用情况
工作常用指令

Linux网络配置

查看网路IP和网关

ping测试主机之间网络连通性

网络环境配置

进程管理(重点)

显示系统执行的进程

终止进程 kill / killall

查看进程树 pstree

动态监控进程

监控网络状态

RPM

rpm包管理查询指令

安装rpm包

卸载rpm包

YUM

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片: Alt

带尺寸的图片: Alt

居中的图片: Alt

居中并且带尺寸的图片: Alt

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block
var foo = 'bar';

生成一个适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目Value
电脑$1600
手机$12
导管$1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列第二列第三列
第一列文本居中第二列文本居右第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPEASCIIHTML
Single backticks'Isn't this fun?'‘Isn’t this fun?’
Quotes"Isn't this fun?"“Isn’t this fun?”
Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash

创建一个自定义列表

Markdown
Text-to- HTML conversion tool
Authors
John
Luke

如何创建一个注脚

一个具有注脚的文本。2

注释也是必不可少的

Markdown将文本转换为 HTML

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通过欧拉积分

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章

Mon 06 Mon 13 Mon 20 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid
  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:

张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五

这将产生一个流程图。:

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

Created with Raphaël 2.3.0 开始 我的操作 确认? 结束 yes no
  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. mermaid语法说明 ↩︎

  2. 注脚的解释 ↩︎

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值