day1 在Linux上發(fā)布企業(yè)級(jí)APP

領(lǐng)導(dǎo)想讓我把一個(gè)APP發(fā)布到公司內(nèi)部服務(wù)器上,而且能提供下載,證書已經(jīng)有了,打包已經(jīng)打好了,就差放到服務(wù)器上了, 對(duì)于一個(gè)做前端的人,做服務(wù)器方面的事兒,還是很頭疼的,所以拼命找資料文獻(xiàn).


開(kāi)始的思路

1:先在服務(wù)器上搭一個(gè)文件傳輸?shù)姆?wù),好以后存放方便

2:搭一個(gè)文件下載服務(wù).


開(kāi)始了,準(zhǔn)備安裝sftp.

在Centos 6.6環(huán)境使用系統(tǒng)自帶的internal-sftp搭建SFTP服務(wù)器。

打開(kāi)命令終端窗口,按以下步驟操作。

0、查看openssh的版本

[plain]view plaincopy

ssh?-V

使用ssh -V 命令來(lái)查看openssh的版本,版本必須大于4.8p1,低于的這個(gè)版本需要升級(jí)。

1、創(chuàng)建sftp組

[plain]view plaincopy

groupadd?sftp

2、創(chuàng)建一個(gè)sftp用戶,用戶名為mysftp,密碼為mysftp

修改用戶密碼和修改Linux用戶密碼是一樣的。

useradd -g sftp -s /bin/falsemysftp? //用戶名

passwdmysftp? //密碼

[plain]view plaincopy

useradd?-g?sftp?-s?/bin/false?mysftp

passwd?mysftp

3、sftp組的用戶的home目錄統(tǒng)一指定到/data/sftp下,按用戶名區(qū)分,這里先新建一個(gè)mysftp目錄,然后指定mysftp的home為/data/sftp/mysftp

[plain]view plaincopy

mkdir?-p?/data/sftp/mysftp

usermod?-d?/data/sftp/mysftp?mysftp

4、配置sshd_config

文本編輯器打開(kāi) /etc/ssh/sshd_config

vi /etc/ssh/sshd_config

找到如下這行,用#符號(hào)注釋掉,大致在文件末尾處。

# Subsystem ? ? ?sftp ? ?/usr/libexec/openssh/sftp-server

在文件最后面添加如下幾行內(nèi)容,然后保存。

[plain]view plaincopy

Subsystem???????sftp????internal-sftp

Match?Group?sftp

ChrootDirectory?/data/sftp/%u

ForceCommand????internal-sftp

AllowTcpForwarding?no

X11Forwarding?no

5、設(shè)定Chroot目錄權(quán)限

[plain]view plaincopy

chown?root:sftp?/data/sftp/mysftp

chmod?755?/data/sftp/mysftp

6、建立SFTP用戶登入后可寫入的目錄

照上面設(shè)置后,在重啟sshd服務(wù)后,用戶mysftp已經(jīng)可以登錄。但使用chroot指定根目錄后,根應(yīng)該是無(wú)法寫入的,所以要新建一個(gè)目錄供mysftp上傳文件。這個(gè)目錄所有者為mysftp,所有組為sftp,所有者有寫入權(quán)限,而所有組無(wú)寫入權(quán)限。命令如下:

[plain]view plaincopy

mkdir?/data/sftp/mysftp/upload

chown?mysftp:sftp?/data/sftp/mysftp/upload

chmod?755?/data/sftp/mysftp/upload

7、修改/etc/selinux/config

文本編輯器打開(kāi)/etc/selinux/config

[plain]view plaincopy

vi?/etc/selinux/config

將文件中的SELINUX=enforcing 修改為 SELINUX=disabled ,然后保存。

在輸入命令

[plain]view plaincopy

setenforce?0

8、重啟sshd服務(wù)

輸入命令重啟服務(wù)。

[plain]view plaincopy

service?sshd?restart

9、驗(yàn)證sftp環(huán)境

用mysftp用戶名登錄,yes確定,回車輸入密碼。

[plain]view plaincopy

sftp?mysftp@127.0.0.1

