Linux常用小记

目录

1.定义全局环境变量:有两种永久生效的方式(作用于系统全部用户或当前操作用户)

2.查看日志并查找关键字

通过grep查找(推荐)

指定文件的情况

模糊查找(当前目录)

模糊查找(指定目录/文件)

多重条件模糊过滤查找(指定目录/文件)

根据vim,日志数据多时耗时长

3.设置防火墙开机自启(CentOs7)

配置防火墙开机自启

​编辑

配置关闭防火墙开启自启

查看防火墙是否已配置开机自启

最后通过重启查看防火墙是否自动启动且所有开放端口列表是否依旧存在

根据写入的路径创建对应的脚本文件,完成以下操作后,重启即可完成防火墙开机自启且所开放端口皆有效的效果

​编辑

4.防火墙开放或移除端口(CentOs7)

5.解压缩文件为压缩包

6.从Linux中上传或下载文件到本地(lrzsz)

7.shell编辑命令快捷键

8.配置命令开机自动执行脚本

9.Linux精确或模糊查找文件或文件目录(find)

a) 精确查找文件 格式:find 查找目录 -name 文件名称

b) 精确查找目录 格式:find 查找目录 -type d -name 目录名称

c) 模糊查找文件 格式:find 查找目录 -name *文件*名称* 

d) 模糊查找目录 格式:find 查找目录 -type d *目录名称   

10.Linux快捷文件操作

vim编辑文件

跳到文件开头处(gg)

跳到文件结尾处(shift+g) 

sed替换文件内容

替换指定文件的内容(全部)

替换指定文件的内容(第几个)

替换指定文件的内容写入新文件(新文件不存在的情况)

grep过滤指定文件符合要求的内容

获取指定文件中非空行的内容(常用于获取配置文件去除空格内容数据)

 获取指定文件中不是以#开头的内容(常用于获取配置文件去除注释内容数据)

 特殊符号字母作用解析

11.Linux快速进入对应的目录(省略长路径的输入)

a) 编写快捷命令别名

b) 保存文件,使文件生效

c) 测试,输入easyswoole2,直接进入对应目录,配置完成。

12.Linux查看服务器外网地址

第一种方式

第二种方式

13.Linux查看服务器本地网络地址(局域网)

第一种方式

第二种方式

在最小化安装CentOs系统的情况下,系统默认是获取不到网卡的ip地址的,如何设置获取本地网卡的ip地址?

1.初始化安装完系统后,进行ip地址查看,结果如下:

2.原因在于系统未打开网卡,根据ip a查询的网卡名称,到/etc/sysconfig/network-scripts目录,找到ens32对应的网卡配置文件进行开启配置,保存配置并进行网络服务重启

3.再次查看ip地址信息,即可查看到

 ​编辑

14.Linux文件属性说明

每个文件对应10个字符,标识说明此文件的属性信息

15.编写sh脚本与执行(可配合crontab完成定时执行程序)

16.检查指定软件包是否已安装(都可结合通配符查找)

a) rpm方式

b) yum方式

17.清空文件内容

单文件

批量文件

18.查看已安装软件的所有相关配置文件与安装目录

19.常用信号量

20.复制文件、复制文本内容

复制文件--单个 

复制文件--多个

复制文本

21.下载远程文件

22.shell的正则表达式

23.查看磁盘使用情况

24.查找占用内存容量排名前几(文件大小排名)的文件

25.开启命令补齐功能

通过安装bash-completion包

26.通过ssh连接服务器

27.Vmware扩展磁盘 

28.列举文件并显示文件大小(size:K、M、G)


1.定义全局环境变量:有两种永久生效的方式(作用于系统全部用户或当前操作用户)

1) 系统全部用户,在/etc/profile中添加变量(系统启动会调用此脚本,一经修改容易导致系统开启不了,不建议操作)

2) 在~/.bash_profile中添加全局变量别名(缺点:每次切换用户后,需要重新source配置文件,否则配置不生效)

# 编辑文件,将以下内容输入
vi ~/.bash_profile
alias php72=/usr/local/php/php-7.2/bin/
alias php7=/usr/local/php/php7/bin/
# 保存后运行source,使配置生效
source ~/.bash_profile

2.查看日志并查找关键字

通过grep查找(推荐)

指定文件的情况

grep "keywords contents" /usr/local/file.txt

模糊查找(当前目录)

# 递归且显示找到内容所在文件的行数
grep -rn "keywords contents" *

模糊查找(指定目录/文件)

# 递归且显示找到内容所在文件的行数
grep -rn "keywords contents" /

多重条件模糊过滤查找(指定目录/文件)

