日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

linux服务器基本常识,服务器搭建-Linux基础知识

發(fā)布時(shí)間:2023/12/1 linux 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux服务器基本常识,服务器搭建-Linux基础知识 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

服務(wù)器搭建還是需要一些Linux知識(shí)的,這節(jié)就聊點(diǎn)基礎(chǔ)的。

文件權(quán)限操作

查看權(quán)限

Linux中每個(gè)文件對(duì)每個(gè)用戶來(lái)說(shuō)都有對(duì)應(yīng)的權(quán)限,在任一路徑中輸入ll就可以查看這些信息:

root@ip-*** /usr/local # ll

total 32K

drwxr-xr-x 2 root root 4.0K Jan 14 17:00 bin

drwxr-xr-x 2 root root 4.0K Jan 14 17:00 etc

drwxr-xr-x 2 root root 4.0K Jan 14 17:00 games

drwxr-xr-x 2 root root 4.0K Jan 14 17:00 include

drwxr-xr-x 4 root root 4.0K Jan 14 17:08 lib

lrwxrwxrwx 1 root root 9 Jan 14 17:00 man -> share/man

drwxr-xr-x 2 root root 4.0K Jan 14 17:00 sbin

drwxr-xr-x 7 root root 4.0K May 27 14:02 share

drwxr-xr-x 2 root root 4.0K Jan 14 17:00 src

關(guān)于權(quán)限方面我們主要關(guān)注第1、3、4列

我們先來(lái)看第一列,第一列表示各用戶對(duì)該文件/目錄的操作權(quán)限,我把它斷成四個(gè)部分,d|rwx|r-x|r-x分別表示類型|文件所有者權(quán)限|文件所屬用戶組權(quán)限|其他人的權(quán)限。類型我們經(jīng)常用到的有d-目錄,--文件,l-連接文件,r(4)|w(2)|x(1)分別對(duì)應(yīng)讀|寫|可執(zhí)行(進(jìn)入目錄)。

第三列和第四列分別代表文件所有者和文件所屬用戶組。

改變權(quán)限屬性

改變文件權(quán)限需要用到chmod命令,上面我在rwx中標(biāo)注了4、2、1,代表的就是它們的對(duì)應(yīng)值,需要哪些權(quán)限把它們相加就是了,來(lái)個(gè)示例:

root@ip-*** ~ # ll

total 4.0K

-rw-r--r-- 1 root root 25 Jun 8 02:33 dev.js

計(jì)算一下得到文件dev.js對(duì)各用戶的權(quán)限值是644,下面使用chmod命令改變一下:

root@ip-*** ~ # chmod 761 dev.js

root@ip-*** ~ # ll

total 4.0K

-rwxrw---x 1 root root 25 Jun 8 02:33 dev.js

這里分別賦予文件所有者|文件所屬用戶組|其他用戶的權(quán)限是可讀可寫可執(zhí)行|可讀可寫|可執(zhí)行

另外,除了更改文件權(quán)限之外,還可以更改文件所有者和所在用戶組,分別用到的命令是chown、chgrp,具體使用方式可以使用man命令查看。

磁盤

一般在我們購(gòu)買服務(wù)器的時(shí)候我們都會(huì)選擇安裝好一個(gè)Linux系統(tǒng),分區(qū)啥的都已經(jīng)配置好了,這方面對(duì)入門同學(xué)來(lái)講并不需要掌握太多,主要注重查看。

查看磁盤使用df命令,加上參數(shù)-h使用以人類易讀的方式展示。

壓縮與打包

Linux中有很多軟件是下載一個(gè)壓縮包讓用戶自己解壓安裝的,這就需要我們掌握必要的壓縮技能。使用比較廣泛的有g(shù)zip、bzip2、tar。

gzip、zcat

gzip應(yīng)該說(shuō)是目前Linux系統(tǒng)中使用最廣的壓縮命令了。它可以解開(kāi)*.z、*.zip、*.gz等格式的壓縮文件,下面來(lái)看它的使用方式:

root@ip-*** ~ # gzip -v dev.js

dev.js: -8.0% -- replaced with dev.js.gz

root@ip-*** ~ # ls

dev.js.gz

這里的-v是為了在壓縮結(jié)束后查看壓縮比,當(dāng)然還有其他參數(shù):

-c 將壓縮的數(shù)據(jù)輸出

