Linux 基础入门 03

Linux 基础入门 03

一、Linux 三剑客

1.1 grep

用于查找文件里符合条件的字符串。

[root@wentan dwt]# grep -n hello,world /var/log/messages
20499:hello,world
-i 或 --ignore-case 		#忽略字符大小写的差别。
-n 或 --line-number 		#在显示符合样式的那一行之前,标示出该行的列数编号。
-o 或 --only-matching 	#只显示匹配PATTERN 部分。
-v 或 --invert-match 	#显示不包含匹配文本的所有行。
1.2 sed

流编辑器过滤和替换文本

读取内容到内存中,所有操作都在内存里面运行 不会影响源文件

#选项
-n   	输出模式空间内容比如打印多少到多少行
-i    	直接编辑文件  会对文件造成影响
-e    	可以使用多个命令操作
-r     	可以使用正则表达式#命令
p  		打印行空间内容
d  		删除匹配行
a  \text   标识匹配到行的追加内容
i  \text   之后追加
c  \text   替换整行
-I   	不区分大小写
s    	替换内容

实例

#打印文件第五行的内容
[root@wentan ~]# sed -n 5p /etc/passwd
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin#打印1到5行内容
[root@wentan ~]# sed -n '1,5p' /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin#替换123的内容为456   源文件并没有替换
[root@wentan /]# sed 's/123/456/'   /dwt/321.txt
45645
1223
456
45645
4566fdsjs#替换123的内容为456   源文件已经替换
[root@wentan /]# sed  -i  's/123/456/'   /dwt/321.txt
1.3 awk

排版工具 可以将文本内用户感兴趣的内容提取再排版

#使用awk查找本机ip地址
[root@wentan /]# ip addr |grep ens160 |grep inet | awk  '{print $2}' 
192.168.200.128/24

二、文本编辑器

2.1 vi 编辑器

所有unix系统都会自带vi文本编辑器,其他的文本编辑器不一定存在

2.2 vim 编辑器之神

具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

nano 在debian系列系统上比较常见 其他的linux发行版也可以安装

目前在linux系统中 vim使用是最多的 ,也是最推荐的

Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。

连 vim 的官方网站 () 自己也说 vim 是一个程序开发工具而不是文字处理软件。

vim是一个纯命令行文本编辑器,很多文本编辑的功能都是通过键盘快捷键的方式完成,所以我们需要记住常用的键位,在vim官方网站上我们可以找到vim键盘图的完整版,不过对于初学者来说,我们只需要知道常用的就可以了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xfANsTZt-1641901045566)(C:\Users\tan-1210\AppData\Roaming\Typora\typora-user-images\image-20220111134350553.png)]

vim基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和末行模式(Last line mode)。 这三种模式的作用分别是:

2.2.1 命令模式

用户刚刚启动 vi/vim,便进入了命令模式。

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

以下是常用的几个命令:

i 	#切换到输入模式,以输入字符。
x 	#删除当前光标所在处的字符。
: 	#切换到末行模式,以在最底一行输入命令。

若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。

命令模式只有一些最基本的命令,因此仍要依靠末行模式输入更多命令。

2.2.2 输入模式

在命令模式下按下i就进入了输入模式。

在输入模式中,可以使用以下按键:

字符按键以及Shift组合,输入字符

ENTER,回车键,换行
BACK SPACE,退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符
方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
ESC,退出输入模式,切换到命令模式
2.2.3 末行模式

在命令模式下按下:(英文冒号)就进入了末行模式。

末行模式可以输入单个或多个字符的命令,可用的命令非常多。

在末行模式中,基本的命令有:

q  		#退出程序
w  		#保存文件
ESC		#键可随时退出末行模式。

按下 i 进入输入模式(也称为编辑模式),开始编辑文字在命令模式之中,只要按下i,a,o等字符就可以进入输入模式了!

在编辑模式当中,你可以发现在左下角状态栏中会出现-- INSERT – 的字样,那就是可以输入任意字符的提示。

这个时候,键盘上除了 Esc 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑。

假设我们编辑完毕以后 如何退出 按下键盘esc 会发现 --insert--不见了

此时可以输入:wq 回车 保存退出

2.3 vim按键说明

除了上面简易范例的 i, Esc, :wq 之外,其实 vim 还有非常多的按键可以使用。

下面将会列举出vim非常多的常用按键,初学者只需要浏览一遍,记住大概vim有哪些功能,等后面大量使用vim的时候,再来翻阅笔记,并且在多次使用中把这些功能记住。

三、初识 bashshell

命令解释器 他能识别我们输入的各种命令 并传递给系统

类似于 Windows 当中的powershell 、cmd

Linux当中 shell 既是用户交互界面 又是控制系统的语言

winodws当中 图形化是用户交互界面 shell是控制系统的语言

shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。实际上shell是一个命令解释器,它解释用户输入的命令并且把用户的意图传达给内核。(可以理解为用户与内核之间的翻译官角色)

3.1 文件通配符
*    		#匹配0次或无数次 所有    cp   ./*    
?    		#匹配任意单个字符
[0-9]    	#匹配数字
[abc]     	#匹配字母
[^abc]   	#匹配列表内除外的所有字符
~     		#指向你的家目录   
$      		#表示参数  
‘’      	#输入一个命令 作为另一个命令的参数
3.2 如何变量赋值
[root@wentan ~]# username=dwt
[root@wentan ~]# echo $username			//引用这个变量
dwt
#临时变量仅在当前shell中有效#系统变量,永久有效
[root@wentan ~]# echo $PATH		//用户可执行文件
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@wentan ~]# echo $HOME		//用户家目录位置
/root
[root@wentan ~]# echo $UID		//用户的UID
0
3.3 命令别名
alias  			   #别名
which   +  名称 	  #可以查看这个名称的别名
#别名只是当前有限  而且只是本次shell登录有效  
alias dir=‘ls  -al’    讲ls -al  别名写成  dir  这样 dir就会执行ls -al的作用

实例

[root@wentan ~]# which ll
alias ll='ls -l --color=auto'/usr/bin/ls[root@wentan ~]# alias showip='ip addr | grep ens160'
[root@wentan ~]# showip
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000inet 192.168.200.128/24 brd 192.168.200.255 scope global dynamic noprefixroute ens160
[root@wentan ~]# which showip
alias showip='ip addr | grep ens160'/usr/sbin/ip/usr/bin/grep
3.4 如何永久写入别名
编辑 /etc/bashrc
在文件最低端写入别名 alias showip=’ip addr’
bash  刷新 
which dir 验证是否成功
which showip

实例

[root@wentan ~]# vim /etc/bashrc
alias showip='ip addr | grep ens160'
[root@wentan ~]# bash
[root@wentan ~]# which dir
/usr/bin/dir
[root@wentan ~]# which showip
alias showip='ip addr | grep ens160'/usr/sbin/ip/usr/bin/grep

/etc/bashrc 非常重要 关系到每次开机的bash环境

四、Linux网络管理

4.1 IPv4 地址

地址:192.168.1.1/24

掩码:255.255.255.0

DNS 动态域名解析,是一个服务器,通常我们需要给系统设置域名解析服务器的IP地址

114.114.114.114 安全洁净的DNS服务器

8.8.8.8 谷歌 DNS

网关 Gateway 通常指向本地路由器的接口IP

4.2 网络接口名称

Linux系统网络接口名称,通常来说,传统一般叫做 eth0 、eth1、eth2

RHEL7以上版本,一般默认都是给的 eth33、 eth160

# 接口类型
以太网			 ens
本地回环口		lo
桥接网口		virbr0
4.3 如何查看网络配置
  • ip addr
  • ifconfig
