(转载) linux基础知识
转载自:https://www.cnblogs.com/zhongguiyao/p/8921786.html
linux工作目录详解
认识目录结构:man hier
/:根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中
/bin:/usr/bin:可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。
/boot:放置linux系统启动时用到的一些文件。/boot/vmlinuz为linux的内核文件,以及/boot/gurb。建议单独分区,分区大小200M即可
/dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt。
/etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份。
注:/etc/X11存放与x windows有关的设置。
/home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~test表示用户test的家目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据
/lib:/usr/lib:/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为/lib/modules。
/lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下,通常这个目录会自动出现在装置目录下。如加载硬盘于/disk 中,此目录下就会自动产生目录/disk/lost+found
/mnt:/media:光盘默认挂载点,通常光盘挂载于/mnt/cdrom下,也不一定,可以选择任意位置进行挂载。
/opt:给主机额外安装软件所摆放的目录。如:FC4使用的Fedora 社群开发软件,如果想要自行安装新的KDE 桌面软件,可以将该软件安装在该目录下。以前的 Linux 系统中,习惯放置在 /usr/local 目录下
/proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等
/root:系统管理员root的家目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。
/sbin:/usr/sbin:/usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能"查看"而不能设置和使用。
/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
/srv:服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内
/usr:应用程序存放目录,/usr/bin存放应用程序,/usr/share存放共享数据,/usr/lib存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local:存放软件升级包。/usr/share/doc:系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容建议单独分区,设置较大的磁盘空间
/var:放置系统执行过程中经常变化的文件,如随时更改的日志文件/var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。建议单独分区,设置较大的磁盘空间
linux 工作目录的作用
___/bin (binary二进制)普通用户 常用Linux命令存放处
___/sbin 存放管理员使用的系统管理程序命令等
___/boot 存放着启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件
___/cdrom 这个目录在你刚刚安装系统的时候是空的。你可以将光驱文件系统挂在这个目录下。
例如:mount /dev/cdrom /cdrom
___/home 存放用户主目录。如果我们建立一个用户,用户名是"xx",
那么在/home目录下就有一个对应的/home/xx路径
___/lib (library库)存放系统动态连接共享库
___/lost+found 一般情况下是空的,当系统非法关机后,这里就存放了一些文件
___/mnt 挂载其它文件系统
___/root 系统管理员(超级用户)主目录
___/shlib 使用运行SCO UNIX程序的iBCS2用的
___/tmp (temporary临时)存放不同程序执行时产生的临时文件,系统会周期性地清除里面的内容
___/vmlinuz 存放的是系统的内核
___/dev (device设备) 该目录下存放的是Linux的外部设备,
在Linux中访问设备的方式和访问文件的方式是相同的
_____/dev/console 系统控制台
_____/dev/fd0 第一个软盘驱动器
_____/dev/hda1 第一个IDE硬盘驱动器的第一个逻辑分区
_____/dev/hdb3 第二个IDE硬盘驱动器的第三个逻辑分区
_____/dev/ttys0 第一个串行端口
_____/dev/lp0 第一个并行端口
_____/dev/cua 用来连接调制解调器
_____/dev/sda 第一个SCSI硬盘驱动器
_____/dev/null 是一个接受设备输入但不产生任何输出的虚拟的设备
_____/dev/tty1 第一个虚拟控制台
_____/dev/pty* “虚拟终端”,用于为远程登录提供终端
___/usr 用户应用程序文件夹
_____/usr/X11R6 存放X-Windows的目录
_____/usr/bin 用户用到的大多数应用程序
_____/usr/sbin 给超级用户使用的比较高级的管理程序和系统守护程序
_____/usr/doc 文档
_____/usr/include Linux下开发或编译应用程序需要用的头文件
_____/usr/openwin 存放SUN的OpenWin
_____/usr/lib 常用的动态、静态库
_____/usr/local 普通用户、超级用户安装新软件使用
_____/usr/man 联机帮助手册
_____/usr/src 系统源代码,(/usr/src/linux系统源代码)
___/etc (etcetera) 系统管理的配置文件和子目录
_____/etc/DIR_COLORS 设定颜色
_____/etc/HOSTNAME 设定用户的节点名
_____/etc/NETWORKING 只有YES标明网络存在
_____/etc/host.conf 文件说明用户的系统如何查询节点名
_____/etc/hosts 设定用户自已的IP与名字的对应表
_____/etc/hosts.allow 设置允许使用inetd的机器使用
_____/etc/hosts.deny 设置不允许使用inetd的机器使用
_____/etc/hosts.equiv 设置远端机不用密码
_____/etc/inetd.conf 设定系统网络守护进程inetd的配置
_____/etc/inetd.pid inetd这个进程的进程id
_____/etc/hosts.lpd 设定远端有哪些节点可以使用本机的打印机
_____/etc/gateways 设定路由器
_____/etc/protocols 设定系统支持的协议
_____/etc/named.boot 设定本机为名字服务器的配置文件
_____/etc/named.pid 本机上运行的名字服务器的进程id
_____/etc/networks 设定网络的配置文件
_____/etc/resolv.conf 设定系统的名字服务器
_____/etc/services 设定系统的端品与协议类型和提供的服务
_____/etc/exports 设定NFS系统用的
_____/etc/NNTP_INEWS_DOMAIN 设置新闻服务器的配置文件
_____/etc/nntpserver 设置用户使用的新闻服务器的地址
_____/etc/XF86Config X Window的配置文件
_____/etc/hostid 系统独有的一个硬件id
_____/etc/at.deny 设置哪些用户不能使用at命令
_____/etc/bootptab 给MAKEDEV程序设定各种不同的设备驱动文件的格式
_____/etc/makedev.cfg 同DEVINFO一样给MAKEDEV使用的设置文件
_____/etc/diphosts 设置拔号服务器的用户名和口令
_____/etc/slip.hosts,/etc/slip.login 设定SLIP的配置文件
_____/etc/fastboot 使用shutdown -f产生的,重启系统要查这个文件
_____/etc/fstab 记录开机要mount的文件系统
_____/etc/mtab 系统在启动时创建的信息文件
_____/etc/ftpaccess FTP服务器的一些配置
_____/etc/ftpconversions 设定在FTP时使用的过滤器的位置
_____/etc/ftpusers 设定不能使用FTP服务的用户
_____/etc/inittab 设定系统启动时init进程将把系统设置成什么样的runlevel
_____/etc/ld.so.cache 查找系统动态链接库的缓存
_____/etc/ld.so.conf 系统动态链接库的路径
_____/etc/lilo.conf lilo的配置文件
_____/etc/magic 给file命令使用的
_____/etc/aliases 给sendmail使用的设置别名的文件
_____/etc/mail.rc,
/etc/mailcap,
/etc/sendmail.cf,
/etc/sendmail.st 设置sendmail的
_____/etc/issue 记录用户登录前显示的信息
_____/etc/motd 超级用户发布通知的地方
_____/etc/organization 存放用户的名字和组织
_____/etc/group 设定用户的组名与相关信息
_____/etc/passwd 用户密码文件(重要呀)
_____/etc/shadow 见/etc/passwd
_____/etc/pnpdevices 列出支持的Plug&Play设备
_____/etc/snooptad 监控用户的屏幕,监听的终端列表
_____/etc/sudoers 可以sudo命令的配置文件
_____/etc/syslog.conf 系统记录程序syslogd的配置文件
_____/etc/utmp 目前在用系统的用户信息
_____/etc/wtmp 同utmp差不多,只是它累加
_____/etc/nologin 系统在shutdown时不希望用户登录就产生这个文件
_____/etc/securetty 设定哪些终端可以让root登录
_____/etc/termcap 设置系统终端信息的
_____/etc/ttys 设定系统的终端类型
_____/etc/gettydefs getty_ps的定义文件
_____/etc/yp.conf NIS的配置文件
_____/etc/mtools.conf 设定mtools程序的参数
_____/etc/fdprm 设定格式化软盘的参数
_____/etc/login.access 控制用户登录权限的文件
_____/etc/login.defs 所有用户登录时的缺省配置文件
___/proc 虚拟系统,内存映象
_____/proc/1 关于进程1的信息目录。每个进程在/proc 下有一个名为其进程号的目录。
_____/proc/cpuinfo 处理器信息,如类型、制造商、型号和性能。
_____/proc/devices 当前运行的核心配置的设备驱动的列表。
_____/proc/dma 显示当前使用的DMA通道。
_____/proc/filesystems 核心配置的文件系统。
_____/proc/interrupts 显示使用的中断
_____/proc/ioports 当前使用的I/O端口。
_____/proc/kcore 系统物理内存映象
_____/proc/kmsg 核心输出的消息。也被送到syslog 。
_____/proc/ksyms 核心符号表。
_____/proc/loadavg 系统"平均负载";3个指示器指出系统当前的工作量。
_____/proc/meminfo 存储器使用信息,包括物理内存和swap。
_____/proc/modules 当前加载了哪些核心模块。
_____/proc/net 网络协议状态信息。
_____/proc/self 到查看/proc 的程序的进程目录的符号连接。当2个进程查看/proc 时, 是不同的连接。这主要便于程序得到它自己的进程目录。
_____/proc/stat 系统的不同状态
_____/proc/uptime 系统启动的时间长度。
_____/proc/version 核心版本。
___/var 存放着那些不断在扩充着的东西,为了保/usr的相对稳定,那些经常被修改的目录可以
放在这个目录下。包括系统一般运行时要改变的数据。
每个系统是特定的,即不通过网络与其他计算机共享。
_____/var/adm
_____/var/catman 当要求格式化时的man页的cache。
man页的源文件一般存在/usr/man/man* 中;有些man页可能有预格式化的版本,
存在/usr/man/cat* 中。而其他的man页在第一次看时需要格式化,
格式化完的版本存在/var/man 中,这样其他人再看相同的页时就无须等待
格式化了。 (/var/catman 经常被清除,就象清除临时目录一样。)
_____/var/lib 系统正常运行时要改变的文件。
_____/var/local /usr/local 中安装的程序的可变数据(即系统管理员安装的程序)。
注意,如果必要,即使本地安装的程序也会使用其他/var 目录,
例如/var/lock 。 /var/lock 锁定文件。
许多程序遵循在/var/lock 中产生一个锁定文件的约定,
以支持他们正在使用某个特定的设备或文件。
其他程序注意到这个锁定文件,将不试图使用这个设备或文件。
_____/var/log 各种程序的Log文件,特别是login (/var/log/wtmp log所有到系统
的登录和注销) 和syslog (/var/log/messages 里存储所有核心和系统程序信息。
/var/log 里的文件经常不确定地增长,应该定期清除。
_____/var/run 保存到下次引导前有效的关于系统的信息文件。例如, /var/run/utmp
包含当前登录的用户的信息。
_____/var/spool mail, news, 打印队列和其他队列工作的目录。
每个不同的spool在/var/spool 下有自己的子目录,
例如,用户的邮箱在/var/spool/mail 中。
_____/var/tmp 比/tmp 允许的大或需要存在较长时间的临时文件。
(虽然系统管理员可能不允许/var/tmp 有很旧的文件。)
一些重要的目录:
家目录: /root,/home/username
用户执行的命令: /bin, /usr/bin, /usr/local/bin
系统执行的命令: /sbin, /usr/sbin, /usr/local/sbin
其他挂载点: /media, /mnt
配置文件: /etc
临时文件: /tmp
内核和启动文件: /boot
服务器数据: /var, /srv
系统信息: /proc, /sys
共享库: /lib, /usr/lib, /usr/local/lib
特殊文件:
Linux目录结构:
linux文件系统知识介绍
必须要掌握的linux目录路径知识
- 修改网卡配置文件
- 配置文件路径:
/etc/sysconfig/network-scripts/ifcfg-eth0
(1)查看eth0(第二块eth1)
(2)通过setup===>"network configuration"修改网卡配置就是再改这个文件
(3)固定IP地址
(4)重启网卡/etc/init.d/network restart(影响所有网卡)
(5)ifdown eth0 && ifup eth0只针对eth0网卡
注意
- 设置文件ifcfg-interface-name包含了初始化接口所需要的大部分周详的信息。其中interface-name将根据网卡的类型和排序而不同,一般名字为eth0,eth1,ppp0等,其中eth表示以太(eth0)类型网卡,0表示第一块网卡,1表示第二块网卡,而ppp0则表示第一个point-to-poirt protocol网络接口。在ifcfg文件中定义
的各项目取决于接口类型。
下面的值较为常见: - DEVICE=name,其中,name是物理设备名
- IPADDR=addr,其中addr是IP地址
- NETMASK=mask,其中,mask是网络掩码值
- GATEWAY=addr,其中addr是网关地址
- ONBOOT=answer,其中answer是yes(引导时激活设备)或no(引导时不激活设备)
- USERCTL=answer,其中,answer是yes(非root用户能控制该设备)或no
- BOOTPROTO=proto,其中,proto取下列值之一:none,引导时不使用协议;static静态分配地址;bootp,使用BOOTP协议,或dhcp,使用DHCP协议
上图配置实际上修改的是/etc/sysconfig/network-scripts/ifcfg-eth0文件
上图设置实际上修改的是/etc/resolv.conf这个文件
小结
1,linux客户端DNS可以在网卡配置文件里设置(ifcfg-eth0)
2,linux客户端DNS也可以在/etc/resolv.conf里设置
3,网卡里的设置DNS优先于/etc/resolv.conf,如果重启网络网卡的dns会覆盖/etc/resolv.conf的设置
4,/etc/hosts:设定用户IP与名字(域名)的对应解析表,相当于本地LAN局域网内的DNS解析文件
5,/etc/sysconfig/network:可修改主机名及网卡启动,网关等配置。永久更改主机名,需同时修改以下两项:
(1)vi /etc/sysconfig/network
(2)hostname 主机名
-
/etc/fstab:开机自动挂载文件系统的一个列表(具体配置以后详说)
思考: fstab一旦配置错误,会导致服务器无法启动。如何修复?
-
/etc/rc.local:用于存放开机自启动程序命令的文件(chkconfig 常用来管理yum/rpm安装的程序的服务的开机自启动/etc/init.d)
在开机时,linux会把/etc/rc.local里的内容执行一遍
- /etc/inittab:设定系统启动时init进程将把系统设置成什么样的,runlevel运行级别及加载相关的级别对应启动文件设置
- /etc/exports:NFS网络文件系统用的配置文件
- /etc/init.d:这个目录是用来存放通过yum或rpm工具安装的软件的默认启动程序(启动脚本)的目录
- /etc/xinit.d:如果服务器是通过xinetd模式运行的,它的脚本要放在这个目录里。有些系统没有这个目录,比如Slackware,(无人值守pxe+kickstart安装系统时会用到/etc/xinit.d)
- /etc/profile:系统全局环境变量,永久生效的配置文件
(用户的环境变量:~/.bash_profile,~/.bashrc)
/etc/目录下的重要目录和文件
- /etc/issue(/etc/issue.net):记录用户登录前显示的系统版本等信息
- /etc/motd:登录提醒(里面写的任何东西都会在所有用户登录前显示出来)
- /etc/redhat-release:包括一行声明RedHat版本号和名称的信息。
- /etc/group:设定用户的组名与相关信息
- /etc/passwd:用户账号信息文件
- /etc/shadow:用户密码信息文件
- /etc/gshadow:组密码文件
- /etc/sudoers:可以执行使用sudo命令的配置文件(权限提升)
- /etc/securetty:设定哪些中断可以让root登录
- /etc/login.defs:所有用户登陆时的缺省配置
- /etc/modprobe.conf:内核模块额外参数设定
- /etc/rsyslog.conf:日志设置文件(仅限centos6.x)
其他目录
- /lib:系统会使用到的函数库
- /lib/modules:kernel的相关模块
- /var/lib/rpm:rpm套件安装处
- /usr/bin:这个目录是可执行程序的目录;当我们从系统自带的软件包安装一个程序时,他的可执行文件大多会放在这个目录。
- lib64:库文件存放目录
- /usr/sbin:这个目录也是可执行程序的目录,但大多存放涉及系统管理的命令;相似目录是/sbin或/usr/local/sbin或/usr/X11R6/sbin等;
- /usr/local:这个目录一般用来存放用户自编译安装软件的存放目录;一般是通过源码包安装的软件,如果没有特别指定安装目录的话,一般是安装在这个目录中。
- /usr/local/bin:用户安装的小的应用程序,和一些在/usr/local目录下大应用程序的符号连接
- /usr/local/sbin:系统全局环境目录,可放置一些不需要加路径执行的脚本
- /usr/share:系统共用的东西存放地,比如/usr/share/doc和/usr/share/man帮助文件
- /usr/src:内核源码存放目录,比如下面有内核源码目录,比如linux,linux-2.xxx.xx目录等。
1,rpm -ivh(存在rpm包,又无法使用yum的时候)
2,yum install
(习惯:线上对外的服务器很少安装apache,nginx,mysql,功能性软件会用yum)
3,源码(./configure,make,make install),定制。大中小企业重要服务。
门户:源码---定制RPM包---制作yum仓库----yum安装
- /usr/bin:使用者可执行的binary file目录
- /usr/local/bin:使用者可执行的binary file目录
- /usr/lib:系统会使用到的函数库
- /usr/local/lib:系统会使用到的函数库
/var目录下的路径知识
- /var:日志文件
- /var/log:各种系统日志存放地
- /var/log/messages:系统信息默认日志文件,非常重要。按周自动轮循
- /var/log/secure:记录登入系统存取信息的文件,按周自动轮循,例如:pop3,ssh,telnet,ftp都会记录在此。系统安全的日志文件。
- /var/spool:定时任务默认路径,按用户名命名的文件(/var/spool/cron/root)
- var/spool/clientmqueue:sendmail临时邮件文件目录,有很多原因会导致这个目录碎文件很多,比如crontab定时任务命令不加>/dev/null等。工作中偶尔会因为该目录文件太多,导致/var所在的分区inode数量被消耗尽,无法写入文件的情况(centos6.x不会装sendmail,所以不会有这个问题)
/proc下的重要路径知识
top:看cpu等
- /proc:虚拟目录,是内存的映射,内核和进程的虚拟文件系统目录
- /proc/version:内核版本
- /proc/sys/kernel:系统内核功能
- /proc/sys/net/ipv4:修改proc的配置时临时生效。
(/etc/sysctl.conf内核参数里配置才是永久生效。两个路径的修改效果是一样的。net.ipv4.tcp_tw_reuse=1实际上就是修改/proc/sys/net/ipv4/tcp_tw_reuse的内容) - /proc/cpuinfo:关于处理器的信息,如类型,厂家,型号和性能等
- /proc/meminfo:系统内存信息,free -m
- /proc/devices:当前运行内核所配置的所有设备清单
- /proc/dma:当前正在使用的DMA通道
- /proc/filesystems:当前运行内核所配置的文件系统
- /proc/initerrupts:正在使用的中断,和曾经有多少个中断。
- /proc/ioports:当前正在使用的I/O端口。
- /proc/loadavg:系统负载平均值信息(系统的繁忙情况,比较准确,但是不够细致系统性能指标),uptime的结果。(负载值不要超过CPU的核数。看负载top,uptime,w)
- /proc/mounts:设备的挂载信息,df -h类似
必须掌握的路径及文件
- /etc/sysconfig/network-scripts/ifcfg-eth0(第一块网卡配置文件)
- /etc/resolv.conf(DNS的配置文件,网卡配置文件优先resolv.conf)
- /etc/hosts(ip与域名(主机名)解析表)
- /etc/sysconfig/network(主机)
- /etc/fstab(开机自动挂载列表)
- /etc/rc.local(开机自启动文件,自启动命令,脚本)
- /etc/inittab (Linux开机运行级别配置文件)
- /etc/init.d(服务启动命令脚本目录)
- /etc/profile(全局环境变量)
- /etc/bashrc(别名)
- /usr/local(编译安装软件默认安装目录)
- /var/log/message(系统日志)
- /var/log/secure(系统安全日志)
- /var/spool/cron/root(定时任务,root目录)
- /proc/cpuinfo(系统cpu信息)
- /proc/meminfo(系统内存信息)
- /proc/loadavg(系统cpu负载程度)
- */proc/mounts(系统挂载信息)
*
讨论:cpu什么情况下算是负载很繁忙?
当cpu平均负载率大于CPU的核数的时候,我们就可以说,服务器cpu的负载已经很繁忙了。