-d 解壓縮

-t 校驗(yàn)壓縮文件

-1~-9 設(shè)置壓縮級(jí)別,-1最快,壓縮效果也最差,-9最慢,壓縮效果最好,默認(rèn)-6,一般情況下使用默認(rèn)的就可以了。

so,當(dāng)我們需要解壓縮文件的時(shí)候只要加上-d參數(shù)就可以了。

我們知道cat命令可以用來(lái)查看純文本文件,那zcat就是用來(lái)查看純文本被壓縮后的壓縮文件。

另外,需要注意的一點(diǎn)是使用gzip壓縮后源文件就會(huì)被自動(dòng)刪除。

bzip2、bzcat

bzip2是比gzip更優(yōu)秀的壓縮工具,用法跟gzip非常近似:

-c 將壓縮的數(shù)據(jù)輸出

-d 解壓縮

-k 保留原文件

-z 壓縮參數(shù)

-t 校驗(yàn)壓縮文件

-1~-9 設(shè)置壓縮級(jí)別,-1最快,壓縮效果也最差,-9最慢,壓縮效果最好。

其壓縮文件以*.bz2格式存在,bzcat的作用與zcat相似,不再贅述。

tar

上面我們講到了壓縮命令,但是這里的壓縮都是單文件的,要是我想把多個(gè)文件壓縮在同一個(gè)壓縮包中光用上面的命令是做不到的,有的同學(xué)會(huì)說(shuō)我們可以壓縮一個(gè)文件夾啊,想法很好,但是不好意思,你這么做的話會(huì)類似這樣的提示:* is a directory -- ignored。所以這里我們要用到另一個(gè)工具tar,把那些文件打包成一個(gè)文件合集再使用壓縮工具進(jìn)行壓縮。

值得一提的是,tar還可以同時(shí)在參數(shù)中直接使用gzip/bzip2。tar的命令非常多,介紹幾個(gè)常用的:

-c 新建打包文件

