1.1 pwd
顯示當前路徑
1.2 cd
改變當前所在目錄
cd / cd ~ 表示進入家目錄
1.3 ls
查看目錄內容。
ls -alh / ls -lh顯示目錄下文件的詳細信息,如文件大小
1.4 cat
可用來合并文件,也可用來在屏幕上顯示整個文件的內容。
1.5 touch
用于創建新文件 touch newfile
1.6 cp
用于拷貝文件或文件夾
1.7 mv
用來移動文件或者重命名文件
1.8 rm
rm / rm -r 用于刪除文件或文件夾
rm -rf 用于強制刪除文件夾
1.9 free
查看內存空間
2.0 df -h
查看磁盤空間
2.1 chmod
用于改變指定文件的權限命令。
2.2 more | less
用分頁的形式顯示指定文件的內容
less比 more 更好的是,less可以往前翻頁
2.3 head
用于顯示文件的前n行內容
2.4 tail
用于顯示文件的后n行內容
2.5 find
用于查找指定的文件
2.6 tar
用于多個文件或目錄進行打包,但不壓縮; 也用于解包
-c 創建新文檔
-x 解包
-v 顯示正在處理的文件名
-f 取代默認的文件名
2.7 gzip
用于文件進行壓縮和解壓縮命令,文件擴展名為.gz結尾
2.8 gunzip
用于對gzip壓縮文檔進行解壓縮
2.9 zip/unzip
壓縮解壓縮.zip文件
小結:
打包、壓縮、解壓命令:
打包: tar -cvf xxx.tar *
壓縮: gzip xxx.tar
打包: gzip -d xxx.tar.gz
壓縮: tar -xvf xxx.tar
打包并壓縮:tar -zcvf xxx.tar.gz *
解壓:tar -zxvf xxx.tar.gz
打包并壓縮:tar -jcvf xxx.tar.bz2 *
解壓:tar -jxvf xxx.tar.bz2
3.0 sudo
以系統管理員的身份執行命令
3.1 ln
ln -s: 軟鏈接:也稱為符號連接,即為文件或目錄創建一個快捷方式。
ln 硬鏈接
3.2 man
顯示命令的幫助文件
3.3 kill -9
殺死一些特定的進程
3.4 clear
清屏
3.5 wc: 計數
-l: 行數
-w: 字數
-c: 字符數
3.6 ps
顯示所有進程
3.7 jobs
顯示后臺或掛起的進程
3.8 top
顯示當前正在運行的命令
3.9 sort 排序
-r 逆序
-d 字典順序
4.0 alias
對命令重命名, 可在.bashrc中設置
4.1 date
顯示日期的指令
4.2 cal
顯示日歷的指令
4.3 bc
簡單好用的計算器
- 加法
- 減法
- 乘法
/ 除法
% 求余
^ 求冪次方
4.4 basename / dirname
取得路徑的文件名與目錄名
4.5 nl
顯示行號: 如 cat filename |nl 會將filename的行號顯示出來。
4.6 tac: 是cat倒著寫
從文件最后一行開始顯示
4.7 which
which command 顯示命令所在位置
4.8 ifconfig:查看ip地址
windows中使用ipconfig
4.9 ping:
ping ip地址: 測試網絡連接是否正常
5.0 who:
查看當前登錄的用戶信息 (whoami: 查看當前用戶名)
who -u:
who -q:
5.1 對文本處理命令的詳細介紹
cut
將一段信息的某一段切出來,處理的信息是以行為單位。
cut -f 1,3,5 filename 獲取文本的第一、三、五列
cut -f 1-5 filename 獲取文本的第一至五列
grep 文本搜索查找與匹配
無參數選項: 直接加查找內容: grep "查找內容" filename
grep '查找內容' filename --color=always:表示突出顯示查找內容
參數選項:
grep -i pattern files :不區分大小寫地搜索。默認情況區分大小寫,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整個單詞,而不是字符串的一部分(如匹配’magic’,而不是’magical’),
grep -C number pattern files :匹配的上下文分別顯示[number]行,
grep pattern1 | pattern2 files :顯示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :顯示既匹配 pattern1 又匹配 pattern2 的行。
grep -n pattern files 即可顯示行號信息
grep -c pattern files 即可查找總行數,即某一匹配內容出現的個數
grep -v pattern files 查找不包含匹配項的行
grep -o pattern files 只返回匹配到的內容
如: cat filename | grep -v "不匹配內容' | cut -f 2,5,9 | wc -l
如果想查找一個以AT5G254開頭以1結尾的基因,要用到強大的正則表達式。grep 'AT5G254.*5$' TAIR10_GFF3_genes.gff
可以通過管道符號或者多個參數實現多重目的。
uniq : 去重
先排序后去重
uniq -c : 重復數
cat filename | cut -f 2 | sort | uniq | nl
awk: 強大的文本操作工具
awk擅長處理表格形式的數據。它逐行從文本中讀取數據,將整行數據定義為$0, 然后根據指定的分隔符,將各列數據分別定義$1,$2,$3
首先,awk實現cat,cut這些命令:
cat
$ awk '{print $0}' SGD_features.tab | head -2
cut
$ awk '{print $1,$4,$5}' TAIR10_GFF3_genes.gff | head -2
awk除了能輸出指定列,還能重排,甚至換一種分隔符,比cut更加強大
$ awk '{print $4","$5","$1}' TAIR10_GFF3_genes.gff | head -1
awk還支持
- 算術運算(+,-,*,/,%,)
- 邏輯運算(==,!=,<,>,>=,<=),
- 或與非(&&,||,!),
- 還可以進行模式匹配(ab,a!b)。
eg. 找到長度大于10kb且在1號染色體的注釋內容
awk '$5 - $4 > 10000 && $1 ~ /Chr1/' TAIR10_GFF3_genes.gff | head -5
awk還有兩個特殊模式BEGIN,END,意思是在操作開始或/和結束后才執行的操作。
詳細的解釋和使用可以到http://www.lxweimin.com/p/8c6a0d0d4f0d以及 http://www.lxweimin.com/p/9b0f2a3584e3上查詢和學習。
sed: 流處理工具
文本替換:
sed 's/pattern/replacement/' file
顯示特定行:
sed -n 'n1,n2p' file.txt (-n 只輸出編輯部分; p 打印; n1,n2 從以n1到n2)
-i會修改源文件,但是可以同時使用bak備份
$sed -ibak 's/Ian/IAN/' source.txt
行后增加內容:
sed '[address] a the-line-to-append' infile( [address]指位置;a: 代表append縮寫;the-line-to-append:指插入或增加的內容)
行前增加內容:
sed '[address] i the-line-to-insert' input-file
sed '2 i 108,Donald Stufft, Nebula' source.txt
修改行語法:
sed '[address] c the-line-to-insert' input-file
sed '/Paul/ c 108,Donald Stufft, Nebula' source.txt
該網站http://dongweiming.github.io/sed_and_awk詳細介紹了sed的其他一些用法。
補充一下:split和join的用法:
split: 用于文件拆分
-<行數> : 指定每多少行切成一個小文件
split -2 README #將README文件每2行分割成一個文件
-b 字節數: 按照字節數切分
split -b 200 infile
join: 將兩個文件中,指定欄位內容相同的行連接起來。
join file1 file2
詳細講解可查詢http://www.runoob.com/linux/linux-command-manual.html網站。