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 |
Shell编程时常用的系统文件(转)的更多相关文章
- Linux Shell编程之常用技巧
前言 本文集中介绍了bash编程中部分高级编程方法和技巧.通过学习本文内容,可以帮你解决以下问题: 1.bash可以网络编程么? 2..(){ .|.& };. 据说执行这些符号可以死机,那么 ...
- Linux Shell 编程 教程 常用命令
概述: Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户 ...
- Shell编程——vim常用命令
[vim]工作模式切换: 在普通模式下输入 i(插入).c(修改).o(另起一行) 命令时进入编辑模式:按 esc 键退回到普通模式. 在普通模式下输入冒号(:)可以进入命令模式.输入完命 ...
- 程序员编程时常用的mac快捷方式
fn + F2/F3 = 调节音量 commend + shift +k = 显示或隐藏键盘 commend+shift +h = iPhone返回主页面 commend+ shift + hh = ...
- 大数据Shell编程 之 常用正则表达式
使用man grep查看grep的帮助文档,有如下内容: 可以看出,正则表达式由三类,分别是 基本的正则表达式(Basic Regular Expression 又叫 Basic RegEx 简称 B ...
- [ SHELL编程 ] echo和printf使用实例
本文主要描述Linux系统中echo和printf命令的使用方法,包括命令参数的含义.使用技巧. 1.echo 了解一个命令我们首先要知道它能做什么,它有哪些参数,参数的含义,可以实现我们哪方面 ...
- [ SHELL编程 ] 编程常用的ORACLE相关命令
本文主要描述shell编程中常用的Oracle相关命令. 1.sqlplus -L/-S参数 sqlplus -L user/password #-L参数表示用户只尝试登录一次, 而不是在出错时再次提 ...
- Linux学习笔记(17) Shell编程之基础
1. 正则表达式 (1) 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配.grep.awk.sed等命令可以支持正则表达式:通配符用来匹配符合条件的文件名,通配符是完全匹配.ls.find ...
- Linux学习之Shell编程基础
转自:http://my.oschina.net/itblog/blog/204410 1 语法基本介绍1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来 ...
随机推荐
- 20145302张薇《网络对抗技术》PC平台逆向破解
20145302张薇<网络对抗技术>PC平台逆向破解 实验任务 1.简单shellcode注入实验 2.Return-to-libc 攻击实验 实验相关原理 Bof攻击防御技术 从防止注入 ...
- 20145219《网络对抗技术》PC平台逆向破解之逆向与Bof基础
20145219<网络对抗技术>PC平台逆向破解之逆向与Bof基础 实践目标 实践对象:一个名为pwn1的linux可执行文件. pwn1正常执行流程:main调用foo函数,foo函数会 ...
- Ubuntu桌面环境安装
图形程序安装 运行StartX命令检查是否已安装,若提示未安装则执行: sudo apt-get install xinit 环境管理器 GNOME: sudo apt-get install gdm ...
- MVC 返回对象换成json
错误界面: 这个就是返回对象没有转换成json 就是要再返回的头部添加application/json 代码: using System; using System.Collections.Gener ...
- luogu P1025 数的划分
https://www.luogu.org/problem/show?pid=1025 n的k划分 且不出现划分成0的情况 可以 分为两种情况 所有划分的数 都大于1的情况 至少划分的数里面有1的情 ...
- 51Nod 1070 Bash游戏 V4(斐波那契博弈)
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1070 题意: 思路: 这个是斐波那契博弈,http://blog.csd ...
- POJ 3320 Jessica‘s Reading Problem(哈希、尺取法)
http://poj.org/problem?id=3320 题意:给出一串数字,要求包含所有数字的最短长度. 思路: 哈希一直不是很会用,这道题也是参考了别人的代码,想了很久. #include&l ...
- Postman模拟json传参
首先在headers中,设置Content-Type为applicationon/json,如图: 然后再body中,选择raw,写入json数据结构,如图:
- css3 抖动
1. html <div id="wrapper"> <section> <p class="shake freez shake-hard& ...
- RabbitMQ入门_02_HelloWorld
A. AMQP基础 RabbitMQ 并不是基于 Java 开发人员熟悉的 JMS 规范设计开发的,而是基于一个比 JMS 更新更合理的 AMQP (Advanced Message Queuing ...