Linux基础知识

目录

为什么用linux

linux软件分类

应用软件

系统软件

Linux分支

RedHat(收费)

Debain(免费)

linux环境变量

环境变量的配置形式

Linux里的特殊字符

linux开关机

Linux日期和时间

时间同步

同步本地服务器时间 

linux的基本命令

目录管理

linux的目录结构

基本命令

列出目录

文件夹的操作命令

创建和删除目录

复制目录

案例 

移除文件或者目录

移动文件或目录

linux文件属性

前言

分析(drwxr-xr-x)

分析第一个字母

解析字母的意思

解析ll后文件排列格式

更改文件属组

更改文件属主与属组

chmod更改9个属性

重定向

文件的基本操作

文件的查看

基本命令

tail命令 

more命令

less命令

翻页与查看

搜索

cat命令

向文件写入内容

硬链接与软链接

前言

硬链接和软链接的区别 

实践操作

vim编辑器

vim的功能以及三种模式

三种模式的切换

vim的使用

命令模式

输入模式

底线命令模式

linux账号管理

前言

基础命令 

添加用户

查看所有用户及密码

删除用户

修改用户

切换用户

用户密码设置

锁定用户命令

用户组管理

创建用户组

查看删除切换用户组 

修改用户组

磁盘管理

查看分区情况

检查文件夹的使用量

文件挂载

内存管理

进程管理

前言

查看当前系统正在运行的进程信息

管道符与过滤

查看进程树

将进程变成后台进程

结束进程

主机与虚拟机的信息传输

虚拟机与虚拟机之间的信息传输

解压缩命令

tar命令

常用命令

zip与unzip

安装卸载命令 

rpm安装命令

常用命令

yum安装

更换yum源

yum基本命令 

Linux普通剑客 

cut

sort

wc

主机相关信息

查看主机内核信息

options

主机间的相互免密钥

具体方法

生成密钥对

发送公钥

免密钥流程

linux网络相关

网络连接模式

host-only(主机模式)

bridged(桥接模式)

NAT(网络地址转换模式)

配置网络

基础命令

查看端口状态

常用命令

防火墙

防火墙基础命令

防火墙使用命令

常用命令

为什么用linux

原因:很多大型项目都是部署在linux服务器中,在服务器端,开发领域上linux越来越受欢迎

linux是一套免费使用和自由传播的类unix操作系统,是一个基于posix(可移植操作系统接口)和unix的多用户,多任务支持多线程,和多cpu的操作系统

linux能运行主要的unix工具软件,应用程序和网络协议,它支持32位和64位硬件,linux继承了unix为核心的设计思想,是一个性能稳定的多用户网络操作系统

注意:linux内一切皆文件,权限最高为root(若想要以root权限执行指令,那么就在指令之前加sudo)

linux软件分类

应用软件

  • 为了实现某些业务功能
  • 应用软件要基于对应的系统软件(不同的操作系统要安装不同的软件)

系统软件

  • 就是为了和硬件打交道
  • 屏蔽软件与硬件的差异

Linux分支

Linux基础知识_第1张图片

RedHat(收费)

  • 代表作:centOS
  • 主要用于服务器版本

Debain(免费)

  • 代表作:Ubuntu
  • 主要用于视窗界面

linux环境变量

环境变量:其是操作系统给程序运行提供支持的文件夹路径设置

环境变量理解:变量在任何程序中的作用都是被赋值和被取值,这个变量全局操作系统可以使用,其内部的小软件也可以使用

环境变量的配置形式

  • 如果在用户变量下配置环境变量,表示该环境变量只对当前用户生效
  • 如果在系统环境下配置环境变量,表示该环境变量对所有用户都生效

理解:在dos窗口输入命令执行文件时,其会先从当前文件夹下寻找该执行文件,若没有该文件则会从环境变量下配置的path路径下寻找该文件,若有则执行,若没有则不执行,如果从运行窗口直接输入该命令则电脑会直接去环境变量的path路径下寻找该文件

