在linux上的一些操作

  1. scp
    scp -r '/home/usrname/project/XXXX.fa' server_username@XX.XX.X.XX:~/filename/
    scp將本地文件上傳到服務器(或者是別人)。server_username是在服務器上的用戶名。你要把文件傳到哪里,就在哪里打開終端。比方說你要把服務器上的文件傳到本地,就在本地打開終端來scp。
    scp commands總結

  2. git clone
    git clone 'clone or download按鈕下的HTTPS' '要clone過來的目錄'

  3. md5sum
    md5sum 'XX/XX/filename'
    輸入兩個文件看兩個文件是否完全一樣。

  4. check ubuntu version
    lsb_release -a

  5. ubuntu 16.04 更新 r-base
    試試這個:https://stackoverflow.com/questions/55929757/installing-r-3-6-on-ubuntu-disco-19-04

  6. Print出fasta文件中每個reads的count數(shù)
    grep -v '>' XXXX.fasta | awk '{print length}'

  7. 還是grep
    zgrep的時候,要查找的字符沒有顏色標記
    標準輸出再解壓,然后pip給grep,即有標記
    gzip -cd XXX.fastq.gz | grep -n 'string'

  8. 壓縮
    保留原始.gz文件 并 解壓到當前路徑
    gunzip -c 'XXXX.fastq.gz' > 'XXXX.fastq'
    保留原始文件 并 壓縮到當前路徑
    gzip -c 'XXXX.fastq.gz' > 'XXXX.fastq' 不保留原文件的話,就gzip 'XXX.fastq',默認為.gz
    參考這個連接

  9. 解壓顯示末10行
    unzip XXX.gz -c | tail -n 10

  10. 建軟連接,用scp傳輸
    比方說要傳輸給別人的文件分布在各個文件夾里,可以先新建一個文件夾,把各個文件的軟鏈接(像快捷方式)放在里面,再scp給別人
    ln -s 'XXX/XXX/XXX.fa' 'XXX/X/X.txt' softlinktmp/
    cd softlinktmp/
    scp * XX@....:/XX/XX/XX

  11. 在服務器上運行jupyter lab, 在本地瀏覽器打開并操作
    參考這個連接
    還有這個

  • 登錄服務器,寫一個如下所示的.json, 保存在~/.jupyter/jupyter_notebook_config.json
{
  "NotebookApp": {
    "ip": "*",
    "open_browser": false
  }
}
  • 在服務器里運行jupyter lab試一下
    我在這里報錯:KeyError:'allow_remote_access'參考
    服務器中vim打開vim ~/.jupyter/jupyter_notebook_config.py, 添加 c.NotebookApp.allow_remote_access = True,保存。再試一下就可以運行了。
  • 在本地ssh:
    ssh -L 8000:127.0.0.1:8888 username@XX.XX.X.XX
    進入服務器終端后,運行jupyter lab
    會發(fā)現(xiàn)一個token碼:
    The jupyter notebook is running at: http://...../?token=XXXXXXXXXXXX
  • 復制上述token碼,在本地瀏覽器中http://127.0.0.1:8000,如下所示:

輸入token碼即login可使用了。
另外如果要access本地的文件,可以直接拖拽到jupyter lab的左側文件欄,就將文件upload到服務器上了。

  1. 查看路徑中所有文件的大小
    du -h 就顯示所有文件human readable size

  2. anaconda教程:(暫時夠用了)
    https://zhuanlan.zhihu.com/p/32925500
    在conda里裝個qiime1虛擬環(huán)境
    conda --version 先看看你的conda裝了沒
    conda env list 看看已經(jīng)建好的環(huán)境都是啥
    conda create --name qiime1 建個叫qiime1的conda環(huán)境
    conda activate qiime1 到qiime1環(huán)境里去
    conda list 看看里面有什么(新建的就是空的)
    conda install -c bioconda qiime 在這個環(huán)境里安裝qiime1,安裝好了再conda list一下看看
    print_qiime_config.py直接在終端輸入看看
    conda deactivate 退出conda

  3. 一個疑惑:我用11中提到的方法在本地打開了在服務器上運行的jupyter lab,然后試圖用subprocess.Popen()來運行命令行,進入服務器我賬戶下的一個conda環(huán)境中用qiime1,但是一直報錯
    nCommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.\nTo initialize your shell, run\n\n $ conda init <SHELL_NAME>\n\nCurrently supported shells are:\n - bash\n - fish\n - tcsh\n - xonsh\n - zsh\n - powershell\n\nSee 'conda init --help' for more information and options.\n\nIMPORTANT: You may need to close and restart your shell after running 'conda init'
    即使我在subprocess.Popen()conda init bash了,也沒法重啟shell....?
    最后我只好寫XXX.py,在服務器終端我的conda里運行。

  4. 在conda里安裝了Multiqc,但是沒法update,總是v1.0,要裝v1.6的
    參考 https://github.com/ewels/MultiQC/issues/729
    conda config --add channels defaults
    conda config --add channels conda-forge
    conda config --add channels bioconda
    conda install -y -c bioconda multiqc multiqc=1.6

  5. 在服務器里,想把自己所有的撒比進程都kill掉
    pkill -u your_user_name
    查看進程:ps -ef
    參考

  6. 一個文件夾的大小 disk usage
    du -sh XXX/ or du -h XX/

  7. 硬盤disk free
    df -h

  8. htop的解讀
    在win10的ubuntu終端