-j/-z 使用bzip2/gzip壓縮,打包文件名通常應(yīng)該是*.tar.bz2/*.tar.gz

-t 查看打包文件內(nèi)容,主要用來(lái)查看文件名

-x 解壓縮,通常搭配 -C 用于解壓到目標(biāo)目錄

-v 查看壓縮/解壓過(guò)程中,正在被處理的文件

-C 解壓到指定目錄,與 -x 一起使用

-f 后面接被處理的文件名

下面是幾個(gè)常用的組合,一般情況下足以應(yīng)付大部分使用場(chǎng)景了。

壓縮(bzip2):tar -jcv -f target.tar.bz2 待壓縮的目錄

壓縮(gzip):tar -zcv -f target.tar.gz 待壓縮的目錄

查看包含文件(bzip2):tar -jt -f target.tar.gz/target.tar.bz2

查看包含文件(gzip):tar -zt -f target.tar.gz/target.tar.gz

解壓(bzip2):tar -jxv -f target.tar.bz2 -C 解壓到某處

解壓(gzip):tar -zxv -f target.tar.gz -C 解壓到某處

來(lái)個(gè)實(shí)例:

root@ip-*** ~ # ls -a

. .config .zcompdump-ip-172-31-17-254-5.0.2

.. .oh-my-zsh .zsh-update

.aptitude .profile .zsh_history

.bash_history .ssh .zshrc

.bashrc .viminfo dev.js

.cloud-locale-test.skip .zcompdump test

root@ip-*** ~ # tar -jcv -f test.tar.bz2 .

...

./.oh-my-zsh/lib/completion.zsh

./.oh-my-zsh/lib/diagnostics.zsh

./.profile

./.zsh_history

./.cloud-locale-test.skip

./.bashrc

root@ip-*** ~ # ls -a

. .oh-my-zsh .zsh_history

.. .profile .zshrc

.aptitude .ssh dev.js

.bash_history .viminfo test

.bashrc .zcompdump test.tar.bz2

.cloud-locale-test.skip .zcompdump-ip-172-31-17-254-5.0.2

.config .zsh-update

打包壓縮成功后,可以看到最后多了一個(gè)test.tar.bz2文件。另外,另外兩組組合可以自己嘗試一下,另外,解壓強(qiáng)烈建議加上-C命令,以免覆蓋原來(lái)的文件。

shell腳本

shell腳本是能夠在shell環(huán)境中執(zhí)行的程序,它遵從shell語(yǔ)法,有了它,我們可以為一些需要重復(fù)操作的系列連續(xù)性命令做一個(gè)合集,解放勞動(dòng)力。

下面我先給個(gè)常用的git案例:

#!/bin/bash //聲明使用的shell環(huán)境

action="none" //變量賦值

echo "1: commit to dev and update test" //打印字符串

echo "2: merge branch to master"

read -p "please input number to select next step: " -t 30 action //讀取用戶鍵盤輸入并賦給 action 變量,30秒內(nèi)無(wú)輸入則跳過(guò)

case $action in //case語(yǔ)句,判斷條件為 action 變量

1)

read -p "please input commit content: " -t 30 commit

if [ "$commit" == "" ]; then //if判斷語(yǔ)法

commit="default commit" //條件符合執(zhí)行的操作

fi //if判斷語(yǔ)句結(jié)束

git add .

git commit -m "$commit" //引用變量

git push origin dev

exit 0 //退出shell

;; //滿足 action 為1的條件的語(yǔ)句結(jié)束

2)

echo "1: cyc"

echo "2: bingqichen"

echo "3: dev"

branch[1]="cyc" //數(shù)組賦值

branch[2]="bingqichen"

branch[3]="dev"

read -p "please input number to select the branch: " -t 30 branch_no

if [ "$branch_no" == "1" ] || [ "$branch_no" == "2" ] || [ "$branch_no" == "3" ]; then //if條件判斷,|| 表示或關(guān)系

git checkout master

git merge "${branch[$branch_no]}" //${branch[1]}為數(shù)組的引值方法

git push origin master

git checkout -

else //另外還有 elif ,跟js中的 else if 類似,可以繼續(xù)添加判斷條件

echo "sorry, this is an undefined branch!"

fi

exit 0

;;

*) //action為其他值的操作

echo "sorry, this is an undefined action!"

exit 0

;;

esac //case語(yǔ)句結(jié)束

這段腳本就是我用來(lái)解決git提交和代碼合并的問(wèn)題,大家可以根據(jù)自己的使用場(chǎng)景改造。大部分語(yǔ)句還是很簡(jiǎn)單的,主要有幾個(gè)需要注意的點(diǎn),比如條件判斷語(yǔ)句:

[ "$branch_no" == "1" ]

這里面的每個(gè)空格都不可以省略!還有賦值語(yǔ)句不能加空格,慎用單引號(hào)等等。

編譯安裝

Linux中安裝軟件的方法主要分為使用包管理器安裝,和下載源代碼自行編譯安裝,前者相對(duì)簡(jiǎn)單,但是有可能有些最新的軟件包未必會(huì)有,比如PHP7,這時(shí)候就需要我們下載軟件源碼編譯成二進(jìn)制文件才能使用。

先來(lái)看看編譯過(guò)程:

大致過(guò)程是這樣的,當(dāng)我們下載到軟件源碼后,一般會(huì)是一個(gè)壓縮包,解壓之后里面會(huì)有一個(gè)用于建立Makefile文件的config/configure文件,使用config/configure建立Makefile后,執(zhí)行make命令將源代碼根據(jù)Makefile文件的配置進(jìn)行編譯,最后執(zhí)行make install命令,將編譯好的內(nèi)容依據(jù)Makefile中install選項(xiàng)安裝到指定位置完成安裝。

這里講講為什么要根據(jù)Makefile進(jìn)行編譯,其實(shí)GCC可以直接編譯程序文件,但是一個(gè)軟件不可能只擁有一個(gè)程序文件,要是人工一個(gè)個(gè)去編譯每個(gè)文件,會(huì)非常勞民傷財(cái)!所以借助一個(gè)Makefile我們就可以搞定了。

下面來(lái)演示一個(gè)PHP7的編譯安裝:

root@ip-*** ~ # wget http://cn2.php.net/get/php-7.0.0.tar.gz/from/this/mirror //下載源碼

root@ip-*** ~ # ls

mirror

root@ip-*** ~ # mv mirror php.tar.gz //重命名

root@ip-*** ~ # tar -zxv -f php.tar.gz //解壓縮源碼包

root@ip-*** ~ # ls

php-7.0.0 php.tar.gz

root@ip-*** ~ # cd php-7.0.0 //進(jìn)入源文件目錄

root@ip-*** ~/php-7.0.0 # ls //里面會(huì)有一些手冊(cè),可以用來(lái)做安裝參考

INSTALL README.md configure

...

root@ip-*** ~/php-7.0.0 # ./configure //執(zhí)行configure建立Makefile

checking for grep that handles long lines and -e... /bin/grep

checking for egrep... /bin/grep -E

...

checking for xml2-config path...

configure: error: xml2-config not found. Please check your libxml2 installation.

我在編譯到這一步報(bào)了一個(gè)錯(cuò)誤,看起來(lái)是由于libxml2未安裝,在我嘗試安裝后發(fā)現(xiàn)已經(jīng)存在這個(gè)軟件,在網(wǎng)上搜尋一片后發(fā)現(xiàn)還要安裝libxml2-dev,這個(gè)我不是很懂。。。再次執(zhí)行./configure成功并自動(dòng)建立了Makefile文件,繼續(xù):

root@ip-*** ~/php-7.0.0 # make //這個(gè)步驟視軟件大小和硬件性能執(zhí)行時(shí)間會(huì)有差異

/bin/bash /root/php-7.0.0/libtool --silent --preserve-dup-deps --mode=compile cc -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -Iext/opcache/ -I/root/php-7.0.0/ext/opcache/ -DPHP_ATOM_INC -I/root/php-7.0.0/include -I/root/php-7.0.0/main -I/root/php-7.0.0 -I/root/php-7.0.0/ext/date/lib -I/usr/include/libxml2 -I/root/php-7.0.0/ext/sqlite3/libsqlite -I/root/php-7.0.0/TSRM -I/root/php-7.0.0/Zend -I/usr/include -g -O2 -fvisibility=hidden -c /root/php-7.0.0/ext/opcache/ZendAccelerator.c -o ext/opcache/ZendAccelerator.lo

...

Build complete.

Don't forget to run 'make test'.

編譯結(jié)束時(shí),應(yīng)該能看到上面的提示,make test是非必要的,自行選擇,另外要注意的一點(diǎn),如果你是二次編譯的話需要先清理之前的編譯出來(lái)的文件,即在make之前執(zhí)行一下make clean

到這里我們只要再執(zhí)行一下make install就可以安裝結(jié)束了。

這只是最基礎(chǔ)的安裝,我在這過(guò)程中省略了很多配置項(xiàng),這樣安裝出來(lái)的軟件是很“簡(jiǎn)陋”的,事實(shí)上在執(zhí)行./configure操作時(shí),有很多可選項(xiàng)供我們配置,但是不同軟件可以添加的參數(shù)是不一樣的,怎么看當(dāng)前的軟件可以添加哪些參數(shù)呢?在軟件源碼目錄執(zhí)行./configure --help就可以了:

root@ip-*** ~/php-7.0.0 # ./configure --help

...

Installation directories:

--prefix=PREFIX install architecture-independent files in PREFIX

[/usr/local]

...

SAPI modules:

--enable-fpm Enable building of the fpm SAPI executable

...

這里只列舉了兩個(gè),一個(gè)是目標(biāo)安裝目錄,一個(gè)是啟用fpm,這些選項(xiàng)可以根據(jù)需要自行添加。

其實(shí),很多軟件通過(guò)添加軟件源的方式還是可以用包管理器安裝的,上面說(shuō)的PHP7就是這樣,不要打我???

其他資料

包管理器

Linux的包管理器有很多種,Cent OS有yum,Ubuntu有apt,還有別的像aptitude之類的,這里有一篇很好的文章供參考點(diǎn)我查看

oh-my-zsh

zsh也是一個(gè)非常強(qiáng)大的shell環(huán)境,可以用它來(lái)代替Linux系統(tǒng)原有的bash,這是一組zsh的配置,它可以讓zsh更加好用,感興趣的可以看我的另一篇文章oh-my-zsh小記

htop

這是一個(gè)運(yùn)行在終端的用于查看系統(tǒng)資源使用情況和管理進(jìn)程的圖形化工具,使用yum或者apt-get等安裝即可,完成后直接輸入htop就可以使用了,比原生的top更強(qiáng)大。

總結(jié)

以上是生活随笔為你收集整理的linux服务器基本常识,服务器搭建-Linux基础知识的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。