linux中文麻酱字_【树】Linux笔记 1
以下內容是參與【生信技能樹-全球聽第7期】的課程筆記,記錄人:小瑛 ?,有問題可在公眾號后臺留言
小白小白,請注意:筆記中出現的所有文件路徑,僅作為參考,請勿模仿!
1. 登錄服務器
????1.1 Mac電腦登錄前的設置
對于 Mac pro 來說,經常出現一種情況是 :登錄沒問題,但是超過 5 分鐘不操作就會出現問題,沒法輸入,不得不重啟終端或者 iTerm 。解決方法是:
【1】在mac,打開終端,不要登錄服務器
【2】然后在本地運行下面命令
?cat >~/.ssh/configHost * ServerAliveInterval 120 TCPKeepAlive no^C? ? ? ? ? ? ? ? ? # Ctrl + C????1.2 登錄服務器
打開郵箱找到曾老師給大家發的郵件,里面有用戶名、密碼和ip地址,登錄方式為:ssh 用戶名@ip地址,如:
?ssh vip28@94.191.82.93回車,然后輸入密碼
????1.3 修改命令行配色
復制粘貼下面兩行代碼:
?echo 'export PS1="\[\033]2;\h:\u \w\007\033[33;1m\]\u \033[35;1m\t\033[0m \[\033[36;1m\]\w\[\033[0m\]\n\[\e[32;1m\]$ \[\e[0m\]"' >> ~/.bashrcsource ~/.bashrc注意:如果管理員沒有對你開放修改權限,可能你這次修改之后的內容,下次登錄會失效。
????1.4 查看幫助文檔
man 命令,help 命令,或者某個命令的 ?--help ?參數
?man ls ? ? ?# 用 man 命令查看 ls 命令的幫助文檔help ls ? ? ?# 用 help 命令查看 ls 命令的幫助文檔ls --help ? # 用 --help 參數查看 ls 命令的幫助文檔????1.5 文件屬性
1+3+3+3
2. 命令格式
ls
列出目錄文件情況
?ls? ? ? ? ? ? # 列出當前目錄的文件ls ./? ? ? ? ?# 同上,‘.’號代表當前目錄ls ./*txt? ?# 列出當前目錄下以 txt 結尾的文件ls ../? ? ? ?? # 列出上層目錄的文件ls -a? ? ? ?? #?列出當前目錄下的所有文件,包括隱藏文件ls ?-l? ? ? ? # 列出當前目錄下文件的詳細信息ll? ? ? ? ? ? ? # ls -la 的簡寫,這個需要管理員自定義ls ?-lh? ? ?? # 加上 -h 參數,可顯示文件大小的單位ls ?-lh /? ? # 列出根目錄下文件的詳細信息ls -S? ? ? ? # 以文件大小排序ls -t? ? ? ?? # 以時間排序ls -R? ? ? ?# 遞歸目錄列出文件ls -d? ? ? ?# 顯示目錄本身,而非目錄下文件cd
切換工作目錄
?cd .. ? ? ? # 切換到上層目錄,相對路徑cd / ? ? ? ?# 切換到根目錄cd /teach/ # 切換到根目錄下的teach,絕對路徑cd ?- ? ? ? # 返回上一次的工作目錄cd ~ ? ? ? # 回到用戶家目錄cd ? ? ? ? ? # 同上,回到用戶家目錄mkdir
創建目錄
?mkdir dir # 創建一個叫dir的文件夾mkdir dir/sub1 # 想要創建一個含有sub1子文件夾的文件夾dir,會報錯mkdir -p dir/sub1 # 想要遞歸創建文件夾必須加參數-pmkdir f{1..3} # 批量創建 f1 f2 f3 文件夾mkdir -p f{1..3}/f{1..3} # 批量遞歸創建 f1 f2 f3 文件夾分別包含f1 f2 f3tree # 會顯示文件夾樹狀結構圖tree
查看目錄結構
?tree -L 1 # 查看當前目錄的1層樹結構tree -L 2 # 查看當前目錄的2層樹結構,在一層的基礎上再顯示一層子目錄touch
創建文件(文本文件)要區別于mkdir
?touch file.txt new.txt # 創建個別文本文件touch file{1..5} # 批量創建文本文件rm
刪除文件或文件夾,不可撤銷
?-f # force不顯示警告訊息,強制刪除-i # 在刪除會先詢問用戶,交互性刪除-r # 遞歸刪除文件夾,一層一層刪除,系統默認不會刪除文件夾,加上此參數即可rm file.txt #文件是可以直接刪除的rm file* # 批量刪除以file開頭的文件,如果有file開頭的文件夾可能會報錯,因為文件夾不能直接刪除mv
移動或者重命名
?mv file1 Data/ # 把file1移動到Data路徑下mv file1 file2 # 把file1重命名為file2mv file1 Data/file2 # 把file1移動到Data路徑下并且重命名file2mv file* Data/ # 把file*來頭的文件都移動到Data路徑下cp
拷貝
?-r # 遞歸拷貝,由于拷貝文件夾cp readme.txt Data/ # 將readme.txt拷貝到Data/路徑下cp readme.txt Data/read # 將readme.txt拷貝到Data/路徑下且重命名為readcp -r dir Data/ # 將文件夾dir遞歸拷貝到Data/路徑下ln
Link鏈接,分軟鏈接(常用)和硬鏈接(默認)
? # 不加參數即為硬鏈接-s # 參數即為軟鏈接,軟鏈接的作用類似快捷方式ln -s /teach/software/Miniconda3-latest-Linux-x86_64.sh ./ # 被鏈接的文件采用絕對路徑會比較不容易出錯tar
解壓 & 壓縮文件
?-c # 創建一個新的tar歸檔文件(創建壓縮文件)-X # 從已有tar歸檔文件中提取文件(解壓縮)-f # 輸出結果到文件或設備-V # 在處理文件時顯示文件(顯示處理進度)-j # 將輸出重定向給bzip2命令-Z # 將輸出重定向給gzip命令tar -zxvf Data.tar.gz # 解壓.gz文件tar -jxvf Data.tar.bz2 # 解壓.bz2文件tar -zcvf Data.tar.gz Data ...# 壓縮多個文件為Data.tar.gz____________________________________________________________# 其他壓縮和解壓命令:只能處理一個文件zip unzip # 用于壓縮和解壓*zip 文件gzip gunzip # 用于壓縮和解壓*gz文件bzip2 bunzip2 # 用于壓縮和解壓*bz2 文件cat
查看文本文件的內容,輸出到屏幕,不會修改文件內容
?-A # 列出所有內容,包括特殊字符,如制表符、隱藏文件等-n # 打印出所有行號-b # 僅打印非空白行行號cat readme.txt # 查看readme.txt文件內容cat -n readme.txt # 查看readme.txt文件內容并顯示行號(包含空白行)cat >file # 寫入文件 ,如果文件存在就會覆蓋原來的內容Welcome to Biotrainee() ! # 寫入的內容^C # 這里是按Crtl+C# cat 在寫入內容時直接按backspace無效,必須 Crtl+ backspace# 只能刪除末尾的,如果前面還有問題,只能重寫,覆蓋寫入cat >>file # 追加寫入文件Welcome to Biotrainee() ! # 寫入的內容^C # 這里是按 Crtl+Czcat # 可以查看壓縮的文本文件tac # 逆向查看,一行不會倒序,多行時倒序顯示head - tail
查看文件的前/后n行,默認10行
?head Data/example.fq # 查看example.fq文件的前10行(默認)head -n 2 Data/example.fq # 查看example.fq文件的前2行tail Data/example.fq # 查看Data/example.fq文件的最后 10 行tail -n 2 Data/example.fq # 查看Data/example.fq文件的最后 2行,空白行也算一行也會顯示head -n 2 Data/example.fq | tail -1 # 只查看第2行# 行數可以簡寫:-n 2 = -2less - more
逐頁查看,按空格翻頁,按回車換行,用的比較少,一般用 less 比較多,按 q 退出同樣是查看文件內容,當不明確文件大小,cat 可能會導致刷屏,建議使用 less 命令。
?less Data/example.fq # 默認格式沒行號且會自動換行,一般比較凌亂less -S Data/example.fq # 單行顯示,格式會比較規整less -N Data/example.fq # 顯示行號zless -N Data/reads.1.fq.gz # 查看壓縮文件wc
統計文本
?wc readme.txt # 默認形式是行數、單詞數、字符數都統計6 29 207 readme.txt # 上一步的返回結果wc -l readme.txt # 統計文本行數wc -w readme.txt # 統計文本字符串(單詞)數,不管單詞有沒有含義wc -l readme.txt # 統計文本字節(字符)數cat readme.txt| wc -l # 合理利用計算資源cut
文本切割
?-d # 指定分隔符,默認\t制表符-f # 指定輸出哪幾列(字段fields)cut -f 1,3-5 # 切割文件的第1列和第345列cut -d 'h' -f 1 # 以'h'為分隔,取出第1列sort
排序
?-n # 按照數值從小到大進行排序,默認是按照1 10 2 20排序-V # 字符串中含有數值時,按照數值從小到大排序-r # 逆向排序,20 2 10 1排序,不是從大到小-nr # 實現從大到小排序-k # 指定區域,不指定就按一整行排序-t # 指定分隔符sort -k 3 | less -S # 按文件第3列排序,方便查看結果使用less -Ssort -n -k 4 | less -S # 遇到數字排序一定要小心,記得加上-nuniq
去重復,只去除相鄰兩行,一般先排序,然后再去重復
?-c ## 統計每個字符串連續出現的行數less -S Data/example.gtf | cut -f 3 | sort | uniq # 對排序后的結果去重復,保留唯一值less -S Data/example.gtf | cut -f 3 | sort | uniq -c # 會顯示每個值重復的次數paste
文本合并,但數量不一致時,不會像R那樣循環補齊,沒有就空著
?-d # 指定分隔符,默認是制表符-s # 按行合并,默認是左右按列合并less -S Data/example.fq | paste - - # 將1列變成2列(按行)less -S Data/example.fq | paste - - - # 將1列變成3列(按行)paste file1 file2 # 將 file1 file2 按左右合并 file1 左,file2 右tr
字符替換
?-d # 刪除指定字符-s # 縮減連續重復字符cat readme.txt | tr 'e' 'E' # 'e'被替換成'E'cat readme.txt | tr 'abc' 'ABC' # 'abc'被替換成'ABC',一一對應。cat readme.txt | tr '\n' '\t' # '\n'被替換成'\t'cat readme.txt | tr -d 'e' # 刪除字符'e'3. 正則表達式
是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個"規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯。
如果你是公眾號閱讀,可以嘗試滑動表格
| 符號 | 含義 | 符號 | 含義 |
|---|---|---|---|
| ^ | 行首 | \ {n\ } | 匹配之前項n次 |
| $ | 行尾 | \ {n,\ } | 匹配之前項至少n次 |
| . | 換行符之外的任意單個字符 | \ {m,n\ } | 之前項至少m, 最多n |
| ? | 匹配之前項0次或者一次(\?) | [ ?] | 匹配[ ?]內任意一個 |
| + | 匹配之前項1次或者多次(\ +) | [^ ] | 排除^后的字符 |
| * | 匹配之前項0次或者多次 | | | 或者 |
?cat readme.txt | grep '^T' # 匹配行首為T的行cat readme.txt | grep ')$' # 匹配用)結尾的行cat readme.txt | grep 'f.ee' # .可以是任意單詞cat readme.txt | grep 'f\?ee' # 匹配ee/fee,f出現0/1次cat readme.txt | grep 're\+' # 匹配re/ree/reee...cat readme.txt | grep 'f*ee' # f可以出現任意次cat readme.txt | grep 'fe\{2\}l' # e匹配2次,花括號需要轉義cat readme.txt | grep [bB] # 可以匹配大寫或者小寫bcat readme.txt | grep '[bB]' # 同上,有沒有''都一樣cat readme.txt | grep [^Tt] # 匹配除了Tt以外的所有4. 文本處理三駕馬車
grep
文本搜索工具,可匹配正則表達式使用
格式:grep ? [options] ? pattern ? file
? ? ? ? ? ? ? ? ? ? ? ? ? 參數 ? ? ? ?關鍵詞 ? ?作用文件
?-W # word精確查找某個關鍵詞pattern-C # 統計匹配成功的行的數量,不是個數!-v # 反向選擇,即輸出沒有沒有匹配的行-n # 顯示匹配成功的行所在的行號-r # 從目錄中遞歸式地查找關鍵詞pattern-e # 指定多個匹配模式-f # 從指定文件中讀取要匹配的關鍵詞pattern-i # 忽略大小寫grep Biotrainee -r ./ # 在當前目錄下遞歸式查找 Biotrainee 這個關鍵詞grep 'gene' # 包含'gene'的所有單詞,不僅僅是單詞 genegrep -w 'gene' # 只查找單詞 gene ,不包含gene_xxxgrep -v -w 'gene' # 除了單詞 gene 以外的grep -w -e 'gene' -e 'UTR' # 查找多個關鍵詞用-e連接grep -w -f file # 關鍵詞太多,可以把它們寫入一個文件file然后用文件查找grep -w 'gene' | -w 'UTR' # 找完'gene'再找'UTR',注意和上面的-e區別sed
流編輯器,一般用來對文本進行增刪改查!!!
格式:sed ? ? [-options] ? ? 'script' ? ? file(s)
? ? ? ? ? ? ? ? ? ? ? ? ? 參數 ? ? ? ? ? ?代碼 ? ? ?作用文件
代碼:[address] ? ? [ ! ] ? ?command
? ? ? ? ? ?作用的行 ? ? 取反 ? ?具體命令
1. address的表示方式
? # 不指定具體的行就是對全局操作2 # 第2行2,4 # 第2行到第4行2,+4 # 從第2行到2+4行2,$ # 第2行到最后一行,$表示最后2~3 # 從第2行開始,每隔3行取一行,不是2-3行/pattern/ # 匹配上關鍵詞pattern 的行[!] # 表示否定,取反2. 常用命令(增刪改查)
?i # insert,在指定行的前增加一行,內容為i的后面接的字串a # append,在指定行的后面增加一行,內容為a后面接的字串d # delete, 刪除某一行或者某幾行,也可以指定刪除匹配上的行c # change, 改變指定行的內容s # 替換,使用格式為's/old/new/ [flags]', 把old替換成new,默認只替換一個,可以指定flagsy # 轉換,實現字符一對一轉換,格式'y/inchars/outchars/ 'p # print,把匹配或修改過的行打印出來,通常與-n參數合用3. 常用參數
?-n # 禁止顯示所有輸入內容,只顯示經過sed處理的行(常用)-e # 直接在命令模式上進行sed的動作編輯,接要執行的一個或者多個命令,和grep的-e參數很像-f # 執行含有sed動作的文件-r # sed的動作支持的擴展正則(默認基礎正則)-i # 直接修改讀取的文件內容,不輸出(慎用!)cat readme.txt | sed '1i xxxxx ' # 在第一行前面插入xxxxxcat readme.txt | sed '1a xxxxx ' # 在第一行后面插入xxxxxcat readme.txt | sed '1,3d' # 刪除1-3行都cat readme.txt | sed '1c xxxxx ' # 第一行替換為xxxxxcat readme.txt | sed 's/is/IS/' # 把每一行的is替換完為IS,每一行的第二個is不會改變cat readme.txt | sed 's/is/IS/g' # 把每一行的is替換完為IS,flags為全局cat readme.txt | sed '/^$/d' # 刪除空白行cat readme.txt | sed '/ww/ s/ee/EE' # 定位到含有ww的行,把ee替換為EEcat readme.txt | sed -n '/ee/p' # 只輸出含有ee的行,效果和 grep "ee" 一樣cat readme.txt | sed 'y/abc/ABC/' # 用ABCf分別替換abc,效果和 tr 'abc' 'ABC' 一樣cat readme.txt | sed 's/^../**/' # 把每一行的前兩個字符替換為*cat readme.txt | sed '1~2 s/^../*/' # 把奇數行的前兩個字符替換為*cat readme.txt | sed '2~2 s/^../*/' # 把偶數行的前兩個字符替換為*cat xxx.fa | sed '2,$ y/ATCG/TAGC' # 互補序列的轉換# Shell腳本獲得核酸反向互補序列參考下方鏈接# https://blog.csdn.net/qq_42491125/article/details/102718191_____________________________________________________## sed 大小寫轉換sed 's/[A-Z]/\l&/g' # 大寫轉小寫sed 's/\b[a-z]/\u&/g' # 小寫轉大寫tr '[a-zA-Z]' '[A-Za-z]' # 大小寫互相轉換awk
也稱gawk,編程語言,可對文本和數據進行處理
用法:awk ? ?[options] ? ?' {script} ' ? ?file
? ? ? ? ? ? ? ? ? ? ? ? ? 參數 ? ? ? ? ? ?代碼 ? ? ? ?文件
代碼的結構類型:
?基礎結構:'{script}'匹配結構:'/pattern/{script}'擴展結構:'BEGIN{script} {script} END{script}' 熱身 逐行執行 最后執行運行原理:awk在讀取一行文本時,會用預定義的字段分隔符劃分每個數據字段(行),并分配給一個變量。
?$0 # 代表整個文本行$1 # 代表文本行中的第1個數據字段......$NF-1 # 代表文本行中倒數第二個數據字段$NF # 代表文本行中的最后一個數據字段參數及命令:
?-F # 默認的字段分隔符是任意空白字符(如:空格or制表符),也可以用-F參數自定義分隔符 # 切割行的時候建議使用cut,以為在一列中包含空格或者制表符時awk只能切除某一列的部分-v # var=value,定義awk程序中的一個變量及其默認值## 基礎結構less -S Data/example.gtf | awk '{print $9}' | less -S # 切出第9行less -S Data/example.gtf | awk '{print $9,$10}' | less -S # 切出第9、10行less -S Data/example.gtf | awk -F '\t' '{print $9}' | less -S # 以制表符分割切出第9行## 基礎結構--加強版,加入條件判斷和循環語句less -S Data/example.gtf | awk '{if($3=="gene") print $0}' | less -S less -S Data/example.gtf | awk '{if($3=="gene") {print $0} else{print $3 " is not gene "}}' | less -Sless -S Data/example.gtf | awk '{for(i=1;i<4;i++){print $i}}' | less -S # 打印多列## 匹配結構:將含有gene關鍵詞的行,整行打印less -S Data/example.gtf | awk '/gene/{print $0}' | less -S## 擴展結構標準版less -S Data/example.gtf | awk 'BEGIN{print "find UTR feature"} /UTR/{print $0} END{print "end"}'## 擴展結構省略END版less -S Data/example.gtf | awk 'BEGIN{FS="\t"} {print $9}' | less -S # {}內的多個代碼可以用;分開less -S Data/example.gtf | awk 'BEGIN{FS="\t";OFS="\t"} {gsub("gene","Gene",$3);print $0}' | less -S awk內置變量:
?FS # 定義輸入字段分隔符, IField Separator,同-FRS # 定義輸入記錄分隔符,Record SeparatorOFS # 定義輸出字段分隔符,0ut Field Separator,默認是 分隔符不是制表符ORS # 定義輸出記錄分隔符,0ut Record SeparatorNF # 數據文件中的字段總數,可以簡單理解為列數NR # 已處理的輸入記錄數,可以簡單理解為行數自定義 # 也可以通過-v參數自定義變量或傳遞外部變量awk數學運算:
?+ ? ? ??# (加)- ? ? ? ?# (減)* ? ? ? ?# (乘)^ ? ? ??# (冪)/ ? ? ? ?# (除)**? ? ??# (平方)%? ? ??# (取余)int(x) # x的整數部分,取靠近零一側的值?# 四合五入,可在原數據基礎上+0.5,再取整1og(x) # x的自然對數5. 操作技巧
以下是老師在講解過程中穿插的小技巧,可以讓操作更流暢、更高效。
查看歷史命令:↑鍵、history
文件名和路徑的補齊:Tab鍵(每天100次)
選中文件:雙擊
選中行:三擊
文件命名:不要有空格、不要涉及保留字、不要有中文
查看文件結構:tree
登錄服務器的第一個命令:ls(每天100次)
查看幫助文檔:--help
巧用管道符:|
Linux操作系統中,嚴格區分大小寫
直接到達行首:Home鍵 ?、Ctrl + a
直接到達行末:End鍵 ?、Ctrl + e
如果一個命令不想運行了就 Ctrl + c 結束掉
看到奇怪的結果也可以按 Ctrl + c 結束掉
Ctrl + c 不要和 Windows 操作系統里的復制混淆,要復制用鼠標
操作過程中所有修改在不賦值的情況下,都是不會被保存的,也不會修改原文件
保存文件可以用 >文件 ,重定向
對文檔操作前,先 less 初步查看文檔
空格和制表符在正常情況下看不出來,cat -A 可以將制表符可視化,制表符是^I
加參數的時候要么-w -c 分開,要么-wc合并,-w-c會報錯
單行命令太長可以用 \ 連接
在less不加參數 -S 時,可以用鼠標雙擊具體的命令,看誰和誰是一起的
代碼最外層一般都是成對的 ' ? ',里面嵌套成對的 " ?"
出現串列,可以使用 column -t | less -S
如需獲得更好的閱讀體驗,可以點擊“閱讀全文”
后臺回復關鍵詞“Linux筆記 -1”,即可獲取md文檔網頁鏈接
總結
以上是生活随笔為你收集整理的linux中文麻酱字_【树】Linux笔记 1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 圣冕麒麟最高战斗力是多少?
- 下一篇: edit怎么读英语_名师说学习:英语学习