Linux常用基础命令❀(下)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云防火墙,500元 1000GB
简介: Linux常用基础命令❀(下)

❀grep sed awk命令以及正则表达式



grep:

语法:

grep 【选项】 ‘内容’ 文件名

grep     以行为单位过滤
-i     不区分大小写

-v  
 取反
-w    以单词为单位进行过滤
-B    指定行数,过滤指定内容以及下几行
-A     指定行数,过滤指定内容以及上几行

-C    
指定行数,过滤指定内容以及上下各几行
-o     只输出过滤的内容
-c     统计过滤的行数
-n   显示行号


正则表达式:


基础正则表达式 -->grep可以直接使用

$ 以…结尾

^ 以…开头

. 匹配任意一个字符

- 匹配前一个字符或子表达式任意次(例如:grep "g.d" a.txt(过滤a.txt文件中的以g开头以d结尾可以代表有任意多个字符或没有字符))

[A-Z] [a-z] [0-9] [A-Za-z0-9]

[^a-z] 取反


扩展正则表达式 egrep =grep -E

{n,m} 匹配前一个字符或子表达式n到m次

{n, } 匹配前一个字符或子表达式最少n次

{ ,m} 匹配前一个字符或表达式最少m次

{n} 匹配前一个字符或子表达式n次


+ 匹配前一个字符或子表达式1次以上(*包括0+不包括,至少)

? 匹配前一个字符或子表达式0次或1次以上

| 或

() 分组(例如:(g|f)ood)


\ 转义,取消一个字符的特殊含义


查找/root这层目录有多少个普通文件?

find ./ -maxdepth 1 -type f ! -name “.*” | wc -l | ll | grep -c “^_”


sed:

语法:

sed [选项] ‘[操作地址]sed内置操作’ 文件


常用选项:


sed    流文件处理工具

-n    只输出处理的行

-i    修改文件内容,编辑文件

-e    指定多个sed内置操作,现在不常用,多个sed内置操作可以使用分号隔开

-r    支持扩展正则表达式


操作地址:

2    代表处理文件的第2行

1,5    代表处理文件的第1到5行

1;5    代表处理文件的第1行和第5行

1~2    代表指定步长为2,处理的是1,3,5…行

2,~2    代表处理文件的第2行开始,到2的倍数行结束。(2,~2=2,4 ;4,~4=4,8行)

4,$    代表处理文件第4行到最后一行

1,+2    代表处理文件的第1行到第1+2行,也就是1到3行


内置操作:

p    打印

a    在指定行后追加数据

i    在指定行前插入行前

d    删除指定行

c    替换指定整行

s    替换指定字符,默认替换每行第一个字符

g    通常与s组合使用,替换全部指定字符

n    获取下一行

y    字符转换,类似于tr命令(正则不能使用)

r    将文件读入指定行后

w    将指定行另存为文件

q    结束sed操作

N    不会清空模式空间内的内容,将下一行追加到模式空间,两行数据以换行符


awk:

语法:

awk [选项] ‘BEGIN{command}匹配模式{command}END{command}’ 文件


内置操作:

$0     文件的整行
$1~$n    awk处理的列,以FS为分隔符
NF     查看一共有多少列
$NF     查看文件的最后一列
NR     表示处理的行数(一共有多少行) 外:指定输出第几行
FNR    表示处理当前文件的行数
FS    输入字段的分隔符,默认空格或制表符

RS    
输入记录的分隔符,默认是换行
OFS     输出字段的分隔符,默认空格
ORS     输出行的分隔符,默认换行
FILENAME     awk处理的文件名

PATH  
 文件路径
ARGC    命令行参数个数
ARGV     命令行参数数组
ENVIRON     获取Linux系统中的环境变量


which 文件名查找命令的绝对路径


❀制作模板机



#进入:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
#1.网络配置  NAT
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.2.10
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
DNS1=255.255.225.0
/etc/init.d/network restart 重启网络服务 
ip a  查看网络信息 


xshell连接慢如何解决:


进入vi /etc/ssh/sshd_config

再找到UseDNS 吧yes改成no,前面“#”符号也要删,保存退出

重启ssh服务:

systemctl restart sshd


防火墙与selinux的关闭及开启和永久生效 :


systemctl stop firewalld 关闭防火墙服务

start

systemctl disable firewalld 禁止防火墙开机自启动

enable

firewall-cmd --state 查看防火墙状态

systemctl status firewalld


systemctl is-enabled firewalld

查看防火墙是否开机自启动


getenforce 查看selinux的状态

setenforce 设置selinux的状态

vi /etc/selinux/config

vi /etc/sysconfig/selinux