[root@wentan ~]# ifconfig
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.200.128  netmask 255.255.255.0  broadcast 192.168.200.255inet6 fe80::8e87:6cf0:99a8:23b0  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:bd:ec:ee  txqueuelen 1000  (Ethernet)RX packets 27090  bytes 2937639 (2.8 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 44940  bytes 33992062 (32.4 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255ether 52:54:00:0f:df:76  txqueuelen 1000  (Ethernet)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
4.4如何进行网络管理
4.4.1 图形化界面 nmtui

图形化修改工具,不建议使用

[root@wentan ~]# nmtui
4.4.2 直接修改配置文件

非常不建议使用 , centos7以下系统强烈推荐

设备类型TYPE=Ethernet
地址分配模式BOOTPROTO=static
网卡名称NAME=ens33
是否启动ONBOOT=yes
IP地址IPADDR=192.168.91.128
子网掩码NETMASK=255.255.255.0
网关地址GATEWAY=192.168.91.1
DNS地址DNS1=114.114.114.114

实例

[root@wentan ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens60 HWADDR=00:0C:29:BD:EC:EE
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp#修改此行#BOOTPROTO=static
#IPADDR=192.168.200.128
#NETMASK=255.255.255.0
#GETWAY=192.168.200.130
#DNS1=114.114.114.114DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens160
UUID=42b0ac94-0069-4237-8465-fb1e0b050591
ONBOOT=yes[root@wentan ~]#systemctl restart network
//这个命令RHEL8不支持
4.4.3 ip

不建议使用

[root@wentan ~]# ip link show ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000link/ether 00:0c:29:bd:ec:ee brd ff:ff:ff:ff:ff:ff
[root@wentan ~]# ip link set ens160 up
[root@wentan ~]# ip link set ens160 down
4.4.4 nmcli

考试使用,RHEL8系统强烈推荐

#查看设备状态
[root@wentan ~]# nmcli device status 
DEVICE      TYPE      STATE      CONNECTION 
ens160      ethernet  connected  ens160     
virbr0      bridge    connected  virbr0     
lo          loopback  unmanaged  --         
virbr0-nic  tun       unmanaged  --#连接和断开设备
[root@wentan ~]# nmcli device ens160
#查看配置文件状态
[root@wentan ~]# nmcli con show

实例

#增加一块网络配置文件
[root@wentan ~]# nmcli connection add ifname ens160 type ethernet con-name nettools ipv4.addresses 172.25.250.10/24 ipv4.gateway 172.25.250.254 ipv4.dns 172.25.250.254 ipv4.method manual
Connection 'nettools' (28c92585-0edf-42de-a455-bc70507bdba7) successfully added.#查看网卡配置文件
[root@wentan ~]# nmcli connection show
NAME      UUID                                  TYPE      DEVICE 
ens160    42b0ac94-0069-4237-8465-fb1e0b050591  ethernet  ens160 
virbr0    eb281723-5034-4f05-960c-309b7771272a  bridge    virbr0 
nettools  28c92585-0edf-42de-a455-bc70507bdba7  ethernet  -- #NAME: 网卡配置文件的连接名 随意取
#DEVICE:指的是物理网卡名称   必须是真实的设备  一个DEVICE可以有多个配置文件有多个NAME#修改网卡配置文件
[root@wentan ~]# nmcli connection modify nettools ipv4.addresses 10.1.1.1/24 ipv4.gateway 10.1.1.254 ipv4.dns 8.8.8.8 ipv4.method manual #查看是否写入配置文件
[root@wentan ~]# vim /etc/sysconfig/network-scripts/ifcfg-nettools#删除网卡
[root@wentan ~]# nmcli connection delete 网卡名字#让网卡生效
[root@wentan ~]# nmcli connection up nettools#重置配置文件
[root@wentan ~]# nmcli connection reload 	#重新加载配置文件  有可能没成功
[root@wentan ~]# nmcli connection up		#激活配置文件
[root@wentan ~]# nmcli connection down		#卸载配置
#关机重启也可以重新加载文件

五、标准端口服务

通信靠ip,服务靠端口

传输层协议 TCP UDP TCP可靠链接,UDP面向无连接

Linux标准端口服务配置文件 /etc/services

[root@wentan ~]# vim /etc/services
#常见端口
HTTP协议代理服务器常用端口号:80/8080/3128/8081/9098
SOCKS代理协议服务器常用端口号:1080
FTP(文件传输)协议代理服务器常用端口号:21
Telnet(远程登录)协议代理服务器常用端口号:23
HTTP服务器,默认端口号为80/tcp(木马Executor开放此端口)
HTTPS(securely transferring web pages)服务器,默认端口号为443/tcp 443/udp
Telnet(不安全的文本传送),默认端口号为23/tcp(木马Tiny Telnet Server所开放的端口)
FTP,默认的端口号为21/tcp(木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口)
TFTP(Trivial File Transfer Protocol),默认端口号为69/udp
SSH(安全登录)、SCP(文件传输)、端口号重定向,默认的端口号为22/tcp
SMTP Simple Mail Transfer Protocol(E-mail),默认端口号为25/tcp(木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口)
POP3 Post Office Protocol(E-mail),默认端口号为110/tcp
Webshpere应用程序,默认端口号为9080
webshpere管理工具,默认端口号9090
JBOSS,默认端口号为8080
TOMCAT,默认端口号为8080
WIN2003远程登录,默认端口号为3389
Oracle 数据库,默认的端口号为1521
Oracle XDB(XML 数据库),默认的端口号为8080
MS SQL*SERVER数据库server,默认的端口号为1433/tcp 1433/udp
MS SQL*SERVER数据库monitor,默认的端口号为1434/tcp 1434/udp
MYSQL 数据库默认端口  3306

如何查看正在运行的端口

ss   #查看端口   常用选项
-n   #显示接口和端口编号 而不是显示名称
-u   #显示UDP端口
-l   #仅显示侦听中的端口
-t   #显示TCP
-p   #显示使用端口的进程

实例

[root@wentan ~]# ss -nultp
Netid State   Recv-Q  Send-Q             Local Address:Port    Peer Address:Port                                                                                    
udp   UNCONN  0       0                        0.0.0.0:39926        0.0.0.0:*      users:(("avahi-daemon",pid=937,fd=17))                                           
udp   UNCONN  0       0                        0.0.0.0:5353         0.0.0.0:*      users:(("avahi-daemon",pid=937,fd=15))                                     

关注公众号:问渠清源
回复关键字 视频 获取视频教程