1. 程式人生 > >linux 文件目錄標準,變量,修改字符集運行級別,設置別名和軟件安裝,(nginx),換源

linux 文件目錄標準,變量,修改字符集運行級別,設置別名和軟件安裝,(nginx),換源

比較 外置 may found image 作用 ps1 網卡 long

# 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。

linux 文件目錄標準,變量,修改字符集運行級別,設置別名和軟件安裝,(nginx),換源