scp
scp -r '/home/usrname/project/XXXX.fa' server_username@XX.XX.X.XX:~/filename/
scp将本地文件上传到服务器(或者是别人)。server_username是在服务器上的用户名。你要把文件传到哪里,就在哪里打开终端。比方说你要把服务器上的文件传到本地,就在本地打开终端来scp。
scp commands总结git clone
git clone 'clone or download按钮下的HTTPS' '要clone过来的目录'
md5sum
md5sum 'XX/XX/filename'
输入两个文件看两个文件是否完全一样。check ubuntu version
lsb_release -a
ubuntu 16.04 更新 r-base
试试这个:https://stackoverflow.com/questions/55929757/installing-r-3-6-on-ubuntu-disco-19-04Print出fasta文件中每个reads的count数
grep -v '>' XXXX.fasta | awk '{print length}'
还是grep
zgrep
的时候,要查找的字符没有颜色标记
标准输出再解压,然后pip给grep,即有标记
gzip -cd XXX.fastq.gz | grep -n 'string'
压缩
保留原始.gz文件 并 解压到当前路径
gunzip -c 'XXXX.fastq.gz' > 'XXXX.fastq'
保留原始文件 并 压缩到当前路径
gzip -c 'XXXX.fastq.gz' > 'XXXX.fastq'
不保留原文件的话,就gzip 'XXX.fastq'
,默认为.gz
参考这个连接解压显示末10行
unzip XXX.gz -c | tail -n 10
建软连接,用scp传输
比方说要传输给别人的文件分布在各个文件夹里,可以先新建一个文件夹,把各个文件的软链接(像快捷方式)放在里面,再scp给别人
ln -s 'XXX/XXX/XXX.fa' 'XXX/X/X.txt' softlinktmp/
cd softlinktmp/
scp * XX@....:/XX/XX/XX
- 登录服务器,写一个如下所示的.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
会发现一个token码:
The jupyter notebook is running at: http://...../?token=XXXXXXXXXXXX
- 复制上述token码,在本地浏览器中
http://127.0.0.1:8000
,如下所示:
输入token码即login可使用了。
另外如果要access本地的文件,可以直接拖拽到jupyter lab的左侧文件栏,就将文件upload到服务器上了。
查看路径中所有文件的大小
du -h
就显示所有文件human readable sizeanaconda教程:(暂时够用了)
https://zhuanlan.zhihu.com/p/32925500
在conda里装个qiime1虚拟环境
conda --version
先看看你的conda装了没
conda env list
看看已经建好的环境都是啥
conda create --name qiime1
建个叫qiime1的conda环境
conda activate qiime1
到qiime1环境里去
conda list
看看里面有什么(新建的就是空的)
conda install -c bioconda qiime
在这个环境里安装qiime1,安装好了再conda list
一下看看
print_qiime_config.py
直接在终端输入看看
conda deactivate
退出conda一个疑惑:我用11中提到的方法在本地打开了在服务器上运行的jupyter lab,然后试图用
subprocess.Popen()
来运行命令行,进入服务器我账户下的一个conda环境中用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里运行。在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
在服务器里,想把自己所有的撒比进程都kill掉
pkill -u your_user_name
查看进程:ps -ef
参考一个文件夹的大小 disk usage
du -sh XXX/
ordu -h XX/
硬盘disk free
df -h
htop的解读
在win10的ubuntu终端
PID:进程编码
USER:用户名:开这个进程的人
PR:进程的优先级
NI:进程的优先级:最小-20,最大20
VIRT:进程占用的虚拟内存值 (kb, =SWAP+RES)
RES:进程占用的物理内存值(kb)
SHR:进程使用的共享内存值(kb)
S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数
%CPU:进程占用的CPU使用率
%MEM:进程占用的物理内存占总内存的百分比
TIME+:该进程启动后占用的总的CPU时间
COMMAND:进程启动的启动命令名称
只看某个user的进程:u
然后选择user, Enter
conda install出现报错:Segmentation fault(core dumped)
不用把conda清空重新装:
conda install spyder
然后再install一次即可Linux系统图形界面卡死,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
都没有反应怎么办,等我遇到了再说。
....没想到这么快就遇到了,彻底卡死,只好按关机键暴力重启了=_=tmux
https://linuxize.com/post/getting-started-with-tmux/
分屏之后如果要调整各屏幕的大小:
Ctrl+b
+Alt+↑
向上调整,↓
就向下调整,左右同理。
要退出(但是不关闭)sessions,则Ctrl+b
+d
,然后想再进入则tmux attach
即可一个文件夹里有多少个文件
cd XX/
ls | wc -l
在ENA上下载数据
下载整个project的序列数据用这个脚本试试:
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了
在服务器上安装conda
参考https://stackoverflow.com/questions/54226763/installing-anaconda-on-server在服务器上运行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即可 (好炫啊...还能这样搞)在conda里pip install
你想用conda安装一个包,但是这个包似乎没有conda安装的途径。conda之外是python3.5, conda里是3.6的环境。你想在conda里安装3.6的版本。
先进到conda里来:
(condaname)$ python3 -m pip install XXXX --user
(在conda里python3是3.6的。 --user是因为我在服务器里,不能sudo)htop kill 进程
F6
sort: 按照左边的提示选择按照什么来sort,enter
F9
选中某个进程之后,快速按两下F9
,按9
,看到左边显示“Sigkill”,enter即可kill掉该进程Ctrl + Z
将正在运行的东西挂起(stopped),然后按fg 后回车恢复。在服务器上用别人的conda
问到别人conda的路径:
conda activate /XX/username/anaconda/envs/conda_name/
print出一个directory里有多少个file
ls -1 | wc -l
把shell中的Output输出到file
$ cmd... >> XX.txt
是标准输出,要输出error:
$ cmd... &>> XX.txt