查看内核和系统版本

  • 查看内核版本
    cat /proc/version
    uname -a
  • 查看系统版本
    lsb_release -a
    cat /etc/redhat-release
    cat /etc/issue

    设置启动运行级别

运行级别配置文件在/lib/systemd/system下:

  • 使用命令设置默认运行级别为3:
    systemctl set-default runlevel3.target

iptables 防火墙

centos7及以前使用iptables

iptables 规则按顺序自上到下依次匹配的,使用iptables -A 即新添加规则到最后一条,iptables -I 即新插入规则到第一条。
  • 禁止某ip的所有访问
    iptables -I INPUT -s 1.1.1.1 -j DROP
  • 开启22端口
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
  • 开启icmp协议,即ping
    iptables -A OUTPUT -p icmp -j ACCEPT
    iptables -A INPUT -p icmp -j ACCEPT
  • 允许loopback!(不然会导致DNS无法正常关闭等问题)
    IPTABLES -A INPUT -i lo -p all -j ACCEPT (如果是INPUT DROP)
    IPTABLES -A OUTPUT -o lo -p all -j ACCEPT(如果是OUTPUT DROP)
  • 禁止所有ip访问22端口
    iptables -I INPUT -p tcp --dport 22 -j DROP
  • 只允许某ip的机器访问SSH连接
    iptables -A INPUT -s 1.1.1.1 -p tcp --dport 22 -j ACCEPT(单一ip)
    iptables -A INPUT -s 1.1.1.1/24 -p tcp --dport 22 -j ACCEPT(网段)
  • 防止攻击,允许每秒100个
    iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
  • 设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包.
    iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT

    firewalld防火墙

    centos8 默认已切换到firewalld

  • 服务管理
    systemctl stop firewalld.service #停止firewall
    systemctl disable firewalld.service #禁止firewall开机启动
  • firewall-cmd命令

      - 显示状态: firewall-cmd --state
      查看所有打开的端口: firewall-cmd --zone=public --list-ports
      更新防火墙规则: firewall-cmd --reload
      更新防火墙规则,重启服务: firewall-cmd --completely-reload    
      查看已激活的Zone信息: firewall-cmd --get-active-zones
      查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
      拒绝所有包:firewall-cmd --panic-on
      取消拒绝状态: firewall-cmd --panic-off
      查看是否拒绝: firewall-cmd --query-panic
  • 信任级别,通过Zone的值指定

      - drop: 丢弃所有进入的包,而不给出任何响应
      block: 拒绝所有外部发起的连接,允许内部发起的连接
      public: 允许指定的进入连接
      external: 同上,对伪装的进入连接,一般用于路由转发
      dmz: 允许受限制的进入连接
      work: 允许受信任的计算机被限制的进入连接,类似 workgroup
      home: 同上,类似 homegroup
      internal: 同上,范围针对所有互联网用户
      trusted: 信任所有连接
  • 开启/关闭端口,基于public信任级别

      - 添加:firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
    • 重新载入:firewall-cmd --reload
    • 查看:firewall-cmd --zone=public --query-port=80/tcp
    • 删除:firewall-cmd --zone=public --remove-port=80/tcp --permanent
  • 管理服务(以smtp服务为例, 添加到work zone)

    • 添加:firewall-cmd --zone=work --add-service=smtp
    • 查看:firewall-cmd --zone=work --query-service=smtp
    • 删除:firewall-cmd --zone=work --remove-service=smtp
  • 地址伪装

    • 查看:firewall-cmd --zone=external --query-masquerade
      打开:firewall-cmd --zone=external --add-masquerade
      关闭:firewall-cmd --zone=external --remove-masquerade
  • 端口转发

      - 打开端口转发,首先需要打开IP地址伪装:firewall-cmd --zone=external --add-masquerade
    • 转发 tcp 22 端口至 3753:firewall-cmd --zone=external --add-forward-port=22:porto=tcp:toport=3753
    • 转发端口数据至另一个IP的相同端口:firewall-cmd --zone=external --add-forward-port=22:porto=tcp:toaddr=192.168.1.112
    • 转发端口数据至另一个IP的 3753 端口:firewall-cmd --zone=external --add-forward-port=22:porto=tcp::toport=3753:toaddr=192.168.1.112

