注:此片命令以CentOS6为基准,存在部分CentOS7会注明。

1.用户

useradd [用户名]
useradd -d [目录] [用户名]
useradd -g [组名] [用户名]
userdel [用户名]
userdel -r [用户名](会删除主目录)
passwd [用户名](修改密码)
usermod -g [组名] [用户名](修改用户所在组)
id [用户名](查看用户信息)

2.组

Groupadd [组名]
Groupdel [组名]

  • /etc/passwd 用户信息
  • /etc/shadow 密码信息
  • /etc/group 组信息

3.运行级别

  • 位于/etc/inittab文件
  • 0123456代表各个级别
  • init [级别] 修改级别

4.cd复制

cp [文件] [地址]
cp - r [目录] [地址](递归 拷贝目录下所有)

5.添加> >>

添加内容

6.Head

head [文件]
head -n [行数] [文件]

7.Tail

tail [文件]
tail -n [行数] [文件]
tail -f [文件](实时监控)

8.Ln创建软连接

ln -s [原目录] [快捷点]
ln -s /root /home/rootlink

9.日期类

date +%Y...
date -s 字符串时间(设置时间)
cal

10. 查询

find [搜索范围] -name [文件名]
find [搜索范围] -user [用户]
find [搜索范围] -size [大小] (+20k ,20k,-20k)
locate (使用前要updatedb)

11. Grep(过滤) 和 管道符 |

cat hello.txt | grep -in yes(n匹配行号 i不区分大小写)

12.压缩 解压

  • .gz
    gzip [文件]
    gunzip [.gz包]
  • .zip
    gip -r mypackage.zip /home(r递归压缩,文件夹)
    unzip mypackage.zip -d /opt(d解压到指定文件夹)
  • .tar.gz
    tar -zcvf ab.tar.gz a.txt b.txt
    tar -zcvf myhome.tar.gz /home
    tar -zxvf myhome.tar.gz -C /opt

13. 文件权限修改chmod

  • 第一种:(u用户,g组,o其他用户,a所有,用+,-,=便是权限变动)
    chmod u=rwx,g=r,o=r [文件名]
    chmod u-x [文件名]
    chmod g+w [文件名]
  • 第二种:r=4,w=2,x=1
    chmod u=rwx,g=rx,o=r [文件名]
    相当于:
    chmod 754 [文件名]

14. 修改文件所在组和用户

chown [用户] [文件名] 修改文件所有者chown
chown [newuser] [文件]
chown [newuser:newgroup] [文件](同时修改用户和组)
chown -R [newuser] [目录](目录下所有文件全改)
chgrp [组名] [文件名](通chown)

15.任务调度crontab

crontab -e 编辑
crontab -l 列出
crontab -r 删除所有任务调度
crontab -u 指定用户
service crond restart 重启任务调度
*/1 * * * * date >> /tmp/to.txt 每分钟输入时间

  • 的含义1-5:
    • 分钟:0-59
    • 小时:0-23
    • 天数:1-31
    • 月数:1-12
    • 星期:0-7(0和7都代表星期日)
  • 特殊符号说明:
    • * 任何时间
    • ,不连续的点
    • - 范围
    • */n 每隔多久执行一次

16.Lsblk -f查看分区情况

17.如何增加一块硬盘

  • 1)虚拟机添加硬盘
  • 2)分区
    fdisk /dev/sdb
  • 3)格式化
    mkfs -t xfs /dev/sdb1
  • 4)挂载
    • 创建挂载目录 /home/newdisk
    • 挂载mount /dev/sdb1 /home/newdisk
  • 5)设置可以自动挂载(前四步只是临时挂载,重启就会失效)
    vim /etc/fstab

18.查看磁盘使用情况

df -h 查看所有磁盘
du -ach --max-dipth=1 目录
ll /home | grep "^-" | wc -l 统计目录下文件个数
ll -R /home | grep "^-" | wc -l 统计目录及其子目录下文件个数
查看树状目录 安装tree指令