环境变量配置文件所在位置:/etc/profile

用户变量配置文件所在位置:/root/.bash_profile(家目录的.bash_profile文件)

Linux里的特殊字符

.点

  • 若文件的开始是点,则说明当前文件是一个隐藏文件
  • .指向当前目录
  • ..指向当前目录的上级目录

$:说明这是一个变量

*:通配符

~:当前用户的家的目录

空格:Linux的命令与参数用空格隔开

/:整个Linux文件的根目录

命令参数-

  • 若是单词,一般加两个杠
  • 若是字母则一般加一个杠 

linux开关机

前言:开机时会启动许多程序,他们在windows内叫做服务(service),在linux内叫做守护进程(daemon)

关机命令:shutdown

shutdown -h 10:计算机将会在10分钟后关机

shutdown -h now:立马关机

shutdown -c:撤销关机

shutdown -h 11:00:计算机将会在今天11:00关机

shutdown -r now:系统立马重启

shutdown -r +10:系统10分钟后重启

reboot:系统现在重启

halt:关闭系统

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

Linux日期和时间

查看时间:date

修改时间:date -s '时间'

注意:这里的时间举例——2019-11-11 11:11:11

时间同步

安装ntp:yum install ntp -y

语法:ntpdate 时间同步服务器域名(如cn.ntp.org.cn)

同步本地服务器时间 

  1. 打开本地ntp服务:service ntpd start(用于让其他服务器同步时间,关闭防火墙)
  2. 查看ntp服务状态:service ntpd status
  3. 另外服务器同步本地ntp服务器:ntpdate 本地服务器域名

linux的基本命令

将数据内存同步到硬盘:sync(一般关机前使用)

查看当前服务器的内存使用率:top 

登出:exit 

伪清屏:clear或者reset

查看命令历史:history

清空命令历史:history -c

打印当前环境变量:echo $PATH

目录管理

linux的目录结构

Linux基础知识_第2张图片

注意:linux的目录结构为一个树状目录结构,根节点为/,用户想要扩容,那么他会把磁盘挂载到根节点之后的具体文件夹,那么该文件夹就只会使用新挂载磁盘的空间了,从而间接地使根节点的磁盘空间容量增大。

基本命令

切换目录:cd 路径

返回根目录:cd /

返回usr目录:cd ~

返回上一级目录:cd ..

查看当前文件目录:pwd

列出目录

命令:ls [options]

options

  • -a:查看全部的文件,包括隐藏文件
  • -l:列出所有的文件,包含文件的属性和权限,没有隐藏文件

注意:linux内的所有属性可以组合使用(eg:ls -al/ls -la)

详细列出文件及属性:ll

文件夹的操作命令

创建和删除目录

创建文件夹:mkdir 文件夹名

创建多层目录:mkdir -p dir1/dir2

删除一级目录:rmdir dir1

递归删除多个目录:rmdir -p dir1/dir2(dir1也被删除了)

并列创建ab、ac文件夹:mkdir -p a{b,c}

注意:

  • -p表示删除或创建多个文件夹
  • rmdir仅能删除空的目录,若下面含有文件,则需要删除文件

复制目录

语法:cp [options] 原来地方的文件 新的地方(也可以顺便重命名)

options

  •  -r:递归复制

注意:cp拷贝问件夹要加-r,拷贝文件不需要加-r  

案例 

cp a.txt ../a(将当前文件下的a.txt文件复制到上级目录的a目录内)

cp a.txt ../a/b.txt(将当前文件下的a.txt文件复制到上级目录的a目录内,并将其重命名为b.txt)

移除文件或者目录

命令:rm [options] 文件或目录

options

  • -f:忽略提示警告
  • -r:递归删除目录
  • -i:互动,删除询问是否删除元素

注意:若删除的是目录,则必须加-r参数,不管里面有没有文件

移动文件或目录

语法:mv [options] 移动的文件或目录 移动文件或目录的地址(也可以重命名文件/目录)

