shell腳本工程師
① 學生信的那些事兒之七 - linux基礎之Shell腳本編程
沿著前面的軌跡,接下來是Linux中shell腳本的學習。這對於生信工程師後續處理大量 (海量更合適些) 數據是非常非常重要的,但是同樣的,作為一個有點古板的人,對於"腳本"是什麼意思我都死磕了好久。主要覺得有些抽象,尤其是跟生信的同事討論項目分析部分的問題時,他們經常會說道這個詞,在他們意識里這是個不言自明的術語,殊不知對外行人而言 (比如我),那簡直就是無情的"知識的詛咒"。經常是我假裝聽懂了,然後繼續討論下面的問題,形成一個模糊的印象。
網路上的解釋是:腳本(Script)是一種批處理文件的延伸,是一種純文本保存的程序,一般來說的計算機腳本程序是確定的一系列控制計算機進行運算操作動作的組合,在其中可以實現一定的邏輯分支等。不知道你能不能看懂,反正我開始的時候真是一知半解。
鳥哥私房菜的解釋是:shell script是利用 shell 的功能所寫的一個"程序",這個程序是使用純文本文件,將一些shell的語法與命令(含外部命令)寫在裡面,搭配正則表達式、管道命令與數據流重定向等功能,以達到我們所想要的處理的目的。不明覺厲,好像更看不懂了···
Jude 的簡單粗暴大白話解釋是:腳本就是Linux中很多命令按照一定規則的組合,以實現某個特定的功能。Linux中有很多簡單的命令,往往只是進行了簡單的對話,比如 cd 就是進入到某個目錄,簡單直接。但是如果我想進入某個目錄A,然後在目錄A中創建目錄B,再在目錄B中創建文本C呢?當然可以一步一步操作,如果想要一步到位呢,那就可以用腳本,把三個命令寫在一起,一起執行。好像有點啰嗦···
或者從英語的角度去理解,腳本的對應英文是Script,而這個單詞的中文釋義中還有劇本的意思。劇本就好理解了啊,劇本就是導演(生信工程師)基於某個主旨(要實現的目標)按照一定的手法(規則)所寫的一個故事。不管是哪個演員,都得按照劇本演。所以,學好英語對於生信也是有幫助的~
按照腳本的復雜程度可以分為:
這個無需多說,其實就是若干個簡單命令的順序排列,執行腳本後會按照命令的前後關系從前往後一一執行。
相對於簡單的基本腳本,結構化的命令腳本可以施加邏輯流程式控制制,從而改變程序(命令)執行的順序。基本腳本中的命令就是從上往下執行,但是結構化的命令腳本可以根據邏輯判斷重復或者跳過某些命令。
常用的結構化命令(語句)有:
後面還有什麼嵌套循環啊啥的,不過我覺得上面的7中命令學到家了,應該可以應付大部分在生信分析裡面的應用了。
記得高中的時候,物理老師(也是班主任)在給我們講解習題時有個有意思的套路:不管什麼難題現在下面寫個"答:",以示自己解決問題的決心,也是一種正向的心理暗示。腳本編寫也是有套路的,不過總的來說還是比較簡單。
對於簡單的腳本(超級簡單的那種),直接幾個命令連在一起即可,中間用";"隔開。
對於更長更復雜的腳本,一般需要創建一個文本,並在裡面編輯。這就涉及到了文本編輯器,比較常用和簡單的一般有nano和vim,實在很簡單,規則也容易理解,教程隨手可得,不多說。
比如用vim創建了一個腳本之後,具體的語法(套路):
ok,腳本寫完了,怎麼讓腳本開始工作呢?這有涉及到之前講過的環境變數和相對路徑、絕對路徑了。方法有三:
就這么多吧,應該有點感覺到了,剩下的就是狂練狂練了~
② Shell開發工程師是什麼職位
技術要求是比較全面的,除了最基礎的編程語言(C語言/C++/java等)、資料庫技術(sql/ORACLE/DB2等)、.NET平台技術、C#、C/S B/S程序銷飢開發,還有諸多如JAVA SCRIPT、AJAX、HIBERNATE、SPRING、J2EE、WEB SERVICE、STRUTS等前沿技術。
開發過基於Weblogic或Websphere應用伺服器明稿的應用程序;熟悉WebLogic/Websphere的安裝、配置、故障處虧槐返理和調優;具有J2EE相關開發經驗;熟悉weblogic集群的配置和管理;
③ 中級運維工程師的主要職責描述
中級運維枝缺工程師的主要職責描述1
職責:
1. 負責公司雲端伺服器及系統的安裝、調試、維護、監控和故障處理等日常工作余搭蔽,對公司現網應用服務提供技術支撐,保證伺服器的穩定運行
2. 伺服器部署架構的研究和優化,自動化技術研究
3. 協助項目開發測試團隊日常測試上系統和軟體環境層面上的技術支持
4. 協助其他團隊做IT基礎架構的設計、實施
任職資格:
1. 計算機相關專業,3年以上運維工作經驗,熟悉阿里雲產品
2. 熟悉常見centos、redhat、ubuntu、debian等操作系統,熟悉LAMP、LNMP環境的搭建
3. 重視自動化配置管理,熟悉掌握shell/perl/php/python中的一種腳本語言
中級運維工程師的主要職責描述2
職責:
1,負責應用系統日常維護,資源的分配、規劃、管理。
2,保障各主機硬體平台和運行環境的穩定;
3,負責各硬體平台及應用系統的應急響應和故障的及時處理;
4,解答用戶咨詢,解決用戶使用系統中的日常問題;
5,運維日誌收集,運維文檔編寫等日常工作;確保系統24x7穩定運行。
任職要求:
1,計算機相關專業,大專及以上學歷;
2,具有良好的溝通表達能力,獨立問題分析和解決能力;
3,熟悉Linux系統;熟悉 Apache、NginX、tomcat等常用服務的安裝、配置和維護;熟悉資料庫的簡單操作;
4,具備項目文檔、技術文檔的編寫能力;
5,有大型OA系統運維經驗或開發轉運維優先。
中級運維工程師的主要職責描述3
職責:
(1)參與規劃設計、性能優化建議及實施方案編制。
(2)負責行業重點客戶的核心高端設備的高級保障,提供運維保障優化數據依據及對應建議、參與方案制定;負責日常運維的質量、進度保障;
(3)提供重難點技術問豎州題的高級技術支持。對重點客戶提供相關網路知識、我司運維體系、保障體系以及網路優勢等內容專項培訓及交流工作;
(4)編制交付客戶的.運維相關報告及例行匯報、會議溝通;
(5)負責為行業客戶提供在特殊時期或場景(如會議、銀行系統升級等)的保障服務方案落地及高級技術保障服務,事後總結分析等,確保保障順利完成。
(6)負責客戶重點問題的落地及匯報;
(7)項目所需的其它技術類支撐工作。
中級任職資格:
(1)技術要求:具有ICT項目、集客業務、數通產品維護、傳輸專線等業務維護工作經驗;
(2)有解決方案編寫能力,熟悉WORD,EXCEL,VISIO,POWERPOINT等文檔編輯工具;
(3)具備業務管理能力,熟悉集客業務,具備故障協調、支撐流程優化等各項工作能力與經驗;
(4)學歷要求:大學專科及以上學歷,具有良好的溝通和協調能力,具有很強的執行力;擁有中級項目經理證書、CCNP思科認證網路高級工程師、系統集成項目管理工程師任意一本證書優先考慮;
(5)具備一定項目管理經驗、運營商溝通經驗者優先。
中級運維工程師的主要職責描述4
職責:
1、負責項目管理、服務台、運行檢查、設備管理等基礎維護工作;
2、根據運維需求及時完成編寫腳本開發;
3、協助完成系統升級過程中遇到的問題;
4、負責日常軟體的測試工作,主要包括功能性測試和硬體性能測試,向開發人員提供測試技術支持;
5、完成領導交辦的其他工作;
崗位要求
1、對操作系統、伺服器及網路設備有扎實的基礎知識;
2、熟練C++、Shell腳本開發與測試,掌握SQL等資料庫語言;
3、熟悉Windows、Linux操作系統的使用與配置;
4、有一定的系統測試經驗。
中級運維工程師的主要職責描述5
職責:
1、負責各環境的虛擬化搭建及運維,系統的安裝、配置、監控和維護、問題處理、軟體升級,故障排除保證線上環境的穩定運行
2、負責分布式系統的部署、發布、監控、數據備份、維護和優化
3、負責集團(香港、上海)網路、防火牆、路由器的設置維護工作,加強公司信息安全管理。
4、主動發現生產環境的問題及隱患,針對突發事件能夠運用監控、日誌、APM等工具進行問題定位與分析,應用自動化運維工具來降低手工操作的維護成本。
5、配合制定並落實相關運維制度及安全防範制度
任職要求:
1、全日制本科以上學歷,計算機網路相關專業
2、精通Linux和Windows操作系統的維護,擅長腳本開發
3、有阿里雲/aws等雲產品使用經驗
4、具備網路故障排錯能力,保障網路安全
5、熟悉主流監控系統Zabbix/Cacti/Nagios的應用及擴展
6、熟悉伺服器虛擬化容器技術
7、熟悉常見Web系統架構,熟練配置、管理及其優化,如lvs/nginx/haproxy/keepalived等相關
8、對中間件故障能快速定位、排查分析
④ 面試軟體測試工程師,被問到 shell腳本,應該怎麼回答
其實shell並沒有想像中那麼高大上的,無非就是n個linux命令寫在一個文件里,這個文件就是shell腳本,然後 「sh 文件名」,執行這個shell文件,就是在執行裡面的腳本,一條一條的執行。我一般用到shell的時候都是部署環境和監控日誌,其他地方用到的少,大部分也是直接在伺服器上敲命令
⑤ 我是做java的,看到好多招聘要求會shell 或者 python ,我知道這是腳本語言,但是他究
我在一家互聯網公司工作,工作性質是後端服務開發和數據構建。開發語言C++,Python,PHP都涉及過。
我的觀點是,Shell和Python是軟體工程師的基本技能之一。
Shell是UNIX下的腳本語言,長用於集成命令和操作用。而Python是高級腳本語言,有良好的公共庫支持,開發成本較低。比較適合一些復雜的計算和處理。
要求會Shell和Python,與用Java或者C++開發項目並不沖突。
舉個例子,比如你做了一個廣告投放系統。你需要監控你的系統的線上投放效果。
因此你可能需要些一個線下程序,每天8點去scan資料庫或者你的info日誌,然後把報表郵件發出。
這時Python就用到了,你可以寫一個簡單的Python腳本,開發這樣的一個功能並不需要太多時間。當然這樣的功能,你用Java也可以做,不過我個人理解,Python開發更輕量級更快速。
工程師不可能所有事情都用C++和Java解決。我的理解是,應該根據工作選擇語言,而不是用語言選擇工作。
⑥ 會shell,sql能掙多少錢
會shell,sql的工程師,月薪過萬不是夢。
⑦ 網站運維工程師一般perl/shell等腳本語言 用的多嗎
我們這邊都是用shell和perl。
專業運維。^_^
平時程序上載之後的很多重復性操作都是由運維寫shell或者perl的。
⑧ 菜鳥問LINUX運維工程師在工作中用這些腳本語言(Shell、Perl、Python、Ruby)做什麼
本人主要用shell,結合工作經驗,給出如下常用功能:
1.製作定時任務,可以獲得系統狀態,然後截取系統狀態,發送至故障監控平台或簡訊平台,實現故障的自動預警。
2.提取數據,形成文本毀指,處理文本,得到規格化的數據,提供給相關部門使用。
3.製作shell互動式菜單,提供給其他運維殲頃值班人員使用,用以纖改配手工監控系統各種狀態
4.版本升級、系統變更等操作需要使用。
⑨ 成為Linux雲計算工程師需要哪些條件
Linux雲計算工程師應該具備以下知識:x0dx0a1、熟悉Linux操作系統,基本配置,系統管理,網路路由包過濾防火牆與各種服務程序配置;x0dx0a2、熟悉shell腳本語言,熟悉C,Python,JAVA其中一種或幾種x0dx0a3、了解Linux下的RAID、LVM等機制與配置,了解Linux下的各種本地文件系統與網路文件系統,熟練進行調優配置。熟悉各種主流的開源分布式文件系統及分布式存儲系統;x0dx0a4、熟悉Hadoop框架,各個相關軟派則件模塊,能夠安裝、配置、優化hadoop運行系統,熟悉各種hadoop變種產品及相應優缺點,對hadoop平台有自己的理解,了解OpenStack平台,能枝慶夠搭建、塵搭棚定製OpenStack系統。
⑩ 雲計算工程師需要掌握什麼技術
雲計算工程師需要掌握包括結合Linux的網路基礎實戰、Linux系統配友敗置及服務深度解析、Shell腳本自動化租告段運維項目開發、開源資料庫MySQL DBA架構及優化、主流Web伺服器Nginx架構優化、大型網站高並發項目LVS實戰方案等十項技術。
雲計算工程師需要掌握的技術
十大階段由淺入深、循序漸進,包括結合Linux的網路基礎實戰、Linux系統配置及服務深度解析、Shell腳本自動化運維項目開發、開源資料庫MySQL DBA架構及優化、主流Web伺服器Nginx架構優化、大型網站高並發項目LVS實戰方案、高可用集群技術、分布式存儲技術Ceph、安全防禦技術、性能優化方案、Python自動化運維開發技術、私有雲平台技術KVM、Openstack、容器技術Docker等。
雲計算的基本概念並不新鮮,但運營雲計算所需的服務,基礎設施和代碼也將迅速發展壯大。這意味著沒有單一的,明確的雲計算工程師工作描述。雲計算的定義和要求因組織和業務目標而異。即使以前你還沒有成為雲工程師,經驗豐富的IT專業人士在成功的項目和在職學習方面的成功經驗,可能已經具備了許多在這個苛刻的高級職位上取得成功所需的技能。
雲計算工程技術工作任務
1、開發虛擬化、雲平台、雲資源管理和分發等雲計算技術、以及大規模數據管理,分布式數據存儲等相關技術;
2、研究、應用雲計算技術、體系架構、協議和標准;
3、規劃、設計、開發、集成、部署雲計算系統;
4、管理、維護並保障雲計算系統的穩定運行;
5、監弊譽控、保障雲計算系統安全;
6、提供雲計算系統的技術咨詢和技術服務。