Glittering's blog Glittering's blog
Home
  • 学习手册

    • 《JavaScript教程》
    • 《ES6 教程》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
  • 技术文档
  • 算法
  • 工作总结
  • 实用技巧
  • collect
About
  • Classification
  • Label
GitHub (opens new window)

Glitz Ma

前端开发工程师
Home
  • 学习手册

    • 《JavaScript教程》
    • 《ES6 教程》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
  • 技术文档
  • 算法
  • 工作总结
  • 实用技巧
  • collect
About
  • Classification
  • Label
GitHub (opens new window)
  • 技术文档

    • Nginx使用手册
    • shell基础知识
    • linux常用命令
      • Linux基础及文件
        • 2.版本
        • 3. Linux与Windows的不同
        • 4. 连接服务器
        • 5. 分区
        • 6. 挂载点
      • linux常用命令
        • 1. 目录
        • 1.2 命令基本格式
        • 1.2.1 命令提示符
        • 1.2.2 命令格式
        • 1.2.3 ls
        • 1.2.3.1 -l
        • 1.2.3.2 文件类型和权限
        • 1.3 文件处理命令
        • 1.3.1 mkdir
        • 1.3.2 cd
        • 1.3.3 pwd
        • 1.3.4 rmdir
        • 1.3.5 rm
        • 1.3.6 cp
        • 1.3.7 mv
        • 1.3.8 ln
        • 1.3.8.1 硬链接特征
        • 1.3.8.2 软链接特征
        • 1.4 文件搜索命令
        • 1.4.1 locate
        • 1.4.2 whereis
        • 1.4.3 which
        • 1.4.4 环境变量
        • 1.4.5 find
        • 1.4.5.1 按名称搜索
        • 1.4.5.2 通配符
        • 1.4.5.3 -i
        • 1.4.5.4 -user
        • 1.4.5.5 按时间搜索
        • 1.4.5.6 按大小搜索
        • 1.4.5.7 按i节点搜索
        • 1.4.5.8 综合应用
        • 1.4.5.9 grep
        • 1.5 帮助命令
        • 1.5.1 基本用法
        • 1.5.2 man的级别
        • 1.5.3 查看命令级别
        • 1.5.4 关键字搜索
        • 1.5.5 shell 内部帮助
        • 1.6 压缩与解压缩命令
        • 1.6.1 zip格式
        • 1.6.2 gzip
        • 1.6.3 .bz2格式压缩
        • 1.6.4 tar
        • 1.6.5 tar.gz压缩格式
        • 1.7 关机和重启命令
        • 1.7.1 shutdown
        • 1.7.2 init
        • 1.7.3 logout
        • 1.8 挂载
        • 1.8.1 挂载命令
        • 1.8.2 挂载命令格式
        • 1.8.3 挂载光驱
        • 1.8.4 卸载光驱
        • 1.8.4 挂载U盘
        • 1.9 查看登录用户信息
        • 1.9.1 w
        • 1.9.2 who
        • 1.9.3 last
        • 1.9.4 lastlog
        • 2. shell
        • 2.1 查看支持的shell
        • 2.2 echo
        • 2.3 编写执行shell
        • 2.4 别名
        • 2.5 命令的生效顺序
        • 2.6 命令快捷键
        • 2.7 历史命令
        • 2.8 调用
        • 2.9 输出重定向
        • 2.9.1 标准输入输出
        • 2.9.2 输入重定向
        • 2.10 管道符号
        • 2.10.1 多命令顺序执行
        • 2.10.2 管道符号
        • 2.10.3 通配符
        • 2.10.4 其它符号
        • 3. vi编辑器
        • 3.1 操作模式
        • 3.2 常用指令
        • 3.2.1 底行模式
        • 3.2.2 命令模式
        • 4. 用户和用户组
        • 4.1 用户组
        • 4.1.1 /etc/group
        • 4.1.2 /etc/gshadow
        • 4.1.3 /etc/passwd
        • 4.1.4 /etc/shadow
        • 4.2 用户操作
        • 5. 用户命令
        • 6. 附录
        • 6.1 系统启动
        • 6.1.1 BIOS
        • 6.1.2 硬件自检
        • 6.1.3 启动顺序
        • 6.1.4 主引导记录的结构
        • 6.1.5 分区表
        • 6.1.6 硬盘启动
        • 6.1.7 操作系统
        • 7 进程管理
        • 7.1 进程
        • 7.2 进程管理简介
        • 7.3 进程的查看命令(ps)
        • 7.3.1 选项
        • 7.3.2 结果字段含义
        • 7.3.3 进程状态(STAT)
        • 7.4 pstree
        • 7.5 进程的查看(top)
        • 7.5.1 选项
        • 7.5.2 交互模式的命令
        • 7.5.3 状态栏
        • 7.5.3.1 第一行为任务队列信息
        • 7.5.3.2 第二行为进程信息
        • 7.5.3.3 第三行为CPU信息
        • 7.5.3.4 第四行为物理内存信息
        • 7.5.3.5 第四行为交换分区信息
        • 7.6 杀死进程(kill)
        • 7.6.1 进程信号
        • 7.6.2 杀死进程
        • 8. 系统资源查看
        • 8.1 vmstat
        • 8.1.1 (procs)进程信息字段
        • 8.1.2 memory(内存信息字段)
        • 8.1.3 swap(交换分区信息)
        • 8.1.4 io(磁盘读写)
        • 8.1.5 system(系统信息字段)
        • 8.1.6 CPU(CPU信息字段)
        • 8.3 free
        • 8.3.1 第一行
        • 8.3.2 第二行
        • 8.3.3 第三行
        • 8.6 查看内核相关信息
        • 8.7 查看操作系统位数
        • 8.8 查看发行版本
        • 8.9 查看发行版本
        • 9. 系统定时任务
        • 9.2 crontab
        • 9.2.3 crontab设置
        • 9.2.3.1 语法
        • 9.2.3.2 位置
        • 9.2.3.3 特殊符号
        • 9.2.3.4 案例
        • 9.2.3.5 注意事项
        • 9.3 系统定时任务
        • 9.3.1 /etc/crontab
        • 10. 实战任务
        • 10.1 监控nginx
        • 10.2 监控mysql状态
        • 10.3 mysql备份脚本
        • 登陆授权
        • 关闭防火墙
        • 关闭 iptables
        • 确认停用 selinux
        • 安装依赖模块
    • HTTP协议详解
    • Markdown使用教程
    • npm常用命令
    • Git使用手册
    • npm packageJson属性详解
    • yaml语言教程
    • 现代前端技术解析读后感
    • nodejs学习日记1
    • nodejs学习日记2
  • 算法

  • 工作总结

  • 实用技巧

  • 收藏夹

  • 技术
  • 技术文档
