
一、學(xué)習(xí)內(nèi)容:
- 什么是linux,什么是服務(wù)器?
- 為什么學(xué)生信要用linux?
- 怎樣召喚linux--阿里云服務(wù)器
- 怎樣登錄服務(wù)器--putty和terminal
- linux有哪些最基本的操作?
1.linux是什么?
linux是個(gè)操作系統(tǒng)(OS)。
- 應(yīng)用場(chǎng)景
- 權(quán)限控制
- 命令行模式
- 目錄結(jié)構(gòu)
2. 為什么學(xué)生信的要用linux?
這是因?yàn)?strong>生物軟件基于linux,系統(tǒng)開(kāi)源免費(fèi),不需要圖形界面,有效節(jié)約資源。命令行模式可以批量、高效地處理文件,滿足數(shù)據(jù)分析的要求。當(dāng)你需要跑幾十、幾百G數(shù)據(jù)的時(shí)候,用windows,電腦立刻就掛了。
3. 怎樣召喚linux?
3.1. Windows10上的linux
(1)設(shè)置-更新和安全-針對(duì)開(kāi)發(fā)人員-啟用開(kāi)發(fā)人員模式
(2)控制面板-控制面板-程序-啟用或關(guān)閉windows功能-適用于Linux的windows子系統(tǒng)
(3)重啟
(4)下載ubuntu。microsoft store里有
(5)啟動(dòng)ubuntu 和用戶設(shè)置
正在安裝-安裝成功,設(shè)置用戶名和密碼,相當(dāng)于注冊(cè),這里輸入密碼是沒(méi)有任何提示的,一次性打完。
(6)更新
輸入 sudo apt update
完成后輸入 sudo apt upgrade
sudo 代表管理員,apt相當(dāng)于install(安裝),下載和安裝了更新,就可以投入使用啦。
3.2. Windows7 上的linux
如果電腦配置不是很好的話,不推薦安裝虛擬機(jī),會(huì)很耗內(nèi)存;一般的電腦配置(i3、i5CPU + 4G內(nèi)存)推薦使用git bash ,有32位和64位選擇https://git-scm.com/download/win
一路默認(rèn)安裝即可。
3.3. Mac上的linux
不需要安裝任何東西,自帶terminal,直接使用
如何使用putty遠(yuǎn)程登錄服務(wù)器?
一開(kāi)始注冊(cè)的用戶名是root,登陸密碼就是你自定義的,但是輸入密碼是沒(méi)有任何顯示的(連星星符號(hào)都沒(méi)有),你只管一次性打完,不要懷疑鍵盤(pán)壞了,輸對(duì)了就能進(jìn)去,輸錯(cuò)了會(huì)給你三次重試的機(jī)會(huì)。
練習(xí)的時(shí)候使用云服務(wù)器的這個(gè)root用戶是可以的,因?yàn)椴还苣愠隽耸裁床铄e(cuò),都可以重置恢復(fù),但是實(shí)際運(yùn)行項(xiàng)目肯定不能使用root用戶,一般都是需要服務(wù)器管理員給你一個(gè)賬號(hào)密碼,讓你遠(yuǎn)程登錄。
IP地址拷貝你的公網(wǎng)IP(用于遠(yuǎn)程登錄) ,然后打開(kāi)putty,操作流程:在主機(jī)名稱(或IP地址)輸入你的公網(wǎng)IP,點(diǎn)擊打開(kāi)
登陸后會(huì)彈出一個(gè)對(duì)話框,選擇yes ,然后彈出一行字:login as ,在后面輸入root(也就是你的用戶名)【當(dāng)然如果你自己有服務(wù)器的話,申請(qǐng)時(shí)管理員會(huì)告訴你用戶名和密碼】,接著他會(huì)讓你輸入密碼,你只需要輸入自己剛才在阿里云改好的密碼就行
<meta charset="utf-8">
4. linux有哪些最基本的操作?
4.1目錄管理
-
pwd : print working directory,也就是打印當(dāng)前路徑,
/root 就是當(dāng)前路徑【路徑就是你的位置】image
/boot:系統(tǒng)啟動(dòng)相關(guān)文件,如內(nèi)核,initrd,以及grub(BootLoader)
/dev:設(shè)備文件 — 體現(xiàn)了LInux的“一切皆文件”思想
/etc : 配置文件。大多數(shù)為純文本文件
/home:用戶的家目錄
/root:管理員的家目錄
/lib:公共庫(kù)文件(不能單獨(dú)執(zhí)行, 只能被調(diào)用)
/lib/modeles:內(nèi)核模塊文件。
/media:掛載點(diǎn)目錄,掛載移動(dòng)設(shè)備(如U盤(pán))
/mnt: 掛載額外的臨時(shí)文件(如第二塊硬盤(pán))
/opt:可選目錄(現(xiàn)在基本沒(méi)用)
/proc:偽文件系統(tǒng),內(nèi)核映射文件,系統(tǒng)啟動(dòng)后才出現(xiàn)文件, 關(guān)機(jī)就空
/sys:偽文件系統(tǒng),跟硬件設(shè)備相關(guān)的屬性映射文件,關(guān)機(jī)就空
/tmp:臨時(shí)文件,/var/tmp是另一個(gè)臨時(shí)文件目錄
【所有用戶都可以操作,但只能刪自己的,不能刪別人的】
/var:可變化的文件
/bin:(binary) 可執(zhí)行文件,用戶命令
/sbin:管理命令
/bin、/sbin都是可執(zhí)行程序,運(yùn)行時(shí)依賴的庫(kù)都放在/lib下,配置文件放在/etc
/usr:(universal shared readonly,只讀文件)
/usr下也有/bin,/sbin,/lib,與系統(tǒng)提供基本功能相關(guān);
根目錄下的/bin,/sbin,/lib與系統(tǒng)啟動(dòng)相關(guān),必需的;
/usr/local:/bin,/sbin,/lib,第三方軟件存放路徑,非必需
- ls 顯示列表,不管是文件夾還是文件,都能顯示
ls -l使用ls的長(zhǎng)格式,可以顯示更多的信息,包括文件的權(quán)限、所有者、大小、最后更改日期等。
ls -a查看包含以.開(kāi)頭的隱藏文件
ls -lh顯示文件大小
- cd 接一個(gè)目錄名,進(jìn)入該目錄
cd -或cd .. 返回剛才的目錄
cd . "."表示當(dāng)前目錄
cd / "/"表示根目錄
主目錄(家目錄):直接cd 或者cd ~(波浪線)
練習(xí):進(jìn)入tmp目錄,然后查看當(dāng)前路徑,然后返回主目錄image
- mkdir :make directory-- 創(chuàng)建你的空目錄
mkdir -p ~/MM/NN :建立主目錄下的MM包含的子目錄NN
mkdir -p mnt/test/{x/m,y} 在mnt/test/文件夾下創(chuàng)建x和y文件夾,x文件夾下創(chuàng)建m文件
mkdir biosoft ##存放生信軟件
mkdir project ##存放生信項(xiàng)目
mkdir tmp ##存放一些雜七雜八
mkdir src ##存放源代碼
mkdir del ##過(guò)會(huì)要用
‘#’后面是注釋?zhuān)褪墙忉尨a的文字。是不參與運(yùn)行的image
4.2文件管理
- rm 刪除操作
rm file刪除文件直接
rmdir刪除空文件夾
rm -r刪除有內(nèi)容的文件夾,逐級(jí)刪除目錄下的子目錄
rm * 刪除當(dāng)前目錄下所有文件
rm –f 強(qiáng)制刪除文件,刪除時(shí),不提出任何警告訊息。
rm –i 刪除文件前均會(huì)詢問(wèn)是否刪除,y/n指示下一步。
rmdir dirname 刪除空目錄。
練習(xí):刪除剛才的del空目錄image
touch通過(guò)改時(shí)間戳來(lái)創(chuàng)建新的空文件,可連續(xù)創(chuàng)建。
-
vi 新建腳本或者文本文檔(vi是linux中的文本編輯器)
image stat 用于顯示文件的屬性/狀態(tài)信息。能看到那三個(gè)時(shí)間戳 [訪問(wèn)、更改、改變]。
cp 復(fù)制文件
使用:cp file1 file2
多個(gè)文件到一個(gè)目錄
使用:cp {file1, 2,3} /dir/ --> 花括號(hào)展開(kāi)機(jī)制
cp –i 覆蓋相同名稱文件前先詢問(wèn)用戶
cp –R 遞歸拷貝,即拷貝時(shí)將所有目錄一并拷貝
cp -p 保留源文件或目錄的屬性
cp -d 當(dāng)復(fù)制鏈接文件時(shí),把指向的文件一并復(fù)制。簡(jiǎn)而言之,保持鏈接
cp -a(= -dpR) 保留所有原始屬性,比-p保留的更多,常用于備份目錄或文件
練習(xí):將剛才新建的文件復(fù)制一個(gè),叫做new_file.txtimage
-
mv 將文件移入文件夾,或者重命名
使用:mv file 路徑
練習(xí):將新文件new_file.txt,重命名為home.txt ,移動(dòng)到主目錄下(路徑是~)image
4.3 文本查看
【只用于文本!不要用來(lái)打開(kāi)二進(jìn)制文件】
- cat 查看并直接將內(nèi)容輸出到屏幕
cat > file.txt
.....(輸入內(nèi)容)【按Ctrl+c 可結(jié)束輸入】
cat –n file.txt 在顯示內(nèi)容前加上行號(hào)
cat -ns file1 > file2 將1文件拷貝到2中,并加上行號(hào)(-n),遇到多行空格只顯示一行(-s)
nl -n ln -b t file : file中的每行最前邊顯示行號(hào)(-n ln),并且空格不加行號(hào)
(-b t), 如果想在空格處加上,用-b a
- tac 反向顯示cat
- head 默認(rèn)輸出前10行
- tail 默認(rèn)輸出后10行
tail -n 自定義輸出幾行
例如:head -n 3 hello_world.txt
【注意-n與head之間有空格,-n和3之間空格可有可無(wú)】
練習(xí): 查看剛才自己的文件imagetail -f 查看文件尾部,不退出,等待顯示后續(xù)追加至此文件的新內(nèi)容
【用途:監(jiān)控web服務(wù)器中哪個(gè)用戶正在訪問(wèn)哪個(gè)網(wǎng)頁(yè)】
- less 逐頁(yè)顯示文本
less -S 規(guī)則輸出
less -N 顯示行號(hào)
4.4 文本處理
- cut 用來(lái)分割字段
cut -d (delimiter)指定分隔符, 默認(rèn)tab?!静恍枰崭?,直接加分隔符即可】
cut -f 顯示第幾個(gè)字段
cut -f 1,3 顯示第1和第3個(gè)
cut -f 1-3 顯示第1-3個(gè)
例如cut -d: -f1 /etc/passwd就抽取了這個(gè)文件的第一列
- sort 默認(rèn)根據(jù)ASCII表中的順序升序排序
sort -n 按照數(shù)值大小排序,而非字母
sort -r (reverse) 降序排序
sort -t 指定字段分隔符 【等同于cut -d】
sort -k 指定字段【等同于cut -f】
sort -u 不管是否相鄰,只要重復(fù),行就顯示一次
sort -f 排序時(shí)忽略字符大小寫(xiě)
-
uniq
【與sort不同。在它看來(lái),只有相鄰的重復(fù)行才算做重復(fù)行。所以常與sort連用】
uniq -c 每列旁邊顯示該行重復(fù)出現(xiàn)的次數(shù)
uniq -d 僅顯示重復(fù)出現(xiàn)的行列 (一個(gè)代表)
uniq -D 顯示所有的重復(fù)行列 (全部)
-
wc word count 文本統(tǒng)計(jì)
結(jié)果依次顯示為:行數(shù)、單詞數(shù)、字節(jié)數(shù)
wc -l 只顯示行數(shù)
wc -w 只顯示單詞數(shù)
wc -c 顯示字節(jié)
wc -L 最長(zhǎng)的一行包含了多少個(gè)字符
統(tǒng)計(jì)/bin目錄下命令個(gè)數(shù):
ls /bin | wc -l
- tr 字符轉(zhuǎn)換或刪除 translate or delete characters
例如: tr 'ab' 'AB' 引號(hào)中的叫做字符集
這樣就把包含字符集a、b的文件對(duì)應(yīng)替換為A、B
但是tr不能直接加文件,如果想對(duì)一個(gè)文件中字符進(jìn)行替換
使用輸入重定向<
tr 'ab' 'AB' < /etc/passwd
將所有小寫(xiě)都換成大寫(xiě):tr 'a-z' 'A-Z'
tr -d 刪除出現(xiàn)在字符集中的所有字符
如: tr -d 'ab'
- sed 編輯工具
sed -s 替換
sed 's/A/B/'A替換成B
sed -a 行下添加
sed 'a X'在每一行下面添加X(jué)
sed ‘1,2a A\nB\nC’在1-2行的下邊分別添加3行,3行內(nèi)容分別是A、B、C,\n是換行
sed -i 行上添加
sed 'i X'在每一行上面添加X(jué)
sed -c 行替換
sed ‘c A’所有的行內(nèi)容都分別替換為A
sed ‘1,2c A’1-2行作為整體替換為A
sed ‘1,2c A\nA’1-2行分別替換為A
sed -d 行刪除
sed -y 字符替換
sed 'y/a:/f@/' a.txt a替換為f,:替換為@
刪除前7行沒(méi)用的,并輸出至txt文件中
sed '1,7d' *.gff3 > test.txt
-
grep 查找文件里符合條件的字符串
主要有兩種,一種基礎(chǔ)模式就是grep,一種拓展模式叫做egrep。
egrep的特點(diǎn)就是支持更多的元字符
正則表達(dá)式:
它的語(yǔ)法結(jié)構(gòu)有兩套系統(tǒng)組成,元字符(metacharacters) + 普通字符
元字符主要由以下字符組成:
^ $ . [] {} - ? + () | \
grep -n 輸出包含匹配字符串的行數(shù)。
grep -c 顯示有多少行被匹配到(count)
grep -i 忽略匹配字段和匹配內(nèi)容的大小寫(xiě)
grep -o 只打印匹配到的內(nèi)容
grep -A/B n 顯示搜索內(nèi)容后面n行/顯示搜索內(nèi)容的前面n行
grep -v 反轉(zhuǎn)查找。即顯示出沒(méi)有 '搜尋字符串' 內(nèi)容的那一行。
grep --color=always 始終高亮顯示搜索字段
【~/.bashrc 內(nèi)加上這行:alias grep='grep --color=auto再以source ~/.bashrc來(lái)立即生效即可,這樣每次運(yùn)行g(shù)rep都會(huì)自動(dòng)加上顏色顯示?!?br> grep -E 將范本樣式為延伸的普通表示法來(lái)使用。(即使用擴(kuò)展正則表達(dá)式)
行首字節(jié) ^
行尾字節(jié) $
^[0-9] 以數(shù)字開(kāi)始的行,[]內(nèi)可列舉字母
^[124ab] 以1,2,4,a,或b開(kāi)頭的行
grep \'^.\' myfile.txt列出所有以句點(diǎn)開(kāi)頭的行
ls -l | grep '^a'
通過(guò)管道過(guò)濾ls -l輸出的內(nèi)容,只顯示以a開(kāi)頭的行。
grep '[a-z]{5}' aa
顯示所有包含每個(gè)字符串至少有5個(gè)連續(xù)小寫(xiě)字符的字符串的行。
grep \'w(es)t.*1\' aa
如果west被匹配,則es就被存儲(chǔ)到內(nèi)存中,并標(biāo)記為1,然后搜索任意個(gè)字符(.*),這些字符后面緊跟著另外一個(gè)es(1),找到就顯示該行。
- awk 目前只會(huì)提取符合要求的列,默認(rèn)分隔符是空格
awk {’print $1‘} test.txt 提取第一列
awk -F : '{print $2}' 以‘:’為分隔符 提取第二列
- echo 打印到終端
echo -e "Hello world\nI love bioinformatics" > test.txt
-e 內(nèi)容中有特殊字符就需要加(比如換行符\n)處理特殊字符
""中就是打印的內(nèi)容
>字符輸出到哪里(覆蓋原文件)
>> (添加到原文件底部)
4.5 解壓
tar結(jié)尾
tar -xvf
gz 結(jié)尾gunzip
tar.gz結(jié)尾tar -xzvf
bz2結(jié)尾tar -jxvf
zip結(jié)尾unzip
rar結(jié)尾unrar e
- 附加
-
ls輸出的是橫向的列表,怎樣輸出長(zhǎng)格式列表(提示:搜索ls)
ls -limage -
如何查看長(zhǎng)格式列表中文件的大?。浚ㄌ崾荆簂s)
ls -lhimage -
查看Linux系統(tǒng)版本、內(nèi)存與硬盤(pán)空間?(提示:分別是三個(gè)命令)
lsb_release -a
free -m
df -lmimage -
怎樣建立類(lèi)似/tmp/tmp1/tmp1.1 這樣的層級(jí)目錄(提示:搜索mkdir)
mkdir -p tmp/tmp1/tmp1.1image -
怎樣刪除這些層級(jí)目錄(提示:搜索rm)
rm -r tmp*image
-
切記
rm -rf tmp* 不要使用
5.實(shí)用小技能tree
下載安裝:
http://mama.indstate.edu/users/ice/tree/src/tree-1.7.0.tgz
tar -zxvf tree-1.7.0.tgz
cd tree-1.7.0.tgz && make install
記得將安裝完的程序?qū)胱约旱沫h(huán)境變量
那么如何設(shè)置自己的環(huán)境變量呢,簡(jiǎn)單說(shuō)一下:
mkdir -p /place you like/soft(這里命名和存放位置自定義)
echo export PATH=/your install environment path/bin:$PATH >> ~/.bashrc
source ~/.bashrc
設(shè)置好后,將軟件copy到環(huán)境變量
cp tree /your environment PATH/
使用就很簡(jiǎn)單啦:tree -h dir
(-h 意思是-human-readable,很方便地將文件大小表示出來(lái))












