Linux 学习笔记(六):Linux

预期学习目标

  • 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

你可能感兴趣的:(vim,shell,crontab,linux,centos)