顯示 sftp> 則sftp搭建成功。

10、使用FileZilla FTP Client連接SFTP服務(wù)器

輸入主機(jī)IP地址、用戶名、密碼、端口連接SFTP服務(wù)器,端口默認(rèn)為22。


里面有用到終端文本編輯器的操作,也是X度了一波,貼上

高級(jí)一些的編輯器,都會(huì)包含宏功能,vim當(dāng)然不能缺少了,在vim中使用宏是非常方便的:

:qx 開(kāi)始記錄宏,并將結(jié)果存入寄存器x

q 退出記錄模式

@x 播放記錄在x寄存器中的宏命令

稍微解釋一下,當(dāng)在normal模式下輸入:qx后,你對(duì)文本的所有編輯動(dòng)作將會(huì)被記錄下來(lái),再次輸入q即退出了記錄模

式,然后輸入@x對(duì)剛才記錄下來(lái)的命令進(jìn)行重復(fù),此命令后可跟數(shù)字,表示要重復(fù)多少次,比如@x20,可以重復(fù)20次。這個(gè)在文本的批處理中是非常有用的。

同時(shí)編輯多個(gè)文件

在vim眾多的插件中,有一個(gè)叫minibuffer的插件,就是下面所說(shuō)的標(biāo)簽頁(yè)功能了,可以支持同時(shí)編輯多個(gè)文件。

標(biāo)簽命令

:tabe fn 在一個(gè)新的標(biāo)簽頁(yè)中編輯文件fn

gt 切換到下一個(gè)標(biāo)簽頁(yè)

gT 切換到上一個(gè)標(biāo)簽頁(yè)

:tabr 切換到第一個(gè)標(biāo)簽頁(yè)

:tabl 切換到最后一個(gè)標(biāo)簽頁(yè)

:tabm [N] 把當(dāng)前tab移動(dòng)到第N個(gè)tab之后

對(duì),正如你所想象的那樣,跟eclipse, ue等的標(biāo)簽頁(yè)是一個(gè)意思!

窗口命令

ctrl+w s 水平分割窗口

ctrl+w w 切換窗口

ctrl+w q 退出當(dāng)前窗口(由于同時(shí)有多個(gè)文件,此命令不會(huì)影響其他窗口)

ctrl+w v 垂直分割窗口

其他

vim在保存之前不會(huì)對(duì)文件做實(shí)際的修改,只是加載到緩沖區(qū)中,對(duì)文件的編輯其實(shí)是對(duì)緩沖區(qū)的編輯,直到:w時(shí)才會(huì)存入物理文件。

:e file 把file加載到新的緩沖區(qū)中

:bn 跳轉(zhuǎn)到下一個(gè)緩沖區(qū)

:bd 刪除緩沖區(qū)(關(guān)閉文件)

:sp fn 分割窗口,并將fn加載到新的窗口中

退出編輯器

:w 將緩沖區(qū)寫入文件,即保存修改

:wq 保存修改并退出

:x 保存修改并退出

:q 退出,如果對(duì)緩沖區(qū)進(jìn)行過(guò)修改,則會(huì)提示

:q! 強(qiáng)制退出,放棄修改

查找替換

/pattern 向后搜索字符串pattern

?pattern 向前搜索字符串pattern

n 下一個(gè)匹配(如果是/搜索,則是向下的下一個(gè),?搜索則是向上的下一個(gè))

N 上一個(gè)匹配(同上)

:%s/old/new/g 搜索整個(gè)文件,將所有的old替換為new

:%s/old/new/gc 搜索整個(gè)文件,將所有的old替換為new,每次都要你確認(rèn)是否替換

復(fù)制粘貼

dd 刪除光標(biāo)所在行

dw 刪除一個(gè)字(word)

x 刪除當(dāng)前字符

X 刪除前一個(gè)字符

D 刪除到行末

yy 復(fù)制一行,此命令前可跟數(shù)字,標(biāo)識(shí)復(fù)制多行,如6yy,表示從當(dāng)前行開(kāi)始復(fù)制6行

yw 復(fù)制一個(gè)字

