• centos7运维


    # 查看访问的ip数据

    netstat -anpt|grep 8080|awk '{print $5}'|cut -d: -f1|sort|uniq -c

    #安装远程登录
    yum install ssh
    systemctl start sshd
    systemctl status sshd

    #查看所使用的bash
    echo $SHELL

    查看系统语言
    echo $LANG
    修改系统字符集:
    vim /etc/locale.conf
    LANG=zh_CN.UTF-8

    #查看当前用户
    who is it/whoami/id -nu

    #查看系统版本:
    cat /etc/os-release
    lsb_release -a
    uname -a #可显示电脑以及操作系统的相关信息
    cat /proc/version #说明正在运行的内核版本
    cat /etc/issue #显示的是发行版本信息
    cat /etc/os-release
    rpm -qi centos-release

    #查看cpu级别(操作系统位数)
    arch

    变量在export后 可以在后续的程序中用$来引用 如echo $PATH
    变量拼接入path后可直接在控制台用(如tomcat启动)否则要写全($CATALINA_HOME/bin/startup.sh)

    环境变量
    全局环境变量设置:
    不建议在 etc/profile中设置,在子目录/etc/profile.d下添加*.sh

    安装netstat
    yum -y install net-tools

    systemd学习
    http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
    http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html

    系统命令:
    systemctl reboot #重启
    systemctl halte #关机
    service配置文件命令路径必须是绝对路径,修改后要重新加载
    systemctl daemon-reload
    查看所有级别:
    ls -lh /usr/lib/systemd/system/runlevel*.target
    查看默认的运行级别:
    systemctl get-default
    修改当前运行级别:
    systemctl set-default multi-user.target
    # 查看 multi-user.target 包含的所有服务
    $ systemctl list-dependencies multi-user.target
    # 切换到另一个级别
    $ sudo systemctl isolate multi-user.target

    查看类型为service的单元
    systemctl list-units --type=service(运行中的)
    systemctl list-units -all --type=service(包含非运行中的)
    #查看系统运行状态
    systemctl status
    #列出所有服务的层级和依赖关系,可以指定某个服务
    systemctl list-dependencies tomcat.service
    systemctl list-dependencies multi-user.target

    #restart与try-restart区别

    systemctl restart httpd.service #如服务在运行将重启,不在运行将会启动

    systemctl try-restart httpd.servic  #只有服务在运行才重启

    查看服务启动日志
    systemctl status tomcat 或 journalctl -xe
    查看单个服务日志
    journalctl -f -u prometheus.service

    查看journalctl日志占用磁盘的空间的总大小
    journalctl --disk-usage
    由于Linux是一个非常敏感的操作系统,若删除文件错误,很容易造成系统崩溃。
    journalctl --vacuum-time=2d 删除比指定时间旧的文件
    journalctl --vacuum-size=500M 保留大小

    限制日志
    修改配置文件
    /etc/systemd/journald.conf

    journalctl学习:
    查看指定时间以后的日志
    journalctl --since "2018-03-26" --until "2018-03-26 03:00"

    清理日志
    日志位置:
    /var/log/journal

    设置缓存history命令条数
    修改/etc/profile
    HISTSIZE=100
    查看已缓存的命令:cat .bash_history

    设置别名:
    在~目录下, vim .bash_profile
    alias ll="ls -al"
    source .bash_profile

    断开用户连接:
    ps -ef|grep ssh
    kill -9 (pts/0类似这样的进程)

    #查看对外,对内连接数 (LISTEN表示启动的程序,ESTABLISHED表示外部访问)
    netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c
    或 netstat -ant|awk '/tcp/ {print $6}'|sort|uniq -c


    yum源配置(云源为阿里云)
    备份系统原来的repo文件
    mv /etc/yum.repos.d/CentOs-Base.repo CentOs-Base.repo.bak
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    云源缓存
    yum clean all
    yum makecache
    yum update

    查看系统可用的yum源和所有的yum源
    yum repolist enabled
    yum repolist all

    yum upgrade和yum update
    yum -y update
    升级所有包同时也升级软件和系统内核
    yum -y upgrade
    只升级所有包,不升级软件和系统内核

    安装软件
    rpm -ivh kernel-devel-3.10.0-514.el7.x86_64.rpm
    yum install kernel-devel

    查看已安装详情
    rpm -qa|grep mysql
    rpm -ql mysql-community-server-5.6.37-2.el7.x86_64

    卸载软件
    rpm -e mysql-community-server-5.6.37-2.el7.x86_64
    rpm -e mailx-12.5-19.el7.x86_64 --nodeps (卸载时不检测依赖,只卸载该包)
    yum -y remove VirtualBox-5.2 (卸载不干净)

    #查找which,whereis,locate,find
    find / -name mysqld.service 在根目录下查找名字为mysqld.service的文件

    #网络
    systemctl status network
    ifconfig不显示ip
    vim /etc/sysconfig/network-scripts/ifcfg-ens33
    将ONBOOT=no改为ONBOOT=yes
    设置dns方式
    编辑vi /etc/sysconfig/network-scripts 网卡下面的ifcfg-eth0 配置文件修改DNS1
    终端输入 setup命令即可调出图形界面设置(配置信息会写入/etc/resolv.conf文件里面)
    编辑 vi /etc/resolv.conf 设置首选DNS和次要DNS。排在前面的就是首选DNS,后面一行就是次要的DNS服务器DNS
    解析域名顺序:
    1 hosts文件 (/etc/hosts)---- 2 网卡配置文件DNS服务地址 ---3 /etc/resolv.conf

    #磁盘操作
    df -h #查看磁盘使用情况
    df -Th #显示文件系统类型
    fdisk -l #显示挂载和未挂载的分区
    为了避免每次重启系统后都要手动mount,可以在/etc/fstab中加入一行挂载配置,即可开机自动挂载,该方法简单方便
    cat /etc/fstab
    dumpe2fs -h /dev/vda1(或 blkid /dev/vda1) #查看设备uuid
    查看正在使用某个文件的进程id
    fuser -um /dev/sda2
    查看磁盘管理器
    udevadm info -a -n /dev/vda
    udevadm info --query=all --name=/dev/vda
    udevadm info --query=all --name=/dev/vda1
    查看挂载情况
    mount


    #打包操作(压缩和解压)
    tar -czvf docker.tar.gz docker
    tar -xzvf docker.tar.gz

    zip -r docker.zip docker 递归压缩
    unzip docker.zip
    unzip -o docker.zip 覆盖文件没有提示

    gzip cjh.txt 会生成cjh.txt.gz (不会归档)
    gzip -d cjh.txt.gz

    #执行sh
    eval 执行一个命令
    exec 在新进程中执行一个命令,并且终止当前进程
    source 在当前进程中执行脚本

    #vim编辑器使用技巧
    :set number #显示行号
    :u #撤消
    :%s/1024/512/g #全局替换
    删除一行
    :dd

    #centos间相互复制传送文件
    scp -r -P 222 /root/docker root@sanjuscm.4plservice.com:/root/docker

    #清空文件内容
    >catalina.out/du -sh catalina.out

    #防火墙设置
    启动: systemctl start firewalld
    关闭: systemctl stop firewalld
    查看状态: systemctl status firewalld
    开机禁用 : systemctl disable firewalld
    开机启用 : systemctl enable firewalld
    firewall-cmd --zone=public --add-port=8080/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
    重新载入
    firewall-cmd --reload
    查看
    firewall-cmd --zone=public --query-port=8080/tcp
    删除
    firewall-cmd --zone=public --remove-port=8080/tcp --permanent
    查看当前开了哪些端口
    其实一个服务对应一个端口,每个服务对应/usr/lib/firewalld/services下面一个xml文件。
    firewall-cmd --list-services
    查看还有哪些服务可以打开
    firewall-cmd --get-services
    查看所有打开的端口:
    firewall-cmd --zone=public --list-ports
    firewall-cmd --zone=public --add-port=8080/tcp --permanent
    增加端口后,要重新启动

    #备份和还原目录
    dump -0 -f ./cjh.dump ./cjh
    restore -r -f ../cjh.dump


    linux连接linux
    ssh -i /root/xxx.pem root@10.10.10.100

    #awk使用
    ps -A | grep httpd | grep -v grep | awk '{ print $1; }' | xargs -L 1 kill -HUP

    ( ps 和 grep 命令用来在所有的进程中搜索 httpd(并且忽略用来搜索 httpd 进程的 grep 进程)

    接下来,awk 只显示输出结果中的进程 ID,并将它传递给 xargs

    然后,xargs 命令接受每个进程 ID(因为使用了 -L 1 以便一次提取一行内容),并使用 sudo kill -HUP 向相应的进程发送一个挂起信号。


    #输出:
    $cat test.txt 1>/dev/null 标准输出
    $cat test.txt 2>/dev/null 标准错误输出

    #sh脚本
    $$
    Shell本身的PID(ProcessID)
    $!
    Shell最后运行的后台Process的PID
    $?
    最后运行的命令的结束代码(返回值)
    $-
    使用Set命令设定的Flag一览
    $*
    所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
    $@
    所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
    $#
    添加到Shell的参数个数
    $0
    Shell本身的文件名
    $1~$n
    添加到Shell的各参数值。$1是第1参数、$2是第2参数…。

    变量的定义是有一定的规则的,比如变量和变量内容之间使用等号链接,且等号两边不能直接跟空格.
    如果变量内容含有空格,可以使用单引号或者双引号括起来.
    当然使用单引号和使用双引号是有区别的,
    如果使用双引号,那么如果内容里面有特殊字符比如$LANG,那么将会被解析成对应的数据.
    如果使用单引号,则不会解析.

    echo -e '#!/bin/bash echo $panda'>one.sh
    解释一下上面的命令echo的e选项用于允许转义标记的内容.
    chmod u+x one.sh(给当前用户赋予)
    chmod a+x one.sh(给所有用户赋予)
    $()与${}的区别:
    $()中放的是命令,相当于` `(在脚本文件中才有效)
    ${}中放的是变量

    blocks=${1:-$MINBLOCKS}
    相当于
    if [ -n "$1" ]
    then
    blocks=$1
    else
    blocks=$MINBLOCKS
    fi

    #查看运行程序内存
    ps aux|grep java (b为单位)

    首先注意usr 指 Unix System Resource,而不是指User
    通常/usr/bin下面的都是系统预装的可执行程序,会随着系统升级而改变
    /usr/local/bin目录是给用户放置自己的可执行程序的地方,推荐放在这里,不会被系统升级而覆盖同名文件
    如果两个目录下有相同的可执行程序,谁优先执行受到PATH环境变量的影响,比如我的一台服务器的PATH变量为
    echo $PATH
    /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/dean/bin
    这里/usr/local/bin优先于/usr/bin, 一般都是如此

  • 相关阅读:
    ios中静态库的创建和使用、制作通用静态库(Cocoa Touch Static Library)
    ios-字符串替换-正则表达式-例子
    Android 中自定义仪表盘
    Android中控件AutoCompleteTextView的使用方法和一些属性
    用代码如何检测一个android程序是否在运行
    android 报错: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/animation/AnimatorCompatHelper;
    android中Zing二维码扫描,二维码生成
    gps数据上传防止android系统休眠
    Android中判断service是否在运行
    BottomSheetDialogFragment 如何设置高度和禁止滑动
  • 原文地址:https://www.cnblogs.com/cghhnty/p/9036719.html
Copyright © 2020-2023  润新知