# -r 表示先递归查找指定目录/文件的包含"2022-05-09"的内容 
# -n 表示在通过递归找到的内容列表中查找包含"error"的内容,并显示所在列
grep -r "2022-05-09" /var/log/cron.log | grep -n "error"

根据vim,日志数据多时耗时长

# 打开文件
vim logs.log
# 查找关键字,Esc退出编辑模式,输入/keyword
# 大写N、小写n切换往上往下查找

3.设置防火墙开机自启(CentOs7)

配置防火墙开机自启

# 开启防火墙自启,生成两个系统配置文件
systemctl enable firewalld.service

配置关闭防火墙开启自启

# 关闭防火墙开机自启,移出两个系统配置文件
systemctl disable firewalld.service

查看防火墙是否已配置开机自启

# 查看系统是否设置防火墙开机自启
systemctl list-unit-files |grep fire

最后通过重启查看防火墙是否自动启动且所有开放端口列表是否依旧存在

说明:(通过以上配置完,防火墙服务可以实现开机自启,但是防火墙开放的端口需要通过命令fireward-cmd --reload使其生效,所以通过编写开机启动执行脚本来完成每次重启的配置生效操作)

# 重启系统后使用此命令查看,所有防火墙开放的端口是不存在的,需要通过命令 fireward-cmd --reload 方可使开放端口生效
iptables -L -n
# 指定执行脚本
vim /etc/rc.d/rc.local

Linux常用小记_第1张图片

根据写入的路径创建对应的脚本文件,完成以下操作后,重启即可完成防火墙开机自启且所开放端口皆有效的效果

# 创建目录
mkdir /usr/local/diy_sh
# 编写脚本
vim fireward-cmd-reload.sh
# 为脚本赋予执行权限
chmod +x /usr/local/diy_sh/fireward-cmd-reload.sh


4.防火墙开放或移除端口(CentOs7)

# 永久开放9501的端口
firewall-cmd --add-port=9501/tcp --permanent
# 开放连续端口
firewall-cmd --add-port=9502-9510/tcp --permanent
# 重载生效刚才的端口设置
firewall-cmd --reload


# 辅助防火墙命令
## 查看当前服务器开放的所有端口
iptables -L -n
## 查看防火墙状态
firewall-cmd --state

# 永久移除9501的端口
firewall-cmd --remove-port=9501/tcp --permanent
# 重载生效刚才的端口设置
firewall-cmd --reload

5.解压缩文件为压缩包

# 解压(从tar 1.15 开始即可自动识别)注:通过tar --version可查看tar版本
tar -xvf filename.tar.gz
tar -xvf filename.tar.bz2
tar -xvf filename.tar.xz
tar -xvf filename.tar.Z

unzip filename.zip // 解压zip文件

# 1.压缩为tar.gz格式
tar zcvf FileName.tar.gz DirName
# 2.压缩为zip格式
zip -r FileName.zip DirName

6.从Linux中上传或下载文件到本地(lrzsz)

# 通过lrzsz组件进行下载或上传操作
## 1.下载操作
sz FileName
## 2.上传操作
rz -be FileName
# 注:如lrzsz未安装,则运行yum install lrzsz进行安装

7.shell编辑命令快捷键

# 跳到命令行最前端
ctrl + a
# 跳到命令行最后端
ctrl + e
# 删除命令行至光标处
ctrl + u
# 删除光标处往后的所有命令行
ctrl + k

8.配置命令开机自动执行脚本

# 1.通过编辑/etc/rc.d/rc.local脚本,将所要执行的脚本目录写入 注:如果/etc/rc.d/rc.local里边的脚本在重启服务器之后没有执行,则需要为其加上执行期限 chmod +x /etc/rc.d/rc.local
vim /etc/rc.d/rc.local
# 内容如下图

Linux常用小记_第2张图片

# 2.通过编写sh脚本来执行开机需要开启的应用或服务,自定义一个存放脚本的目录并授予执行权限
mkdir /usr/local/diy_sh
chmod +x /usr/local/diy_sh
# 3.根据需求创建对应执行脚本,内容如下图
vim /usr/local/diy_sh/firewalld-service-start.sh

# 4.为编写的脚本赋予执行权限,至此已完成配置操作
chmod +x /usr/local/diy_sh/firewalld-sercice-start.sh

9.Linux精确或模糊查找文件或文件目录(find)

a) 精确查找文件 格式:find 查找目录 -name 文件名称

find / -name "error.log"

b) 精确查找目录 格式:find 查找目录 -type d -name 目录名称

find / -type d -name "log"