options

  • -f:强制移动(目标文件存在时强制覆盖)
  • -u:只替换已经更新过的文件

简单举例 

  • eg:mv c/a.txt d/b.txt(将c目录下的a.txt移动到d目录下并重命名为b.txt)
  • eg:mv c d(将c目录移动到d目录,若d存在则直接将c移动到d里;不存在则直接将c目录重命名为d)

linux文件属性

前言

linux是一种典型的多用户系统,不同的用户拥有不同的地位,拥有不同的权限。为了保护系统的安全性,linux系统对于不同的用户访问同一文件(或目录)的权限做了不同的规定

Linux基础知识_第3张图片

分析(drwxr-xr-x)

分析第一个字母

  • d:目录
  • -:文件
  • l:链接文档
  • b:可供存储的接口设备
  • c:端口设备(eg:鼠标、键盘)

接下来的几个字母以三个为一组,均为(rwx)组合,这三组分别为:属主权限、属组权限、其他权限

解析字母的意思

  • r:该文件/目录可读-read
  • w:该文件/目录可写-write
  • x:该文件/目录可执行-execute

注意:若都没有权限,则用“-”替代

解析ll后文件排列格式

drwxr-xr-x. 2 root root    6 10月  4 22:57 公共
drwxr-xr-x:文件类型与权限
2:文件个数
root:属主
root:数组
6:文件大小
10月  4 22:57:时间
公共:文件名

更改文件属组

命令:chgrp [-R] 属组名 文件名

-R:递归更改文件属组,就是在更改某个文件的属组时,若加上此参数,那么该目录下的所有东西都会属组更改

更改文件属主与属组

更改文件属主:chown [-R] 属主名 文件名

更改文件属主属组:chown [-R] 属主名:属组名 文件名

-R:递归更改文件属性,就是在更改某个文件的属性时,若加上此参数,那么该目录下的所有东西都会属性更改

chmod更改9个属性

命令:chmod [-R] 三个数字 文件/目录

rwx中r占4、w占2、x占1

  • 7=4+2+1——rwx
  • 6=4+2+0——rw-
  • 3=2+1+0——-wx
  • 5=4+1+0——r-x
  • 以此类推

eg:chmod 777 文件/目录(三个权限都有读写与可执行权限)

-R:递归更改文件属性,就是在更改某个文件的属性时,若加上此参数,那么该目录下的所有东西都会属性更改

重定向

理解:改变数据输出的位置,方向

将ll的输出结果存放到test文件中:ll n> test(正确输入)

将ll的输出结果存放到test文件中:ll >> test 2>&1(不管对错)

注意:

  • 一个>箭头表示覆盖(下次在输出到该test文件内则原内容会被覆盖),两个箭头>>表示追加(下次在输出到该test文件内则新内容会被追加)
  • n有两个值1(正确输出)2(错误输出),1可以省略不写
  • 数据黑洞:将数据追加到/dev/null内,那么数据就永远取不出来了

文件的基本操作

创建文件:touch 文件名

向文件中输入内容:echo "文件内容" >> 文件名

在控制行输出hello:echo hello

注意:源文件若有内容,则新内容会追加到文件的后面

在整个硬盘中查找文件:find / -name 文件名

查看文件属性:file 文件的路径以及名称

查看文件/文件夹状态:stat 具体路径的文件/文件夹

查询文件/目录位置:whereis 文件或目录

文件的查看

基本命令

nl 文件名:从第一行开始显示文件内容(显示行号信息)

tac 文件名:从最后一行开始显示文件信息(倒着显示)

tail -n 20 文件名:显示文件结尾的20行内容

head -n 20 文件名:从第一行开始显示文件的20行内容

tail命令 

语法:tail [options] 文件名

options

  • -f:监听指定inode的数据变化,当文件被删除后即使新创建,inode也会发生变化
  • -F:监听指定名字的文件,若文件删除后重新创建,监听不受影响
  • -n:显示结尾内容行数

举例:tail -n 20 文件名显示文件结尾的20行内容)