服务管理

启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed

重启网络服务命令

centos7可以使用:
systemctl restart network
centos8可以使用:

  • 第一种方式:
    nmcli networking off && nmcli networking on
    ifdown eth0 && ifup eth0
    nmcli con down eth0 && nmcli con up eth0
  • 第二种方式:
    1. 重启网卡之前一定要重新载入一下配置文件,不然不能立即生效
      nmcli c reload
    1. 重启网卡(下面的三条命令都可以):
      nmcli c up ens160
      nmcli d reapply ens160
      nmcli d connect ens160
      总结:重启centos8的网卡,先载入新的配置文件,然后在执行重启网卡命令即可。
  • nmtui命令可以打开NetworkManager管理工具命令行图形

用户组管理

将一个已有用户 apache 增加到一个已有用户组 admin中
usermod -a -G admin apache

命令别名设置

  • vim /etc/bashrc 编辑文件在最后加入如下
alias h='htop'  
alias i='iotop'  
alias ll='ls -lhsart'

系统下几个system目录介绍

  • /etc/systemd/system/* ―――― 供系统管理员和用户使用,注意开机自启动运行的是此目录下启动文件。
  • /run/systemd/system/* ―――― 运行时配置文件
  • /usr/lib/systemd/system/* ―――― 安装程序使用(如RPM包安装) ##建议创建的脚本文件放到此位置,执行systemctl enable xx会自动创建连接到/etc/systemd/system/multi-user.target.wants/目录下。

开启linux ipv4转发

cat /proc/sys/net/ipv4/ip_forward ##查看数据转发状态0为关闭1为开启

清除pam登录限制

如果使用pam\_tally没生效的话,也可以使用pam\_tally2命令:(SLES 11.2和12版本下用此命令才重置成功)

  • 使用pam_tally命令:
    • 例如,查看work用户的错误登陆次数:

      pam_tally --user work
    • 清空某一用户错误登陆次数:

      pam_tally --user work –-reset
  • 使用pam_tally2命令:
    • 查看错误登录次数:

      pam_tally2 --u work
    • 例如,清空 work 用户的错误登陆次数,

      pam_tally2 --u work --reset
      

Linux 命令行快捷键

1、复制与粘贴 复制命令:Ctrl + Insert 组合键或用鼠标选中即是复制。
粘贴命令:Shift + Insert 组合键或单击鼠标滚轮即为粘贴。

2、光标移动 ctrl+左右键:在单词之间跳转 ctrl+a:跳到本行的行首 ctrl+e:跳到页尾 ctrl+u:删除当前光标前面的文字 (还有剪切功能) ctrl+k:删除当前光标后面的文字(还有剪切功能) ctrl+y:粘贴Ctrl+u或ctrl+k剪切的内容 ctrl+w:删除光标前面的单词的字符

cp命令 直接覆盖不提示

  • \cp /opt/test /media/test 在cp命令前面加上”\“。
  • alias cp=’cp -i’注释/etc/.bashrc一行。

    du命令

  • du -h --max-depth=1 |grep 'G' |sort //查看上G目录并排序
  • du -sh --max-depth=1 //查看当前目录下所有一级子目录文件夹大小
  • du -h --max-depth=1 |sort //查看当前目录下所有一级子目录文件夹大小 并排序
  • du -h --max-depth=1 |grep [TG] |sort -nr //倒序排

awk命令

awk '{print $1,$2}'  //打印出第1,2个字段

uniq命令

  • uniq -c //合并重复行并在前面显示重复数量

sort命令

  • sort -rk 3 //排序,-r倒叙 -k以第3行来排序

    grep命令

  • 显示前后几行信息
    grep -C 5 foo file 显示file文件里匹配foo字串那行以及上下5行
    grep -B 5 foo file 显示foo及前5行
    grep -A 5 foo file 显示foo及后5行
  • 搜索多个关键词并且高亮显示
    grep -Ei 'vmx|svm' /proc/cpuinfo
    grep --color --perl-regexp 'vmx|svm' /proc/cpuinfo
  • 设置过滤文本颜色
    alias grep=‘grep --color=auto‘ //写入/etpc/bashrc文件,实现使用grep过滤时,用默认颜色突出显示过滤的字符(串)

find命令

基本格式:find 搜索范围 搜索条件 搜索内容
  • 按名字查找
    find /tmp -name linux.list (查询tmp目录下linux.list文件)

    注:-name就是条件, -必须加在条件前面,-name就是照文件名来查找的意思。
  • 按用户创建来查找
    例:查询 lamp 用户在 tmp 目录下创建的文件。
    解:find /tmp -user lamp
  • 按文件大小
    例:查询 tmp 目录下大于100MB 的文件或小于10MB 的文件
    解:find /tmp -size +204800 或 find /tmp -size -20480
    • 科普:size 是代码块,一个数据块 = 512字节=0.5k 1k=1024字节 1m=1024k
      区间查找:把两个例子组合起来,find /tmp -size +20480 && -size -204800
    • 注:&&就是and,也可以用-a表示and,上面的语句还可以表达为find /tmp -size +20480 -a -size -204800
  • 按时间查找

    1. 查询10分钟之前访问的文件
      find /tmp -amin -10(注:a:access的简写min:minute)
    2. 查询10分钟之内修改的文件
      find /tmp -mmin -10(注:m:modify的简写 min:minute)
    3. 查询10分钟之内属性被修改的文件
      find /tmp -cmin -10(注:c:change的简写 min:minute)
  • 模糊查找(终极方法)
    1.假设你的文件以 rc 开头,你甚至连几位字母都记不住了,那么
    find /etc -name rc (匹配多个字符)
    2. 假设你的文件以 rc 开头,你记得是四位字母,那么
    find /etc -name rc?? (?:匹配单个字符)
  • 查询并执行操作
    find /media/ -type d -name aa -exec rm -rf {} ; ##在media目录下查找aa的目录并执行删除操作。
-exec rm -rf {} ; //代表将查询的结果执行rm -rf删除操作。
  • 查询文件中多个内容条件并使用xargs操作查找结果
    find ./ -type f | xargs grep -rilE "测试|军网" //查找当前目录下文档中包含测试、军网的文件并列出路径
    find ./ -type f | xargs grep -rilE "军网"|xargs rm -rf //查找当前目录下文档中包含测试、军网的文件并删除
  • 查询结果操作
    -exec command {} ; //将查到的文件执行command操作,{} 和 ;之间有空格。
    -ok 和-exec相同,只不过在操作前要询用户

yum命令

  • 查看带nslookup命令的软件包是什么
    yum provides */nslookup
  • 清除所有yum缓存
    yum clean all
  • 安装netstat 命令:
    yum install net-tools
  • 安装nslookup命令:
    yum install bind-utils

