目录
1.定义全局环境变量:有两种永久生效的方式(作用于系统全部用户或当前操作用户)
13.编写sh脚本与执行(可配合crontab完成定时执行程序)
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.查看日志并查找关键字
a) 通过grep查找(推荐)
# 单个文件
grep "2020/06/18" /usr/local/nginx/log/error.log
# 递归搜索目录
grep -R "2020/06/18" /usr/loca/nginx
b) 根据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
# 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文件属性说明
每个文件对应10个字符,标识了此文件的属性
# 查看文件属性
ll
# - --- --- --- 每个文件的10个文件符号
# - 首个符号 d-lbc
# d:表示目录 -:表示文件 l:表示链接 b:表示存储设备 c:表示串行设备
# 第2至10之间9个文件符号表示对不同用户对象的文件权限 rwx r:读权限 w:写权限 x:执行权限
# 2-4:表示创建此文件的用户的使用权限
# 5-7:表示创建此文件的用户所在的用户组的使用权限
# 8-10:表示与创建此文件的用户不在同一用户组的用户的使用权限
13.编写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
14.检查指定软件包是否已安装(都可结合通配符查找)
a) rpm方式
# rpm包安装的,可通过rpm -qa进行全部列表查询,加上管道符则筛选指定名称软件包
rpm -qa | grep wget
b) yum方式
# yum源方式安装,通过yum list installed查询全部已安装列表,加上管道符则可筛选指定软件包
yum list installed | grep wget
15.清空文件内容
单文件
> filename
批量文件
# 首先,进入需要清空的文件目录中,通过find命令找到对应的文件;
# 遍历find命令找到的文件,通过do执行每个文件的清空操作;
# done 执行for操作
for i in `find . -name "*.log"`;do > $i;done;
16.查看已安装软件的所有相关配置文件与安装目录
# rpm -ql softname
rpm -ql nginx
17.常用信号量
信号描述 | 使用命令 | 作用 |
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 |
18.复制文件、复制文本内容
复制文件--单个
# 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键进行截取内容的粘贴
19.下载远程文件
# wget 加上-c是保证在资源未完全下载成功时,可以继续延续未完成的下载进度
wget -c http://xxx.xxx.xxx