bash命令——linux command

bash命令——linux command

  • 1. Linux下的命令结构
  • 2. 重点命令学习
    • 2.1 基础命令
    • 2.2 文件操作
    • 2.3 文件权限
    • 2.4 目录操作
    • 2.5 环境变量
    • 2.6 进程信息
    • 2.7 grep命令
    • 2.8 awk命令
    • 2.9 cut命令
    • 2.10 bc命令
    • 2.11 sort命令
  • 3. 其他知识点
    • 3.1 批量执行某条命令
    • 3.2 windows下载数据
    • 3.3 创建shell脚本并执行
    • 3.4 积累的常用的shell命令

1. Linux下的命令结构

command [option] argument1,argument1
comman:命令,如ls,df,vim等
[option]:选项,如-a,-l,-h等
arguments:参数(可以是一个或多个)

2. 重点命令学习

2.1 基础命令

查看所有用户:more /etc/passwd
su root或者su - 进入root用户,输出入密码。此时提示符为#表示超级用户。
su zhaohuiyao 从root进入一般用户不需要密码,此时提示符为$表示一般用户。用户设计分组,权限等问题。
查看内存使用情况:df -h
关机:shutdown -h now
重启: shutdown -r now
logout 注销/退出
clear 清楚当前屏幕内容

2.2 文件操作

**Linux下所有的内容都可以称为文件,包括目录,普通文件,链接等。**这里强调普通文件的操作
less查看文件(可以通过上下键进行翻页),用Q退出。有些人会对less进行alias处理——le命令
cat、more也可以查看文件。但是cat是全部显示。
vim、vi、gedit,nano进行文件编辑。vim进入一般模式后,输入:set num,可显示行数。vim进入一般模式(命令行模式)
点击a,进入插入模式;点击Esc,退出插入模式;输入:x(保存修改并退出);:q(不保存直接退出);:q!(保存修改并强制退出)
touch [文件名] 创建空白文件
touch test1 创建一个名为test1的文件
touch test{1…3} 批量创建test1,test2,test3文件
gunzip 解压缩,不含参,则会覆盖掉原文件
gunzip -c prefix.fa.gz > prefix.fa 保留原文件
zcat命令 在不解压缩情况下,显示压缩文件的内容
zcat prefix.fa.gz | grep “>” 输出">“行
grep “>” prefix.fa 输出”>"行
tar -cvf ./prefix.tar /home/data/ 打包/home/data/目录下的全部文件,并保存在当前目录下的prefix.tar中
tar -zxvf ./prefix.tar 解压文件
tar -zxvf ./prefix.tar -C …/ #解压当前目录下的prefix.tar文件到指定目录…/下
rm 删除文件或目录
rm [文件名] 删除一个文件,且会询问你是否删除
rm -r 删除一个目录,且会依次询问你是否删除目录里的项目
rm -i 询问你是否确定删除文件
rm -f 在不提示的情况下删除
cp [需要拷贝的文件或目录的绝对路径] [拷贝到的位置]
cp -r 拷贝目录
软链接/符号链接:ln -s [文件/目录] [链接名]。对软链接进行操作,即对原文件进行修改。
scp 用于两个服务器之间文件传输
scp zhaohuiyao@11.11.1.1:/home/zhaohuiyao/.bashrc ./ #从服务器IP为11.11.1.1,账户为zhaohuiyao,文件为/home/zhaohuiyao/.bashrc,传输到当前服务器的当前目录下。需要知道密码
scp -rL zhaohuiyao@11.11.1.1:/home/zhaohuiyao/ ./ #传输目录
split 切割文件
split -l 100 name.txt split #将文件name.txt按照每100行一个文件进行分割。结果文件前缀为splitaa、splitab依次类推

2.3 文件权限

