今天下午學(xué)習(xí)轉(zhuǎn)錄組分析的時(shí)候,出現(xiàn)程序被killed,一查才發(fā)現(xiàn)原來是內(nèi)存不夠,一怒之下買了個(gè)12核,24G的云服務(wù)器。
新買的服務(wù)器下載東西的時(shí)候總是要考慮環(huán)境變量,之前學(xué)過,但總是跟著文檔設(shè)置,這次自己設(shè)置一下,也算是熟練掌握和理解了。
首先我在用戶目錄下的soft文件中寫了一個(gè)簡單的bash腳本temp.sh
#!/bin/bash
echo "i love u"
然后直接輸入temp.sh
系統(tǒng)會(huì)報(bào)錯(cuò)沒有這個(gè)command,這是因?yàn)楫?dāng)前目錄并不在環(huán)境變量中
首先新購的服務(wù)器下是沒有~/.bash_profile文件的,我用ls -a只找到了.bashrc,但是打開并輸入:
export PATH="/home/ubuntu/soft:$PATH"
然后在命令行輸入echo $PATH能看到環(huán)境變量中有當(dāng)前目錄,但是在命令行鍵入temp.sh,系統(tǒng)依然報(bào)錯(cuò):沒有這個(gè)command
分析可能的原因是~/.bashrc, 在本地登錄時(shí)才會(huì)被讀取,而現(xiàn)在是遠(yuǎn)程登陸,所以需要用~/.bash_profile
沒有這個(gè)文件的話就自己建一個(gè),然后輸入export PATH="/home/ubuntu/soft:$PATH"后,并且source ~/.bash_profile后,temp.sh就可以生效了。
幾個(gè)知識(shí)點(diǎn)提一下:
1.linux系統(tǒng)中程序被kill,很可能是沒有內(nèi)存了
2.遠(yuǎn)程登陸服務(wù)器,環(huán)境變量需要在~/.bash_profile中添加
3.source之后才能生效
4.另外寫的腳本,注意一下權(quán)限的問題,不行就chmod一下
5.bash腳本中開頭會(huì)有 #!/bin/bash
7.環(huán)境變量用:分割,從前往后調(diào)用
--------------------------------------------------------------------------------------------------------------------
有一點(diǎn)想要補(bǔ)充一下,開始我的程序被kill掉后,如果是centos系統(tǒng),可以在/var/log/message中查看問題,可以找到是內(nèi)存不夠的原因
但是對于ubuntu系統(tǒng),我并沒有找到這個(gè)message,于是我百度了一下,看到一些人給的方法還是沒有用。實(shí)際上,Ubuntu沒有message一定是因?yàn)樗鼘⑷罩痉旁诹藙e的文件中,不需要我們?nèi)ト藶榈膶essage弄出來。
實(shí)際上:
基于 Debian 的系統(tǒng)如 Ubuntu 在 /var/log/syslog 中存儲(chǔ)它們,而基于 RedHat 的系統(tǒng)如 RHEL 或 CentOS 則在 /var/log/messages 中存儲(chǔ)它們。/var/log/kern 存儲(chǔ)內(nèi)核的錯(cuò)誤和警告數(shù)據(jù),這對于排除與定制內(nèi)核相關(guān)的故障尤為實(shí)用。
所以報(bào)錯(cuò)信息可以在/var/log/kern中查找就可以了
另外
學(xué)會(huì)一個(gè)小技能,vim命令行模式下用G可以到文件底部