more命令

语法:more 文件名

功能:页面内容若太多的话,则可以实现翻页(只是可以向下翻页)

注意:“空格键”实现翻页,“enter”代表向下看一行,“:f”可以看当前的行号信息

less命令

语法:less 文件名

功能:页面太多的话可以实现翻页功能其可以实现向上翻页和向下翻页

翻页与查看

  • “空格键/pgdn”代表向下翻页
  • “b按键/pgup”代表向上翻页
  • “←键”代表向左翻页
  • “→键”代表向右翻页
  • “↑键”代表向上看一行
  • “↓键”代表向下看一行

搜索

  • /搜索内容:向下搜索
  • ?搜索内容: 向上搜索
  • n代表查找匹配了的字符 向上查找
  • N代表查找匹配了的字符 向下查找

退出命令:q按键

cat命令

向文件写入内容

#向文件里写入特定的文件内容,遇到eof则停止写入
cat < 文件名
写入文件的内容
eof

#向文件中写入内容,ctrl+c退出
cat > 文件名

cat 文件名:从第一行开始显示文件内容

cat -A 文件名:从第一行开始显示文件内容(包括隐藏内容)

硬链接与软链接

前言

linux内的链接分为两种:硬链接、软链接

  • 硬链接:用户可以通过此链接机制建立硬链接到一些重要的文件上以防止误删(若删了源文件则由于其链接源文件的文件没删,则还是可以访问到源文件)
  • 软连接:类似于window下的快捷方式,删了源文件,其链接也就没法用了

硬链接和软链接的区别 

每个文件内部都有个Inode属性来确定唯一性(地址),这个属性通过stat关键字来查看。硬链接后文件的Inode属性和源文件相同,软连接后文件的Inode属性和源文件不同,当删除源文件后,若没有硬链接则会将文件内容删除,若有硬链接则不会将文件内容删除。

Linux基础知识_第4张图片

注意:粉色文件为硬链接,黄色文件为软链接,当且仅当links为0时,才会将文件内容删除。

实践操作

  1. 创建文件:touch f1
  2. 将f2硬链接到f1:ln f1 f2
  3. 将f2软链接到f1:ln -s f1 f2

注意:只要将源文件f1改变,那么通过f2访问到的内容也改变(不管是硬链接于软链接)

vim编辑器

vim的功能以及三种模式

理解:vim是从vi发展出来的文本编辑器,具有代码补全,编译及错误跳转等功能,在程序员中被广泛应用

主要功能:查看内容,编辑内容,保存内容

vim的三种模式:命令模式、输入模式、底线命令模式

三种模式的切换

  • 用户刚创建文件便进入了命令模式
  • 命令模式下按i键后切换到输入模式
  • 命令模式下按:键切入到底线命令模式以退出
  • 其他模式下按esc键退出到命令模式

Linux基础知识_第5张图片

vim的使用

命令:vim 文件

注意:若该文件存在则是修改该文件,若不存在则是新建该文件

命令模式

  • /键搜索内容
  • n代表查找匹配了的字符 向上查找
  • N代表查找匹配了的字符 向下查找
  • pgup/pgdn:上下翻页
  • 删除当前行:dd
  • 快速定位到某一行:行号 gg
  • 从当前词跳到下一个词:w
  • 删除当前光标下的n个单词:ndw
  • 光标处剪切n个字母:nx
  • 复制n行:nyy
  • 向下粘贴n遍:np
  • 从当前光标复制n个单词:nyw(光标必须在单词首字母上)
  • 撤销:u
  • 转到行首:shift+6
  • 转到行尾:shift+4
  • 替换两个字母:2r(之后再输入要替换的字母)
  • ctrl+s:锁屏
  • ctrl+q:解锁

输入模式

  • 字符按键:输入字符
  • enter:回车换行
  • backspace:退格
  • delete:删除光标的后一位字符
  • 方向键:移动光标
  • pgup/pgdn:上下翻页