查看权限 ll [目录或文件名]
lrwxrwxrwx :文件属性,共10个字符,第1个单独,后面9个,三个一组。(r——读取/查看;w——写入/修改;x——执行)
第1个字符:l——链接;d——目录;-——文件;c——字符设备文件;b——块设备文件
后面9个字符称为文件模式,且每3个字符表示一种用户权限。依次是文件所有者权限,用户组权限,其他用户权限。这9个字符对应一个八进制数字(这对后面的修改权限操作很重要)
文件模式八进制0:—;1:–x;2:-w-:;3:-wx;4:r–;5::r-x;6::rw-;7:rwx。最高权限777
修改权限 chmod [权限数值] [文件] 常使用的权限数值有:777,755,700,660等
修改权限也可以通过符号的形式进行(一般不常用)
u——文件所有者;g——文件所有者所在组;o——其他用户;a——所有用户
+——添加某种权限;-——删除某种权限,=——表示该用户只能有什么权限
三种权限:r,w,x。chmod a-x xxx.txt 表示删除所有用户对该文件的执行权限。
当出现错误:Permission denied,表示:当前用户没有查看/修改/执行该文件或目录的权限。需获得权限。

2.4 目录操作

pwd 显示当前工作目录的完整路径
./:当前目录 …/:父目录(上级目录)
cd 进入当前用户的主目录
ls 当前工作目录下的文件和目录
ls -a 当前工作目录下的文件和目录(包括以.开头的文件与目录)
ls -l (ll)当前工作目录下的文件和目录的详细
ls -d [目录名] 查看指定目录下的详细信息
ls -t 按修改时间排序
du -sh * 查看当前目录下的所有目录和文件大小情况

2.5 环境变量

简单理解,在Liunx下我们要使用某个命令,如ls。按照运行规则,我们需要提供该命令的绝对路径,即/usr/bin/ls,但为什么我们不需要,这是因为在安装Liunx时,已经将/usr/bin设置为环境变量。
这样当我们在命令行输出ls,操作系统会对PATH存储的目录进行查找,若找到/usr/bin,就暂停并运行,若查不到就报错。

PATH:是存放有(可执行)命令和程序的目录集合;在操作系统接到用户输入的命令时,会对PATH存储的目录进行查找,看下是否有与用户输入的命令同名的文件存在,而且是从前到后一个个查找,而且是查到就停,最后查不到就报错。
echo $PATH 查看当前环境下PATH所有信息

设置环境变量:两种情况。写入.bashrc文件,则一致保存;如果直接在命令行执行export命令则仅在当前终端可用,关闭终端后,不改变
.bashrc文件/.bash_profile文件是一个,不同Linux发行版。这个文件很重要,要小心修改或者备份好,可能出现修改某些基础设置后,无法使用当前用户。
例:需要存放的路径:/home/zhaohuiyao/Biosoft/fastqc
①export PATH= P A T H : / h o m e / z h a o h u i y a o / B i o s o f t / f a s t q c > > / . b a s h r c 。(或者使用 v i m 命令进行编辑)。然后使用 s o u r c e / . b a s h r c 。激活新的环境变量② e x p o r t P A T H = PATH:/home/zhaohuiyao/Biosoft/fastqc >> ~/.bashrc。(或者使用vim命令进行编辑)。然后使用source ~/.bashrc。激活新的环境变量 ②export PATH= PATH:/home/zhaohuiyao/Biosoft/fastqc>> /.bashrc。(或者使用vim命令进行编辑)。然后使用source /.bashrc。激活新的环境变量exportPATH=PATH:/home/zhaohuiyao/Biosoft/fastqc
export PATH= P A T H : p w d 和 e x p o r t P A T H = p w d : PATH:pwd 和 export PATH=pwd: PATH:pwdexportPATH=pwd:PATH 的区别
前面提到:在命令运行时,会进行从前到后,查到就停的操作;因此理解为越靠近前面,优先级越高
前者是在所有已有的PATH最后面添加新路径
后者是在所有已有的PATH最前面添加新路径

2.6 进程信息

