• Centos 7系统常用指令


    CentOS 常 用 命 令

    CentOS 7.6.1810脑图

    其他博客一

    其它博客二

    Linux命令大全

    yum命令详解。

    yum下载的rpm包离线安装

    用yum将安装包及依赖包下载到本地的方法

    wget -c http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

    CentOS 7 安装EPEL源

    sudo yum install epel-release-latest-7.noarch.rpm

    sudo yum install -y epel-release && sudo yum install -y ansible

    安装ansible

    用 户 管 理

    [ctrl]+[alt]+[F1-6]      六个terminal

    id user                查看用户信息   

    groupadd           添加组

    visudo 

    wanglq  ALL=(ALL) ALL 

    %sudo ALL=(ALL) NOPASSWD: ALL  #允许用户使用sudo -i 且不输入密码

    hostnamectlset-hostname host  修改计算名立即生效且重启也生效

    su - wanglq             #切换到账号wanglq

    useradd              添加用户

    who(w)                #谁在线

    文 件 管 理 (linux命令区分大小写)

    nano test.txt       使用文本编辑器创建txt文件

    mkdir -m /var/test         直接设置文件权限,不看默认umask

    mkdir -p /home/wanglq/var/test  创建多层目录,p=parent父母亲

    rmdir -p /var/test    一次性删除所有目录,目录必须为空

    mv /bin/ls /root  移文件若多个源文件,最后一个必须是目录,-u测试新旧文件

    ls -li                        显示文件block信息

    ls -lid / /home /boot               查询三个目录的inode号码

    ls -l /lib/modules/$(uname -r) /kernel/fs     查询支持的文件系统

    ls -al           a是全部文件,d仅目录,l长数据串

    ls -alF --color=never    --color=never(always,auto)颜色设置;

    ls -al --full-time       --full-time完整时间模式;

    --time={atime,ctime}输出访问时间或改变权限属性时间而非内容更改时间

    cat /proc/filesystems       已加载到内存中支持的文件系统

    cat -n /etc/test.txt        显示文件及行号,-b显行号仅对非空白行

    cat /etc/fstab #查看开机挂载,实际写到/etc/mtab和/proc/mounts中

    cp filename filename.bak #复制文件连同文件属性与权限,-i询问;

    -p复制目录;-u有差异才复制;-d复制连接文件的属性

    rm -fir bashrc*    f是force,忽略不存在的文件;     

               i互动模式,删除会问;r递归删除

    chmod 777 test.txt                # 更新test文件权限,r:4 w:2 x:1 owner=rwx=7 group=rwx=7 others=rwx=7

    chmod a(u,g,o)-x test.txt      a=all

    chmod 6755 test          # 加入具有SUID SGID的权限

    chgrp -R users /var/log/install.log  递归更改目录和文件的用户组

    chown root:root install.log     将所有者和用户组改为root

    tac                反向显示

    nl /etc/issue     显行号且打印,-b空白行也显行号;-w行号占用的位数

    more /etc/issue           翻页显示

    less /etc/issue              一页一页显示

    head -n 20 /etc/issue        默认10行,查看20行

    tail -n 20 /etc/man.config       取后面几行,默认10行,-f持续检测,+100显示100行后的

    od -t c /usr/bin/passwd      以ASCII方式输出

     

    touch -d "2 days ago" test    将文件日期调整为2天前

    touch testtouch #创建新文件或修改时间,modification time=mtime status time=ctime(无法被复制) access time=atime

     umask -S          文件的默认权限,umask 002重新设置权限

    chattr +i test.txt     只在ext2/ext3系统生效,

    设置文件隐藏权限,-i不能被改名、删除、连接、更改数据,

    -a只能增加数据,不能删除数据

    lsattr +aij test         显示文件隐藏属性,-a显示隐藏属性

    Set UID=SUID=4=u+s:针对二进制程序,不能用在脚本;

    SUID=2=g+s针对目录或文件;Sticky Bit=SBIT=1=o+t只对目录有效-将A目录加上SBIT则甲只能对自己创建的目录或文件进行删除移动重命名;

    file /var/lib/mlocate/mlocate.db  查看文件类型

    which -a ls                  查找命令位置

    whereis ifconfig          查找特定文件,

    -b二进制;

    -m找说明文件manual路径下的文件,

    -s查看source文件,

    -u找不在前项的其它特殊文件

    locate passwd   在/var/lib/mlocate里查找数据,有时需要更新updatedb

    find / -mtime 0          列出系统24小时内被改动过的文件

    find / -nouser             查看系统中不属于任何人的文件

    find / -name passwd        查找文件名为passwd的这个文件

    find / -mtime 3   列出3天前的24小时内被改动过的文件-书190页

    find / -perm +7000  查找文件中含有SGID SUID SBIT属性的文件

    find / -size +1000k        找出系统中大于1MB的文件

    find / -perm +7000 -exec ls -l {} ;     

    -exec后面可接其它命令来处理查找到,

    一直到“;”是关键字,代表find额外命令的开始-exce到结束(;),

    {}代表的是由find找到的内容放置到{}中,

    ln -sf 源文件 目标文件             不加任何参数是hard link;

    -s是symbolic link(类windows快捷方式),-f如果目标文件存在时,就主动将目标文件直接删除后创建

    d:表示目录;

    -:表示普通文件(regular file);

    l:表示连接文件;

    b:表示设备文件;

    c:表示串行端口设备(鼠标键盘);

    .:表示隐藏文件;

    ASCII:纯文本文件;

    binary:二进制文件;

    data:数据文件

    文件或目录最大文件名为255个字符,完整路径及目录文件为4096个字符

    压 缩 与 打 包

    yum install ncompress | compress 文件或目录 | uncompress 文件或目录

    gzip -d删除gz文件 文件名 | zcat filename.gz

    bzip2 文件名 |bzcat 文件名.bz2

    tar -f -jcv压缩 -jtv查询 -jxv解压缩 -C欲解压缩的目录

    tar -jcv -f /backups/backup-system-20190721.tar.bz2 #系统备份

    restore -t(查看备份数据内容) -f /root/boot.dump

    #-C比较dump与实际文件,-i进入互动模式,-r还原整个系统

    restore -C -f /root/boot.dump /boot #文件比较

    dump -S/dev/hdc1 #查看备份需要多大容量

    dump -W #查看文件系统有没有备份过,level 0-9差异备份(0为完整备份)

    dump -0u(记录时间) -f /root/boot.dump/boot #将完整备份的文件名改为boot.dump,并更新记录文件

    dump -0j(支持bzip2) -f /root/etc.dump.bz2 /etc #完整备份etc

    mkisofs -r -V 'linux-file' -o /tmp/system.img #制作镜像文件

    -m /home/lostfound -graft-point /root=/root /home=/home /etc/=/etc

    cdrecord -scanbuSdev=ATA #查询刻录机

    cdrecord -v dev=ATA:x,y,z -format #格式化dvd+rw

    cdrecord -v dev=ATA:x,y,z blank=[fast|all] #排除重复读写片

    cdrecord -v dev=ATA:x,y,z file.iso

     

    dd if=/etc/passwd /tmp/passwd.back #备份etc

    dd if=/dev/hdc1 of=/dev/hdc9 #直接进行扇区表面复制

    dd if=/dev/hdc of=/tmp/mbr.back bs=512 Count=1 #备份第一扇区

    dd if=/dev/zero of=/home/bigfilename bs=1M count=512 # 创建大文件

    cpio -ovcB备份 -ivcdu还原 -ivct查看

    rpm -ivh   # 安装软件

    rpm -ql   # 查询安装路径

    rpm -e    # 卸载软件

    远 程 管 理

    ssh  openssl version 查看版本

     scp /root/shutdown.sh root@192.168.1.51:/root/  # 互相传输文件

    磁 盘 管 理

    fdisk /dev/hdc #m为帮助信息

    du -sh text.txt   # 查看文件大小

    du -sm /*      # 查看根目录下所有目录所占用空间

    df -ah       # 列出所有文件格式及名称

    blkid #查看分区格式

    dumpe2fs /dev/hdc2 #查询superblock信息 

    partprobe #强制内核重新找一次分区

    mkfs -t ext3 /dev/hdc6 #磁盘格式化

    mke2fs -j -L "wanglq" -b 2048 -i 8192 /dev/hdc6

    #将卷标设置为wanglq,指定block大小为2048,每8192bytes分配一个inode

    fsck -C -f -t ext3 /dev/hdc6 #检验/dev/hdc6,实际调用e2fsck这个软件

    badblocks -sv /dev/hdc6 # 检查硬盘有没有坏轨

    mount -t vfat -o iocharset=cp950 /dev/sda1 /mnt/flash  # 挂载U盘

    mount --bind /home /mnt/home   # 将目录挂载到其它目录

    mount -o loop /root/centos5.2.iso /mnt/centos-dvd

    mount -L "label名" /mnt/hdc6     # 不必知道硬盘名挂载

    mount -o remount,rw,auto/ # 重新挂载根目录与不确定目录

    mount -n -o remount,rw / # 单用户模式,只读状态才使用

    mknod /dev/hdc10 b 22 10 #设备代码22 10

    e2label 设备名 新的label名

    tune2fs -l /dev/hdc6 #列出superblock信息,此命令可将ext2转成ext3

    hdparm -i /dev/hdc #针对IDE接口硬盘,Tt测试硬盘访问性能(SATA可用)

    parted /dev/hdc print #以parted列出分区表,2TB以内使用fdisk

    parted /dev/hdc rm 8 #将新建的分区删除

    parted /dev/hdc mkpart logical ext3 19.2GB 19.7GB  # 新建一个512M的逻辑分区

    swap

    mkswap /dev/hdc7 # 创建swap空间

    swapon /dev/hdc7

    swapon -s         # 列出目前使用的swap设备

    swapoff /dev/hdc7     # 关掉swap file

    free -hm          # 查看内存信息

    进程管理

    ps -ef

    ps -aux

    服 务 管 理

    systemctl sshd status        # 查看服务状态

    systemctl try-restart sshd.service     # 重启否则不做任何操作

    systemctl is-active sshd            # 服务查看

    systemctl unmask sshd            # 取消禁止

    systemctl mask sshd         # 禁止手动或自动启动

    syttemctl is-enabled sshd      # 查看服务是否开机启动

    systemctl list-units -t service     # 查看所有激活的服务

    防 火 墙 管 理

    service iptables status #查看iptables当前状态。

    service iptables start    # 开启

    service iptables stop    # 关闭

    service iptables restart    # 重启

    chkconfig iptables on    # 开机启动

    chkconfig iptables off    # 关闭开机启动

    systemctl restart firewalld       # 重启

    iptables -I INPUT -p TCP --dport 80 -j DROP             # 拒绝所有包

    iptables -I INPUT -s 46.166.150.22 -p TCP --dport 80 -j ACCEPT  # 只允许固定IP

    iptables -L -n |grep 21          # 检视21端口策略

    firewall-cmd --get-active-zones     # 查看区域信息

    firewall-cmd --state              # 显示状态

    firewall-cmd --panic -on          # 拒绝所有包

    firewall-cmd --panic -off #       # 取消拒绝

    firewall-cmd --complete-reload        # 更新防火墙规则

    firewall-cmd --query-panic         # 查看是否拒绝

    firewall-cmd --zone=public --add-interface=eth0   # 将接口添加到区域

    firewall-cmd --get-zones                # 显示支持的区域列表

    firewall-cmd --zone=public --list-all           # 查看所有公共区域

    firewall-cmd --query-service ftp(ssh,samba,http)   # 查询服务启动状态

    firewall-cmd --zone=dmz --list-ports         # 查看所有打开的端口

    firewall-cmd --add-service=http           # 开启http服务

    firewall-cmd --zone=public --add-service=ftp --permanent    # 永久开放ftp服务

    firewall-cmd --zone=public --add-port=80/tcp --permanent   # 端口永久开启

    firewall-cmd --enable service=ssh                #允许SSH服务

    firewall-cmd --zone=public --remove-service=ftp --permanent # 永久关闭

    firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.1.0.1        # 将80端口的流量转发至192.168.0.1

    firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1:toport=8080  # 将80端口的流量转发至192.168.0.1的8080端口

    firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080              # 将80端口的流量转发至8080

    网 络 管 理

    iwlist

    netstat -a #显示网络联机状态

    mtr

    nmap

    fping

    hping

    ip  l a r   # 查看路由信息-IP=ifconfig+trace

    nmtui  # 网卡配置神器

    /etc/sysconfig/network-script/ifcfg-cardname    # 网卡位置

    ifconfig              # 网络信息

    route -n             # 路由信息

    日 志 管 理

    logwatch

    auditctl audit 系统管理工具,获取状态,增加删除监控规则

    auditctl -a exit,never -S mount

    auditctl -a entry,always -S all -F pid=1005

    auditctl -w /etc/passwd -p war -k password_file

    auditctl -w /tmp -p e -k webserver_watch_tmp

    -w 监控文件路径 /etc/passwd

    -p 监控文件筛选 r(读) w(写) x(执行) a(属性改变)

    -k 筛选字符串,用于查询监控日志

    -S 监控系统调用

    -F 给出更多监控条件(pid/path/egid/euid等)

    -k 利用auditctl指定的key查询

    -x 执行程序

     aureport   # 输出audit系统报告

    ausearch   # 查询audit log工具

    ausearch -f /etc/passwd -x rm      #命令查看日志,设置了监控后,会在/var/log/audit/audit.log里出现日志。

    ausearch -ts today -k password-file

    ausearch -ts 3/12/07 -k password-file

    -ts 指定时间后的log (start time)

    -te 指定时间前的log (end time)

    监 控 工 具

    zabbix

     nagios

    服 务 管 理

    chkconfig # 默认对3,4,5 level有效;服务脚本存放在/etc/ini.d/

    chkconfig -list #显示所有运行级系统服务运行状态

    chkconfig -add sshd #添加服务

    chkconfig -list mysqld #列出mysql服务设置情况

    chkconfig -level httpd 2345 on

    chkconfig -del sshd #删除服务

    配 置 QQ 邮 箱

    yum install -y mailx

    vim /etc/mail.rc

    set from=test@qq.com

    set smtp=smtp.qq.com

    set smtp-auth-user=test@qq.com

    set smtp-auth-password=QQ授权码

    set smtp-auth=login

    echo test |mailx -v -s "shuter" 345583594@qq.com

    监控脚本

    打 印 管 理

    print

     

    其 它

    ulimit   -a 列出目前身份的所有限制

        -f 10240限制用户只能创建10M以下容量的文件

    echo $LANG # 显示系统语言,locale -a查看系统支持多少语系

    echo $PATH # 显示变量

    echo $LANG         # 查看系统语言

    PATH="$PATH":/root   # 将root加入到PATH

    LANG=en_US       # 修改系统语言

    source      # 读入环境配置文件

    type ls

    date     # 日期与时间

    cal             # 日历

    cal 10 2019 #日历

    timedatectl list-timezones # 列出所有时区

    timedatectl set-local-rtc 1 # 将硬件时钟调整为与本地时钟一致, 0 为设置为 UTC 时间

    timedatectl set-timezone Asia/Shanghai # 设置系统时区为上海

    bc #计算器

    man (1-7) man #在线求助

    init 0-6 #0关机、3纯命令行、5图形界面、6重启

    shutdown -h 17:25  # 定时关机  -c 取消

    halt          # 强行关机  -p=poweroff -r=reboot

    poweroff        # 强行关机

    reboot         # 重启电脑

    man -f man #取得更多与man相关信息

    man -f = whatis #root下使用makewhatis,创建whatis数据库

    man -k = apropos

    stty -a         # 列出所有按键与按键内容

    info info  # 命令行模式的网页显示

    /etc/issue /etc/motd  # 登录与欢迎

    last | cut -d '' -f 1         # -d接分隔字符与-f一起使用,

    -f依据-d分隔字符将信息切割成为数段,用-f取出第几段的意思;

    -c以字符的单位取出固定字符区间

    last |grep -v 'root'         # 没有root就显示出来

    last |tee last.list |cut -d "" -f1   # tee双向重定向 338页

    sync #数据写入硬盘

    grep --color=auto 'wanglq' /etc/pass.conf

    grep 'temporary password' /var/log/mysqld.log   # 查看mysql密码

     

    cat /etc/passwd |sort -t ':' -k 3 #为账号从第3列进行排序

    lsb_release -a;uname -r #查看系统版本

    uniq #将重复的数据列出一个显示

    alias rm=‘rm -i’ | unalias

    wc -l列出有多少行 -w列出有多少字 -m列出有多少字符

    history -cnarw

    curl https://www.jianshu.com/p/07c4dddae43a

    curl -# -O https://www.baidu.com   # 显示下载进度

    getconf LONG_BIT   # 查看系统位数

    who -r          # 查看运行级别

    df -h                # 查看硬盘使用情况

    cat /etc/os-release           # 查看系统版本

    cat /etc/redhat-release     # 查看系统版本

    cat /proc/filesystems        # 查看kernal支持的系统分区格式

    cat /etc/passwd                # 查看密码本

    cat /proc/cpuinfo                # 查看硬件信息

    cat /proc/meminfo              # 查看内存条

    lvscan               # 想看分区

    lsblk                # 查看硬盘信息

    blkid               # 显示系统分区格式

    lspci  # 查看主板信息

    fdisk -l             # 查看所有硬盘

    lastb              #查看登录信息

    hostname && env && uptime  # 计算机名、环境变量、开机运行时间

    chkconfig --list         #开机列表

    history              #命令历史记录

    firewall-cmd --state          #防火墙状态

    netstat -an                          #查看所有端口信息

    ps -aux             #查看进程

    入 侵 排 错

    端口查检 netstat -an

    发现被攻击怎么办?

    1、立马修改密码。

    2、通知网络工程师,调整网络防火墙策略。

    3、开启本服务器防火墙。

    4、修改ssh默认端口号。

    ssh端口总是有人在扫描,这个还是觉得不太安全,得修改。 

    将SSH终端服务的端口由22修改为别的端口

    以防攻击黑客直接猜解您的服务器密码

    进程查检 ps -ef 或 top 

    首先修改配置文件,vim /etc/ssh/sshd_config

    找到#Port 22一段,这里是标识默认使用22端口,修改为如下: 
    Port 22 
    Port 50000 
    然后保存退出 

    系统是否被rootkit 同版本可信操作系统命令进行md5sum校验

    2、编辑/etc/ssh/sshd_config文件: 
    vim /etc/ssh/sshd_config 
    将Port 22改为50000,并找到PermitRootLogin,将后面的yes改为no,这样root就不能远程登录了 
    执行/etc/init.d/sshd restart 
    这样SSH端口将同时工作与22和50000上。

    现在编辑防火墙配置:vi /etc/sysconfig/iptables 

    启用50000端口。 
    执行/etc/init.d/iptables restart 
    现在请使用ssh工具连接50000端口,来测试是否成功。 
    如果连接成功了,则再次编辑sshd_config的设置,将里边的Port22删除,即可。 
    之所以先设置成两个端口,测试成功后再关闭一个端口,是为了方式在修改conf的过程中,万一出现掉线、断网、误操作等未知情况时候,还能通过另外一个端口连接上去调试,以免发生连接不上带来更多的麻烦。

    查看系统登录日志 more /var/log/secure |grep Accepted

    5、netstat -ntlp检查端口及对应进程,关闭没用的端口

    查看系统密码文件 more /etc/shadow

    6、cat /etc/passwd 关闭没有用的账户

    查看其它系统日志 /var/log/messages /var/log/wtmp

    7、ps -ef检查所有进程,普通用户如果弱密码也可以被执行蠕虫脚本,不断发包用尽带宽。

    进入内存目录,查看对应PID目录下的exe文件的信息 /mnt/bin/ls /proc/22765/exe

    #进程的完整路径就找出来了

    8、检查httpd日志

    /mnt/bin/ls -al 显示所有文件及目录

    9、可以用tcpdump -nn -i eth0检查相应网卡发包

    .bash_history 用户操作命令的历史记录

     

    查找被攻击的原因,了解下服务器的软件环境,查看相应软件的日志文件

     

    运动可以增加体力;读书可以增加知识; 自古只有天才的学生,没有天才的老师; 猴子不上树是看不见红屁股的, 人不做事情是看不出能力的。 时间花在那儿,擅长就在那儿。 钱花完了可以再赚,时间花了便一去不复返。
  • 相关阅读:
    移动网页如何只调出数字键盘
    把HTML5网页封装成APP,APK的方法
    HTML5,微信开发原码社区
    display:table 水平居中
    input在苹果浏览器下变成圆角的解决方案
    四种方法解决DIV高度自适应问题
    jquery prop和attr的区别
    移动端网页JS框架-手机触摸事件框架,日历框架带滑动效果
    meta viewport标签的使用说明(手机浏览缩放控制)
    javascript json格式解析方法
  • 原文地址:https://www.cnblogs.com/shuter/p/11381359.html
Copyright © 2020-2023  润新知