Shell编程时常用的系统文件

server/2025/3/1 17:07:04/

1. Linux系统目录结构

/根目录,所有文件的第一级目录
/home普通用户家目录
/root超级用户家目录
/usr用户命令、应用程序等目录
/var应用数据、日志等目录
/lib库文件和内核模块目录
/etc系统和软件配置文件
/bin可执行程序目录
/boot内核加载所需的文件,grub引导
/dev设备文件目录,比如磁盘驱动
/tmp临时文件目录
/opt第三方软件安装目录

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 因此,我们可以把写的脚本放到以上文件里执行。

3. 系统配置文件

/etc/issue系统版本
/etc/hosts主机名与IP对应关系
/etc/resolv.confDNS服务器地址
/etc/hostname主机名
/etc/sysctl.conf系统参数配置文件
/etc/sudoerssudo权限配置
/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.allowTCP包访问列表
/etc/hosts.denyTCP包拒绝列表
/usr/share/doc各软件的文档
/etc/sshd_configSSH服务配置文件
/var/log系统和应用程序日志目录
/var/spool/mail邮件目录

crontab任务计划说明:

# 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

4. /dev目录

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

/dev/hd[a-t]IDE设备
/dev/sd[a-z]SCSI设备
/dev/dm-[-9]LVM逻辑磁盘
/dev/null黑洞
/dev/zero无限0数据流

5. /proc目录

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

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/cpuinfoCPU信息
/proc/modules系统已加载的模块或驱动,lsmod
/proc/mounts文件系统挂载信息,mount
/proc/swapsswap分区信息
/proc/partitions系统分区信息
/proc/version内核版本
/proc/statCPU利用率,磁盘,内存页
/proc/devices可用的设备列表

5.2 /proc/net

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

/proc/net/tcpTCP状态连接信息,netstat
/proc/net/udpUDP状态连接信息
/proc/net/arparp信息表
/proc/net/dev网卡流量
/proc/net/snmp网络传输协议的收发包信息
/proc/net/sockstatsocket使用情况,比如已使用,正在使用
/proc/net/netstat网络统计数据,netstat -s
/proc/net/route路由表

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/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控制生成core dump文件位置和保存格式
/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/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_retriessyn 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_timeTCP连接保持时间(默认2小时),当连接活动, 定时器会重新复位。
/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

参考资料:

E.3.9. /proc/sys/ | Red Hat Product Documentation


http://www.ppmy.cn/server/171589.html

相关文章

2024年第十五届蓝桥杯大赛软件赛省赛Python大学A组真题解析

文章目录 试题A: 拼正方形(本题总分:5 分)解析答案试题B: 召唤数学精灵(本题总分:5 分)解析答案试题C: 数字诗意解析答案试题A: 拼正方形(本题总分:5 分) 【问题描述】 小蓝正在玩拼图游戏,他有7385137888721 个2 2 的方块和10470245 个1 1 的方块,他需要从中挑出一些…

Pytorch简单概述

目录 一、Pytorch 发展1.1 什么是LUA?大家往下看:起源与发展语言特点 1.2 起源与发展 二、其他深度学习框架2.1 TensorFlow2.2 Keras2.3 Caffe2.4 Theano2.5 CNTK(Microsoft Cognitive Toolkit)2.6 MXNet Pytorch的安装&#xff0…

实现遍历Windows所有字体的基本属性

参考podofo #include <windows.h> #include <string> #include <memory> #include <set> #include <unordered_map> #include <vector> #include <algorithm> #include <iostream> #include <iomanip> #include <fst…

综合练习 —— 递归、搜索与回溯算法

目录 一、1863. 找出所有子集的异或总和再求和 - 力扣&#xff08;LeetCode&#xff09; 算法代码&#xff1a; 代码思路 问题分析 核心思想 实现细节 代码解析 初始化 DFS 函数 时间复杂度 空间复杂度 示例运行 输入 运行过程 总结 二、 47. 全排列 II - 力扣&a…

数据结构——二叉树经典习题讲解

各位看官早安午安晚安呀 如果您觉得这篇文章对您有帮助的话 欢迎您一键三连&#xff0c;小编尽全力做到更好 欢迎您分享给更多人哦 大家好&#xff0c;我们今天来学习java数据结构的二叉树 递归很重要的一些注意事项&#xff1a; 1&#xff1a;递归你能不能掌握在于&#xff1…

HTTPS 与 HTTP 的区别在哪?

HTTP与HTTPS作为互联网数据传输的核心协议&#xff0c;其通信机制与安全特性深刻影响着现代网络应用的可靠性与用户体验。本文将解析两者的通信流程、安全机制及核心差异。 一、HTTP的通信机制 先来看看HTTP是什么吧。 HTTP基于TCP/IP协议栈&#xff0c;采用经典客户端-服务…

lambda表达式,函数式接口,方法引用,Stream流

1.lambda表达式 前提&#xff1a;必须是函数式接口 特殊的匿名内部类&#xff0c;语法更简洁 允许把函数作为一个方法的参数&#xff08;函数作为方法参数传递&#xff09;&#xff0c;将代码像数据一样传递 语法&#xff1a; <函数式接口><变量名>&#xff08…

vscode下载安装教程(附安装包)vscode图文安装教程最新版

文章目录 一、vscode下载二、vscod安装教程1.启动vscode安装程序&#xff1a;2.应对提示&#xff1a;3.接受协议&#xff1a;4.更改vscode安装路径&#xff1a;5.推进安装vscode&#xff1a;6.创建vscode快捷方式&#xff1a;7.开始安装vscode&#xff1a;8.完成vscode安装&…