zoukankan      html  css  js  c++  java
  • Shell编程时常用的系统文件(转)

    10.1 Linux系统目录结构

    /

    根目录,所有文件的第一级目录

    /home

    普通用户家目录

    /root

    超级用户家目录

    /usr

    用户命令、应用程序等目录

    /var

    应用数据、日志等目录

    /lib

    库文件和内核模块目录

    /etc

    系统和软件配置文件

    /bin

    可执行程序目录

    /boot

    内核加载所需的文件,grub引导

    /dev

    设备文件目录,比如磁盘驱动

    /tmp

    临时文件目录

    /opt

    第三方软件安装目录

    10.2 环境变量文件

    系统级

    系统级变量文件对所有用户生效。

    /etc/profile   # 系统范围内的环境变量和启动文件。不建议把要做的事情写在这里面,最好创建一个自定义的,放在/etc/profile.d下

    /etc/bashrc    # 系统范围内的函数和别名

    用户级

    用户级变量文件对自己生效,都在自己家目录下。

    ~/.bashrc     # 用户指定别名和函数

    ~/.bash_logout   # 用户退出执行

    ~/.bash_profile  # 用户指定变量和启动程序

    ~/.bash_history  # 用户执行命令历史文件

    开启启动脚本顺序:/etc/profile-> /etc/profile.d/*.sh -> ~/.bash_profile -> ~/.bashrc ->/etc/bashrc

    因此,我们可以把写的脚本放到以上文件里执行。

    10.3 系统配置文件

    /etc/issue

    系统版本

    /etc/hosts

    主机名与IP对应关系

    /etc/resolv.conf

    DNS服务器地址

    /etc/hostname

    主机名

    /etc/sysctl.conf

    系统参数配置文件

    /etc/sudoers

    sudo权限配置

    /etc/init.d

    服务启动脚本

    /etc/sysconfig/network-scripts   

    网卡信息配置目录

    /etc/rc.d/rc.local

    系统init初始化完后执行,不建议将启动服务写在这里面,应创建自己的systemd或udev

    /etc/fstab

    硬盘自动挂载配置

    /etc/inittab

    系统启动运行级别

    /etc/crontab  

    系统级任务计划

    /var/spool/cron

    用户级任务计划,此目录下以用户名命名对应每个用户的任务计划

    /etc/cron.d

    描述计算机任务计划

    /etc/hosts.allow

    TCP包访问列表

    /etc/hosts.deny

    TCP包拒绝列表

    /etc/skel

    新账户默认环境文件

    /usr/share/doc

    各软件的文档

    /etc/sshd_config

    SSH服务配置文件

    /var/log

    系统和应用程序日志目录

    /var/spool/mail

    邮件目录

    crontab任务计划说明:

    1
    2
    3
    4
    5
    6
    7
    8
    # Example of job definition:
    # .---------------- minute (0 - 59)
    # |  .------------- hour (0 - 23)
    # |  |  .---------- day of month (1 - 31)
    # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
    # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    # |  |  |  |  |
    # *  *  *  *  * user-name command to be executed

    10.4 /dev目录

    /dev目录下存放的是一些设备文件。

    /dev/hd[a-t]

    IDE设备

    /dev/sd[a-z]

    SCSI设备

    /dev/dm-[-9]

    LVM逻辑磁盘

    /dev/null

    黑洞

    /dev/zero

    无限0数据流

    /dev/random和/dev/urandom

    随机数设备

     

    博客地址:http://lizhenliang.blog.51cto.com

    QQ群:323779636(Shell/Python运维开发群)

     

    10.5 /proc目录

    /proc是一个虚拟目录,数据存储在内存中,存放内核运行时的参数、网络信息、进程状态等。

    10.5.1/proc

    /proc/[0-9]+

    此目录下数字命名的目录是运行进程信息,目录名为PID

    /proc/meminfo

    物理内存、交换空间等信息,free

    /proc/loadavg

    系统负载

    /proc/uptime

    系统运行时间

    计算系统启动时间:

    date -d "$(awk -F.  '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"

    或 who -b 

    /proc/cpuinfo

    CPU信息

    /proc/modules

    系统已加载的模块或驱动,lsmod

    /proc/mounts

    文件系统挂载信息,mount

    /proc/swaps

    swap分区信息

    /proc/partitions

    系统分区信息

    /proc/version

    内核版本

    /proc/stat

    CPU利用率,磁盘,内存页

    /proc/devices

    可用的设备列表

    10.5.2/proc/net

    /proc/net 目录存放的是一些网络协议信息。

    /proc/net/tcp

    TCP状态连接信息,netstat

    /proc/net/udp

    UDP状态连接信息

    /proc/net/arp

    arp信息表

    /proc/net/dev

    网卡流量

    /proc/net/snmp

    网络传输协议的收发包信息

    /proc/net/sockstat

    socket使用情况,比如已使用,正在使用

    /proc/net/netstat

    网络统计数据,netstat -s

    /proc/net/route

    路由表

    /proc/net/nf_conntrack

    当前连接追踪表

    10.5.3/proc/sys

    这个目录下的文件可被读写,存了大多数内核参数,可以修改改变内核行为。所以修改这些文件要特别小心,修改错误可能导致内核不稳定。

    有四个主要的目录:

    fs      # 文件系统各方面信息,包括配额、文件句柄、inode和目录项。

    kernel   # 内核行为的信息

    net     # 网络配置信息,包括以太网、ipx、ipv4和ipv6。

    vm      #Linux内核的虚拟内存子系统,通常称为交换空间。

    /proc/sys/fs/file-max

    内核分配所有进程最大打开文件句柄数量,可适当增加此值

    /proc/sys/fs/file-nr

    只读,第一个值已分配的文件句柄数量,第二个值分配没有使用文件句柄数量,第三个值文件句柄最大数量。lsof

    /proc/sys/kernel/acct

    第一个值日志恢复所需空间百分比,第二个值百分比阈值,第三个值时间间隔

    /proc/sys/kernel/ctrl-alt-del

    组合键重启计算机,只为0同步缓冲区到磁盘,1为不同步

    /proc/sys/kernel/domainname

    配置系统域名

    /proc/sys/kernel/exec-shield

    配置内核执行保护功能,防止某类型缓冲区溢出攻击。0为禁用,1开启

    /proc/sys/kernel/hostname

    配置系统主机名

    /proc/sys/kernel/osrelease

    内核版本号

    /proc/sys/kernel/ostype

    操作系统类型

    /proc/sys/kernel/shmall

    设置共享内存的总量,以字节为单位

    /proc/sys/kernel/shmmax

    设置最大共享内存段

    /proc/sys/kernel/shmmni

    设置共享内存段最大数量

    /proc/sys/kernel/threads-max

    设置最大允许线程数量

    /proc/sys/kernel/pid_max

    设置最大允许创建的pid数量

    /proc/sys/kernel/version

    显示最后一次编译内核时间

    /proc/sys/kernel/random/uuid

    生成uuid

    /proc/sys/kernel/core_pattern

    coredump控制core文件位置和保存格式

    echo "/corefile/core-%e-%p-%t"  

    >  /proc/sys/kernel/core_pattern

    /proc/sys/net/core/netdev_max_backlog

    设置数据包队列允许最大数量

    /proc/sys/net/core/optmem_max

    设置socket允许最大缓冲区大小

    /proc/sys/net/core/somaxconn

    每个端口最大监听队列长度

    /proc/sys/net/core/rmem_default

    设置socket接收默认缓冲区大小,单位字节

    /proc/sys/net/core/rmem_max

    设置socket接收最大缓冲区大小

    /proc/sys/net/core/wmem_default

    设置socket发送默认缓冲区大小

    /proc/sys/net/core/wmem_max

    设置socket发送最大缓冲区大小

    /proc/sys/net/nf_conntrack_max

    设置连接追踪的最大值

    /proc/sys/net/ipv4/icmp_echo_ignore_all和icmp_echo_ignore_broadcasts

    设置是否忽略icmp响应包和广播包,0为不忽略,1为忽略

    /proc/sys/net/ipv4/ip_default_ttl

    设置默认生存时间

    /proc/sys/net/ipv4/ip_forward

    允许系统接口转发数据包,默认0为关闭,1为开启

    /proc/sys/net/ipv4/ip_local_port_range

    指定使用本地TCP或UDP端口范围,第一个值最低,第二个值最高

    /proc/sys/net/ipv4/tcp_syn_retries

    限制重新发送syn尝试建立连接次数

    /proc/sys/net/ipv4/tcp_synack_retries

    syn ack确认包尝试次数

    /proc/sys/net/ipv4/tcp_syncookies

    是否启用syn cookie,0为关闭,默认1为开启

    /proc/sys/net/ipv4/tcp_max_tw_buckets

    系统保持TIME_WAIT最大数量

    /proc/sys/net/ipv4/tcp_tw_recycle

    是否启用TIME_WAIT快速收回,默认0为关闭,1为开启

    /proc/sys/net/ipv4/tcp_tw_reuse

    是否启用TIME_WAIT复用,默认0为关闭,1为开启

    /proc/sys/net/ipv4/tcp_keepalive_time

    TCP连接保持时间(默认2小时),当连接活动,定时器会重新复位。

    /proc/sys/net/ipv4/tcp_keepalive_intvl

    TCP探测间隔时间(默认75秒)

    /proc/sys/net/ipv4/tcp_keepalive_probes

    发送TCP探测包(特殊的消息包,很小,专门检查存活)的总数量,总共9次,每次间隔时间是75秒,大约11分钟如果对方不应答内核就丢弃

    /proc/sys/net/ipv4/tcp_mem

    TCP使用内存,单位页。第一个值内存使用下限,低于此值内核不做处理,第二个值超过,内核会进入压力模式,第三个值超过,就会拒绝分配socket。

    /proc/sys/vm/swappiness

    内核按此值百分比来使用swap,值越小越不考虑使用物理内存,0为尽可能不使用swap

    /proc/sys/vm/overcommit_memory

    控制内存分配,默认0为内核先评估可用内存,如果足够允许申请,否则拒绝,1为允许分配所有物理内存,2为允许分配超过物理内存和交换空间总和的内存

    /proc/sys/vm/overcommit_ratio

    指定物理内存比率,当overcommit_memory=2时,用户空间进程可使用的内存不超过物理内存*overcommit_ratio+swap

  • 相关阅读:
    LeetCode 79. 单词搜索
    LeetCode 1143. 最长公共子序列
    LeetCode 55. 跳跃游戏
    LeetCode 48. 旋转图像
    LeetCode 93. 复原 IP 地址
    LeetCode 456. 132模式
    LeetCode 341. 扁平化嵌套列表迭代器
    LeetCode 73. 矩阵置零
    LeetCode 47. 全排列 II
    LeetCode 46. 全排列
  • 原文地址:https://www.cnblogs.com/moss_tan_jun/p/6542905.html
Copyright © 2011-2022 走看看