#Linux #笔记 #代码
1. for循环
for 变量 in 列表
do
循环
doneExample
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_word4. nohup任务查看时间
jobs -l #查看PID号
ps -p <pid> -o lstart5. gff是roray的输入文件,用来输出泛基因组图
6. roray
7. -exec 使用
![[Linux仿学笔记.png]]
find ./PATH1 -type f -name "*.fa" -exec cp {} ./PATH2 \;
# 该段是将路径PAHT1中的.fa后缀文件全筛选出来,然后复制到PATH28. awk使用
语法
awk 'pattern { action }' input_file
pattern用于指定条件,用于筛选需要处理的行。action定义需要执行的操作,可以是输出、计算、格式化等。input_file是要处理的输入文件
awk [选项参数] 'script' value file
或
awk [选项参数] -f scriptfile value file选项参数说明:
-F or fs:指定输入文件的分隔符
-v :赋值一个用户定义变量
-f:从脚本文件中读取awk命令
- 用法一:
awk '{print $1,$4}' log.txt# 每行按空格或TAB分隔,输出文本中的1、4项 - 用法二:
awk -F, '{print $1,$2}' log.txt# 每行按","分隔,输出文本中的1、2项
使用","分割
$ 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- 用法三:-v 赋值
$ 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.fna12 显示文件内的分隔符
sed -n l file.txt13 提取第一列内容
cut -f1 -d' ' your_file.txtcut -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中各个用户使用的存储空间大小