y$ 復(fù)制到行末

p 粘貼粘貼板的內(nèi)容到當(dāng)前行的下面

P 粘貼粘貼板的內(nèi)容到當(dāng)前行的上面

]p 有縮進(jìn)的粘貼,vim會(huì)自動(dòng)調(diào)節(jié)代碼的縮進(jìn)

"a 將內(nèi)容放入/存入a寄存器,可以支持多粘貼板

附:比如常用的一個(gè)寄存器就是系統(tǒng)寄存器,名稱為+,所以從系統(tǒng)粘貼板粘貼到vim中的命令為"+p,注意此處的+不表示操作符,二十一個(gè)寄存器。

移動(dòng)光標(biāo)

在vim中移動(dòng)光標(biāo)跟其他的編輯器中有很大的區(qū)別,不過(guò)一旦學(xué)會(huì)了,就會(huì)飛速的在文本中移動(dòng)了。

h,j,k,l 上,下,左,右

ctrl-f 上翻一頁(yè)

ctrl-b 下翻一頁(yè)

% 跳到與當(dāng)前括號(hào)匹配的括號(hào)處,如當(dāng)前在{,則跳轉(zhuǎn)到與之匹配的}處

w 跳到下一個(gè)字首,按標(biāo)點(diǎn)或單詞分割

W 跳到下一個(gè)字首,長(zhǎng)跳,如end-of-line被認(rèn)為是一個(gè)字

e 跳到下一個(gè)字尾

E 跳到下一個(gè)字尾,長(zhǎng)跳

b 跳到上一個(gè)字

B 跳到上一個(gè)字,長(zhǎng)跳

0 跳至行首,不管有無(wú)縮進(jìn),就是跳到第0個(gè)字符

^ 跳至行首的第一個(gè)字符

$ 跳至行尾

gg 跳至文件的第一行

gd 跳至當(dāng)前光標(biāo)所在的變量的聲明處

[N]G 跳到第N行,如0G,就等價(jià)于gg,100G就是第100行

fx 在當(dāng)前行中找x字符,找到了就跳轉(zhuǎn)至

; 重復(fù)上一個(gè)f命令,而不用重復(fù)的輸入fx

tx 與fx類似,但是只是跳轉(zhuǎn)到x的前一個(gè)字符處