mamingjuan
2015-08-22
目录

linux常用命令

# Linux基础及文件

  • Linux是一套免费使用和自由传播的类Unix操作系统
  • 在服务器端领域和嵌入式领域有非常广泛的应用

# 2.版本

分为内核版本和发型版本

  • kernel
  • 各个厂商会制作自己的发行版本
    • redhat
    • CentOS
    • ubuntu
    • fedora

# 3. Linux与Windows的不同

  • Linux严格区分大小写
  • Linux中所有的内容以文件形式保存,包括硬件、用户和文件。
  • Linux不靠扩展名区分文件类型,是靠权限来区分,但是有一些约定的扩展名,是给管理员看的
    • 压缩包 .gz .bz2 .tar.bz2 .tgz
    • 二进制文件 .rpm
    • 网页文件 .html .php
    • 脚本文件 .sh
    • 配置文件 .conf
  • Windows下的程序不能直接在Linux中安装和运行
  • Linux更多使用字符界面
    • 占用的系统资源更少
    • 减少了出错和被攻击的可能性,会让系统更稳定

如何购买服务器

  • 阿里云 ECS
  • 亚马逊 AWS
  • 百度云
# 4. 连接服务器
  • git bash
  • mac shell
  • xshell4
  • xftp4
# 5. 分区

磁盘分区是使用分区编辑器在磁盘上划分几个逻辑部分
磁盘一旦划分成多个分区,不同类的目录与文件可以存储进不同的分区内

# 6. 挂载点
  • 为了让Linux系统中可以访问这些分区,需要把这些分区挂载到对应的目录上
  • 在Linux中是把目录称为挂载点
  • 把目录和分区链接在一起的过程成为挂载
  • /为根目录,必须挂载到一个分区上,默认所有子目录都会写入这个分区
  • 同一级目录下面的所有子目录可以有自己的独立存储空间
  • 必须有的分区
    • / 根分区
    • swap分区(交换分区,虚拟内存,一般为内存的2倍,不要超过2G)
  • 推荐分区
    • /boot (启动分区,200M) 单独分区,避免分区写满造成系统无法启动

# linux常用命令

# 1. 目录

目录 用途
/ 根目录
/boot 启动目录,启动相关文件
/dev 设备文件
/etc 配置文件
/home 普通用户的家目录,可以操作
/lib 系统库保存目录
/mnt 移动设备挂载目录
/media 光盘挂载目录
/misc 磁带机挂载目录
/root 超级用户的家目录,可以操作
/tmp 临时目录,可以操作
/proc 正在运行的内核信息映射, 主要输出进程信息、内存资源信息和磁盘分区信息等等
/sys 硬件设备的驱动程序信息
/var 变量
/bin 普通的基本命令,如ls,chmod等,一般的用户也都可以使用
/sbin 基本的系统命令,如shutdown,reboot,用于启动系统,修复系统,只有管理员才可以运行
/usr/bin 是你在后期安装的一些软件的运行脚本
/usr/sbin 放置一些用户安装的系统管理的必备程序

# 1.2 命令基本格式

# 1.2.1 命令提示符
[root@localhost ~]#
1
  • root 当前登录用户
  • localhost 主机名
  • ~ 当前工作目录,默认是当前用户的家目录,root就是/root,普通用户是 /home/用户名
  • 提示符 超级用户是 #,普通用户是$
# 1.2.2 命令格式
  • 命令 [选项] [参数]
  • 当有多个选项时,可以写在一起
  • 一般参数有简化和完整写法两种 -a 与 --all等效
# 1.2.3 ls
  • 查询目录中的内容
  • ls [选项] [文件或者目录]
  • 选项
    • -a 显示所有文件,包括隐藏文件
    • -l 显示详细信息
    • -d 查看目录本身的属性而非子文件 ls /etc/
    • -h 人性化的方式显示文件大小
    • -i 显示inode,也就是i节点,每个节点都有ID号
  • 默认当前目录下的文件列表
# 1.2.3.1 -l

显示详细信息

drwxr-xr-x .  1 root  root   800 Sep 16 00:19 logs
1
drwxr-xr-x . 1 root root 800 Sep 16 00:19 logs
文件类型和权限 ACL权限 硬链接引用计数 所有者 所属组 文件大小 最后修改时间 文件名
# 1.2.3.2 文件类型和权限
-rw-r--r--
1
  • 文件类型 - 文件、d 目录、l 软链接文件
  • u(所有者)、g(所属组)、o(其他人)
  • r(read) 读取、w(write) 写入、x(execute) 执行

# 1.3 文件处理命令

# 1.3.1 mkdir
  • 建立目录 make directory
  • mkdir -p [目录名]
    • -p 递归创建
# 1.3.2 cd
  • 切换所在目录 change directory
  • cd [目录]
    • ~ 家目录
    • 家目录
    • 上次目录
    • . 当前目录
    • .. 上级目录
  • 相对路径是参照当前所在目录
  • 绝对路径是从根目录开始
  • 按TAB键可以补全命令和目录
# 1.3.3 pwd
  • 显示当前目录 pwd
# 1.3.4 rmdir
  • 删除目录 remove empty directory
  • rmdir [目录名]

# 1.3.5 rm

  • 删除文件或者目录 remove
  • rm [文件或者目录]
    • -r 删除目录
    • -f 强制删除
  • rm -rf 文件或者目录] 递归强制删除所有目录
# 1.3.6 cp
  • copy 复制命令
  • copy [源文件或者目录] [目标文件]
    • -r 复制目录,默认是复制文件
    • -p 连带文件属性复制
    • -d 若源文件是链接文件,则复制连接属性
    • -a 相当于 -rpd
