预期学习目标
- CentOS的安装
- 相关命令的学习
- 脚本的编写
- 定时任务的编写
- vim的学习
系统设置
项目部署
项目权限设置
- 确认 SELinux 的状态
[root@centos7 ~]$ /usr/sbin/sestatus -v
# SELinux status: enabled
[root@centos7 ~]$ getenforce
# enabled
- 关闭 SELinux
- 修改配置文件并重启
[root@centos7 ~]$ vim /etc/selinux/config
# SELINUX=disabled
[root@centos7 ~]$ reboot
- 查看进程的用户
[root@centos7 ~]$ ps -axu | grep nginx
# root 880 0.0 0.0 120808 2104 ? Ss 10:23 0:00 nginx: master process /usr/sbin/nginx
# nginx 883 0.0 0.0 121192 3592 ? S 10:23 0:00 nginx: worker process
# sea 1263 0.0 0.0 112704 968 pts/0 R+ 10:29 0:00 grep --color=auto nginx
用户权限
- 将用户加入 git 组
[root@centos7 ~]$ usermod -a -G git apache
[root@centos7 ~]$ usermod -a -G git mysql
[root@centos7 ~]$ usermod -a -G git nginx
- 查看组内用户
[sea@centos7 ~]$ cat /etc/group | grep git
# git:x:1002:apache,mysql,nginx
文件传输
- 文件的上传与下载
sz ( send Zmodem ) :
用 Zmodem 文件传输协议从 Linux 服务器发送文件到 Window
rz ( receive Zmodem ) :
用 Zmodem 文件传输协议在 Linux 服务器上接收文件,即 Window 上传文件到 Linux
不支持上传文件夹,需要打包后上传文件再解压
# 安装
yum -y install lrzsz
# 下载
sz filename
# 上传(Xshell 直接拖拽就好,用不到这个,用的多的还是 sz )
rz
- 传输文件
# 指定端口传输
scp -P 1080 vendor.zip [email protected]:/home/git
压缩解压
- 压缩文件
参数 | 全称 | 解释 |
---|---|---|
-c | --create | 创建一个新归档 |
-x | --extract | 从归档中解出文件 |
-r | --append | 追加文件至归档结尾 |
-t | --list | 列出归档内容 |
-z | --gzip | 通过 gzip 过滤归档 |
-v | --verbose | 详细地列出处理的文件 |
-f | --file | 使用归档文件 |
tar -czvf /tmp/etc.tar.gz /etc
参数 | 解释 |
---|---|
-m | 将文件压缩之后,删除源文件 |
-n | 特定字符串 不压缩具有特定字尾字符串的文件 |
-o | 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间 |
-q | 安静模式,在压缩的时候不显示指令的执行过程 |
-r | 将指定的目录下的所有子目录以及文件一起处理 |
-S | 包含系统文件和隐含文件 |
-t | 日期 把压缩文件的最后修改日期设为指定的日期,日期格式为mmddyyyy |
# 解压
unzip filename.zip
# 压缩
zip -f /tmp/etc.zip /etc
系统语言
- 各个LC_环境变量含义
优先级: LC_ALL > LC_* >LANG
名称 | 含义 |
---|---|
LC_CTYPE | 语言符号及其分类 |
LC_NUMERIC | 数字 |
LC_COLLATE | 比较和排序习惯 |
LC_TIME | 时间显示格式 |
LC_MONETARY | 货币单位 |
LC_MESSAGES | 信息主要是提示信息,错误信息,状态信息,标题,标签,按钮和菜单等 |
LC_NAME | 姓名书写方式 |
LC_ADDRESS | 地址书写方式 |
LC_TELEPHONE | 电话号码书写方式 |
LC_MEASUREMENT | 度量衡表达方式 |
LC_PAPER | 默认纸张尺寸大小 |
LC_IDENTIFICATION | 对locale自身包含信息的概述 |
- 语言的更改
查看当前语言
[root@centos7 ~]$ echo $LANG
# zh_CN.UTF-8
[root@centos7 ~]$ locale
# LANG=en_US.UTF-8
# LC_ALL=zh_CN.gbk
- 终端临时更改系统语言
[root@centos7 ~]$ export LANG="en_US.UTF-8"
[root@centos7 ~]$ echo $LANG
# en_US.UTF-8
- 全局更改系统语言
[root@centos7 ~]$ vim /etc/locale.conf
#LANG="en_US.UTF-8"
图形界面
- 关闭图形界面
# 查看当前运行模式
systemctl get-default
# 使用命令模式
systemctl set-default multi-user.target
# 使用图像界面模式
systemctl set-default graphical.target
其他杂项
- 查看文件大小
# 查看目录大小(包括子目录)
du -sh directory
- 命令
cd -
# 回到上次的目录
grep -i
# 忽略大小写的正则匹配
grep -v
# 反选(选区不匹配的项)
grep -E '^[0-3]|[abc]&'
# 支持正则表达式语法
- xargs
xargs
用作替换工具,读取输入数据重新格式化后输出
# 多行输入单行输出
cat args.txt | xargs
# 多行输入多行输出
cat args.txt | xargs -n 3
# 根据指定分隔符划分并输出
cat args.txt | xargs -d 'args'
# 指定一个符号并将该符号替换用输出的元素替换
cat args.txt | xargs -n 1 | xargs -I [] echo []-copy-[]
- sed
# 还没写
- 文件类型
标识 | 解释 | 颜色标识 |
---|---|---|
- | 普通文件 | 白色 |
- | 可执行文件 | 绿色 |
- | 压缩文件 | 红色 |
- | 图片文件 | 粉色 |
- | SGID特殊权限文件 | 背景色黄色 |
- | SUID特殊权限文件 | 背景色红色 |
d | 目录文件 | 蓝色 |
d | 公开目录 | 背景色绿色 |
p | 管道文件 | 暗黄色 |
s | 套接字文件 | 洋红 |
c | 字符设备文件 | 黄色 |
l | 软链接文件 | 浅蓝色 |
b | 块设备文件 | 黄色 |
快快捷指令
文本编辑
插件 : Chrome 下载 Vimium , PhpStorm 下载 ideaVim
- 配置
.vimrc
# 编辑个人主目录的VIM配置文件
vim ~/.vimrc
# 设置支持GB2312和UTF8等编码
let &termencoding=&encoding
set fileencodings=utf-8,gbk,ucs-bom,cp936
# tab 扩展为空格
set expandtab
# tab 的宽度为 4 个空格
set ts=4
# 使粘贴代码时不会乱
set paste
# vim的注释符号
"
- 快捷键
gg : 跳转到第一行
GG : 跳转到最后行
^ : 跳转到行首
$ : 跳转到行尾
yy : 复制整行
p : 粘贴
N : 向上查找
n : 向下查找
u : 撤销更改
a : 从当前位置插入
- 命令
替换字符串
# 全局查找「foo」替换为「bar」并且需要确认「y/n/a/q/l/^E/^Y」
:%s/foo/bar/gc
# 显示行号
:set number
# 将文件转化为UNIX格式
:set fileformat=unix
脚本命令
- 基本概念
# 所有参数
$@
# 传入脚本的参数个数
$#
# 参数赋值
param=$1
# 引号的区别
单引号不解析 双引号会解析变量
# 调试追踪
sh -x
- 界面快捷键
Ctrl + A : 跳转到命令的行首
Ctrl + E : 跳转到命令的行尾
Ctrl + U : 删除整行
定时任务
参数说明
# 查看定时任务列表
crontab -l
# 查看指定用户的定时任务列表
crontab -l -u username
# 查看所有用户的定时任务( root 权限执行)
cat /etc/passwd | cut -f 1 -d : |xargs -I {} crontab -l -u {}
# 定时任务中开头为井号(`#`)的行是注释
常用软件
- fping
批量检测地址连通性
- nc
批量检测端口连通性、端口是否开放
运维技能
系统状态
- 系统负荷 : N 个CPU的电脑,可接受的系统负荷最大为 N
# 实时状态
top
- 查看进程
# 显示所有包含其他使用者的行程
ps -axu
# 显示所有包含其他使用者的行程并显示程序间的关系
ps -axuf
系统防护
- DenyHosts
DenyHosts 是 Python 语言写的一个程序,它会分析 sshd 的日志文件(默认是 /var/log/secure ),当发现重复的攻击时就会记录 IP 到 /etc/hosts.deny 文件,启用 tcp_wrappers,从而达到自动屏IP的功能。
# 查看 hosts.deny
cat /etc/hosts.deny
- firewall
# 查看状态
systemctl status firewalld.service
# 添加端口
firewall-cmd --zone=public --permanent --add-port=2375/tcp
# 查看防火墙规则
firewall-cmd --list-all
相关文章
Linux 学习笔记(一):内网穿透
Linux 学习笔记(二):搭建个人Git服务器
Linux 学习笔记(三):Ubuntu 操作系统
Linux 学习笔记(四):Docker
Linux 学习笔记(五):Redis
Linux 学习笔记(六):Linux