19.配置ip

vim /etc/sysconfig/network-scripts/ifcfg-ens33

20.进程管理

  • 查看:
    ps -aux
    Ps -ef
    树状形式:
    pstree -p 显示进程id
    pstree -u 显示所属用户
  • 杀死:
    kill -9(强制杀死) [进程id]
    killall [指令(gedit)]

21.服务管理service systemctl

  • 启动/..服务:
    service [服务名] [start/stop/restart/reload/status]
    Centos7往后:
    systemctl [start/stop/restart/reload/status] [服务名]
    注:这两种是临时的。重启后还是以前的样子。
  • 查看服务:
    setup
    查看/etc/init.d/目录
    CenOs7:
    systemctl -al
    chkconfig (sshd) --list
  • 开机是否启动:
    chkconfig sshd --level 5 off 设置好后需要重启才能生效
    Centos7开机自启动服务:
    systemctl enable nginx.service

22.动态监控进程

top -d(设置几秒刷新一次)/-i/-p
进入监控状态 u指定用户 k杀死进程(后面加进程号)P排序(pid排序:P,M,N)
netstat查看网络情况:
netstat -anp (an按一定顺序排列输出 p显示哪个进程在调用)

23.RPM包管理

  • 查看:
    rpm -qa | grep xxx 查看已安装的rpm列表
    rpm -qa | grep firefox
    rpm -q firefox 查看是否安装
    rpm -qi firefox 查看软件包详情
    rpm -ql firefox 查看软件包安装了哪些文件
    rpm -qf [文件] 查看文件属于哪个包
  • 卸载rpm包:
    rpm -e [包名] rpm -e firefox
    rpm -e -nodeps firefox 有依赖时强制删除
  • 安装rpm包:
    rpm -ivh [包名](i=install v=verbose提示 h=hash进度条)
    注:首先要挂载镜像,进入里面找到rpm包

24.Yum需联网

  • 查询:
    yum list | grep xxx 软件列表
  • 安装指定的yum包:
    yum install xxx 下载安装

25.JavaEE

25.1 jdk安装

解压,设置path

25.2 Tomcat安装

解压,Startup.sh启动,开放8080防火墙

开放方式:
CentOS 6:
vim /etc/sysconfig/iptables

service iptables restart

CentOS 7往后:

开放端口:firewall-cmd --permanent --zone=public --add-port=8080/tcp
关闭端口:firewall-cmd --permanent --zone=public --remove-port=8080/tcp
查询开放端口:firewall-cmd --list-ports
重新加载防火墙:firewall-cmd --reload

zone #作用域
add-port=80/tcp #添加端口,格式为:端口/通讯协议
permanent #永久生效,没有此参数重启后失效

25.3 Mysql安装

  • 删除默认安装
    rpm -qa |grep mysql
    yum remove ...
  • 官网下载MySQL yum安装源
    wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
    Rpm -ivh ...
    之后

    说明MySQL yum仓库添加成功
  • 安装sql server
    yum install mysql-community-server
  • 启动服务
    systemctl start mysqld.service
  • 找到生成密码
    cat /var/log/mysqld.log | grep password
  • 有密码强度验证
    SHOW VARIABLES LIKE 'validate_password%';
    set global validate_password_policy=0;
  • 登录 更改密码
  • 设置远程用户

26.apt包管理

sudo apt-get update 更新源
sudo apt-get install package 安装包
sudo apt-get remove package 删除包

sudo apt-cache search package 搜索软件包
sudo apt-cache show package 获取包的相关信息,汝说明、大小、版本等
sudo apt-get install package --reinstall 重新安装包

sudo apt-get -f install 修复安装
sudo apt-get remove package --purge 删除包,包括配置文件等
sudo apt-get build-dep package 安装相关的编译环境

sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-cache depends package 了解谁用该包依赖哪些包
sudo apt-cache rdepends package 查看该包被哪些包依赖
sudo apt-get source package 下载该包的源代码

27.shell编程