c) 模糊查找文件 格式:find 查找目录 -name *文件*名称* 

注:*可以根据需求随机放置到文件名称中

find / -name "*log*"

d) 模糊查找目录 格式:find 查找目录 -type d *目录名称   

注:*可以根据需求随机放置到文件名称中

find / -type d -name "*log"

10.Linux快捷文件操作

vim编辑文件

跳到文件开头处(gg)

# 英文模式下按两次键盘键g

跳到文件结尾处(shift+g) 

# 英文模式下按shift键+g键

sed替换文件内容

替换指定文件的内容(全部)

# 将/config/redis.conf中6379的字符串全部改为6380
sed -ie 's/6379/6380/g' /config/redis.conf

替换指定文件的内容(第几个)

# 将/config/redis.conf中第二个6379的字符串改为6380
sed -ie 's/6379/6380/2' /config/redis.conf

替换指定文件的内容写入新文件(新文件不存在的情况)

sed 's/6379/6380/g' /config/redis.conf > /config/redis-6380.conf

grep过滤指定文件符合要求的内容

获取指定文件中非空行的内容(常用于获取配置文件去除空格内容数据)

# ^$ 表示空行、-v 表示取反
grep -v "^$" /config/redis.conf
cat /config/redis.conf | grep -v "^$"

 获取指定文件中不是以#开头的内容(常用于获取配置文件去除注释内容数据)

# ^ 表示开头、-v 表示取反
grep -v "^#" /config/redis.conf

 特殊符号字母作用解析

^:开头
$:结尾
^$:空行
-E:扩展
-c:行号  
-d:解压
-i:不分大小
-v:取反
-l:显示行

11.Linux快速进入对应的目录(省略长路径的输入)

a) 编写快捷命令别名

# 通过编写~/.bashrc文件,加入快捷命令
vim ~/.bashrc

Linux常用小记_第3张图片

b) 保存文件,使文件生效

source ~/.bashrc

c) 测试,输入easyswoole2,直接进入对应目录,配置完成。


12.Linux查看服务器外网地址

第一种方式

# 获取外网IP、所在地址、运营商
curl cip.cc

第二种方式

# 直接获取外网地址
curl ip.sb

13.Linux查看服务器本地网络地址(局域网)

第一种方式

ip addr
# 简写
ip a

第二种方式

# ifconfig
ifconfig | grep inet

在最小化安装CentOs系统的情况下,系统默认是获取不到网卡的ip地址的,如何设置获取本地网卡的ip地址?

1.初始化安装完系统后,进行ip地址查看,结果如下:

Linux常用小记_第4张图片

2.原因在于系统未打开网卡,根据ip a查询的网卡名称,到/etc/sysconfig/network-scripts目录,找到ens32对应的网卡配置文件进行开启配置,保存配置并进行网络服务重启

# 进行网卡配置文件所在目录
cd /etc/sysconfig/network-scripts
# 开启网卡(找到与实际网卡名称对应的配置文件)
vim ifcfg-ens32

Linux常用小记_第5张图片

# 重启网络服务
systemctl restart network

3.再次查看ip地址信息,即可查看到

 Linux常用小记_第6张图片


14.Linux文件属性说明

每个文件对应10个字符,标识说明此文件的属性信息

# 查看文件属性
ll
# - --- --- --- 每个文件的10个文件符号
# - 首个符号 d-lbc
# d:表示目录 -:表示文件 l:表示链接 b:表示存储设备 c:表示串行设备
# 第2至10之间9个文件符号表示对不同用户对象的文件权限  rwx r:读权限 w:写权限 x:执行权限
# 2-4:表示创建此文件的用户的使用权限
# 5-7:表示创建此文件的用户所在的用户组的使用权限
# 8-10:表示与创建此文件的用户不在同一用户组的用户的使用权限

15.编写sh脚本与执行(可配合crontab完成定时执行程序)

# 进入对应自定义放置目录
cd /usr/local/diy_sh
# 开始编写
vim test_cli.sh

# 给脚本加上执行权限
chmod 700 /usr/local/diy_sh/test_cli.sh
# 调用脚本
sh /usr/local/diy_sh/test_cli.sh

16.检查指定软件包是否已安装(都可结合通配符查找)

a) rpm方式

# rpm包安装的,可通过rpm -qa进行全部列表查询,加上管道符则筛选指定名称软件包
rpm -qa | grep wget

b) yum方式

# yum源方式安装,通过yum list installed查询全部已安装列表,加上管道符则可筛选指定软件包
yum list installed | grep wget

17.清空文件内容

单文件

> filename

批量文件