PID:進程編碼
USER:用戶名:開這個進程的人
PR:進程的優(yōu)先級
NI:進程的優(yōu)先級:最小-20,最大20
VIRT:進程占用的虛擬內存值 (kb, =SWAP+RES)
RES:進程占用的物理內存值(kb)
SHR:進程使用的共享內存值(kb)
S:進程的狀態(tài),其中S表示休眠,R表示正在運行,Z表示僵死狀態(tài),N表示該進程優(yōu)先值是負數(shù)
%CPU:進程占用的CPU使用率
%MEM:進程占用的物理內存占總內存的百分比
TIME+:該進程啟動后占用的總的CPU時間
COMMAND:進程啟動的啟動命令名稱
只看某個user的進程:u 然后選擇user, Enter

  1. conda install出現(xiàn)報錯:Segmentation fault(core dumped)
    不用把conda清空重新裝:
    conda install spyder
    然后再install一次即可

  2. Linux系統(tǒng)圖形界面卡死,kill掉進程
    你手賤點錯了東西,linux的圖形界面卡死了。終端ctrl + alt + t也打不開,這周你暴力關主機重啟兩次了,不想再折騰命苦的電腦了。
    Ctrl + Alt + F1(F1-6都行)打開終端字符界面,整個顯示屏變成黑底白字。不要孩怕,輸入你的用戶名和密碼進入終端,和圖形界面上的終端一樣的使用。通過top或者htop找到你要kill的PID:
    kill -9 PID
    然后再top或者htop一下,看看內存還在不在。
    還在的話切換回圖形界面Ctrl + Alt + F7
    要是你問我Ctrl + Alt + F1都沒有反應怎么辦,等我遇到了再說。
    ....沒想到這么快就遇到了,徹底卡死,只好按關機鍵暴力重啟了=_=

  3. tmux
    https://linuxize.com/post/getting-started-with-tmux/
    分屏之后如果要調整各屏幕的大小:
    Ctrl+b + Alt+↑ 向上調整,就向下調整,左右同理。
    要退出(但是不關閉)sessions,則Ctrl+b +d ,然后想再進入則tmux attach即可

  4. 一個文件夾里有多少個文件
    cd XX/
    ls | wc -l

  5. 在ENA上下載數(shù)據(jù)
    下載整個project的序列數(shù)據(jù)用這個腳本試試:
    https://github.com/EnzoAndree/getENA
    下載samples的metadata:
    通過biosample的API獲取json文件,比方說:
    https://www.ebi.ac.uk/biosamples/api/samples/SAMEA104228123

response = requests.get('https://www.ebi.ac.uk/biosamples/api/samples/{0}'.format('SAMEA104228123'))
content = response.content.decode('utf-8')
content_js = json.loads(content)['description']
# json.loads(content) 是一個字典,可以在里面找你要的Metadata了
  1. 在服務器上安裝conda
    參考https://stackoverflow.com/questions/54226763/installing-anaconda-on-server

  2. 在服務器上運行jupyter lab, 想要用某個conda的kernel
    參考這個連接https://medium.com/@nrk25693/how-to-add-your-conda-environment-to-your-jupyter-notebook-in-just-4-steps-abeab8b8d084
    conda install -c anaconda ipykernel
    python -m ipykernel install --user --name=conda的名稱
    重啟一下jupyter lab的kernel,然后在kernel選擇里選擇你的conda即可 (好炫啊...還能這樣搞)

  3. 在conda里pip install
    你想用conda安裝一個包,但是這個包似乎沒有conda安裝的途徑。conda之外是python3.5, conda里是3.6的環(huán)境。你想在conda里安裝3.6的版本。
    先進到conda里來:
    (condaname)$ python3 -m pip install XXXX --user (在conda里python3是3.6的。 --user是因為我在服務器里,不能sudo)

  4. htop kill 進程
    F6 sort: 按照左邊的提示選擇按照什么來sort,enter
    F9 選中某個進程之后,快速按兩下F9,按9,看到左邊顯示“Sigkill”,enter即可kill掉該進程

  5. Ctrl + Z
    將正在運行的東西掛起(stopped),然后按fg 后回車恢復。

  6. 在服務器上用別人的conda
    問到別人conda的路徑:
    conda activate /XX/username/anaconda/envs/conda_name/

  7. print出一個directory里有多少個file
    ls -1 | wc -l

  8. 把shell中的Output輸出到file
    $ cmd... >> XX.txt 是標準輸出,要輸出error:
    $ cmd... &>> XX.txt

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容