# FHS
在早期的 UNIX 系统中,各个厂家各自定义了自己的 UNIX 系统文件目录,比较混乱。Linux 面世不久后,对文件目录进行了标准化,
于1994年对根文件目录做了统一的规范,推出 FHS ( Filesystem Hierarchy Standard ) 的 Linux 文件系统层次结构标准。
FHS 标准规定了 Linux 根目录各文件夹的名称及作用,统一了Linux界命名混乱的局面。
`FHS` 是根据以往无数 Linux 用户和开发者的经验总结出来的,并且会维持更新!
无论何种版本的 Linux 发行版,桌面、应用是 Linux 的外衣,文件组织、目录结构才是Linux的内心。
# 与windows的区别
windows系统下,通常会有多个盘符,路径的起始是盘符,而在linux中,没有盘符一切都从根开始,
这看起来就像一棵树形结构,就像下图:
![78f9859egw1etbt8f77f2j20io0bsgm4](https://ws4.sinaimg.cn/large/006tNc79gy1g2pkqyn76jj30io0bsgm4.jpg
# 挂载
那其他磁盘的数据如何访问呢?,通过挂载到某个目录下来访问外置的设备,通常挂载到在mnt或是media目录下
挂载指的是使操作系统可以访问某一个存储设备的的过程,简单的是说就是分配一个路径给存储设备,等同于windows下的指定盘符!
# 目录详解:
```python
目录 说明 备注
bin 存放普通用户可执行的指令
boot 开机引导目录 包括Linux内核文件与开机所需要的文件
dev 设备目录 所有的硬件设备及周边均放置在这个设备目录中
etc 各种配置文件目录 大部分配置属性均存放在这里
lib/lib64 开机时常用的动态链接库 bin及sbin指令也会调用对应的lib库
media 可移除设备挂载目录 类似软盘 U盘 光盘等临时挂放目录
mnt 用户临时挂载其他的文件系统 额外的设备可挂载在这里,相对临时而言
opt 第三方软件安装目录 现在习惯性的放置在/usr/local中
proc 虚拟文件系统 通常是内存中的映射,特别注意在误删除数据文件后,比如DB,只要系统不重启,还是有很大几率能将数据找回来
root 系统管理员主目录 除root之外,其他用户均放置在/home目录下
run 系统运行是所需文件 以前防止在/var/run中,后来拆分成独立的/run目录。重启后重新生成对应的目录数据
sbin 只有root才能运行的管理指令 跟bin类似,但只属于root管理员
snap ubunut全新软件包管理方式 snap软件包一般在/snap这个目录下
srv 服务启动后需要访问的数据目录
lost+found这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里
sys 跟proc一样虚拟文件系统 记录核心系统硬件信息
tmp 存放临时文件目录 所有用户对该目录均可读写
usr 应用程序放置目录
var 包括系统一般运行时要改变的数据.例如各种日志记录,邮件来往等,每个系统是特定的,不通过网络与其他计算机共享.
```
# etc下文件的重要文件
![image-20190504212457401](https://ws4.sinaimg.cn/large/006tNc79gy1g2plr3oomsj30ef0h979h.jpg)
![image-20190504212511319](/Users/jerry/Library/Application Support/typora-user-images/image-20190504212511319.png)
# 网卡配置详解
![image-20190504212753587](https://ws4.sinaimg.cn/large/006tNc79gy1g2plu54do7j30jd0ftgqk.jpg
![image-20190504212801451](/Users/jerry/Library/Application Support/typora-user-images/image-20190504212801451.png)
DNS也可以在/etc/resolv.conf中进行配置
![image-20190504214613089](https://ws3.sinaimg.cn/large/006tNc79gy1g2pmd6sb2mj30ce02et8t.jpg)
![image-20190504214617739](/Users/jerry/Library/Application Support/typora-user-images/image-20190504214617739.png)
**注意key的名称**
当在network-scripts下配置之后,重启网卡会自动覆盖resolv.conf中的配置,我们可以用PEERDNS参数指定是否覆盖resolv.conf中的信息,但是最终使用的还是resolv.conf中的信息
另外resolv.conf中的配置修改了之后是立即生效的
查看主机名称
uname -n
hostname
获取全部系统信息
uname -a
hostnamectl 更详细
设置主机名称
hostnamectl set-hostname (修改的名字)
重新连接生效
字符编码设置
存在于/etc/locale.conf文件与变量$LANG
查看 :echo $LANG
修改变量临时有效
export LANG=zh_CN.utf-8
修改文件
1.:进入文件修改
2:命令行 localectl set-locale LANG=en_US.utf-8
以上两种方式修改后都不会立即生效,需要重新加载配置文件
? source /etc/locale.conf # 当然重新启动也可以
运行级别
1.查看详细信息
? ll /etc/systemd/system/default.target
? vim /etc/systemd/system/default.target
? 2仅级别
? systemctl get-default
runlevel #centos 6
#### 查看所有可用级别
? ll /usr/lib/systemd/system/runlevel*.target
? ll /etc/inittab #centos 6
#### 修改当前级别
? init 5 # 修改为第五个级别,使用systemctl get-default来查看效果,发现该方式在centos7下不生效
? systemctl set-default graphical.target
? graphical.target 也可以修改为文件名称
? systemctl set-default runlevel3.target
? **注意**:通常运行在3级别
别名
设置别名
别名指的是 给某个指令设置别名,可用简化命令的编写,或是提供额外的功能
例如 系统的在执行删除指令前都会先提示,其实就是使用了别名,
#### 查看别名
? alias
#### 设置新的别名(临时)
? alias rm=‘echo rm is dangerouse be careful‘ # 执行rm时仅提示信息
? 注意:被替换的也一定是一个命令,所以当你要输出内容时,就用echo
? alias rm=‘echo rm is dangerouse be careful;rm -f‘ # 执行rm时提示信息 并删除
#### 设置新的别名(永久)
? 在配置文件中编写 设置别名的指令
? vim /etc/profile
? ![image-20190504233728674](https://ws2.sinaimg.cn/large/006tNc79gy1g2ppkyoc4tj306v03wt8r.jpg)
![image-20190504233733838](/Users/jerry/Library/Application Support/typora-user-images/image-20190504233733838.png)
退出vmi,重新加载文件
source /etc/profile
如果别名与系统重复,需要注释其中一个
vim ~/.bashrc
注释同名的 `#alias rm =‘rm -i‘`
source ~/.bashrc
变量:
设置变量
#### 查看所有变量
env
#### 查看某个变量
echo $变量名称
#### 设置临时变量
export 变量名=值
#### 设置永久变量
将变量的定义放到某个环境变量文件中
vim /etc/profile
MYNAME=jerry
测试
echo $MYNAME
### 取别名的优化案例:
```shell
cat >>/etc/profile.d/color.sh<<"EOF"
alias ll=‘ls -l --color=auto --time-style=long-iso‘
PS1=‘\[\e[32;1m\][\[email protected]\h \W]\$ \[\e[0m\]‘
EOF
source /etc/profile
usr目录
/usr/local 编译安装软件默认的路径
/usr/src 存放源码文件的路径
# 软件安装
## yum方式
yum是通常发行版的linux系统都内置了yum包管理器,使用它可以很方便的管理软件包,必须联网使用
#### 安装
yum install -y sl
#### 搜索
yum search sl
#### 删除
yum remove sl
#### 查看命令所在软件包
yum provides sl
#### 查看源仓库
yum repolist
## rpm方式
全称 redhat packages manager ,是一个本地的包管理器,需要提供安装文件
**1.安装一个rpm包:**
用法:`rpm -ivh rpm_name`
参数解释:
-i(install):安装软件包。
-v(verbose):显示安装的过程信息。可视化。
-h(hash):软件安装的时候列出哈希标记。即显示安装进度。
另外在安装一个rpm包时常用的附带参数有:
--force : 强制安装,即使覆盖属于其他包的文件也要安装
**2.卸载一个rpm包**
命令:`rpm -e filename`
**3.查询一个包是否安装:**
命令:`rpm -qa rpm包名`
**4.列出一个rpm包安装的所有文件**
命令 `rpm -ql 包名`
**5.列出一个rpm包的配置文件**
命令 `rpm -qc 包名`
**6.查看命令所在的绝对路径**
which netstat
**7.查看文件归属软件包**
rpm -qf /usr/bin/netstat
nginx 安装
nginx软件编译安装步骤:
#第一个里程:下载nginx程序软件包
mkdir /server/tools -p
cd /server/tools
wget http://nginx.org/download/nginx-1.14.0.tar.gz
tar xf nginx-1.14.0.tar.gz
#第二个里程:解决软件依赖问题
yum install openssl-devel pcre-devel -y
openssl-devel --- 为了让nginx服务可以实现https访问的功能
pcre-devel --- 兼容perl语言的正则表达式(^ shell:以什么开头 perl:^/)
nginx使用时会应用一个参数rewrite 正则表达式信息(perl)
#第三个里程:创建worker进程的管理用户
useradd -s /sbin/nologin -M www
#第四个里程:编译安装软件过程
#编译安装软件三部曲
#01.进行软件的配置
cd nginx-1.14.2
./configure --prefix=/application/nginx-1.14.2 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module
#重要配置参数总结
#--prefix=PATH set installation prefix
# 设置软件程序安装到哪个目录,指定的目录不需要创建出来
#--user=USER set non-privileged user for worker processes
#--group=GROUP set non-privileged group for worker processes
#--with-http_ssl_module enable ngx_http_ssl_module(可以实现https)
#--with-http_stub_status_module enable ngx_http_stub_status_module(主要用于监控服务运行状态)
#02.进行软件的编译(将各个语言编写代码翻译成系统可以识别的二进制信息)
make
#03.进行编译安装(将软件最终安装到系统中)
make install
#第五个里程:创建程序软链接
ln -s /application/nginx-1.14.2/ /application/nginx
[[email protected] application]# ll /application/nginx-1.14.2/
total 16
drwxr-xr-x 2 root root 4096 May 16 10:49 conf
drwxr-xr-x 2 root root 4096 May 16 10:49 html
drwxr-xr-x 2 root root 4096 May 16 10:49 logs
drwxr-xr-x 2 root root 4096 May 16 10:49 sbin
一个程序目录部署好,会被其他开发程序或者脚本程序所调用
代码程序1:nginx_info1="/application/nginx/"
代码程序2:nginx_info2="/application/nginx/"
代码程序3: nginx_info3="/application/nginx/"
#第六个里程:启动nginx服务
/application/nginx/sbin/nginx
#查看80端口
netstat -lntup
#将sbin添加至环境变量
vm虚拟机换源
Vmware 安装CentOS7后替换yum源
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
mv CentOS7-Base-163.repo CentOS-Base.repo
yum clean all
yum makecache
yum install epel-release
- 1
- 2
- 3
- 4
- 5
- 6
- 7
报错Another app is currently holding the yum lock; waiting for it to exit...
的解决办法 rm -f /var/run/yum.pid
检查centos的版本:
[root@shuimo usr]# cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core)
- 1
- 2
设置不休眠
applications — system tools —setting —power –设置blank 为never。
原文地址:https://www.cnblogs.com/wrqysrt/p/10813958.html