# 首先,进入需要清空的文件目录中,通过find命令找到对应的文件;
# 遍历find命令找到的文件,通过do执行每个文件的清空操作;
# done 执行for操作
for i in `find . -name "*.log"`;do > $i;done;

18.查看已安装软件的所有相关配置文件与安装目录

# rpm -ql softname
rpm -ql nginx

19.常用信号量

信号描述 使用命令 作用
SIGCHLD kill -17 $PID 父子进程通信的信号量,用以给父进程发送信号
SIGQUIT kill -3 $pid
SIGTERM kill -15 $pid 相当于kill $PID,发送关闭进程的信号,等待进程处理完数据后优雅的关闭
SIGKILL kill -9 $pid 强制关闭进程
SIGHUP kill -1 $pid 终止子进程,重新打开新的子进程
SIGUSR1 kill -10 $pid
SIGUSR2 kill -12 $pid
SIGWINCH kill -28 $pid


20.复制文件、复制文本内容

复制文件--单个 

# old.txt--进入指定目录或者填写文件的绝对目录、new.txt--可指定生成位置,不指定目录,则默认生成和old.txt同一目录下
cp old.txt new.txt

复制文件--多个

# 第一种,根据文件名进行多文件匹配进行复制
cp *sh /new_dir/
# 第二种,拿到多个文件的路径并进行复制
cp a.txt b.txt c.txt /new_dir/

复制文本

# 第一种
## 1.点击Esc键,退出编辑模式
## 2.选择需要复制行,按home键或者向左方向键到行的头部,点击V键,进入VISUAL模式
## 3.按end键或者向右方向键到行的尾部,高亮需要复制的内容,按Y键进行复制,到需要粘贴的行按P键进行粘贴

# 第二种
## 1.点击Esc键,退出编辑模式
## 2.选择需要复制行,按home键或者向左方向键到行的头部,双击D键,截取整行内容
## 3.到上一行文本的尾部,按P键进行截取内容的粘贴

21.下载远程文件

# wget 加上-c是保证在资源未完全下载成功时,可以继续延续未完成的下载进度
wget -c http://xxx.xxx.xxx

22.shell的正则表达式

Linux常用小记_第7张图片


23.查看磁盘使用情况

 描述:通过指定某个目录(如:/)并结合指定查询的目录层次数(--max-depth)进行磁盘使用率查看

# 常用指定某个目录并指定目录层次进行使用情况列表
du -h / --max-depth=1

Linux常用小记_第8张图片Linux常用小记_第9张图片


24.查找占用内存容量排名前几(文件大小排名)的文件

# /:指定目录 
# -type:文件类型 f:文件 
# -exec:在所选文件上运行指定命令
# du:计算文件占用的磁盘空间的命令
 -S:不包含子目录的大小 -h:以可读格式打印 
# {}:递归地查找目录,统计每个文件占用的磁盘空间
# sort:对文本文件进行按行排序的命令 -r:反转结果
# head:输出文件开头部分的命令 n -10:打印前10个文件
# -print0:在标准输出显示完整的文件名,其后跟一个空字符(null)
# xargs:将标准输入转换成命令行参数的命令 -0:以空字符(null)而不是空白字符(LCTT 译者注:即空格、制表符和换行)来分割记录
# cut:从每行删除特定部分的命令 -f2:只选择特定字段值
# tail -10:输出文件结尾部分的命令(最后 10 个文件)
# column:将其输入格式化为多列的命令 -t:确定输入包含的列数并创建一个表
# awk:模式扫描和处理语言 '{print $7,$11}':只打印指定的列
# 1.效率最高
find / -type f -exec du -Sh {} + | sort -rh | head -n 10
# 另外几种方法
find / -type f -print0 | xargs -0 du -h | sort -rh | head -n 10
find / -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}
find / -type f -ls | sort -k 7 -r -n | head -10 | column -t | awk '{print $7,$11}'

25.开启命令补齐功能

通过安装bash-completion包

# 安装bash-completion
yum -y install bash-completion
# 重启生效
reboot

未安装前

安装后


26.通过ssh连接服务器

# dong 用户名
# 192.168.0.122 连接的服务器IP
# 22 端口号
ssh [email protected] -p 22

27.Vmware扩展磁盘 

复制下边这博主的方法即可,需要注意的是vgs和lvs操作时,cl_angular换成实际机器上的名称

Vmware添加磁盘的方法:扩展磁盘_淼叔的博客-CSDN博客_vmware磁盘扩展

28.列举文件并显示文件大小(size:K、M、G)

ll -h

你可能感兴趣的:(Linux,工具,linux,shell,centos)