ps 查看进程信息,仅为机器状态的一个快照。ps -ef
top 查看动态进程信息,每3秒更新一次。
16:21:05 当前时间 up 正常运行的时间,从最近一次启动开始计算,在这个例子中,系统已经运行了7小时14分钟 1个用户正在登陆 load average(负载均值):指等待运行的进程数。三个值分别对应三个时间点(前1min,前5min,前15min),该值小于1.0表示机器不忙
tasks:总进程数和各进程的状态信息(运行,休眠,暂停,僵尸)
%Cpu(s):CPU时间被占情况。us——用户进程;sy——系统进程;ni——友好进程
jobs 推到后台的命令情况
htop 查看系统使用情况

2.7 grep命令

#如果有两个不同匹配结果之间用"–“间隔
grep -c -e “>” ./test.fa #返回符合条件(包含字符”>“的行)的行的总行数
grep -A 100 -e “>” ./test.fa #共同返回符合条件行和该行后的100行内容
grep -B 100 -e “>” ./test.fa #共同返回符合条件行和该行前的100行内容
注:使用-A和-B参数返回的结果中,如果有多个匹配结果,会存在”–"作为间隔行
grep -v -e “>” ./test.fa #返回不符合条件的行(反向查找)
grep -E #匹配复杂正则表达式,而-e参数匹配简单正则表达式

2.8 awk命令

#awk默认识别TAB键
#awk语句中的常用变量/内置变量。$0:整行内容‘;$1:第一项;$2:第二项;NF:文件列数;NR:正在读的行的序号;FNR:当前文件读的行的序号;END:文件全部读取后做的最终处理;BEGIN:设置初始化参数
#awk语句中的函数。
length($1):计算字符串$1长度
index(“a”,$1):返回字符“a”在字符串$1中的位置索引,从1开始
tolower($1):将所有字符转为小写字母
toupper($1):将所有字符转为小写字母
substr($1,3,4):返回字符串$1中第3位开始,长度为4的子字符串,从1开始
split($1,arr,“a”):以字符"a"为分割符切割字符串$1,保存到数组arr中。数组arr以1为下标开始
#awk语句中经常使用if判断语句。
#awk语句中使用print和printf函数
print $1"\t"$2
printf “%s%03d\t%s\n”, “TF:”,23,“nd” #先设置输出格式,在对其中变量进行指定。则最后输出TF:023 nd

awk ‘{print “>”$1"\n"$2}’ ./sample.txt > ./barcode.fasta
#经典例子,不同条件下修改即可
awk ‘{if($0~/^>/){print $0} else{print “no”}}’ ./test.txt > ./result.txt #判断该行是否以">“开始,若是,则输出改行内容,否则输出"no”
awk -v FS=“\t” -v OFS=“\t” ‘{print $1}’ ./test.txt > ./result.txt
#参数-v FS=“\t”,指定输入文件中每列的间隔符
#参数-v OFS=“\t”,指定输出文件中每列的间隔符

2.9 cut命令

#cut默认识别TAB键。按列提取文件内容
cut -f 1 ./name.txt > ./col1.txt #首先将name.txt文件按TAB键分列,然后提取第1列。若不存在TAB键,则整行输出
cut -f 1,5,2 ./name.txt > ./col1,2,5.txt #首先将name.txt文件按TAB键分列,然后提取第1列、第2列和第5列。每一行顺序是1,2,5而不是1,5,2
与上面一样结果一样cut -f 5,2,1 ./name.txt > ./col1,2,5.txt
cut -f 1 -d " " ./name.txt > ./col1.txt #首先将name.txt文件按空格键(连续空格也是可以的)分列,然后提取第1列

2.10 bc命令

两种情况
①终端直接输出bc,进入计算页面(交互页面),使用quit退出
②与echo和管道符一起使用
echo “6.5/2.7” | bc #输出2
echo “6.5/2.7” | bc -l #输出2.40740740740740740740
echo “scale=4;6.5/2.7” | bc #输出2.4074。scale指定小数点后位数

2.11 sort命令

sort -k 3 -n -r snp.tx > snp.sorted.txt #对snp.txt文件进行排序。按照第三列的值进行排序(-k参数);-n参数:排序的值按照数值大小排序。否则按照ASCII码排序(例如:11<8)。-r参数:从大到小。默认为从小到大

3. 其他知识点