设置时间

  • 手动设置时间
    1、date ##查看系统时间
    2、date -s "2019-4-20 11:13:00" ##设置系统时间
    3、hwclock ##查询主板时间
    4、hwclock -w ##同步到主板
    5、hwclock ##确认主板时间
  • 自动设置时间使用ntpdate命令从网络同步时间,再同步到硬件时钟命令:
    1、ntpdate 服务器 //使用ntp服务器同步时间

    国内可用ntp服务器地址:
    ntp1.aliyun.com
    ntp2.aliyun.com
    ntp3.aliyun.com
    ntp4.aliyun.com
    ntp5.aliyun.com
    ntp6.aliyun.com
    ntp7.aliyun.com
    210.72.145.44 (国家授时中心服务器IP地址)
    ntp.sjtu.edu.cn 202.120.2.101 (上海交通大学网络中心NTP服务器地址)
    s1a.time.edu.cn 北京邮电大学
    s1b.time.edu.cn 清华大学
    s1c.time.edu.cn 北京大学
    s1d.time.edu.cn 东南大学
    s1e.time.edu.cn 清华大学
    s2a.time.edu.cn 清华大学
    s2b.time.edu.cn 清华大学
    s2c.time.edu.cn 北京邮电大学
    s2d.time.edu.cn 西南地区网络中心
    s2e.time.edu.cn 西北地区网络中心
    s2f.time.edu.cn 东北地区网络中心
    s2g.time.edu.cn 华东南地区网络中心
    s2h.time.edu.cn 四川大学网络管理中心
    s2j.time.edu.cn 大连理工大学网络中心
    s2k.time.edu.cn CERNET桂林主节点
    s2m.time.edu.cn 北京大学
    ———————————————————————————————————
    133.100.11.8 日本 福冈大学
    time-a.nist.gov 129.6.15.28 NIST, Gaithersburg, Maryland
    time-b.nist.gov 129.6.15.29 NIST, Gaithersburg, Maryland
    time-a.timefreq.bldrdoc.gov 132.163.4.101 NIST, Boulder, Colorado
    time-b.timefreq.bldrdoc.gov 132.163.4.102 NIST, Boulder, Colorado
    time-c.timefreq.bldrdoc.gov 132.163.4.103 NIST, Boulder, Colorado
    utcnist.colorado.edu 128.138.140.44 University of Colorado, Boulder
    time.nist.gov 192.43.244.18 NCAR, Boulder, Colorado
    time-nw.nist.gov 131.107.1.10 Microsoft, Redmond, Washington
    nist1.symmetricom.com 69.25.96.13 Symmetricom, San Jose, California
    nist1-dc.glassey.com 216.200.93.8 Abovenet, Virginia
    nist1-ny.glassey.com 208.184.49.9 Abovenet, New York City
    nist1-sj.glassey.com 207.126.98.204 Abovenet, San Jose, California
    nist1.aol-ca.truetime.com 207.200.81.113 TrueTime, AOL facility, Sunnyvale, California
    nist1.aol-va.truetime.com 64.236.96.53 TrueTime, AOL facility, Virginia