# 1.3.7 mv
  • 移动文件或者改名 move
  • mv [源文件或者目录] [目标文件]

当第二个参数类型是文件时,mv命令完成文件重命名,它将所给的源文件或目录重命名为给定的目标文件名。
当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。

# 将webdata 移动到/bin/usr/中
mv  webdata  /bin/usr/

# 将 /usr/lib/下所有的东西移到/zone/中。
mv    /usr/lib/*    /zone


# 是将lib下以txt结尾的所有文件移到/zone中。
mv    /usr/lib/*.txt    /zone

# 将文件temp.txt 修改名字为tempTest.txt
mv   temp.txt  tempTest.txt

1
2
3
4
5
6
7
8
9
10
11
12
13

[options]主要参数(几个重要的参数)
-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答”y”或”n”,这样可以避免误覆盖文件。
-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。 - r 指示mv将参数中列出的全部目录和子目录均递归地移动。

# 1.3.8 ln
  • 链接命令,生成链接文件 link
# 1.3.8.1 硬链接特征
  • 拥有相同的i节点和存储block块,可以看作是同一个文件
  • 可以通过i节点访问
  • 不能跨分区
  • 不能针对目录使用
  • 一般不使用
# 1.3.8.2 软链接特征
  • ln -s [源文件] [目标文件]
    • -s 创建软链接
  • 类似Windows快捷方式
  • 软链接拥有自己的i节点和Block块,但是数据块中只保存源文件的文件名和i节点号,并没有实际的文件数据
  • lrwxrwxrwx l 软链接 软链接的文件权限都是 777
  • 修改任意一个文件,另一个都会改变
  • 删除源文件,软链接不能使用
  • 软链接源文件必须写绝对路径

# 1.4 文件搜索命令

# 1.4.1 locate
  • 在后台数据库中按文件名搜索,速度比较快
  • 数据保存在/var/lib/mlocate后台数据库,每天更新一次
  • 可以updatedb命令立刻更新数据库
  • 只能搜索文件名
  • /etc/updatedb.conf 建立索引的配置文件
    • PRUNE_BIND_MOUNTS = "yes" 全部生效,开启搜索限制
    • PRUNEFS 不搜索的文件系统
    • PRUNENAMES 忽略的文件类型
    • PRUNEPATHS 忽略的路径 /tmp
# 1.4.2 whereis
  • 搜索命令所在路径以及帮助文档所在位置
  • whereis 命令名 whereis ls
    • -b 只查找可执行文件
    • -m 只查找帮助文件
# 1.4.3 which

可以看到别名 which ls 能看到的都是外部安装的命令 无法查看Shell自带的命令,如 which cd

# 1.4.4 环境变量

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

  • 定义的是系统搜索命令的路径
  • echo $PATH
# 1.4.5 find
  • 文件搜索命令
  • find [搜索范围] [搜索条件]
# 1.4.5.1 按名称搜索
  • 避免大范围的搜索,会非常消耗系统资源
find / -name aaa.log
1
# 1.4.5.2 通配符
  • find是在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配
  • 通配符
    • * 匹配任意内容
    • ? 匹配任意一个字符
    • [] 匹配任意一个中括号内的字符
find . -name "ab[cdef]"
1
# 1.4.5.3 -i

不区分大小写

find / -iname A.log
1
# 1.4.5.4 -user

按所有者进行搜索

find /root -user root
find /root -nouser
1
2
# 1.4.5.5 按时间搜索
find /nginx/access.log -mtime +5
1
参数 含义
atime 文件访问时间
ctime 改变文件属性
mtime 修改文件内容
参数 含义
-5 5天内修改的文件
5 5天前当前修改的文件
+5 5天前修改的文件
# 1.4.5.6 按大小搜索
  • k小写,M大写
find . -size 100k
1
参数 含义
-8k 小于8K
8k 等于8K
+8k 大于8K
+8M 小于8M
# 1.4.5.7 按i节点搜索
find . -inum 123456
1
# 1.4.5.8 综合应用
find /tmp -size +10k -a -size -20k
1
  • 查找/etc目录下,大于10KB并且小于20KB的文件
  • -a and 逻辑与,两个条件都满足
  • -o or 逻辑或,两个条件满足一个就可以
find /tmp -size +10k -a -size -20k -exec ls -lh {} \;

1
2
  • exec 对上个命令的结果进行操作
# 1.4.5.9 grep
  • 在文件当中匹配符合条件的字符串
  • grep "10" access.log
    • -i 忽略大小写
    • -v 排除指定字符串
  • find命令,在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配
  • grep命令 在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式时包含匹配

# 1.5 帮助命令

# 1.5.1 基本用法
  • man 命令 获取指定命令的帮助
  • man ls 查看ls的帮助
# 1.5.2 man的级别
  • 1 查看命令的帮助
  • 2 查看可被内核调用的函数的帮助
  • 3 查看函数和函数库的帮助
  • 4 查看特殊文件的帮助
  • 5 查看配置文件的帮助
  • 6 查看游戏的帮助
  • 7 查看其它的帮助
  • 8 查看系统管理员可用命令的帮助
  • 9 查看和内核相关文件的帮助
# 1.5.3 查看命令级别
  • 查看命令级别
  • 1p: POSIX utilities
  • POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准.
man -f ls
whatis ls
man 1 ls
man 1p ls
1
2
3
4
# 1.5.4 关键字搜索
- man -k passwd
1
# 1.5.5 shell 内部帮助
  • whereis找到就是外部,找不到就是内部
help cd
1

# 1.6 压缩与解压缩命令

后缀 .zip .gz .bz2 .tar.gz .tar.bz2

# 1.6.1 zip格式
  • 压缩文件 zip 压缩文件名 源文件
  • 压缩目录 zip -r 压缩文件名 源目录
  • 解压 unzip 压缩文件名
mkdir book
touch book/1.txt
touch book/2.txt
zip -r book.zip book
unzip book.zip
1
2
3
4
5
# 1.6.2 gzip
命令 示例 含义
gzip 源文件 gzip a.txt 压缩为.gz格式的压缩文件,源文件会消失
gzip c 源文件 > 压缩文件 gzip -c yum.txt > yum.txt.gz 压缩为.gz格式的压缩文件,源文件不会消失
gzip -r 目录 gzip -r xx 压缩目录下的所有子文件,但是不压缩目录
gzip -d 压缩文件名 gzip -d yum.txt.gz 解压缩文件,不保留压缩包
gunzip 压缩文件 gunzip yum.txt.gz 解压缩文件,不保留压缩包
  • 压缩是压缩目录下的文件
# 1.6.3 .bz2格式压缩
命令 示例 含义
bzip2 源文件 bzip2 1.txt 压缩为.bz2格式的文件,不保留源文件
bzip2 -k 源文件 zip2 -k 1.txt 压缩为.bz2格式的文件,保留源文件
bzip2 -d 压缩文件名 bzip2 -d 1.txt.bz2 解压压缩包
bunzip2 压缩文件名 bunzip2 1.txt.bz2 解压压缩包
  • bzip2 不能压缩目录
# 1.6.4 tar
  • 打包命令
  • tar -cvf 打包文件名 源文件
    • -c 打包
    • -v 显示过程
    • -f 指定打包后的文件名
tar -cvf book.tar book
gzip book.tar
bzip2 book.tar
1
2
3
  • x 解打包
tar -xvf book.tar
1
# 1.6.5 tar.gz压缩格式
  • 可以先打包为.tar格式,再压缩为.gz格式 -z 压缩为.tar.gz格式 -x 解压缩.tar.gz格式 。
命令 示例 含义
tar -zcvf 压缩包名 .tar.gz源文件 tar -zcvf book.gar.gz book 可以先打包为.tar格式,再压缩为.gz格式
tar -zxvf 压缩包名.tar.gz tar -zxvf book.tar.gz 解压tar.gz压缩包
tar -jcvf 压缩包名 .tar.bz2源文件 tar -zcvf .tar.bz2 book 可以先打包为.tar格式,再压缩为.bz2格式
tar -jxvf 压缩包名.tar.bz2 tar -zxvf book.tar.bz2 解压tar.bz2压缩包

# 1.7 关机和重启命令

# 1.7.1 shutdown

shutdown 关机命令

  • -c 取消前一个关机命令
  • -h 关机
  • -r 重启
shutdown -r 06:00
shutdown -c
1
2
# 1.7.2 init

关机

init 0
1

重启

init 6
1

系统的运行级别

  • 0 关机
  • 1 但用户
  • 2 不 完全多用户,不包含NFS服务
  • 3 完全多用户
  • 4 未分配
  • 5 图形界面
  • 6 重启
# 1.7.3 logout

退出登录

logout
1

# 1.8 挂载

# 1.8.1 挂载命令
  • mount 查看系统中已经挂载的设备
mount 
mount -a
1
2
# 1.8.2 挂载命令格式
  • mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
  • 选项
    • -t 文件系统 ext4 iso9660
    • -o 特殊选项
# 1.8.3 挂载光驱
mkdir /mnt/cd
mount -t iso9660 /dev/sr0 /mnt/cdrom
1
2
# 1.8.4 卸载光驱
umount /dev/sr0
umount /mnt/cdrom
1
2
# 1.8.4 挂载U盘
fdisk -l
mount -t vfat /dev/sdb1 /mnt/usb
1
2
  • linux默认不支持NTFS格式

# 1.9 查看登录用户信息

# 1.9.1 w

查看登录用户信息

  • USER 登录的用户名
  • TTY 登录的终端 tty1 本地终端 pts/0远程终端
  • FROM 登录的IP
  • LOGIN 登录时间
  • IDLE 用户闲置时间
  • JCPU 该终端所有进程占用的时间
  • PCPU 当前进程所占用的时间
  • WHAT 正在执行的命令
# 1.9.2 who

查看登录用户信息

  • USER 登录的用户名
  • TTY 登录的终端 tty1 本地终端 pts/0远程终端
  • LOGIN 登录时间(登录的IP)
# 1.9.3 last

查看当前登录和过去登录的用户信息 默认读取 /var/log/wtmp 文件

  • 用户名
  • 登录终端
  • 登录IP
  • 登录时间
  • 退出时间(在线时间)
# 1.9.4 lastlog

查看所有用户的最后一次登录时间

  • 用户名
  • 登录终端
  • 登录IP
  • 最后一次登录时间

# 2. shell

  • shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序
  • 用户可以用Shell来启动、挂起、停止或者编写一些程序
  • Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。
  • Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。

# 2.1 查看支持的shell

  • /etc/shells

# 2.2 echo

  • 输出命令
  • --e 支持反斜线控制的字符转换
控制字符 作用
\a 输出警告音
\b 退格键,也就是向左删除键
\n 换行符
\r 回车键
\t 制表符,也就是Tab键
\v 垂直制表符
\onnn 按照八进制ASCII码表输出字符,其中0为数字零,nnn是三位八进制数
\xhh 按照十六进制ASCII码表输出字符,其中hh是两位十六进制数
  • 30m-47m
  • echo -e "\e[1;31m warning \e[0m"
符号 颜色
#30m 黑色
#31 红色
#32 绿色
#33 黄色
##34 蓝色
##35 洋红
##36 青涩
##37 白色

# 2.3 编写执行shell

#!/bin/bash
echo -e "\e[1;34m hello world \e[0m"
1
2

赋予执行权限,直接运行

chmod 755 hello.sh
./hello.sh
1
2

通过Bash调用执行脚本

bash hello.sh
1

# 2.4 别名

  • 命令别名 == 小名
  • 临时生效
  • alias
  • alias rm="rm -i"
  • 写入环境变量配置文件 vi ~/.bashrc
  • source ~/.bashrc
  • unalias 别名 删除别名

# 2.5 命令的生效顺序

  • 绝对路径或者相对路径
  • 别名
  • bash内部命令
  • 按照$PATH环境变量定义的目录查找顺序找到的第一个命令

# 2.6 命令快捷键

命令 含义
ctrl+c 强制终止当前命令
ctrl+l 清屏
ctrl+a 光标移动到命令行首
ctrl+e 光标移动到命令行尾
ctrl+u 从光标所在的位置删除到行首
ctrl+z 把命令放入后台
ctrl+r 在历史命令中搜索

# 2.7 历史命令

  • history [选项] [历史命令保存文件]
  • 选项
    • -c 清空历史命令
    • -w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
  • 默认保存1000条 /etc/profile HISSIZE=10000

# 2.8 调用

  • 使用上下箭头调用以前的历史命令
  • 使用 !n 重复执行第n条历史命令
  • 使用 !! 重复执行上一条命令
  • 使用 !字符 重复执行最后一条以该字符串开头的命令

# 2.9 输出重定向

# 2.9.1 标准输入输出
设备 设备文件名 文件描述符 类型
键盘 /dev/stdin 0 标准输入
显示器 /dev/stdout 1 标准输出
显示器 /dev/stderr 2 标准错误输出
类型 符号 作用
标准输出重定向 命令 > 文件 以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中
标准输出重定向 命令 >> 文件 以追加的方式,把命令的正确输出输出到指定的文件或设备当中
错误输出重定向 命令>文件 以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中
错误输出重定向 命令>>文件 以追加的方式,把命令的错误输出输出到指定的文件或设备当中
正确输出和错误输出同时保存 命令>文件 2>&1 以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中
正确输出和错误输出同时保存 命令>文件 2>>&1 以追加的方式,把正确输出和错误输出都保存到同一个文件当中
正确输出和错误输出同时保存 命令&>文件 以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中
正确输出和错误输出同时保存 命令&>>文件 以追加的方式,把正确输出和错误输出都保存到同一个文件当中
正确输出和错误输出同时保存 命令>>文件1 2>文件2 以覆盖的方式,正确的输出追加到文件1中,把错误输出追加到文件2中
# 2.9.2 输入重定向
  • 命令 < 文件把文件做为命令的输入

  • 命令 << 标识符 标识符把标识符之间内容作为命令的输入

  • wc < access.log

  • wc <>

# 2.10 管道符号

# 2.10.1 多命令顺序执行
多命令执行符 格式 作用
; 命令1;命令2 多个命令执行,命令之间没有任何逻辑联系
&& 命令1&&命令2 逻辑与 当命令1正确执行,则命令2才会执行 当命令1执行不正确,则命令2不会执行
|| 命令1 || 命令2 逻辑或 当命令1执行不正确,则命令2才会执行 当命令1正确执行,则命令2不会执行
  • date;ls;date;ls
  • ls && echo yes || echo no
# 2.10.2 管道符号
  • 命令1的正确输出会作为命令2的操作对象
  • 命令1|命令2
ls /etc/ | more
netstat -an | grep ESTABLISHED | wc -l
1
2
# 2.10.3 通配符

匹配文件名和目录名

通配符 作用
? 匹配一个任意字符
* 匹配0个或任意字符,也就是可以匹配任意内容
[] 匹配中括号中任意一个字符
[-] 匹配中括号中任意一个字符,-代表范围
[^] 匹配不是中括号中的一个字符
# 2.10.4 其它符号
符号 作用
'' 单引号。在单引号中所有的特殊符号,如$和`都没有特殊含义
"" 双引号,在双引号里特殊符号都没有特殊含义,但是 $ ` \ 例外,拥有调用变量值,引用命令和转义的含义
`` 反引号,扩起来的是系统命令
$() 和反引号一样
# 在shell脚本中,#开头的行代表注释
$ 用于调用变量的值
\ 转义符号
 a=`ls`
 b=$(ls)
1
2

# 3. vi编辑器

  • VI visual interface
  • 可视化接口
  • 类似与windows中的记事本
  • vim支持多级撤销
  • 跨平台
  • 语法高亮
  • 支持图形界面

# 3.1 操作模式

模式名 含义
Command Mode 命令模式 等待输入的模式
Insert Mode 输入模式 编辑模式,用于输入文本
Last Line Mode 底行模式(尾行、末行) 可以输入指令,搜索,保存
  • vim + abc
  • vim +3 abc
  • vim +5 abc
  • vim +/xxx abc
  • vim a b c :n

# 3.2 常用指令

# 3.2.1 底行模式
  • :w 保存
  • :q 退出
  • :! 强制保存
  • :ls 列出所有的文件
  • :n 下一个
  • :N 上一个
  • :15 跳转到指定行
  • /xxx 从光标位置开始向后搜索 xxx 字符串
  • ?xxx 从光标位置开始向前搜索
# 3.2.2 命令模式
  • h 光标左移

  • j 光标下移

  • k 光标上移

  • l 光标右移

  • ctrl+f 向下翻页(front)

  • ctrl+b 向上翻页

  • ctrl+d 向下翻半页

  • ctrl+u 向上翻半页

  • dd 删除光标所在行

  • o 在光标所在行的下方插入一行并切换到输入模式

  • yy 复制光标所在的行

  • p 在光标所在行的下方粘贴

  • P 在光标所在行的上方粘贴

# 4. 用户和用户组

  • 使用操作系统的人都是用户
  • 用户组是具有相同系统权限的一组用户

# 4.1 用户组

# 4.1.1 /etc/group
  • /etc/group 存储当前系统中所有用户组信息
  • group:x:123:abc,def
  • 组名称:组密码占位符:组编号:组中用户名列表
  • root 组编号为0
  • 1-499系统预留的编号 预留给安装的软件和服务的
  • 用户手动创建的用户组从500开始
  • 组密码占位符都是x
# 4.1.2 /etc/gshadow
  • 存放当前系统中用户组的密码信息
  • 和group中的记录一一对应
  • Group: * : :abc
  • 组名称 组密码 组管理者 组中用户名
# 4.1.3 /etc/passwd
  • 存储当前系统中所有用户的信息
  • user:x:123:456:xxxxx:/home/user:/bin/bash
  • 用户名:密码占位符:用户编号: 用户注释信息:用户主目录:shell类型
# 4.1.4 /etc/shadow
  • 存放当前系统中所有用户的密码信息
  • user:xxx:::::::
  • 用户名:密码:

# 4.2 用户操作

添加组

groupadd student
1

修改组名称

groupmod -n stu student 
1

修改组编号

groupmod -g 111 stu 
1

添加分组并指定编号

groupadd -g 222 teacher 
1

删除分组

groupdel 222 
1

添加分组

groupadd teacher 
1

为用户指定所属组

useradd -g teacher zhangsan 
1

为用户指定所属组

useradd -g teacher lisi 
1

为用户指定工作目录

useradd -d /home/zhangsan zhangsan 
1

指定注释

usermod -c iamateacher zhangsan 
1

修改用户名

usermod -l zhangsan zhangsan2
1

指定文件夹

usermod -d /home/zhangsan2 zhangsan2 
1

修改用户所属组

usermod -g stu zhangsan2 
1

删除用户

userdel zhangsan2 
1

删除所属文件夹

userdel -r lisi 
1

# 5. 用户命令

显示登录的用户名

whoami
1

显示指定用户信息,包括用户编号,用户名 主要组的编号及名称,附属组列表

id zhangsan  
1

显示zhangsan用户所在的所有组

groups zhangsan 
1

显示用户详细资料

finger zhangsan  
1

# 6. 附录

# 6.1 系统启动

# 6.1.1 BIOS
  • 计算机通电后,第一件事就是读取刷入ROM芯片的开机程序,这个程序叫做(Basic Input/Output System)
# 6.1.2 硬件自检
  • BIOS程序首先检查,计算机硬件能否满足运行的基本条件,这叫做"硬件自检"(Power-On Self-Test)
  • 如果硬件出现问题,主板会发出不同含义的蜂鸣,启动中止。如果没有问题,屏幕就会显示出CPU、内存、硬盘等信息。
# 6.1.3 启动顺序
  • 硬件自检完成后,BIOS把控制权转交给下一阶段的启动程序。
  • 这时,BIOS需要知道,"下一阶段的启动程序"具体存放在哪一个设备
  • BIOS需要有一个外部储存设备的排序,排在前面的设备就是优先转交控制权的设备。这种排序叫做"启动顺序"(Boot Sequence)
  • BIOS按照"启动顺序",把控制权转交给排在第一位的储存设备。
  • 这时,计算机读取该设备的第一个扇区,也就是读取最前面的512个字节。如果这512个字节的最后两个字节是0x55和0xAA,表明这个设备可以用于启动;如果不是,表明设备不能用于启动,控制权于是被转交给"启动顺序"中的下一个设备。
  • 这最前面的512个字节,就叫做"主引导记录"(Master boot record,缩写为MBR)
# 6.1.4 主引导记录的结构
  • "主引导记录"只有512个字节,放不了太多东西。它的主要作用是,告诉计算机到硬盘的哪一个位置去找操作系统。
    • (1) 第1-446字节:是用来记录系统的启动信息的,调用操作系统的机器码
    • (2) 第447-510字节(64个字节):分区表(Partition table),分区表的作用,是将硬盘分成若干个区
    • (3) 第511-512字节:主引导记录签名(0x55和0xAA)
# 6.1.5 分区表
  • 磁盘分区是使用分区编辑器在磁盘上划分几个逻辑部分
  • 磁盘一旦划分成多个分区,不同类的目录与文件可以存储进不同的分区内
  • "主引导记录"因此必须知道将控制权转交给哪个区
  • 分区表的长度只有64个字节,里面又分成四项,每项16个字节。所以,一个硬盘最多只能分四个一级分区,又叫做"主分区"
    • (1) 第1个字节:如果为0x80,就表示该主分区是激活分区,控制权要转交给这个分区。四个主分区里面只能有一个是激活的。
    • (2) 第2-4个字节:主分区第一个扇区的物理位置(柱面、磁头、扇区号等等)。
    • (3) 第5个字节:主分区类型,比如FAT32、NTFS等。
    • (4) 第6-8个字节:主分区最后一个扇区的物理位置。
    • (5) 第9-12字节:该主分区第一个扇区的逻辑地址。
    • (6) 第13-16字节:主分区的扇区总数。
# 6.1.6 硬盘启动
  • 计算机的控制权就要转交给硬盘的某个分区了
  • 四个主分区里面,只有一个是激活的。计算机会读取激活分区的第一个扇区,叫做"卷引导记录"(Volume boot record,缩写为VBR)
# 6.1.7 操作系统
  • 控制权转交给操作系统后,操作系统的内核首先被载入内存。
  • 以Linux系统为例,先载入/boot目录下面的kernel。内核加载成功后,第一个运行的程序是/sbin/init。它根据配置文件(Debian系统是/etc/initab)产生init进程。这是Linux启动后的第一个进程,pid进程编号为1,其他进程都是它的后代
  • 然后,init线程加载系统的各个模块,比如窗口程序和网络程序,直至执行/bin/login程序,跳出登录界面,等待用户输入用户名和密码。

# 7 进程管理

# 7.1 进程

  • 进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间并且用一定的系统资源
  • 进程就是正在执行的某个程序

# 7.2 进程管理简介

  • 判断服务器的状态
  • 查看系统中的所有进程
  • 杀死进程,只有无法关闭才要杀死进程

# 7.3 进程的查看命令(ps)

  • ps aux 查看系统中所有进程,使用BSD操作系统格式
  • ps -le 查看系统中所有进程,使用Linux标准格式
  • TTY是TeleType的一个缩写,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西
  • pts(pseudo['su:doʊ]-terminal slave)是所谓的伪终端或虚拟终端
# 7.3.1 选项
参数 含义
-a 显示一个终端的所有进程
-u 显示进程的归属用户及内存的使用情况
-x 显示没有控制终端的进程
-l 长格式显示,显示更详细的信息
# 7.3.2 结果字段含义
数据 含义
USER 该进程是由哪个用户创建的
PID 进程的ID号
%CPU 该进程占用CPU资源的百分比,占用越高说明越消耗系统资源
%MEM 该进程占用物理内存的百分比,占用越高说明越消耗系统资源
VSZ 该进程占用虚拟内存的百分比,单位是KB
RSS 该进程占用实际物理内存大小,单位是KB
TTY 该进程在哪个终端中运行。tty1~tty7表示本地控制终端,tty1~tty6是字符终端,tty7是图形终端。pts/0~255代表虚拟终端,?表示此终端是系统启动的
STAT 进程状态
START 该进程的启动时间
TIME 该进程占用CPU的运算时间,数值越高说明越消耗系统资源
COMMAND 产生此进程的命令名
# 7.3.3 进程状态(STAT)
参数 含义
R(Runing) 运行
S(Sleep) 休眠
T(Terminated) 停止
S(Son) 包含子进程
+ 位于后台

# 7.4 pstree

  • pstree [选项]
    • -p 显示进程PID
    • -u 显示进程的所属用户

# 7.5 进程的查看(top)

  • top
top -b -n 1 > top.txt
1
# 7.5.1 选项
选项 含义
-b 使用批处理模式输出,一般和-n配合使用
-n 次数,指定top命令执行的次数。一般了-b选项配合使用
-d 秒数,指定top命令每隔几秒更新。默认是3秒
# 7.5.2 交互模式的命令
选项 含义
?或h 显示交互模式的帮助
P 按CPU使用率排序,默认就是此选项
M 以内存的使用率排序
N 以PID排序
q 退出top
# 7.5.3 状态栏
# 7.5.3.1 第一行为任务队列信息
内容 说明
12:12:12 系统的当前时间
up 1 day 5:33 系统的运行时间,本机已经运行了1天5小时33分
2 users 当前登录了二个客户端
load average 0 0 0 系统在之前1分钟、5分钟、15分钟的平均负载。一般认为小于1小时负载较小,大于1超过负载
# 7.5.3.2 第二行为进程信息
内容 说明
Tasks: 100 total 系统中的进程总数
1 running 正在运行的进程数
94 sleeping 睡眠的进程
0 stopped 正在停止的进程
0 zombie 僵尸进程。如果不是0的话要进行检查
# 7.5.3.3 第三行为CPU信息
内容 说明
Cpu(s): 0.1%us 用户模式占用的CPU百分比
0.1%sy 系统模式占用的CPU百分比
0.0%ni 改变过优先级的用户进程 占用的CPU百分比
99.7%id 空闲CPU的CPU百分比
0.1%wa 等待输入/输出的进程的占用CPU百分比
0.1%hi 硬中断请求服务占用的CPU百分比
0.1%si 软中断请求服务占用的CPU百分比
0.0%st st(Steal time)虚拟时间百分比,就是当有
# 7.5.3.4 第四行为物理内存信息
内容 说明
Mem: 1030720k total 物理内存的问题,单位是KB
551860k used 已经使用的物理内存数量
478860k free 空闲的物理内存数量,虚拟机分配了1024M内存,使用了538M,空闲467M
43180k buffers 作为缓冲的内存数量,可以存放需要写入硬盘的数据,用来加速数据的写入
# 7.5.3.5 第四行为交换分区信息
内容 说明
Swap: 2047992k total 总计的交换分区(虚拟内存)大小
536k used 已经使用的交换分区大小
2047456k free 空闲的交换分区大小
368164k cached 把需要经常读取的数据从硬盘读到内存中,加速了数据的读取

# 7.6 杀死进程(kill)

# 7.6.1 进程信号
  • kill -l 查看可用的进程信号 |信号 |代码 |信号名称 |说明 |示例| | -- | -- | -- | -- | -- | |1 |SIGHUP |该信号让进程立即关闭,然后重写读取配置文件后重启,平滑重启 |kill -1 -HUP 进程号| |2 |SIGINT |程序终止信号,用于关闭前台进程,相当于ctrl+c | |9 |SIGKILL |用来立刻结束程序的运行,本信号不能阻塞、处理和忽略,一般用于强制中止 | |15 |SIGTERM |正常结束进程的信号,kill命令的默认信号。如果不能正常中止,才会尝试SIGKILL信号|
# 7.6.2 杀死进程

sleep.sh

#!/bin/bash
i=0
while [ $i -le 1000 ]
 do
   echo $(date)
   sleep 1s
 done
1
2
3
4
5
6
7
sh sleep.sh &
ps -ef | grep sleep.sh
1
2
kill  进程号
1

# 8. 系统资源查看

# 8.1 vmstat

  • 监控系统资源使用状态
  • vmstat [刷新延时 刷新次数]
vmstat 1 3
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0    532 329932  99388 459768    0    0    16    81   59   50  3  1 96  0  0    
1
2
3
4
# 8.1.1 (procs)进程信息字段
分类 参数 含义
procs r 等待运行的进程数,数量越大,系统就越繁忙
procs b 不可被唤醒的进程数量,数量越大,系统越繁忙
# 8.1.2 memory(内存信息字段)
分类 参数 含义
memory swpd 使用的Swap空间的大小,单位KB
memory free 空闲的内存容量,单位KB
memory buff 缓冲的内存容量,单位KB
memory cache 缓存的内存容量,单位KB
# 8.1.3 swap(交换分区信息)
  • 如果说si和so数越大说明数据经常要在磁盘和内存之间数据交换,系统性能就会越差
分类 参数 含义
swap si(in) 从磁盘中交换到内存中的数据的数量,单位KB
swap so(out) 从内存中交换到硬盘中的数据的数量,单位KB
# 8.1.4 io(磁盘读写)
  • bi和bo数越大,说明磁盘的I/O越繁忙
分类 参数 含义
io bi(in) 从块设备读入数据的问题,单位是块
io bo(out) 写到块设备的数据的总量,单位是块
# 8.1.5 system(系统信息字段)
  • in和cs数越大,说明系统与接口设备的通信越繁忙
分类 参数 含义
system in(interrupt) 每秒被中断的进程次数
system cs(switch) 每秒钟进行的事件切换次数
# 8.1.6 CPU(CPU信息字段)
分类 参数 含义
CPU us(user) 非内核进程消耗CPU运算时间的百分比
CPU sy(system) 内核进程消耗CPU运算时间的百分比
CPU id(idea) 空闲CPU的百分比
CPU wa(wait) 等待I/O所消耗的CPU百分比
CPU st(steal) 被虚拟机偷走的CPU百分比

# 8.3 free

  • 查看内存使用状态
  • free [-b|-k|-m|-g]
  • 选项
    • -b 以字节为单位
    • -k 以KB字节为单位
    • -m 以MB字节为单位
    • -g 以GB字节为单位
# free -m
             total       used       free     shared    buffers     cached
Mem:          1006        687        319          0         98        449
-/+ buffers/cache:        139        866
Swap:         1999          0       1999
1
2
3
4
5
# 8.3.1 第一行
参数 含义
total 内存总数
used 已经使用的内存数
free 空闲的内存数
shared 多个进程共享的内存数
buffers 缓冲区内存数
cached 缓存内存数
# 8.3.2 第二行
参数 算法 含义
- buffers/cache 第一行的used-buffers-cached 已经使用的要减去缓存和缓冲的内存量
+ buffers/cache 第一行的free+buffers+cached 空闲的要加上缓存和缓冲的内存量
# 8.3.3 第三行
参数 含义
total swap总数,默认单位是K
used 已经使用的swap数,默认单位是K
free 空闲的swap数,默认单位是K

# 8.6 查看内核相关信息

  • uname
# uname -a
Linux localhost 2.6.32-279.el6.i686 #1 SMP Fri Jun 22 10:59:55 UTC 2012 i686 i686 i386 GNU/Linux
# uname -s
Linux
# uname -r
8.6.32-279.el6.i686
1
2
3
4
5
6

# 8.7 查看操作系统位数

file /bin/ls
1

# 8.8 查看发行版本

lsb_release -a
1

# 8.9 查看发行版本

yum install redhat-lsb -y
lsb_release -v
1
2

# 9. 系统定时任务

  • 有些任务比如备份数据库等操作需要在系统空闲的时候执行

# 9.2 crontab

  • 可以循环定时执行定时任务
  • cron (opens new window)
systemctl restart crond.service
1
# 9.2.3 crontab设置
  • crontab [选项]
  • 选项
    • -e 编辑crontab定时任务
    • -l 查询crontab任务
    • -r 删除当前用户所有的crontab任务
* * * * *  执行的任务
1
# 9.2.3.1 语法
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
1
2
3
4
5
6
7
# 9.2.3.2 位置
项目 含义 范围
第1个星 1个小时中的第几分钟 0~59
第2个星 1天当中的第几小时 0~23
第3个星 1月当中的第几天 1~31
第4个星 1年当中的第几月 1~12
第5个星 1周当中的星期几 0~6
# 9.2.3.3 特殊符号
符号 含义 例子
* 代表任意时间 比如第一个星就代表一个小时中每分钟都执行一次
, 代表不连续的时间 比如"1,2,3 ",就代表每小时的1分、2分、3分执行命令
- 代表连续的时间范围 比如 " 1-5 * ** ",代表每小时的第1分到第5分执行命令
*/n 代表每隔多久执行一次 比如 "/10 " 就代表每隔10分钟就执行一次命令
0 0 1,10 * 1 每月1号和10号,每周1的0点0分都会执行
# 9.2.3.4 案例
符号 含义
10 22 * 在每天的22点10分执行
0 15 1 每周1的15点0分执行
0 5 5,10 每月5号和10号的凌晨5点整执行
10 5 1-5 每周一到周五的凌晨5点10分执行命令
/10 10 每天凌晨10点钟,每隔10分钟执行一次
# 9.2.3.5 注意事项
  • 所有选项不能为空,必须填写
  • crontab最小单位是分钟,最大单位是天
  • 不管写命令还是脚本都要使用绝对路径

