linux 文件目录标准,变量,修改字符集运行级别,设置别名和软件安装,(nginx),换源

# 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][u@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
[root@web01 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