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))
关注公众号:问渠清源
回复关键字 视频 获取视频教程
发布评论