Fx 跟fx的方向相反

),( 跳轉(zhuǎn)到上/下一個(gè)語(yǔ)句

* 查找光標(biāo)所在處的單詞,向下查找

# 查找光標(biāo)所在處的單詞,向上查找

`. 跳轉(zhuǎn)至上次編輯位置

在屏幕上移動(dòng)

H 移動(dòng)光標(biāo)到當(dāng)前屏幕上最上邊的一行

M 移動(dòng)光標(biāo)到當(dāng)前屏幕上中間的一行

L 移動(dòng)光標(biāo)到當(dāng)前屏幕上最下邊的一行

書簽

ma 把當(dāng)前位置存成標(biāo)簽a

`a 跳轉(zhuǎn)到標(biāo)簽a處

編輯

r 替換一個(gè)字符

J 將下一行和當(dāng)前行連接為一行

cc 刪除當(dāng)前行并進(jìn)入編輯模式

cw 刪除當(dāng)前字,并進(jìn)入編輯模式

c$ 擦除從當(dāng)前位置至行末的內(nèi)容,并進(jìn)入編輯模式

s 刪除當(dāng)前字符并進(jìn)入編輯模式

S 刪除光標(biāo)所在行并進(jìn)入編輯模式

xp 交換當(dāng)前字符和下一個(gè)字符

u 撤銷

ctrl+r 重做

. 重復(fù)上一個(gè)編輯命令

~ 切換大小寫,當(dāng)前字符

g~iw 切換當(dāng)前字的大小寫

gUiw 將當(dāng)前字變成大寫

guiw 將當(dāng)前字變成小寫

>> 將當(dāng)前行右移一個(gè)單位

<< 將當(dāng)前行左移一個(gè)單位(一個(gè)tab符)

== 自動(dòng)縮進(jìn)當(dāng)前行

插入模式

i 從當(dāng)前光標(biāo)處進(jìn)入插入模式

I 進(jìn)入插入模式,并置光標(biāo)于行首

a 追加模式,置光標(biāo)于當(dāng)前光標(biāo)之后

A 追加模式,置光標(biāo)于行末

o 在當(dāng)前行之下新加一行,并進(jìn)入插入模式

O 在當(dāng)前行之上新加一行,并進(jìn)入插入模式

Esc 退出插入模式

可視模式

標(biāo)記文本

v 進(jìn)入可視模式,單字符模式

V 進(jìn)入可視模式,行模式

ctrl+v 進(jìn)入可視模式,列模式,類似于UE的列模式

o 跳轉(zhuǎn)光標(biāo)到選中塊的另一個(gè)端點(diǎn)

U 將選中塊中的內(nèi)容轉(zhuǎn)成大寫

O 跳轉(zhuǎn)光標(biāo)到塊的另一個(gè)端點(diǎn)

aw 選中一個(gè)字

ab 選中括號(hào)中的所有內(nèi)容,包括括號(hào)本身

aB 選中{}括號(hào)中的所有內(nèi)容

ib 選中括號(hào)中的內(nèi)容,不含括號(hào)

iB 選中{}中的內(nèi)容,不含{}

對(duì)標(biāo)記進(jìn)行動(dòng)作

> 塊右移

< 塊左移

y 復(fù)制塊

d 刪除塊

~ 切換塊中內(nèi)容的大小寫


在使用FileZilla的時(shí)候,發(fā)現(xiàn)Mac的目錄看不懂,又X度一波

unix傳統(tǒng)的目錄

/bin 傳統(tǒng)unix命令的存放目錄,如ls,rm,mv等。

/sbin 傳統(tǒng)unix管理類命令存放目錄,如fdisk,ifconfig等等。

/usr 第三方程序安裝目錄。

/usr/bin, /usr/sbin, /usr/lib,其中/usr/lib目錄中存放了共享庫(kù)(動(dòng)態(tài)鏈接庫(kù)).

/etc. 標(biāo)準(zhǔn)unix系統(tǒng)配置文件存放目錄,如用戶密碼文件/etc/passwd。此目錄實(shí)際為指向/private/etc的鏈接。

/dev 設(shè)備文件存放目錄,如何代表硬盤的/dev/disk0。

/tmp 臨時(shí)文件存放目錄,其權(quán)限為所有人任意讀寫。此目錄實(shí)際為指向/private/tmp的鏈接。

/var 存放經(jīng)常變化的文件,如日志文件。此目錄實(shí)際為指向/private/var的鏈接。

這些標(biāo)準(zhǔn)的Unix目錄在Finder中并不可見(jiàn),如下圖所示:

OS?X特有的目錄

OS X系統(tǒng)中,除了標(biāo)準(zhǔn)的unix目錄外,還增加了特有的目錄。

/Applications 應(yīng)用程序目錄,默認(rèn)所有的GUI應(yīng)用程序都安裝在這里;

/Library 系統(tǒng)的數(shù)據(jù)文件、幫助文件、文檔等等;

/Network 網(wǎng)絡(luò)節(jié)點(diǎn)存放目錄;

/System 他只包含一個(gè)名為L(zhǎng)ibrary的目錄,這個(gè)子目錄中存放了系統(tǒng)的絕大部分組件,如各種framework,以及內(nèi)核模塊,字體文件等等。

/Users 存放用戶的個(gè)人資料和配置。每個(gè)用戶有自己的單獨(dú)目錄。

/Volumes 文件系統(tǒng)掛載點(diǎn)存放目錄。

/cores 內(nèi)核轉(zhuǎn)儲(chǔ)文件存放目錄。當(dāng)一個(gè)進(jìn)程崩潰時(shí),如果系統(tǒng)允許則會(huì)產(chǎn)生轉(zhuǎn)儲(chǔ)文件。

/private 里面的子目錄存放了/tmp, /var, /etc等鏈接目錄的目標(biāo)目錄。



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容