# 9.3 系统定时任务

crontab -e是用户执行的命令,不同的用户身份可以执行自己的定时任务 如果需要系统执行定时任务,可以编辑/etc/crontab文件 /etc/crontab可以指定shell、路径、邮件发送和家目录

# 9.3.1 /etc/crontab
  • 修改/etc/crontab配置文件
5 5 * * * echo `date` >> /root/date.log
1

# 10. 实战任务

# 10.1 监控nginx

nginx.sh

#!/bin/bash
local nginx
nginx=`ps -ef |grep nginx|grep -v grep|wc -l`
 if [ $nginx -gt 2 ];then
    echo "your nginx is running"
    exit 0
 else
    /bin/systemctl start nginx.service
    exit 1
fi
1
2
3
4
5
6
7
8
9
10

# 10.2 监控mysql状态

mysql.sh

#!/bin/sh
PortNum=`netstat -lnt|grep 3306|wc -l`
if [ $PortNum -eq 1 ]
then
 echo "mysqld is running."
else
 echo "mysqld is stoped."
fi
1
2
3
4
5
6
7
8

# 10.3 mysql备份脚本

mysql_backup.sh

#!/bin/bash
DATE=$(date +%F_%H-%M-%S)
HOST=127.0.0.1
DB=test
USER=root
PASS=abcd1#EFG
MAIL="xxxx@qq.com"
BACKUP_DIR=/data/db_backup
if [ ! -d "$BACKUP_DIR" ];then
 mkdir -p $BACKUP_DIR