3.1 批量执行某条命令

cat ./SRR_Acc_List.txt | while read line; do fastq-dump -e 24 -p /data/SRX5327410_sra/$line -O /root/SRX5327410_FQ/; done

3.2 windows下载数据

#有时在linux系统下无法下载的文件。选择在windows下载后上传
进入powershell(win+X) 点击Windows Powershell
$client = new-object System.Net.WebClient
$client.DownloadFile(‘http://korflab.ucdavis.edu/Unix_and_Perl/FAlite.pm’,‘C:\Users\Administrator\Desktop\master.zip’)
https://ftp.ncbi.nlm.nih.gov/genomes/refseq/assembly_summary_refseq.txt
$client.DownloadFile(‘https://ftp.ncbi.nlm.nih.gov/genomes/refseq/assembly_summary_refseq.txt’,‘C:\Users\Administrator\Desktop\assembly_summary_refseq.txt’)

3.3 创建shell脚本并执行

vim test.sh

#!/bin/bash
#Author:zhaohuiyao
#Date:2021-01-18
#This script is used to exercise shell.
echo 'Hello World!'

ll test.sh
-rw-r–r–. 1 root root 109 Jan 18 16:55 test.sh
#此时的test.sh文件不是一个可执行的文件
#修改权限,755表示所有人都可以执行;700表示只有脚本所有者可以执行
chmod 755 test.sh
ll test.sh
-rwxr-xr-x. 1 root root 109 Jan 18 16:55 test.sh
./test.sh
Hello World!
#如果不修改权限。执行命令 /bin/bash ./test.sh

3.4 积累的常用的shell命令

  1. 查看linux版本:cat /proc/version 查看服务器是32/64位:getconf LONG_BIT
  2. 查看服务器配置情况:CPU情况:lscpu;内存情况:free -g
  3. nohup /bin/bash ./hello.sh 2>&1 &。nohup将命令挂载到后台。这里会将输出追加到nohup.out文件。若是不想要nohup.out文件,nohup /bin/bash ./hello.sh 1>/dev/null 2>&1 &。这里1表示标准输出,2表示标准错误输出。2>&1,指将标准错误追加到标准输出后面。若是出现nohup.out无法生成的现象,你可以指定。nohup /bin/bash ./hello.sh 1>nohup.out 2>&1 &
  4. 将命令挂载到后台。常用两种方法:1. nohup(no hang up)CMD &:这种情况,即使关闭当前终端,该命令也会执行。2. CMD &:这种情况,当关闭当前终端,则会终止该命令。
  5. Ctrl+c:表示终止当前命令;Ctrl+z:表示暂停当前命令。
  6. jobs:查看当前终端提交到后台的任务。若重新打开一个终端,则不会显示。
  7. bg:把任务转到后台运行
  8. disown:移除任务
  9. 若是你正在运行一个任务,可能马上要断网了,想将命令推到后台,但不想先终止命令,再重新推到后台,那怎么办呢?操作如下:1.先用Ctrl+z,暂停当前任务;2. 用jobs查看该任务的编号,状态显示stopped,假设编号是1111;3. 执行bg %1111,将任务转到后台运行;4.再次用jobs查看,会发现状态是running,而且是一个新的任务编码;5. 执行disown %1111,将原来的任务移除;6.再次运行jobs确认。(这样,就算断网,也没有关系了。但是日志文件会丢失)
  10. 对.gz/.tar/.zip等压缩文件进行wc统计。命令:less xxx.tar | wc -l
  11. 将终端输出结果输出到log文件中。命令ls | tee -a log.txt(参数-a:表示追加。若为tee log.txt表示覆盖)
  12. conda环境打包为yaml文件
conda activate GenomeScope
conda env export > /home/zhaohuiyao//miniconda3/yaml/GenomeScope.yaml
conda env create -f /home/zhaohuiyao//miniconda3/yaml/GenomeScope.yaml
#该yaml文件可以在snakemake文件作为conda参数的内容
  1. 查看被kill掉的进程的原因
    dmesg | egrep -i -B100 ‘killed process’,多数是out of memory
  2. wget下载文件,参数-c:支持断点续传。参数-O:修改下载文件名
    wget -c -O newname.txt https://SSS/SSS/name.txt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/97122.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

几种软件系统集成方式详细介绍

企业在信息化的过程中会根据自身的需求构建各种软件系统&#xff0c;如&#xff1a;网站、OA、CRM、订单系统、采购系统、库存管理、财务系统等&#xff0c;由于所需的软件系统一般是逐步构建和投入使用的&#xff0c;由于构建的时间和所采用的技术等不一样&#xff0c;软件系统…

高精度NTP时钟服务器(时间同步服务器)技术方案探讨

高精度NTP时钟服务器&#xff08;时间同步服务器&#xff09;技术方案探讨 高精度NTP时钟服务器&#xff08;时间同步服务器&#xff09;技术方案探讨 四分天下目前&#xff0c;全球的 GPS卫星同步系统处于“四分天下”状态&#xff0c;以美俄两国的系统处于领导地位&#xff…

Elasticsearch使用mapping映射定义以及基本的数据类型

1、说明 Elasticsearch的映射相当于数据库的数据字典&#xff0c;它定义了每个字段的名称和能够保存的数据类型&#xff0c;并且内置了20多种字段类型用于支持多种多样的结构化数据&#xff0c;这里仅介绍几种常用的字段类型&#xff0c;如需要了解全部的类型&#xff0c;请参…

Go Gin Gorm Casbin权限管理实现 - 3. 实现Gin鉴权中间件

文章目录 0. 背景1. 准备工作2. gin中间件2.1 中间件代码2.2 中间件使用2.3 测试中间件使用结果 3. 添加权限管理API3.1 获取所有用户3.2 获取所有角色组3.3 获取所有角色组的策略3.4 修改角色组策略3.5 删除角色组策略3.6 添加用户到组3.7 从组中删除用户3.8 测试API 4. 最终目…

学习笔记|ADC|NTC原理|测温程序|STC32G单片机视频开发教程(冲哥)|第十九集:ADC应用之NTC

文章目录 1.NTC的原理开发板上的NTC 2.NTC的测温程序编写3.实战小练总结课后练习 1.NTC的原理 NTC&#xff08;Negative Temperature Coefficient&#xff09;是指随温度上升电阻呈指数关系减小、具有负温度系数的热敏电阻现象和材料。该材料是利用锰、铜、硅、钴、铁、镍、锌…

2.2.3.1vim + ctags + cscope + taglist

在window下,我们一般用Source Insight来查看代码而在linux下,使用vim来查看代码,vim是一个简单的文本浏览/编辑器,它可以通过插件的形式,搭建一个完全的类Source Insight环境,通过快捷键的形式,快速查看、定位变量/函数,本文就是基于vim,通过ctags+cscope+taglist+Ner…

『力扣每日一题15』:买卖股票的最佳时机

一、题目 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的…

Auracast 广播音频知识点

0 Preface/Foreword Bluetooth Auracast 广播功能&#xff0c;可向不限数量的设备共享音频。该功能之前称为Audio Sharing&#xff0c;现在已更名为Auracast 广播音频。 Bluetooth SIG为蓝牙广播音频功能发布新商标&#xff0c;将音频分享功能&#xff08;低功耗蓝牙音频Blue…

计算机竞赛 题目:基于机器视觉的图像矫正 (以车牌识别为例) - 图像畸变校正

文章目录 0 简介1 思路简介1.1 车牌定位1.2 畸变校正 2 代码实现2.1 车牌定位2.1.1 通过颜色特征选定可疑区域2.1.2 寻找车牌外围轮廓2.1.3 车牌区域定位 2.2 畸变校正2.2.1 畸变后车牌顶点定位2.2.2 校正 7 最后 0 简介 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享…

子网ip和子网掩码的关系

子网ip和子网掩码的关系 一个IP地址被分为两部分&#xff1a;网络地址和主机地址。这是通过子网掩码来实现的。 子网掩码&#xff08;Subnet Mask&#xff09;是一个32位的二进制数&#xff0c;它用来区分一个IP地址中的网络地址和主机地址。在子网掩码中&#xff0c;网络地址…

【Java 进阶篇】HTML 图片标签详解

HTML&#xff08;超文本标记语言&#xff09;是构建Web页面的标准语言&#xff0c;它包含了许多标签&#xff0c;用于定义和排列页面内容。在Web开发中&#xff0c;显示图像是非常常见的需求之一&#xff0c;为此HTML提供了<img>标签来插入图像。本文将详细介绍HTML图片标…

FreeRTOS入门教程(信号量的概念及API函数使用)

文章目录 前言一、什么是信号量二、信号量种类和对比三、信号量和队列的区别四、信号量相关的函数1.创建函数2.删除函数3.获取和释放信号量函数 总结 前言 本篇文章正式带大家开始学习什么是信号量&#xff0c;并且掌握信号量函数的基本使用方法&#xff0c;并且将和队列进行一…

【Vim 插件管理器】Vim-plug和Vim-vbundle的区别

- vundle是一款老款的插件管理工具 - vim-plug相对较新&#xff0c;特点是支持异步加载&#xff0c;相比vundle而言 Vim-plug 是一个自由、开源、速度非常快的、极简的 vim 插件管理器。它可以并行地安装或更新插件。你还可以回滚更新。它创建浅层克隆shallow clone最小化磁盘…

线性表的链式表示——单链表;头插,尾插,按值查找,按序号查找,插入,删除;

#include <iostream> #include <algorithm>//fill() #define InitSize 5using namespace std;/*线性表&#xff1a;链式表示——单链表&#xff1b;头插&#xff0c;尾插&#xff0c;按值查找&#xff0c;按序号查找&#xff0c;插入&#xff0c;删除*/ typedef st…

css图形化理解--扭曲函数skew()

transform: skewX(30deg);transform: skewY(45deg);transform: skew(30deg,45deg);transform: skewX(angleX);transform: skewY(angleY);transform: skew(angleX,angleY); 是CSS中的一个2D变换方法&#xff0c;它用于对元素沿X轴、Y轴进行倾斜变换。其中&#xff0c;angle表示倾…

Jenkins 添加节点Node报错JNI error has occurred UnsupportedClassVersionError

节点日志 报错信息如下 Error: A JNI error has occurred, please check your installation and try again Exception in thread “main” java.lang.UnsupportedClassVersionError: hudson/remoting/Launcher has been compiled by a more recent version of the Java Runtime…

什么是API

API (Application Programming Interface,应用程序编程接口) Java中的API 指的就是 JDK 中提供的各种功能的 Java类&#xff0c;这些类将底层封装起来&#xff0c;我们不需要关心这些类是如何实现的&#xff0c;只需要学习这些类如何使用即可&#xff0c;我们可以通过帮助文档…

知识图谱1_2——下载neo4j客户端

客户端下载 这里展现一种通过客户端进行操作的方法 https://neo4j.com/download/ 下载desktop客户端 填写完成后开始下载 下载完成后&#xff0c;在命令行输入 chmod x <文件名> #给予文件权限 sudo add-apt-repository universe #安装.appimage所需的包fuse&#x…

Pytorch使用DataLoader, num_workers!=0时的内存泄露

描述一下背景&#xff0c;和遇到的问题&#xff1a; 我在做一个超大数据集的多分类&#xff0c;设备Ubuntu 22.04i9 13900KNvidia 409064GB RAM&#xff0c;第一次的训练的训练集有700万张&#xff0c;训练成功。后面收集到更多数据集&#xff0c;数据增强后达到了1000万张。…

Linux命令定位与查找:which、whereis和find的用法详解

文章目录 Linux命令的定位与查找1. 简介Linux路径环境变量命令行和Shell 2. which命令which命令的作用使用which命令定位可执行文件多个可执行文件的定位which命令的选项及其使用 3. whereis命令whereis命令的作用使用whereis命令查找二进制文件查找源代码文件whereis命令的选项…