2、hwclock -w ##同步时间到主板

脚本内容:/usr/local/bin/ntpdate ntp.ntsc.ac.cn&&/usr/sbin/hwclock -w
ntptime.sh.sh

查看进程时长

  • 查看进程开始时间,运行时长。
    ps -eo pid,tty,user,comm,lstart,etime |grep 服务名(例mysqld)
    例:
    11

使用tmpfs挂载内存为硬盘使用

mount -t tmpfs -o size=12G tmpfs /media/test1/
创建内存硬盘12G并挂载到/media/test1目录

curl命令

  • 查看头部信息
    curl -I http://xx.com
  • 强制重定向
    curl -L http://xx.com
  • 指定测试ip及端口并不显示过多的测试页面
    curl -vo /dev/null -x 192.168.101.100:80 'http://www.houlai.tech'
  • 保存文件
    -o:将网页或文件保存为命令行中指定的文件名的文件中
    curl -o name www.baidu.com
    -O:使用URL中默认的文件名保存文件到本地
    curl -O www.baidu.com
    -同时获取多个文件
    curl -O URL1 -O URL2
  • CURL授权:
    curl -u username:password URL
    curl -u username URL

    通常的做法是在命令行只输入用户名,之后会提示输入密码,这样可以保证在查看历史记录时不会将密码泄露
  • 不输出错误
    curl -s www.example.com

    // 上面命令一旦发生错误,不会显示错误信息。
    // 不发生错误的话,会正常显示运行结果。
  • 显示通信过程
    curl -v www.baidu.com
  • 指定域名访问
    curl -H "Host: www.houlai.tech" -L 10.0.8.14