SELINUX=disabled

重启系统生效


挂载磁盘:

查看磁盘信息:

fdisk -l 查看

创建目录:

mkdir /media/cdrom

mount /dev/sr0 /media/cdrom 挂载磁盘

df -Th 挂在完查看挂载信息


配置本地yum仓库:

1. cd /etc/yum.repos.d/
2. mkdir bak
3. mv *.repo bak


yum源文件存在 /etc/yum.repos.d 中

创建一个文件(local.repo):

vi local.repo
[local]
name=local
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0

配置完成之后

yum clean all 清除yum缓存

yum makecache 建立新的yum缓存

或者直接用:yum makecache fast 加载未加载的缓存

安装vim和man命令: yum -y install vim man


设置永久挂载:

进入fstab:

vim /etc/fstab

/dev/sr0 /media/cdrom iso9660 defaults 0 0

第一段:挂载的设备 (dev/sr0)

第二段:挂载的目录 (/media/cdrom)

第三段:文件系统类型 (iso9660)

第四段:挂载的参数 defaults默认参数 (defaults )

第五段:是否使用dump备份 0不备份 1备份 (0)

第六段:是否使用fsck检测 0不检测(0)


注解:

1.系统中只有一块硬盘,sda,分区sda1,sda2 ;

2.根目录是整个系统目录的顶点,/mnt也在根目录下;

3.如果知道根目录对应的是哪个硬盘分区,可以判断出

a.txt存到哪个设备上;

mount /dev/sr0 /media/cdrom

mount /dev/sdb4 /mnt


扩展:格式化磁盘

1. #Cetnos6格式化磁盘
2. mkfd.ext4 -f /dev/[sda]
3. #Centos7格式化磁盘
4. mkfs.xfs -f /dev/[sda]


重启系统的命令:reboot、init 6、shutdown -r


❀软件包管理



❀用户、用户组管理



❀文件权限管理



❀磁盘管理



创建分区

[root@server-1 ~]# fdisk /dev/sdb

创建物理卷

[root@server-1 ~]# pvcreate /dev/sdb1

 Physical volume "/dev/sdb1" successfully created  #已成功创建物理卷“/dev/sdb1”

扩展'centos'卷组

[root@server-1 ~]# vgextend centos /dev/sdb1

 Volume group "centos" successfully extended  #卷组“centos”成功扩展

初始化分区

[root@server-1 ~]# mkswap /dev/sda2

扩容逻辑卷

[root@server-1 ~]# lvextend -L +19.5G /dev/mapper/centos-root (加+是在原有的基础上扩容     不加则是直接扩容到多少内存  )

[root@server-1 ~]# df -Th

扩容xfs类型

[root@server-1 ~]# xfs_growfs /dev/mapper/centos-root


———————————————————————————————————————————

——————————————————  扩容交换分区  ——————————————————


[root@server-1 ~]# free -m

查看交换分区信息

[root@server-1 ~]# swapon -s

建一个分区出来

[root@server-1 ~]# fdisk /dev/sdc

刷新分区表

[root@server-1 ~]# partprobe /dev/sdc

查看分区表内容

[root@server-1 ~]# ll /dev/sdc*

初始化分区

[root@server-1 ~]# mkswap /dev/sdc1

查看UUID

[root@server-1 ~]# blkid /dev/sdc1

制作开机挂载

[root@server-1 ~]# vi /etc/fstab

/dev/sdc1       swap    swap    defaults        0 0

激活swap分区(读取/etc/fstab)

[root@server-1 ~]# swapon -a

查看交换分区

[root@server-1 ~]# swapon -s


———————————————————————————————————————————


Linux硬链和软链的区别在于,硬链创建了指向文件实际数据的新的文件名,而软链则创建了一个指向另一个文件名的链接文件。硬链接的文件名和文件内容是绑定在一起的,删除任何一个都会造成文件不完整,而软链接只是一个指向其他文件的文件名,删除链接文件不会影响实际的文件,因此软链接更加灵活。



———————————————————————————————————————————



#查看磁盘设备   lsblk


#查看磁盘分区信息   fdisk -l /dev/sdb


#两种格式: MBR   GPT


#针对MBR格式,创建分区      fdisk  /dev/sdb

m 查看帮助            

n 新建分区

p 新建主分区(打印分区信息)

e 创建扩展分区

l 创建逻辑分区

w 保存退出


#更新刷新磁盘分区表,不用重启      partprobe /dev/sdb


#转格式  parted -s /dev/__分区表名___  mklabel __(gpt,msdos)___

#安装分区工具     yum -y install gdisk

#查看分区信息     gdisk -l /dev/__表名___


