【Linux】Linux常用小记

253 阅读20分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

目录

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快速进入对应的目录(省略长路径的输入)

a) 编写快捷命令别名

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

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

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

a) 第一种

b) 第二种

12.Linux查看服务器本地网络地址

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

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

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

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

13.Linux文件属性说明

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

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

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

a) rpm方式

b) yum方式

16.清空文件内容

单文件

批量文件

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

18.常用信号量

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

复制文件--单个 

复制文件--多个

复制文本

20.下载远程文件

21.shell的正则表达式

22.查看磁盘使用情况

23.开启命令补齐功能

通过安装bash-completion包


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" /

根据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

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

# 创建目录
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
# 内容如下图

# 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快速进入对应的目录(省略长路径的输入)

a) 编写快捷命令别名

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

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

source ~/.bashrc

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


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

a) 第一种

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

b) 第二种

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

12.Linux查看服务器本地网络地址

# 查看本地ip地址
ip addr
# 简写
ip a

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

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

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

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

  

# 重启网络服务
systemctl restart network

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


13.Linux文件属性说明

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

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

14.编写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

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

a) rpm方式

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

b) yum方式

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

16.清空文件内容

单文件

> filename

批量文件

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

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

# rpm -ql softname
rpm -ql nginx

18.常用信号量

信号描述使用命令作用
SIGCHLDkill -17 $PID父子进程通信的信号量,用以给父进程发送信号
SIGQUITkill -3 $pid
SIGTERMkill -15 $pid相当于kill $PID,发送关闭进程的信号,等待进程处理完数据后优雅的关闭
SIGKILLkill -9 $pid强制关闭进程
SIGHUPkill -1 $pid终止子进程,重新打开新的子进程
SIGUSR1kill -10 $pid
SIGUSR2kill -12 $pid
SIGWINCHkill -28 $pid

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

复制文件--单个 

# 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键进行截取内容的粘贴

20.下载远程文件

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

21.shell的正则表达式


22.查看磁盘使用情况

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

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


23.开启命令补齐功能

通过安装bash-completion包

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

未安装前

安装后