Linux系统基础知识

Linux系统基础知识

#centos对应的运行级别
    0   poweroff.target
    1   rescue.target
    2   multi-user.target
    3   multi-user.target
    4   multi-user.target
    5   graphical.target
    6   reboot.target

#查看默认运行级别
    systemctl get-default

#更改默认运行级别
    systemctl set-default name.target

#如何确定某个服务启动之前需要启动哪些服务
    systemctl list-dependencies --after gdm.service
#如何确定指定的服务之后命令启动哪些服务
    systemctl list-dependencies --before gdm.service

#shell是什么
    答:shell是用户完成认证后执行的第一个程序

#linux下如何控制主机名和ip的对应查询顺序(dns客户端配置)
    /etc/hosts
    /etc/resolv.conf

cat /etc/nsswitch.conf
hosts:   files dns

#如何将普通用户加入超级权限组(使其能使用sudo)
    答:将用户加入到系统自带的 wheel组,注销后再次登陆 
    gpasswd -a yonghu wheel
    id yonghu

#如何强制用户下次登陆修改密码
    答:chage -d 0 yonghu   (会修改 /etc/shadow 时间列)

#查看各种协议的协议号
    答:cat /etc/protocols

#查看各种网络服务
    答:cat /etc/services

#很重要的几个文件,关系创建用户的默认环境,登陆环境,
    答:
    /etc/default/useradd    默认shell ,家目录等等
    /etc/login.defs     加密方式,
    /etc/skel/      目录:创建新用户回将里面的文件复制到 家目录(缺少这几个文件,bash头会异常)

#给进程传递信号的工具
    答:
    kill    :只能跟进程的pid  (-1:重新加载配置,-9 强杀,-15 正常退出‘默认的’,-18 继续,-19 暂停相当于Ctrl + Z)
    killall :可用跟进程名 (killall nginx 杀死所有同名进程,killall -9 bash)
    pkill   :直接跟进程名 (pkill smoke,pkill -u alice 直接杀死用户alice的所有进程,要是有登陆,也踢掉)

#查找进程的pid( pgrep )
    答:
    pgrep sshd      :查看sshd的pid有哪些
    pgrep -u root sshd  :查看root用户使用sshd服务的pid有哪些

#linux恢复进程打开的文件(前提进程还未关闭)
    lsof | grep message #查看进程打开文件的状态
    [root@CQ-BGP ~]# lsof | grep mess
    rsyslogd   2954         root   16w  REG   253,1  32943644  24688 /var/log/messages (deleted)
    in:imjour  2954 2998    root   16w  REG   253,1  32943644  24688 /var/log/messages (deleted)
    rs:main    2954 3031    root   16w  REG   253,1  32943644  24688 /var/log/messages (deleted)

    cat /proc/2954/fd/16    #查看相应进程的文件描述符FD,然后下面就是恢复
    [root@CQ-BGP ~]# cp /proc/2954/fd/16 /var/log/messages

#如果/dev/null被删除
    1:重启自动创建
    2:手动创建
        rm /dev/null
        mknod -m 666 /dev/null c 1 3

#重定向介绍
    ls / &> list.txt    :将标准输出和标准错误输出都重定向到list.txt中
    ls / >list.txt 2>&1 :将标准输出重定向到list.txt中,将标准错误输出重定向到 文件描述符1中

#如何查看ext文件系统的信息(ext3/4文件系统black信息是有备份的)
    dumpe2fs /dev/sda2
    tune2fs -l /dev/sda2

#查看内核模块的具体信息
    modinfo bnx2

#centos出现root账户无法在tty登录的其中一个定位思路,文件数限制了,删除多于的设置,只留下默认的
    vi /etc/security/limits.conf

    #<domain>      <type>  <item>         <value>
    #*               soft    core            0
    #*               hard    rss             10000
    #@student        hard    nproc           20
    #@faculty        soft    nproc           20
    #@faculty        hard    nproc           50
    #ftp             hard    nproc           0
    #@student        -       maxlogins       4

Linux处于OOM状态的特征

什么是linux的OOM状态,有何可怕之处
    OOM(Out of Memory)的机器僵而不死,对应用来说是最大的伤害,所以我们需要有一种有效的监控手段来判断机器是否是OOM。

OOM机器的特征
    机器能否ping通
    机器无法ssh,但是能telnet 22端口,却无法ssh上去

OOM时机器状态的猜测
    Linux的kernel可能还是活的,至少tcp/ip协议栈还是可以工作的,因为ip还能ping通,22端口依然在监听
    上层应用都不响应了,比如telnet 22端口能连接上,但输入任何字符后无响应

OOM监控脚本
#/bin/bash
ips='
192.168.1.1
192.168.1.2
192.168.1.3
'
for i in $ips
do
    #判断是否能ping通
    if ping -c2 -w5 $i 2>/dev/null ; then
        #用nc判断22端口是否能否响应,使用nc -w参数设定nc 超时时间
        if echo 'hello' | nc -w 10 $i 22 | grep -q 'OpenSSH' ; then
            echo "$ip is OK"
        else
            echo "$ip is OOM!"
        fi
    fi
done

linux内核源路径验证,当linux作用BGP路由器时,必须关闭

源地址验证,去 回路径不一样,linux内核源地址验证(若是开启)linux内核的一个安全设置,开启的话假设数据包从网卡A进从网卡B出,内核就会把他drop掉
    echo "net.ipv4.conf.default.rp_filter =0" >> /etc/sysctl.conf
    echo "net.ipv4.conf.all.rp_filter=0" >> /etc/sysctl.conf
    sysctl -p

linux禁用ipv6

cat >> /etc/sysctl.conf << EOF
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1
EOF

sysctl -p
微信打赏微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2022/11/20作者: 辣条①号

现在在做什么? 接下来打算做什么? 你的目标什么? 期限还有多少? 进度如何? 不负遇见,不谈亏欠!

暂无评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???