fi
SQL_FILE=${DB}_FULL_$DATE.sql
BAK_FILE=${DB}_FULL_$DATE.zip
cd $BACKUP_DIR
if mysqldump -h$HOST -u$USER -p$PASS -B $DB > $SQL_FILE; then
  zip $BAK_FILE $SQL_FILE && rm -rf $SQL_FILE
  if [ ! -s $BAK_FILE ]; then
    echo "$DATE 备份失败" | mail -s "备份失败" $MAIL
  fi
else
  echo "$DATE 备份失败" | mail -s "备份失败" $MAIL
fi
find $BACKUP_DIR -name '*.zip' -ctime +14 -exec rm {} \;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 登陆授权

授权后下次登陆不用输密码

ssh-copy-id 47.104.220.xx
1

如果没有生成 /root/.ssh/id_rsa可以通过下面命令生成密钥

ssh-keygen -t rsa
1

# 关闭防火墙

# 关闭 iptables

iptables命令是Linux上常用的防火墙软件

功能 命令
停止防火墙 systemctl stop firewalld.service
永久关闭防火墙 systemctl disable firewalld.service
# 确认停用 selinux

安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。 SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。

功能 命令
检查状态 getenforce
检查状态 /usr/sbin/sestatus -v
临时关闭 setenforce 0
永久关闭 /etc/selinux/config SELINUX=enforcing改为SELINUX=disabled
# 安装依赖模块
yum  -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
yum  -y install wget httpd-tools vim
1
2
上次更新: 2025/04/07, 01:42:58
shell基础知识
HTTP协议详解

← shell基础知识 HTTP协议详解→

Copyright © 2015-2025 Glitz Ma
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式