高通量數據分析過程中涉及的中間文件,在存儲量允許的前提下,可以將其暫存備查。通常可以將這些文件歸檔或壓縮後保存,並打上日期標簽,長時間未使用的非重要數據可考慮刪除以騰出存儲空間。在此總結Linux系統常用的歸檔與壓縮指令。
歸檔 即將多個文件(目錄)打包為一個文件,但並不對文件進行壓縮。
從歸檔文件中提取指定文件
從壓縮文件中提取指定文件
參考:
1. Linux tar 命令
2. 如何從一個tar包中或者tar.gz包中提取某個文件
2. Linux之awk詳解
awk是一個強大的文本分析工具,相對於grep的查找,sed的編輯,awk在對數據分析並生成報告時,顯得尤為強大。
簡單來說awk就是把文件逐行的讀入,以空格為默認分隔符將每行切片,切開的部分再進行各種分析處理。
awk有三個不同的版本:awk、nawk和gawk,未作特別說明,一般指gawk,gawk是awk的GNU版本。
之所以叫awk是因為其取了三位創始人Alfred Aho,Peter Weinberger,和Brian Kernighan的Family Name的首字元。
awk格式:
格式: sed -n '3p' sed.txt
找誰幹啥(條件動作)
awk格式
#取出/etc/passwd 第1行的第1列和第3列
awk -F: 'NR==1{print $1.$3}' /etc/passwd
awk 選項 '條件{動作}' /etc/passwd
條件: 哪一行,過濾什麼內容
動作: print輸出與顯示 ,計算....
awk取行:與sed類似
案例01:取出sed.txt的第2行
[root@oldboy81-golden-lnb /oldboy]# cat sed.txt
101.oldgirl,CEO
102.zhangya,CTO
103.li007.COO
104.yy,CFO
105.feixue,CIO
110.li,COCO
[root@oldboy81-golden-lnb /oldboy]# awk 'NR==2' sed.txt
102.zhangya,CTO
#awk '行號 等於 2' sed.txt
#NR awk內置變數
Number of Record 記錄號(行號)
案例02:取出sed.txt中包含oldboy或li的行
[root@oldboy81-golden-lnb /oldboy]# sed -rn '/oldboy|li/p' sed.txt
103.li007.COO
110.li,COCO
[root@oldboy81-golden-lnb /oldboy]# awk '/oldboy|li/' sed.txt
103.li007.COO
110.li,COCO
案例03:取出文件第2行到第5行內容
#awk '行號大於等於2 並且 行號小於等於5' sed.txt
#方法01
awk 'NR>=2 && NR<=5' sed.txt #必會
&& 表示並且.
#方法02
sed -n '2.5p' sed.txt
#方法03 了解
awk 'NR==2.NR==5' sed.txt #從行號是2的行開始 到 行號是5的行結束( 了解)
案例04:取出文件第3行到最後一行內容
[root@oldboy81-golden-lnb /oldboy]# awk 'NR >= 3' sed.txt
103.li007.COO
104.yy,CFO
105.feixue,CIO
110.li,COCO
[root@oldboy81-golden-lnb /oldboy]# sed -n '3.$p' sed.txt
103.li007.COO
104.yy,CFO
105.feixue,CIO
110.li,COCO
案例05:取出從包含oldboy的行到li的行
[root@oldboy81-golden-lnb /oldboy]# cat sed.txt
101.oldgirl,CEO
102.zhangya,CTO
103.li007.COO
104.yy,CFO
105.feixue,CIO
110.li,COCO
root@oldboy81-golden-lnb /oldboy]# sed -n '/old/,/li/p' sed.txt
101.oldgirl,CEO
102.zhangya,CTO
103.li007.COO
[root@oldboy81-golden-lnb /oldboy]# awk '/old/ , /li/' sed.txt
101.oldgirl,CEO
102.zhangya,CTO
103.li007.COO
3. 怎麼用linux系統分析gwas數據
寫個腳本不得了 在crontab定時一下
tar zcvf /文件存放路徑/webpage.tar.gz / 頁面路徑/
mysqlmp -uroot -p(p後緊跟密碼) 庫名字 >/備份存放路徑/data.sql
chmod 777 你的腳本
然後crontab -e 每天 凌晨一點備份 裡面就寫
* 1 * * * /你的腳本路徑/backup.sh
夠詳細了 也夠入門了 命令夠少的了 效果實現了 很簡單吧 給分吧
4. linux下搭建python3數據分析環境
在LINUX上裝python是默認不帶IDLE的要自己裝
用下面的命令。
sudo apt-get install idle
但是通常大家都是直接用VIM來編寫python腳本。
5. Linux怎麼使用nmon監控性能,分析系統性能數據
首先要進行下載一個nmon,可以直接通過wget 方法進行下載。
2
下載完成之後,進行解壓文件,unzip nmon_x86_12a.zip。
3
然後把解壓出三個文件中,對應的自己的系統移動,這里選擇的是nmon_x86_rhel45命令為:mv nmon_86_rhel45 /usr/local/bin/nmon。
4
進行直接使用命令中進行輸入:nmon -s10 -c60 -f -m /home/,這樣就會10s進行獲取到分析數據,如果需要進行查看具體,可以根據頁面中提示信息,例如需要查看cpu,在鍵盤中直接進行輸入cpu即可
5
然後就會獲取到一個nmon的分析的數據,一般在linux的home下,然後可以通過ftp的方法進行下載到windows中。
6
需要到網路進行下載一個nmon analyser ,這個是一個xls的格式文件,打開這個excel,進行點擊analyse nmon data的選項,進行載入從linux中下載到windows中nmon文件。
7
載入完成之後,就可以通過xls中數據,進行分析相關的數據,及數據上變化。
6. Linux相關使用介紹
Linux命令分為內部命令(shell自帶的命令)和外部命令(不是shell自帶的命令,由用戶安裝),怎麼鑒別是內部命令和外部命令呢?可以通過type命令來鑒別
什麼是shell呢?shell是一個程序,常用的有bash shell,平時我們通過用戶名和密碼登錄到linux,其實就是登錄到bash shell程序,通過bash shell來操作linux內核
命令執行流程
那豈不是說使用外部命令效率會很慢嗎?
其實一點都不慢,它會去PATH環境變數設置的一堆目錄中查找
cd is a shell builtin 表示內部命令
ifconfig is hashed (/usr/sbin/ifconfig) 表示外部命令
cd命令切換文件夾
現在我們cd /usr/sbin
通過cat命令查看文件內容
通過cat ifconfig來查看ifconfig,發現是亂碼文件
file命令查看文件類型
輸入file ifconfig
從輸出信息可以看出它是一個二進制可執行文件
whereis命令查看文件位置
find / -name jdk
echo命令用戶列印信息,相當於java中的system.out.println
可以使用回車查看下一行、空格查看下一頁、q退出
一般使用man查看外部命令,help查看內部命令
查看linux下的應用和應用的進程號
當我們在這個窗口中輸入kill -9 1593的話,另外一個正在編輯文件的進程就會退出
在前面我們已經講過,bash shell程序在執行命令的一個過程及原理,對於外部命令,它會去PATH這個環境變數中查找執行命令所在的路徑,當然在去PATH中尋找之前會先去hash表中查找這個命令有沒有執行過,執行過的話會記錄在hash表中,則此次查找只需從hash表中就可以很方便的找到
查看分區信息 -h 表示文件大小後面會顯示文件大小
查看文件的使用情況
使用man ls 查看ls命令的相關介紹
-a:可以查看隱藏文件
-l:以長列表的形式展示文件列表信息
第一位 -:表示文件,d表示文件夾,b表示塊設備文件,c表示字元設備文件,p表示命令管道文件,s表示套接字文件, 從第二位開始往後數九位表示屬主許可權(每三位一組 rwx:讀、寫、執行),第11位表示的點表示分隔符,點後面的數字表示文件有幾個硬連接,第一個root代表屬主名,第二個root代表這個第一個root所在的組織,接下來的5表示文件大小,5後面的日期表示文件最後一次修改的時間, 1.txt代表的文件或文件夾的名稱
小結:
切換文件目錄
cd 文件路徑
cd:切換到家目錄
cd ~:回到家目錄(也就是家目錄)
cd ..:回到上一級目錄
創建目錄
mkdir 目錄名
mkdir -p 目錄名,級聯創建目錄
cp 被拷貝的文件(可以是路徑加文件名) 拷貝到哪個位置
復制目錄使用
cp -r 被拷貝的目錄 目標位置
移動命令
mv 被移動的文件 目標位置+目標文件名
rm 文件名(此中方式的刪除需要再輸入 yes)
rm -f 文件名,無提示直接刪除
rm -rf 文件夾
ln命令默認創建的是硬連接
ln profile a:將a硬連接到profile文件上,他們底層共用一個文件,刪除他們之中任何一個
對另外一個沒有影響,同時你也可以使用 ll -i命令查看文件編號
ln -s profile a:將a軟連接到profile文件,當你訪問a的時候會去訪問profile,profile再訪問底層文件,當將profile刪除了之後a就無法訪問了
一致時間、創建新文本
touch 已存在的文件:會將文件的訪問時間、更新時間、改變時間(即上面stat中介紹的三個時間)變成一致
touch 不存在的文件:會創建一個新的文本
cat命令查看文件內容
cat 1.txt:查看單個文件內容
cat 1.txt 2.txt:查看多個文件
more 1.txt:以分頁的形式查看文件內容,按空格:下一頁,回車:下一行(注意它不能回看,回看的話只能用滑鼠回輪)
less 1.txt:使用空格下一頁, b看上一頁, 回車看下一行
注意less的話會把整個文件內容載入到內存,如果文件比較大的話,建議使用more命令查看
head命令默認查看文件前10行內容, head 1.txt
head -5 1.txt:查看文件前5行的內容
tail命令默認查看文件後10行的內容 tail 1.txt
tail -5 1.txt:查看文件後5行內容
tail -f 1.txt:實時查看文件增量內容
cat b.txt | head -3:管道左邊的命令會以輸出流的形式交給管道右邊的命令,管道右邊以輸入流的形式接收並且拼到命令的右邊
注意:ls -l 不能接受前面的輸出流,這個怎麼辦呢?可以通過xargs命令
vi文本編輯器末行模式的操作
set nu(number的縮寫): 設置行號
set nonu(nonumber的縮寫):取消行號
set readonly:設置為只讀
n:往下查找
N:往上查找
n:往上查找
N:往下查找
一般我們會在/etc/profile文件中設置一些環境變數,但是在設置的時候可能沒有記住目錄,這時候我們可以使用如下方式
效果
格式 :s/str1/str2/gi
/ : 臨近s命令的第一個字元邊界字元,也可以是 @或#
g : 一行內全部替換
i : 忽略大小寫
范圍
n:行號
. :當前游標行
+n :偏移n行
-3
%:全文
全部刪除 1,$d
刪除前三行
刪除倒數第2行
游標挪到最後一行 按下小寫的p
效果圖
正則表達式是對字元串操作的一種邏輯公式,就是用事先定義好的一些特殊字元、及這些特定字元的組合組成一個"規則字元串",這個"規則字元串"用來表達對字元串的一種過濾邏輯。
\ :轉義字元
. :匹配任意單個字元
[1249a] :匹配中括弧中任意字元
[^12] :匹配中括弧中任意非1和2的字元
[a-k] :匹配中括弧中任意a~k中的一個字元
^ :行首
$ :行尾
<abc> :單詞首尾邊界(匹配單詞abc)
| :連接操作符
(,) : 選擇操作符
\n :反向引用
? :匹配0到1次
在Linux中通過grep命令使用正則表達式來匹配信息
f :選擇顯示的列
s :不顯示沒有分隔符的行
d :自定義分隔符
n :按數值排序
r :倒序
t :自定義分隔符
K :選擇排序列
u :合並相同行
f :忽略大小寫
sed:行編輯器,以行為單位進行處理,可以將數據進行替換、刪除、新增、選取等特定工作
sed [options] 'Command' file ...
-n :靜默模式,不再默認顯示模式空間(內存)中的內容
-i :直接修改原文件
-e SCRIPT :可以同時執行多個腳本
-f /PATH/TO/SED_SCRIPT
-r :表示使用擴展正則表達式
d :刪除符合條件的行
p :顯示符號條件的行
a \string :在指定的行後面追加新行,內容為string
\n :可以用於換行
i \string :在指定的行前面添加新行,內容為string
c :取代,c的後面可以接字元串
s /pattern/string/修飾符:查找並替換。默認只替換每行中第一次被模式匹配到的字元串
g :行內全局替換
i :忽略字元大小寫
s///:s###,s@@@
(),\1,\2
sed "2p" ctxt
但是在執行下面的操作的時候文本中的內容都顯示出來了,它的原理是,列印匹配的行,以及文本中所有的內容
注意:它刪的是內存中的數據,而不是目標文件
sed -i "3d" ctxt
它的原理是先把內存中的第3行數據刪除,然後再把內存中的數據寫回原文件,這時原文件中的第三行就沒有了
使用變數的形式
awk是一個強大的文本分析工具。
相對於grep的查找,sed的編輯,awk在其對數據分析並生成報告時,顯得尤為強大。
簡單來說awk就是把文件逐行的讀入,(空格,製表符)為默認分隔符將每行切片,切開的部分再進行各種分析處理。
awk -F '{pattern + action}' {filenames}
支持自定義分隔符,默認是以空格分隔的
支持正則表達式匹配
支持自定義變數,數組 a[1] a[tom] map(key)
支持內置變數
ARGC 命令行參數個數
ARGV 命令行參數排列
ENVIRON 支持隊列中系統環境變數的使用
FILENAME awk瀏覽的文件名
FNR 瀏覽文件的記錄數
FS 設置輸入域分隔符,等價於命令行 -F選項
NF 瀏覽記錄的域的個數
NR 已讀的記錄數
OFS 輸出域分隔符
ORS 輸出記錄分隔符
RS 控制記錄分隔符
支持函數
print、split、substr、sub、gsub
支持流程式控制制語句
if、while、do/while、for、break、continue
練習題
passwd文件內容解讀:
passwd文件中每行由7個欄位組成,欄位與欄位之間由:分隔,第一個欄位代表用戶名,第二個欄位表示用戶對應的加密後的密碼,第三個欄位表示userId,第四個欄位表示groupId,第五個欄位表示對用戶的描述,第六個欄位表示用戶的家目錄,第七個欄位表示的是這個用戶默認使用的shell
其中$0表示整行
統計報表:合計每人1月工資, 0:manager,1:worker
將awk後面的內容封裝到一個文件中(封裝的腳本要遵循一定的格式)
qqq文件的內容格式
7. Linux入門系列——awk命令詳解
awk是一個強大的文本分析工具,與grep、sed相比,awk在對數據分析並生成報告時,顯得有很大的優勢。
awk有三個不同的版本:awk、nawk和gawk,在沒有做特殊說時的時候默認的就是gawk,gawk是awk的GNU版本。
其中command是真正的awk命令,-F表示域的分隔符,是個可選項。Filename是等待處理的文件
將所有的awk命令寫入到一個文件,並使用該文件有X許可權,然後awk命令解釋器作為腳本的首行,也就是說可以把腳本最開始的 #!/bin/bash 換成 #!/bin/awk
最後直接執行這個腳本文件就行了。
-f 指定要載入的awk腳本,是一個文件。Filename是等待處理的文件
awk的工作流程是這樣的:讀入一行後(最後面帶有」 」的),就按-F指定的分隔符來將該行劃分成N個區域,$0表示所有的區域,$1表示第一個域,$2表示第二個域,依此類推,$n表示第n個域。
總結:awk先執行BEGIN內的命令,然後再讀入文件中的行,接著就是按照指定的分隔符將該行分成N個區域,然後再來執行模式所對應的動作action。然後,再來讀入第二行。。再重復執行action,直到所有的行都處理完成。最後再執行END中的命令。
注意:' // '之間是支持正則表達式的,如果此處只有pattern,而沒有action,那麼awk默認會把匹配到的行列印出來。
awk中的print還可以使用C語言中的printf來替代。在輸出格式比較復雜的時候使用printf函數會比print函數要更直觀一些,如下:
還可以使用-v key=value來自定義變數。如下:
awk中的條件語句是從C中借鑒過來的
語法:if (condition) {then-body} else {else-body}
例如使用awk來統計某個目錄下的普通文件的大小,不包括子目錄的,並過濾掉目錄。
循環語句也和C中的一樣,支持while、do/while、for、continue、break等關鍵字。
break和continue常用於循環中;
在awk中,數組的下標可以是數字或字母。一般awk中的數組的作用是從記錄中收集信息,用於計算總和、統計單詞等。
在awk中要刪除一個元素的時候使用 delete array[index]
更多請參見awk官方文檔[http://www.gnu.org/software/gawk/manual/gawk.html]
8. Linux為日常操作系統即將成為數據分析師要怎麼熟悉我是菜鳥,請高手指點迷津。謝謝。
從基本命令開始掌握,如下幾個方面:文件命令、文件系統命令、進程管理命令、網路管理命令。熟悉後,再掌握shell的基本編程。最後掌握學習linux的集群構建,linux系統性能調優等。一步一步來吧。
9. linux下tcpmp怎麼分析數據包
用簡單的話來定義tcpmp,就是:mp the traffic on a network,根據使用者的定義對網路上的數據包進行截獲的包分析工具。 tcpmp可以將網路中傳送的數據包的「頭」完全截獲下來提供分析。它支持針對網路層、協議、主機、網路或埠的過濾,並提供and、or、not等邏輯語句來幫助你去掉無用的信息。
實用命令實例
默認啟動
tcpmp
普通情況下,直接啟動tcpmp將監視第一個網路介面上所有流過的數據包。
監視指定網路介面的數據包
tcpmp -i eth1
如果不指定網卡,默認tcpmp只會監視第一個網路介面,一般是eth0,下面的例子都沒有指定網路介面。
監視指定主機的數據包
列印所有進入或離開sundown的數據包.
10. linux運維和數據分析那個好
建議在Linux運維行業繼續深造,Linux運維很容易達到20K+,不知道你目前的薪資是什麼情況。IT行業還是靠能力。尤其有大廠的工作經歷,提升一下能力,很容易實現的。Linux運維很有很多的崗位及發展方向。
1) Linux運維崗位及工作內容
互聯網Linux運維工程師是一個融合多學科(網路、系統、開發、資料庫、安全、存儲等)的綜合性技術崗位,甚至還需要溝通、為人處世、培訓、銷售、管理等非技術能力,這給運維工程師提供了一個廣闊的發展空間。
2) Linux運維工程師崗位職責
一般從企業入門到中級Linux運維工程師的工作大致有:挑選IDC機房及帶寬、購買物理伺服器或雲服務、購買及使用CDN服務、搭建部署程序開發及用戶的訪問系統環境(例如:網站運行環境)、對數據進行備份及恢復、處理網站運行中的各種故障(例如:硬體故障、軟體故障、服務故障、數據損壞及丟失等)、對網站的故障進行監控、解決網站運行的潛在安全問題、開發自動化腳本程序提高工作效率、規劃網站架構、程序發布流程和規范,制定運維工作制度和規范、配合開發人員部署及調試產品研發需要的測試環境、代碼發布等工作需求,公司如果較小可能還會兼職網管、網路工程師、資料庫管理員、安全工程師、技術支持等職責。
涉及到的Linux平台上的運維工具有:Linux系統,Linux基礎命令,Nginx,Apache,MySQL,PHP,Tomcat,Lvs,Keepalived,SSH,Ansible,Rsync,NFS,Inotify,Sersync,Drbd,PPTP,OpenVPN,NTP,Kickstart/Cobbler,KVM,OpenStack,Docker,,K8S,Mongodb,Redis,Memcached,Iptables,SVN,GIT,Jenkins,網路基礎,Shell/Python開發基礎等,除此之外還可能涉及到交換機、路由器、存儲、安全、開發等知識。
運維工程師還包括一些低端的崗位,例:網路管理員、監控運維、IDC運維,值班運維
職業發展方向:Linux運維工程師、系統架構師、資料庫工程師、運維開發工程師、系統網路安全工程師、運維經理、運維總監
3) Linux中級運維工程師應用軟體階段。
Linux系統,Linux基礎命令,Nginx,Apache,MySQL,PHP,Tomcat,Lvs,Keepalived,SSH,Ansible,Rsync,NFS,Inotify,Sersync,Drbd,PPTP,OpenVPN,NTP,Kickstart/Cobbler,KVM,OpenStack,Docker,Mongodb,Redis,Memcached,Iptables,SVN,GIT,Jenkins,網路基礎,Shell/Python開發基礎
4)Linux運維架構師崗位職責
運維架構師是運維工程師的高級階段,並沒有明確的崗位界限區分,運維架構師一般來說是除了對運維工程師應用的開源工具熟練掌握之外,更多的是用思想來運維了,即DevOps的落地,各種企業運行過程中的解決方案提出和執行,例如:根據公司的現狀可以設計各類運維解決方案的能力:
1、自動化代碼上線(SVN/GIT+Jenkins+MVN)解決方案;
2、雲計算部署架構及Docker微服務架構方案;
3、服務自動化擴容方案(KVM/OpenStack/Docker+Ansible+Zabbix);
4、10萬並發的網站架構、秒殺系統的架構及解決發你個案;
5、多IDC機房互聯方案、全網數據備份解決方案、賬號統一認證方案;
6、資料庫、存儲及各重要服務節點的集群和高可用方案。
7、各網路服務的極端優化方案、服務解耦/拆分。
8、運維流程、制度、規范等的建設和推行。
9、溝通能力、培訓能力、項目管理、業務需求分析及落地執行力等。
這里僅舉幾個例子,實際工作中會有更多,運維架構師的工作,其實就是解決企業中的用戶訪問量不斷增大帶來的痛點,最終達到高效、優質的為客戶提供網站及業務服務。
總的來說:Linux運維架構師更多的是根據企業日益增長的訪問量需求,利用若干運維工具組合加上經驗思想,形成解決業務需求方案的階段,當然也不排除對運維工具進行二次開發以及可視化展示運維數據的階段(開發軟體平台),這個階段涉及的工具會非常多,幾乎市面好用的開源工具都在備選之列,在一線城市互聯網公司的薪資范圍15000-50000/月。
職業方向:高級資料庫工程師、運維開發工程師、運維經理、運維總監、技術總監
運維架構師:將多個工具組合,加上思想經驗,形成方案,用思想和經驗賺錢的階段。
技術的提升僅是量的積累,思想的提升才是質的飛躍!——老男孩
5)資料庫運維工程師
眾所周知,數據幾乎是所有企業的生命線,所以資料庫工程師的地位和薪水一般會比普通運維工程師高一些,主要工作內容就是保證資料庫數據的安全以及高效地為用戶提供各種服務。