#格式化文件系统类型

ext4格式 : mkfs.ext4 /dev/____

xfs格式 :   mkfs.xfs  /dev/____


#磁盘挂载

 创建挂载目录 :mkdir /mnt/______

mount  /dev/__需要挂载的磁盘___   /mnt/__挂载的目录__/



#查看磁盘挂载与磁盘使用空间    df -Th



#取消挂载

 umount /mnt/_____/

强行卸载即使目录被进程占用  umount  -l  /mnt/___/



#fstab开机自动挂载

     查看uuid和文件系统类型    blkid   /dev/____

改配置文件   vi  /etc/fstab

第1列:挂载设备

 第2列:挂载点(挂载目录)

 第3列:文件系统类型(xfs,ext4)

 第4列:文件系统属性(defaults)

 第5列:是否对文件系统进行磁带备份:0 不备份

 第6列:是否检查文件系统:0 不检查

#自动挂载    mount -a



LVM是 Logical Volume Manager(逻辑卷管理)

PV:物理卷(Physical volume):一块硬盘,或多块硬盘

VG:卷组(Volume Group):一堆磁盘的统称

LV:逻辑卷(Logical Volume):一个逻辑分区,一个分区



###创建LVM

1.将物理磁盘转换为物理卷 -pv

pvcreate /dev/____

查看pv信息:pvscan,pvs,pvdisplay

2.创建卷组-vg

vgcreate vg1 /dev/sdc

查看卷组信息:vgscan,vgs,vgdisplay

3.创建逻辑卷 -L大小(可指定M,G) -n卷名  vg1组名

lvcreate -L +200M -n lv1 vg1

查看逻辑卷信息:lvscan

4.创建文件系统并挂载

a.创建文件系统/格式化

mkfs.ext4 /dev/vg1/lv1

         /dev/卷组名/逻辑卷名

b.创建挂载点

mkdir /mnt/lv1

c.挂载

mount /dev/vg1/lv1  /mnt/lv1

5.查看挂载结果

df


###VG管理(扩大vg卷组)

1.扩大vgextend

a.创建pv

 pvcreate /dev/sdd

b.扩展VG

 vgextend vg1 /dev/sdd

c.查看VG

 vgs



###LV扩容

1.扩大lvextend

1.1  lv扩容

a.查看VG空间  vgs

b.扩容LV   lvextend -L +200M /dev/vg1/lv1

1.2  FS扩容

a.先观察文件系统容量  df -Th

b.#xfs扩容      xfs_growfs /dev/vg1/lv1

   #ext4扩容     resize2fs /dev/vg1/lv2  

c.查看FS    df -Th

请注意对比,之前的输出结果,文件系统的大小发生改变。



###交换分区管理 Swap


A.swap分区大小设置规则:

大于 4GB 而小于 16GB 内存的系统,最小需要 4GB 交换空间;

大于 16GB 而小于 64GB 内存的系统,最小需要 8GB 交换空间;

大于 64GB 而小于 256GB 内存的系统,最小需要 16GB 交换空间。


B.交换分区管理的作用:提升内存的容量,防止OOM(OutOfMemory)内存不足


1.查看当前的交换分区  free -m

 查看交换分区信息  swapon -s

2.增加交换分区:

a.准备分区  

分一个主分区  fdisk /dev/sde

刷新分区表  partprobe /dev/sde

查看分区表信息  ll /dev/sde*

b.格式化

初始化  mkswap /dev/sde1

c.挂载

swapon /dev/sde1

3.验证

free -m


❀RAID 独立磁盘冗余阵列 数据安全性



❀linux系统启动流程



❀重定向



❀周期性计划任务和任务调度



❀进程管理



❀用户提权



❀文件系统-软连接、硬链接



❀日志管理



❀部署网上商城ecshop



一、基础环境设置


[root@server-1 ~]# sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config 
[root@server-1 ~]# setenforce 0
[root@server-1 ~]# systemctl stop firewalld.service 
[root@server-1 ~]# systemctl disable firewalld.service


二、安装LAMP


[root@server-1 ~]# yum -y install httpd mariadb-server mariadb php php-mysql gd php-gd
[root@server-1 ~]# systemctl start httpd mariadb
[root@server-1 ~]# systemctl enable httpd mariadb
#设置数据库登录的密码
[root@server-1 ~]# mysql_secure_installation
Enter current password for root (enter for none): #回车
Set root password? [Y/n] Y
#输入你要设置的密码
New password: 
Re-enter new password: 
疯狂:Y


三、Apache配置虚拟主机