vim myShell.sh

  • 执行(2种方式):
    • 1.chmod 744 myShell.sh赋予权限直接./myShell.sh执行
    • 2.sh myShell.sh

27.1变量

  • 语法:
    • 1)系统变量 set | more 查看
    • 2)自定义变量 变量=值
    • 3)撤销变量 unset 变量
    • 4)静态变量声明 readonly 变量(不能unset)
    • 5)反引号...或者$(…)表示值 …代表命令(ls -l /home)

27.2环境变量

  • 定义变量:
    Export 变量名=变量值
    TOMCAT_HOME=/opt/tomcat
    ExportTOMCAT_HOME

  • 立即生效变量
    source 配置文件

    单行注释:#
    多行注释:<<! …. !

27.3位置参数变量

  • 执行脚本
    ./myShell.sh 100 200
    说明:100和200就是位置参数,如何在脚本里获取
  • 语法:
    • $n(n是0-9的整数,0表示命令本身./myShell.sh,1代表100,2是200,十以上${10})
    • $*(把参数当整体100 200)
    • $@(代表所有参数,但是区分对待100 200)
    • $#(所有参数个数2)

27.4预定义变量

Shell设计者实现定义好的变量

  • 语法:
    • $$ 当前进程号PID
    • $! 后台运行的最后一个进程的PID
    • $? 最后一次执行命令的返回状态。0正常执行,非0执行不正确

27.5运算符

  • 语法:
    • 1)”$((运算式))”或”$[运算式]”
      RESULT1=$(((2+3)*4))
      RESULT2=$[(2+3)*4]
    • 2)Expr m + n(运算符之间要有空格,运算符+, -, *, /, %)
      TEMP=expr 2 + 3
      RESULT3=expr $TEMP \* 4

27.6条件判断

  • 语法:
    [ condition ]
    注:condition前后有空格,非空返回true,可使用$?验证(0为true,>1为false)
  • 判断语句:
    • 1)两个整数比较
      =字符串比较
      -lt 小于-le小于等于 -eq -gt -ge -ne
    • 2)按照文件权限判断
      -r有读的权限 -w -x
    • 3)按照文件类型判断
      -f文件存在且是一个常规文件 -e文件存在 -d文件存在并是一个目录

27.7流程控制

27.7.1 分支控制

  • if语法:
    1
    2
    3
    if [ ... ];then
    ...
    fi
    或者
    1
    2
    3
    4
    5
    6
    7
    if [ ... ]
    then
    ...
    elif [ ... ]
    then
    ...
    fi
  • case语法:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    case $变量名 in
    “值1”)
    ...
    ;;
    “值2”)
    ...
    ;;
    *)
    ...执行其他
    ;;
    esac

27.7.2 循环控制

  • for语法:
    1
    2
    3
    4
    for 变量 值1 值2 值3...
    do
    ...
    done
    或者:
    1
    2
    3
    4
    for ((初始值;循环条件;变量变化))
    do
    ...
    done
  • While语法:
    1
    2
    3
    4
    while [ ... ]
    do
    ...
    done

27.8 读取控制台输入read

  • 语法
    read [选项] [参数]
  • 说明
    • 选项:
      -p:指定读取值时的提示符
      -t:指定读取值时的等待时间(秒),超时就不读取了
    • 变量:指定读取值的变量名

27.9函数

系统函数和自定义函数

  • 系统函数(介绍两中):
    • basename基本语法
      返回完整路径最后/的部分,常用于获取文件名
      basename [pathname] [suffix]
      basename [string] [suffix]
      suffix被指定,则会去掉该后缀。
    • dirname基本语法
      返回完整路径最后/的前面部分,常用于返回路劲部分
      dirname [文件绝对路径]
  • 自定义函数:
    • 语法
      1
      2
      3
      4
      5
      [ function ] funname[()]
      {
      Action;
      [return int]
      }
    • 说明
      调用直接写函数名:funname args1 args2…
      参数调用和位置参数一样

27.10实用案列(数据库备份)