#Linux #笔记 #代码

1. for循环
for 变量 in 列表
do
	循环
done
Example
for i in 1 2 3;do          #写一个变量,列表写了3个参数
echo "$i"                  #打印一下i这个变量的值
done                       #for循环结束
2. Linux管道符‘|’

管道符主要用于多重命令处理,前面命令的打印结果作为后面命令的输入。简单点说就是,就像工厂的流水线一样,进行完一道工序后,继续传送给下一道工序处理

3. 正则表达式[sed](Linux sed 命令 | 菜鸟教程 (runoob.com))替换命令‘s/ /g’
Example
2,5 s/abc/your_word/g                #第2到第5行,把abc替换成your_word
4. nohup任务查看时间
jobs -l     #查看PID号
ps -p <pid> -o lstart
5. gff是roray的输入文件,用来输出泛基因组图
6. roray
7. -exec 使用

![[Linux仿学笔记.png]]

find ./PATH1 -type f -name "*.fa" -exec cp {} ./PATH2 \;
# 该段是将路径PAHT1中的.fa后缀文件全筛选出来,然后复制到PATH2
8. awk使用

语法
awk 'pattern { action }' input_file

awk [选项参数] 'script' value file
或
awk [选项参数] -f scriptfile value file

选项参数说明:
-F or fs:指定输入文件的分隔符
-v :赋值一个用户定义变量
-f:从脚本文件中读取awk命令

使用","分割
 $  awk -F, '{print $1,$2}'   log.txt
 ---------------------------------------------
 2 this is a test
 3 Do you like awk
 This's a test
 10 There are orange apple
 # 或者使用内建变量
 $ awk 'BEGIN{FS=","} {print $1,$2}'     log.txt
 ---------------------------------------------
 2 this is a test
 3 Do you like awk
 This's a test
 10 There are orange apple
 # 使用多个分隔符.先使用空格分割,然后对分割结果再使用","分割
 $ awk -F '[ ,]'  '{print $1,$2,$5}'   log.txt
 ---------------------------------------------
 2 this test
 3 Are awk
 This's a
 10 There apple
 # 先分割,再计数123456
 $ awk -va=1 '{print $1,$1+a}' log.txt
 ---------------------------------------------
 2 3
 3 4
 This's 1
 10 11
 $ awk -va=1 -vb=s '{print $1,$1+a,$1b}' log.txt
 ---------------------------------------------
 2 3 2s
 3 4 3s
 This's 1 This'ss
 10 11 10s
9. uniq -c

统计重复的行数
通常与sort搭配使用
sort testfile1 | uniq -c

10
(base) dxd@henau-PowerEdge-R940xa:~/work/yu_runhao/169_henan_enter_20240319$ sed -i 's/\r//g' dele.txt
(base) dxd@henau-PowerEdge-R940xa:~/work/yu_runhao/169_henan_enter_20240319$ for i in `cat dele.txt`;do rm $i.fna;done
11 合并fna文件
cat 123456*.fna > 123456.fna
12 显示文件内的分隔符
sed -n l file.txt
13 提取第一列内容
cut -f1 -d' ' your_file.txt

cut -f1命令用于提取文本文件中每一行的第一个字段(以制表符或空格等作为字段分隔符)。这个命令可以帮助你从文件中提取特定字段的数据。
如果你有一个文本文件,想要提取每行的第一个字段,可以使用类似以下的命令:

在这个命令中,-f1表示提取第一个字段,-d' '表示字段之间的分隔符是空格。你可以根据实际情况替换your_file.txt和分隔符来提取文件中的其他字段。

14 文件名用txt文件里的第二列名称替代
(base) dxd@henau-PowerEdge-R940xa:~/work/yu_runhao/169_henan_enter_20240319$ cat name1.sh
#!/bin/bash

# 从包含文件名和目标文件名的文本文件中逐行读取数据
# 使用while循环读取CSV文件中的每一行,并逐行进行重命名操作
while IFS=$' ' read -r original_name new_name; do
    mv "$original_name" "$new_name"
done < file_list.txt

https://git@bitbucket.org/genomicepidemiology/resfinder_db.git

15 uniq命令

uniq命令用于过滤或报告输入中重复的行。
通常结合sort命令使用uniq,以确保输入已排序,这样uniq才能正常工作。

#####15. 硬盘使用情况查看

df -h  # 查看硬盘剩余空间
sudo fdisk -l # 查看硬盘的分区
sudo du -sh /home/* # 查看Linux中各个用户使用的存储空间大小