底线命令模式

  • q键:退出程序
  • w键:保存文件
  • w!:强制保存
  • q!:强制退出
  • wq:保存并退出
  • set nu:显示行号
  • set nonu:不显示行号
  • /字符:搜索内容(按n键切换搜索到的内容)
  • s/要替换的内容/替换成什么内容/(一次只能替换一个,只能替换当前行)
  • s/要替换的内容/替换成什么内容/g(全部替换,只能替换当前行)
  • g/要替换的内容/替换成什么内容/g(全部局替换,所有行)

linux账号管理

前言

  • linux是一个多用户,多任务的分时操作系统,任何一个使用系统资源的用户都必须首先向管理员申请一个账号,然后根据这个账号进入系统
  • 用户使用账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问,另一方面也可以帮助用户组织文件并为用户提供安全性防护
  • linux内最高权限的账户叫做root账户,其可以操作一切

添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录、和的登陆shell等资源(linux中一切皆文件,添加用户说白了就是往某一个文件中写入用户信息)

基础命令 

查看当前在线的用户:who

查看自己现在登录用户名:whoami

添加用户

语法:useradd [options] 用户名

options

  • -m:自动创建这个用户的主目录
  • -g 用户组:指定用户所属的用户组
  • -d 目录:指定用户的主目录,若目录不存在,则同时使用-m选项,可以创建主目录
  • -u 用户号:指定用户的用户号

查看所有用户及密码

查看所有用户:cat /etc/password 

查看所有用户密码:cat /etc/shadow

注意:在这里面看到的用户密码是加密后的 

删除用户

语法:userdel [options] 用户名

options

  • -r:删除用户的时候将他的目录页一并删除

修改用户

语法:usermod [options] 用户名

options

  • -d 目录:修改用户的主目录
  • -g 用户组:修改用户的用户组
  • -u 用户号:修改用户的用户号
  • -L:锁定用户名
  • -U:解锁用户名

切换用户

[root@localhost home]#
root:当前用户名
@localhost:当前主机名
home:当前所在的目录
#:表示当前为root用户($表示当前为普通用户)

语法:su 用户名

注意:切换后使用新用户的工作环境

退出用户到root:exit

用户密码设置

命令:passwd 用户名

锁定用户命令

锁定用户:passwd -l 用户名(锁定后该用户便不能登录)

清空用户密码:passwd -d 用户名(没有密码也不能登录)

用户组管理

前言:每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同的linux系统对用户组的规定有所不同,如linux下的用户组属于与他同名的用户组,这个用户组在创建用户时创建

创建用户组

命令:groupadd [options] 用户组名

options

  • -g 组的id:用于指定组的id 

注意:创建用户组可以得到一个组id,这个id是可以指定的

查看删除切换用户组 

查看用户组:cat /etc/group

删除用户组:groupdel 用户组名

用户切换用户组:newgrp 组名(将当前用户的当前组切换为新组)

修改用户组

命令:groupmod [options] 用户组名

options

  • -g 用户组id:用于修改用户组id
  • -n 新用户组名:用于修改用户组名

磁盘管理

查看分区情况

命令:df [options]

options

  • -h:以mb的方式详细列出磁盘使用情乱 

检查文件夹的使用量

命令:du [options] 文件夹名

