Shell编程时常用的系统文件

防伪码:出淤泥而不染,濯清涟而不妖。

10.1 Linux  系统目录结构

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

/home  普通用户家目录

/root  超级用户家目录

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

/var  应用数据、日志等目录

/lib  库文件和内核模块目录

/etc  系统和软件配置文件

/bin  可执行程序目录

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

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

/tmp  临时文件目录

/opt  第三方软件安装目录

10.2  环境变量文件

8.1.1  系统级

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

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

一个自定义的,放在/etc/profile.d 下

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

8.1.2  用户级

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

~/.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/reslov.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/fatab  硬盘自动挂载配置

/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  邮件目录

任务计划说明:

# 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 4 v /dev  目录

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

/dev/hd[a-t]  IDE 设备

/dev/sd[a-z]  SCSI 设备

/dev/dm-[-9]  LVM 逻辑磁盘

/dev/null  黑洞

/dev/zeror  无限 0 数据流

/dev/random 和/dev/urandom  随机数设备

10.5 5 c /proc  目录

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

10.5 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 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 5 .3 /proc/sys

这个目录下的文件可被读写,存了大多数内核参数,可以修改改变内核行为。所以修改这些文件要特

别小心,修改错误可能导致内核不稳定。

有四个主要的目录:

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

kernel # 内核行为的信息

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

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

/proc/sys/fs/dentry-state

目录缓存状态,第一个值目录缓存总条目数量,

第二个值未使用的条目数量,第三个值已经释

放数量,第四个当前页所要求的系统,最后两

个数字不常用,只显示 0

/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

10. .6 6 系统 其他 常用文件

/sys/class/net

shell 作为 TCP 客户端:

/dev/tcp/host/port

/dev/udp/host/port

如果 host 和 port 是一个有效,Bash 打开一个 TCP 或 UDP 连接到对应的 socket。

时间: 2024-10-09 21:43:21

Shell编程时常用的系统文件的相关文章

shell编程中常用的比较操作符

在任何程式的编写中都离不开条件判断语句,shell编程中也是如此,这里整理了一些在shell的test命令中经常使用的比较操作符,主要分为数值比较.字符串比较和文件比较. 数值比较: n1 -eq n2 检查n1是否等n2 n1 -ge n2 检查n1是否大于或等于n2 n1 -gt n2 检查n1是否大于n2 n1 -le n2 检查n1是否小于或等于n2 n1 -lt n2 检查n1是否小于n2 n1 -ne n2 检查n1是否不等于n2 字符串比较: str1 = str2 检查str1是

Shell编程——vim常用命令

[vim]工作模式切换:    在普通模式下输入 i(插入).c(修改).o(另起一行) 命令时进入编辑模式:按 esc 键退回到普通模式.    在普通模式下输入冒号(:)可以进入命令模式.输入完命令按回车,命令执行完后会自动退回普通模式.提示:如果不确定当前处于哪种模式,按两次 Esc 键将回到普通模式. 退出:    q     如果文件未被修改,会直接退回到Shell:否则提示保存文件.    q!     强行退出,不保存修改内容.    wq     w 命令保存文件,q 命令退出

shell编程中常用的技巧

1 循环(命令执行...但参数会变) 如以下形式: #!/usr/bin/env bash #encoding=utf-8 a=" value1 value2 value3 value4 value5 value6 " for i in $a do         echo "cmd $i argv" done 注意: $a 不能写成"$a",否则只能成为一个变量,不能成为被迭代的循环

Linux Shell 编程 教程 常用命令

概述: 一: 1. 2. 3. 二: 1. 2. 3. 三: 1. 2. 3. 四: 1. 2. 3. 五: 1. 2. 3. 六: 1. 2. 3. 七: 1. 2. 3. 八: 1. 2. 3. 九: 1. 2. 3. 十: 1. 2. 3. 原文地址:https://www.cnblogs.com/jackadam/p/8594549.html

[ SHELL编程 ] 编程常用的ORACLE相关命令

本文主要描述shell编程中常用的Oracle相关命令. 1.sqlplus -L/-S参数 sqlplus -L user/password #-L参数表示用户只尝试登录一次, 而不是在出错时再次提示,可判断用户/密码是否正确 sqlplus -S user/password #-S表示设置无提示模式,常用 2.set相关命令 set timing on #显示SQL语句的运行时间.默认值为OFF.可用于性能分析SQL执行效率. set autotrace on #允许对执行的SQL进行分析

Linux下的shell编程入门

通常情况下,我们从命令行输入命令每输入一次就能够得到系统的一次响应.一旦需要我们一个接着一个的输入命令而最后才得到结果的时候,这样的做法显然就没有效率.要达到这样的目的,通常我们利用shell程序或者shell脚本来实现. 一.简介 Shell编程有很多类似C语言和其他程序语言的特征,但是又没有编程语言那样复杂.Shell程序就是放在一个文件中的一系列Linux命令和实用程序,在执行的时候,通过Linux一个接着一个地解释和执行每个命令. 下面我们来看一个简单的shell程序: 1.首先建立一个

Linux学习之Shell编程基础

转自:http://my.oschina.net/itblog/blog/204410 1 语法基本介绍1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序.  当编辑好脚本时,如果要执行该脚本,还必须使其可执行.  要使脚本可执行: 编译 chmod +x filename 这样才能用./filename 来运行 1.2 注释  在进行shell编程时,以#开头的

Linux学习笔记(17) Shell编程之基础

1. 正则表达式 (1) 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配.grep.awk.sed等命令可以支持正则表达式:通配符用来匹配符合条件的文件名,通配符是完全匹配.ls.find.cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了. (2) 基础正则表达式 元字符 作用 * 前一个字符匹配0次或任意多次 . 匹配除了换行符外任意一个字符 ^ 匹配行首,如:^hello会匹配以hello开头的行 $ 匹配行尾,如:hello$会匹配以hello结尾的

转:Shell 编程--本文结合大量实例阐述如何编写一个shell脚本

转自:情報官世界 本文结合大量实例阐述如何编写一个shell脚本. 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具.Shell不仅仅是命令的收集,而且是一门非常棒的编程语言.您可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性.可维护性和便携性比效率更重要的任务. 下面,让我们一起来看看shell是如何工作的: 建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bas