[root@server-1 ~]# cat >> /etc/httpd/conf.d/ecshop.conf<<-EOF
<VirtualHost *:80>
    ServerName www.yzp.ecshop.com
    ServerAlias ecshop.com
    DocumentRoot /www/shop
</VirtualHost>
<Directory "/www/shop">
    Require all granted
</Directory>
EOF


配置完成后重启Apache服务器 :       systemctl restart httpd

导入ecshop网站源码(需提前下载ecshop源码包):

[root@server-1 ~]# mkdir -p /www/shop/   #创建发布目录
[root@server-1 ~]# unzip ECShop_v3.6.0_UTF8_release170921.zip
[root@server-1 ~]# cp -rf ECShop_v3.6.0_UTF8_release170921/* /www/shop/
#修改网站目录权限
[root@server-1 ~]# chown -R apache.apache /www/shop/


四、配置域名解析:


在wind电脑上面打开C:\Windows\System32\drivers\etc\hosts文件。可以用管理员身份打开

efe52718a14747f2bdbe5047e52e7c48.png

修改php.ini时区:

[root@server-1 ~]# vim /etc/php.ini

214328d7b3374b54ad0f623a0794e297.png


[root@server-1 ~]# systemctl restart httpd   #重启服务


五、输入域名进行测试:


1.进行安全配置

4acd8c69859e41e0985c8ff8f79aaff5.png


2.配置完权限后,页面拉到最下面点击重新检查


7abdc538de9d49c9aefba6b2d00f9e15.png


3.配置系统5ff3a33ce2fb43cb97764dfad7d0c13b.png


4.刷新页面

a3f4e52f74844511ab11b05b83639910.png


5.因需要注册后才能激活系统,出现这个页面即可

3f49cef925324fc19257c2628605ed2c.png


❀部署论坛系统Discuz!


0c62099ef4394756ab0ab92106eba72f.png


一、基础环境


[root@server-1 ~]# sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config 
[root@server-1 ~]# setenforce 0
[root@server-1 ~]# systemctl stop firewalld.service 
[root@server-1 ~]# systemctl disable firewalld.service


二、安装LAMP


[root@server-1 ~]# yum -y install httpd mariadb-server mariadb php php-mysql gd php-gd
[root@server-1 ~]# systemctl start httpd mariadb
[root@server-1 ~]# systemctl enable httpd mariadb
#设置数据库登录的密码
[root@server-1 ~]# mysql_secure_installation
#输入你要设置的密码
New password: 
Re-enter new password: 
Remove anonymous users? [Y/n] y      #疯狂Y


三、创建虚拟主机


[root@server-1 ~]# cat >> /etc/httpd/conf.d/discuz.conf<<-EOF
<VirtualHost *:80>
    ServerName www.yzp.discuz.com
    ServerAlias discuz.com
    DocumentRoot /www/discuz
</VirtualHost>
<Directory "/www/discuz">
    Require all granted
</Directory>
EOF
[root@server-1 ~]# systemctl restart httpd
[root@server-1 ~]# mkdir -p /www/discuz/
#导入discuz源码
[root@server-1 ~]# unzip Discuz_X3.4_SC_UTF8.zip
[root@server-1 ~]# cp -rf upload/* /www/discuz/
修改网站目录权限
[root@server-1 ~]# chown -R apache.apache /www/discuz/


四、登录数据库,创建数据库


# 登录数据库,创建数据库
[root@server-1 ~]# mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 5.5.68-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database ultrax;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> \q


五、配置域名解析:


在wind电脑上面打开C:\Windows\System32\drivers\etc\hosts文件。可以用管理员身份打开

efe52718a14747f2bdbe5047e52e7c48.png

六、通过域名进行访问

6b96b4a9b4f34fcaaba2797ac757f993.png5c26171564c943b5b18aead3f35314c4.png7081d1f89e2e4c5188775b0984924707.png

点击下一步安装完成

48428efd9b1c448cb048caf3487316ab.pngd684d95066aa4705968d53a02f33e30c.png


相关文章
|
24天前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
52 8
|
24天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
149 6
|
25天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
65 3
|
25天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
61 2
|
6天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
32 14
Linux 10 个“who”命令示例
|
15天前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
30 9
|
1月前
|
缓存 监控 Linux
|
13天前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解
|
19天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
59 3
|
24天前
|
存储 运维 Linux
如何在 Linux 系统中使用 envsubst 命令替换环境变量?
`envsubst` 是 Linux 系统中用于替换文本中环境变量值的实用工具。本文分三部分介绍其工作原理、使用方法及实际应用,包括配置文件替换、脚本执行中环境变量替换和动态生成文件等场景,帮助用户高效利用 `envsubst` 进行开发和运维工作。
39 4