options

  • -h:详细列出使用情况
  • -a:检查磁盘空间使用量,包括隐藏的
  • -sm /*:检查根目录下的每个目录所占用的容量
  • --max-depth=n:迭代深度为n(表示从此检查n层文件夹)

文件挂载

将外部设备挂载到mnt目录下以实现访问

挂载:mount dev/外部设备 mnt/目录名

卸载:umount -f /mnt/目录名

注意:-f表示强制卸载该设备

内存管理

命令:free [options] 

options

  • -m:以字节的方式显示当前内存的使用 

进程管理

前言

  • 在linux中每一个程序都有自己的一个进程,每一个进程都有一个id号
  • 每一个进程都有一个父进程
  • 进程可以有两种存在方式:前台、后台
  • 一般服务都是在后台运行,基本的程序都是前台运行

查看当前系统正在运行的进程信息

命令:ps [options]

options

  • -a:显示当前系统中的所有进程信息
  • -u:以用户为单位显示开启的进程
  • -x:显示非控制终端上的进程信息
  • -e:显示所有进程
  • -f:以全格式的形式显示

常用:ps -aux(查看所有进程)

常用:ps -ef(相对于上面可以查询到父进程信息)

管道符与过滤

理解:管道符|就像管道一样,以上一个输出的结果来操作下一个命令

grep:查找文件中符合条件的字符串

findstr:查找文件中符合条件的字符串,只不过相对grep来说后面的字符串要加“”

eg:ps -aux | grep mysql(查找和mysql相关的进程)

eg:ps -aux | findstr "mysql"(查找和mysql相关的进程)

查看进程树

命令:pstree [options]

options

  • -p:显示父id
  • -u:显示用户组

将进程变成后台进程

方法:在新建的进程任务后加&号

将打印进程变为后台进程:ping www.baidu.com >> baidu &

查看当前的后台进程:jobs

防止后台进程被挂起就可以在前面加nohup:nohup ping www.baidu.com >>baidu 2&1 &

结束进程

一般类型杀死进程:kill pid号

较为强硬的杀进程:kill -15 pid号

强制杀进程:kill -9 pid号

注意:可以一次杀死多个进程,也就是pid号可以写多个

主机与虚拟机的信息传输

安装lrzsz 工具包:yum install lrzsz -y

电脑文件上传到虚拟机当前目录:rz

虚拟机文件上传到电脑:sz 文件名

虚拟机与虚拟机之间的信息传输

将具体路径的文件拷贝到具体用户名,具体IP地址的主机内的具体目录中(送文件)

scp 具体路径的文件 用户名@IP地址:/需要拷贝到的具体目录/

将具体用户名,具体IP地址的主机内具体路径的文件拉到本机的要拷贝的文件目录中(拿文件)

scp 用户名@IP地址:/具体路径的文件 /需要拷贝到的文件目录

注意:拷贝文件夹需要在用户名前加-r

解压缩命令

tar命令

命令:tar [options] 压缩包名 -C 目标目录

options

  • -z:支持zip解压文件
  • -x:从压缩文件中提取文件
  • -v:显示操作过程
  • -f:指定压缩文件

常用命令

解压这个压缩包到当前目录:tar -zxvf 压缩包名

解压这个压缩包到指定目录:tar -zxvf 压缩报名 -C 目标目录

将具体路径文件压缩并命名:tar -zcf 压缩后的文件名 具体路径下的文件名

注意:这里的c表示压缩

zip与unzip

使用前:yum install zip unzip -y

压缩文件:zip -r 压缩后的文件名 具体路径下的文件名

解压文件:unzip 具体路径文件名

安装卸载命令 

rpm安装命令

命令:rpm [options] 包名

options

  • -i:安装
  • -v:查看安装过程
  • -e:卸载
  • -h:hash加密算法
  • -a:所有的rpm包
  • -q:查看
  • --nodeps:安装软件时忽略依赖性

常用命令

安装:rpm -vih 包名

查看已安装的rpm包:rpm -qa

查看特定的rpm包:rpm -qa | grep 包名

卸载:rpm -e --nodeps 包名

yum安装

更换yum源

首先下载wget软件:yum install wget -y

//进入源所在目录
cd /etc/yum.repos.d/
//将之前的源进行备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.back
//下载自己想要的源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
//清楚旧的缓存数据
yum clean all
//建立新缓存
yum makecache

yum基本命令 

清空yum缓存:yum clean all

建立新缓存:yum makecache

查看ifconfig命令属于哪个包:yum search ifconfig

查看包的信息(是否安装):yum info net-tool

查询所有的rpm包:yum list

安装软件:yum -y install 软件名称(-y为所有的提示都为y)

卸载软件:yum remove 软件名称

重装软件:yum reinstall 软件名称

注意:

  • yum安装为在线安装,确保linux联网
  • yum安装的软件若有其他依赖,则会帮我们安装依赖后再安装软件

Linux普通剑客 

cut

作用:用于切分文件

语法:cut -d '分隔符' -f1,2,3 文件名

options 

  • -d:以什么分隔符进行分割
  • -f:分割对应的列

理解:将文件名对应的文件按照分隔符的分割方式分割1,2,3列

对于test文件

[root@CentOS7-1 ~]# cat test
i am a dog : i am a boy : i am a paper : i am a pat
i am a cat : i am a gril : i am a pig : i am a cow

使用命令:cut -d ':' -f1,2,3 test

[root@CentOS7-1 ~]# cut -d ':' -f1,2,3 test
i am a dog : i am a boy : i am a paper 
i am a cat : i am a gril : i am a pig 

sort

作用:对文本进行排序

语法:sort [options] 文件名

options

  • -t:用什么分割符进行分割
  • -k:分割后用第几列进行排序
  • -r:按26个字母逆序排列
  • -n:若有数字则先按照数字大小进行排序(默认升序,优先级高于-k)

注意:若不加options,那么行就会按照第一列26字母顺序排列(若第一个字母一样则找第二个字母)

对于test文件

[root@CentOS7-1 ~]# cat test
hello : orange : bird : cat
apple : cow : cup : desk
deep : dog : app : country
computer : phone : bag : paper

使用命令:sort -t ':' -k3 -r test

[root@CentOS7-1 ~]# sort -t ':' -k3 -r test
apple : cow : cup : desk
hello : orange : bird : cat
computer : phone : bag : paper
deep : dog : app : country

wc

作用:统计单词的数量

语法:wc [options] 文件名

options

  • -l:表示显示有几行
  • -w:显示有几个单词(空格换行隔开单词)
  • -c:表示有几个字符

对于test文件

[root@CentOS7-1 ~]# cat test
hello : orange : bird : cat : 21
apple : cow : cup : desk : 12
deep : dog : app : country : 11
computer : phone : bag : paper : 8

使用命令:wc -l -w -c test

[root@CentOS7-1 ~]# wc -l -w -c test
  4  36 130 test

主机相关信息

临时修改主机名:hostname 新主机名

长久修改主机名:vi /etc/hostname

修改主机域名:vi /etc/host

查看当前用户名:hostname

查看主机内核信息

语法:uname [options] 

options

  • -a:查看全部信息,包括隐藏文件

注意:修改完主机名后应重启方可生效,但这个修改是临时的,重启电脑后就失效了

主机间的相互免密钥

前言:可以通过ssh命令免密钥链接到其他主机

具体方法

  1. 主机1生成一对公钥、私钥
  2. 主机1将公钥发送给主机2
  3. 主机2将公钥放入/root/.ssh/authorized_keys目录中
  4. 主机1就可以免密登录主机2了

生成密钥对

语法:ssh-keygen -t rsa -P '密码内容' -f ~/.ssh/id_rsa

  • -t:使用的加密算法
  • -P:使用生成该密钥对的密码
  • -f:将生成的密钥对存放的路径

注意:这里面的‘’表示默认密码生成密钥对,id_rsa决定了密钥对的命名(私钥:id_rsa,公钥:id_rsa.pub)

发送公钥

语法:ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@IP地址

  • -i:要发送的公钥

免密钥流程

主机1生成了密钥对后将公钥发给主机2,此时当主机1向主机2发起请求时,主机2会先检查/root/.ssh/authorized_keys有没有公钥,若有主机1公钥,那么会随机生成一个uuid通过公钥对uuid进行加密发给主机1,主机1收到加密的uuid,会用自己的私钥解密发给主机2,主机2对比,若相同则主机1可以免密登录主机2

linux网络相关

网络连接模式

host-only(主机模式)

  • 在某些特殊的网络调试环境中,要求将真实环境和虚拟环境分隔开,这时你就可以采用host-only模式
  • 在host-only模式中,所有的虚拟系统是可以相互通信的(虚拟机不可和主机相互通信),但虚拟系统和真实的网络是被隔离开的
  • 在host-only模式下,虚拟系统的TCP/IP配置信息都是由VMnet1虚拟网络的DHCP服务器动态分配的

bridged(桥接模式)

  • VMware虚拟出来的操作系统就像局域网中的一条独立主机,它可以访问内网中的任何一台机器
  • 使用桥接模式的虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑
  • 当前主机IP为192.168.8.100,虚拟机IP为192.168.8.xxx

NAT(网络地址转换模式)

  • 使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机所在的网络来访问公网
  • NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的
  • 虚拟系统也就无法和本局域网中的其他真实主机进行通信(把宿主机当作一个大路由器)

Linux基础知识_第6张图片

配置网络

修改网卡:vi /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
//设置IP地址为静态IP
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33
//是否开启网络配置
ONBOOT=yes
IPADDR=192.168.188.100
NETMASK=255.255.255.0
GATEWAY=192.168.188.2
DNS1=114.114.114.114

重启网卡:systemctl restart network.service

基础命令

查看ip地址:ip addr

查看网络配置:ifconfig

查看IP地址是否可连通:ping 域名或IP地址

查看与目标IP指定的端口是否可连通:telent 目标IP地址 目标端口

获取对应网站信息:curl -X GET http://www.baidu.com

注意:使用前安装yum install telnet -y

查看端口状态

命令:netstat [options]

options

  • -n:不必进行dns轮询,显示ip,以数字的形式显示地址和端口号(numeric)
  • -a:显示所有连接和侦听端口(all)
  • -o:显示拥有每个连接关联的进程的id(own)
  • -p:显示进程标识符和程序名称(每个套接字/端口都属于一个程序)
  • -r:显示核心路由表

常用命令

查看所有3306端口的使用情况:

  • netstat -ano | grep 3306
  • netstat -ano | findstr “3306”

防火墙

前言:防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术

防火墙基础命令

手动开启防火墙:systemctl start firewalld.service

手动关闭防火墙:systemctl stop firewalld.service

关闭开机自启防火墙:systemctl disable firewalld.service

设置开机自启防火墙:systemctl enable firewalld.service

检查防火墙状态:systemctl status firewalld

防火墙使用命令

命令:firewall-cmd [options]

options

  • --state:查询防火墙的运行状态
  • --reload:重启防火墙
  • --list-all:查询防火墙的全部信息
  • --list-ports:查看防火墙开启的所有端口
  • --zone=public:作用域为public
  • --permanent:永久有效,没有此参数重启后会失效
  • --add-port=80/tcp:添加80端口
  • --query-port=80/tcp:查询80端口是否开放
  • --remove-port=80/tcp:移除80端口
  • --get-zone:列出支持的zone
  • --get-services:列出支持的服务
  • --query--service:查询服务是否支持
  • --add-service=ftp:开放ftp服务
  • --remove-service=ftp:移除ftp服务

常用命令

重启防火墙:firewall-cmd --reload

查看防火墙运行状态:firewall-cmd --state

查看防火墙全部信息:firewall-cmd --list-all

检查防火墙开放的全部端口:firewall-cmd --list-ports(不是永久的)

检查80端口是否开放:firewall-cmd --query-port 80/tcp(不是永久的)

手动开放80端口:firewall-cmd --zone=public --add-port=80/tcp --permanent

手动关闭80端口:firewall-cmd --zone=public --remove-port=80/tcp --permanent

列出支持的zone:firewall-cmd --get-zone

列出支持的服务:firewall-cmd --get-services

查询ftp服务是否支持:firewall-cmd --query--service ftp

永久开放ftp服务:firewall-cmd -add-service=ftp --permanent

永久移除ftp服务:firewall-cmd --remove-service=ftp --permanent

注意:带有--permanent参数的命令只能操作带有--permanent参数的端口

你可能感兴趣的:(Linux,linux)