亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: Shell_HAT
打印 上一主題 下一主題

[其他] shell技術討論--如何快速入門和提高(獲獎名單已公布-2014-2-17) [復制鏈接]

論壇徽章:
20
CU大牛徽章
日期:2013-04-17 11:48:26羊年新春福章
日期:2015-03-10 22:39:202015年中國系統(tǒng)架構師大會
日期:2015-06-29 16:11:282015亞冠之平陽省
日期:2015-07-31 09:19:042015七夕節(jié)徽章
日期:2015-08-21 11:06:17IT運維版塊每日發(fā)帖之星
日期:2015-09-30 06:20:002015亞冠之柏太陽神
日期:2015-10-19 20:29:5915-16賽季CBA聯賽之天津
日期:2016-11-29 14:03:4315-16賽季CBA聯賽之北控
日期:2016-12-24 20:51:492015年辭舊歲徽章
日期:2015-03-03 16:54:15雙魚座
日期:2015-01-12 20:58:532014年中國系統(tǒng)架構師大會
日期:2014-10-14 15:59:00
11 [報告]
發(fā)表于 2014-01-22 14:02 |只看該作者
話題一,初學者怎樣才能快速入門并掌握常用的shell腳本編寫以及解決工作上的常見問題?
     首先要對Linux系統(tǒng)有一些了解,知道Linux系統(tǒng)命令主要是由shell內置命令和系統(tǒng)來枹成的,同樣,在shell腳本中,也主要是由shell內部命令和系統(tǒng)命令構成。
寫shell腳本的頭部,記得加上set -x,便于在調試腳本時,打印信息進行調試。
話題二,對shell腳本編寫有一定基礎的情況下,如何快速提高自己的水平以及編寫出“優(yōu)雅”、高效率的代碼?
     對shell各種變量如$? $0 $1等變量有一定的認識,還要對系統(tǒng)較熟悉,知道系統(tǒng)常用服務,啟動腳本放在哪兒,懂得系統(tǒng)性能優(yōu)化,這樣一般就能寫出較高效和“優(yōu)雅”的代碼了

論壇徽章:
18
卯兔
日期:2013-09-27 17:41:0615-16賽季CBA聯賽之佛山
日期:2016-07-09 17:34:45操作系統(tǒng)版塊每周發(fā)帖之星
日期:2015-12-02 15:01:04IT運維版塊每日發(fā)帖之星
日期:2015-12-02 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-10-07 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-10-03 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-10-01 06:20:00羊年新春福章
日期:2015-04-01 17:56:06拜羊年徽章
日期:2015-04-01 17:56:062015年迎新春徽章
日期:2015-03-04 09:49:452015年辭舊歲徽章
日期:2015-03-03 16:54:15天秤座
日期:2015-01-14 06:39:28
12 [報告]
發(fā)表于 2014-01-22 17:28 |只看該作者
好活動,要大力支持的

論壇徽章:
0
13 [報告]
發(fā)表于 2014-01-22 17:56 |只看該作者
  對腳本語言都不懂......

論壇徽章:
0
14 [報告]
發(fā)表于 2014-01-22 18:13 |只看該作者
話題一,初學者怎樣才能快速入門并掌握常用的shell腳本編寫以及解決工作上的常見問題?

在類unix環(huán)境下工作的程序員,經常會遇到批量處理的問題,如果不懂腳本,可就費事了,比如:

找到刪掉所有以.tmp結尾文件: find . -name "*.tmp" -exec rm -rf {} \;  (只有一句命令,不算腳本哈)

停調所有虛擬機:
for i in `virsh list --all | awk '{print $2}'`; do
         virsh destroy $i
done

記得以前不會寫腳本,總是一個一個的停掉虛擬機,真實累的冤枉阿

因為用shell腳本確實能替程序員解決繁瑣的問題,所以個人感覺學習shell是快樂的,shell是高效工作的必備工具阿

話題二,對shell腳本編寫有一定基礎的情況下,如何快速提高自己的水平以及編寫出“優(yōu)雅”、高效率的代碼?

對shell有一定了解了,一定要學習高手的代碼,高手在那里?高手就在linux系統(tǒng)中,/etc/目錄下,/usr/bin下有大量的專業(yè)級的shell代碼,多看,多引用,比如
redhat下有個函數庫/etc/rc.d/init.d/functions ,里面有特別多好的shell函數,自己就不用重復創(chuàng)建輪子了

論壇徽章:
1
雙子座
日期:2013-11-06 17:18:01
15 [報告]
發(fā)表于 2014-01-23 09:26 |只看該作者
本帖最后由 seufy88 于 2014-01-23 09:42 編輯

話題一,初學者怎樣才能快速入門并掌握常用的shell腳本編寫以及解決工作上的常見問題?
初學者最好能從事某個作業(yè)作為開端,進入shell。這樣一來即為工作也為新的知識學習。
基礎看一點就行了,因為shell本身入門的代價不高,看了點皮毛(CU:shell基礎)
后就可以直接上手了,直接動手寫你的腳本,有問題再自己找資料解決。
這里我要提一下flw(我們perl的版大)的提問的藝術
誰不是生來就懂的,但是遇到問題自己不先思考不先自己查找資料就上來提問,這種不經大腦不用動手的拿來主義只會害了你自己。
作為新手,正是通過自己動手深刻掌握的階段,如果這次你“僥幸"解決了問題,以后再遇到時你依然沒有用心掌握住,這樣你永遠不得把知識化為自身

shell腳本這一塊已經有很多前輩總結的寶貴經驗,并且由于shell腳本的一個特點(相對一般軟件開發(fā)):
短小實用性強,初學者邊寫邊執(zhí)行邊debug不是問題,在這過程中慢慢積累寶貴的經驗,甚至形成自己的shell編寫風格。
網絡上也好CU的shell版也好,每天都有很多新人在提問,解決各種各樣的問題,我想初學者自己也會遇到這樣的問題,為何不自己來實踐并回答網友的提問
作為新手,我隆重推薦臺灣友人網中人的精華文章:
http://www.72891.cn/thread-218853-1-1.html

話題二,對shell腳本編寫有一定基礎的情況下,如何快速提高自己的水平以及編寫出“優(yōu)雅”、高效率的代碼?
這是一個積累的過程。
另一方面,多看看國內外高手寫的腳本,學以自用。
我覺得,可以看看各各source code里的configure腳本,一般都是用shell編寫的。大體功能都是為了編譯前的環(huán)境檢測和構建。
里面有很多技巧東西值得學習。

歸根到底,shell腳本其實是shell這個程序能夠讀懂的一種“文書”。它也是一個普通得不能再普通的linux程序,擁有l(wèi)inux程序所有特性。
如果你接觸到linux內部的知識點,比如內核為每個進程維護fd table,同時fork的父子關系的繼承等,就可以很容易理解“重定位”這種東東的實質。
另外,所謂有shell環(huán)境變量,不正是我們在C語言程序中也經常遇到的:進程的內存空間中專門有一塊用來存放env var和argv、argc等東西。shell也是如此,沒什么神秘的。

(1)多自己動手寫腳本,哪怕是最簡單的開始,最丑的丑小鴨將來也會變天鵝。
(2)精通awk,sed等shell中常用的利器
(3)一定要精通正則表達式

最后一點,我覺得它和C不一樣之處:shell腳本如果不一直用,就會忘得很快(perl更快:wink: )

論壇徽章:
1
雙子座
日期:2013-10-09 14:59:30
16 [報告]
發(fā)表于 2014-01-23 10:17 |只看該作者
謝謝分享   

論壇徽章:
1
酉雞
日期:2014-04-15 16:52:36
17 [報告]
發(fā)表于 2014-01-23 10:26 |只看該作者
剛剛學習shell,還不知道怎么入門呢,進來學習學習!

論壇徽章:
78
雙子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06獅子座
日期:2013-10-18 13:40:31雙子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年紀念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56處女座
日期:2013-10-24 17:15:30雙子座
日期:2013-10-25 13:49:39午馬
日期:2013-10-28 15:02:15
18 [報告]
發(fā)表于 2014-01-23 14:28 |只看該作者
話題一,初學者怎樣才能快速入門并掌握常用的shell腳本編寫以及解決工作上的常見問題?
首先對Linux系統(tǒng)有個基本的了解,知道它是怎么處理各種命令的,其次是對bash有一定的了解,它的語法原理等等。
然后就是要熟練運用常見的命令了,如ls,find,exec,ps等等,最好在實際工作中運用,如果不懂就看文檔,如man等,
或者去網上查各種資料,然后嘗試將這些自己熟悉的命令結合起來工作,慢慢地培養(yǎng)感覺。

話題二,對shell腳本編寫有一定基礎的情況下,如何快速提高自己的水平以及編寫出“優(yōu)雅”、高效率的代碼?
首先基礎知識一定要扎實,經常翻翻abs這種書,好好想想書中的例子是怎么實現的,明白背后的原理,其次就是要在
實際工作中大量寫各種腳本來代替自己的工作,然后經;仡^看看自己寫的腳本是否有bug,是否有更好的方法來改進,
也就是說的重構,在大量實踐的基礎上多看看系統(tǒng)自帶的一些優(yōu)秀腳本或者別人寫的好的腳本,看看他們是怎么實現的,
加以吸收和利用。最后是最好熟悉一種腳本語言如Perl等,這樣會對shell有著更好的理解。

論壇徽章:
0
19 [報告]
發(fā)表于 2014-01-23 14:48 |只看該作者
本帖最后由 polyahu 于 2014-02-11 16:52 編輯

話題一,初學者怎樣才能快速入門并掌握常用的shell腳本編寫以及解決工作上的常見問題?

http://ask.chinaunix.net/question/882
上面這個鏈接是CU問答里的“關于如何學習Linux ?”,可以參考一下。

http://bbs.linuxtone.org/thread-21094-1-1.html
linuxtone論壇上的一個帖子,也挺不錯。

http://linux.vbird.org/
鳥哥的Linux私房菜挺不錯的,循序漸進,講解的很好。

http://tldp.org/LDP/abs/html/
abs是好書,很多的示例代碼,看了以后很有收獲,知道shell腳本大概是什么樣子了。

sed.sourceforge.net/sed1line_zh-CN.html
SED單行腳本快速參考,非常實用。這個地址好像打不開,用這個名字搜一搜就能找到。

http://rosettacode.org/
這個網站也蠻有意思,列了很多的題目,然后用常見的編程語言解決一遍,挑里面的Bash和awk看看,也可以有所收獲。
(這網站有時候打不開,不知道是不是公司網絡的問題)

《sed與awk》這書非常好。

學習正則表達式,這塊我一開始是看的《Learning Perl》的第七章入門的。有個著名的網帖《正則表達式30分鐘入門教程》(http://deerchao.net/tutorials/regex/regex.htm),還有man grep的REGULAR EXPRESSIONS一節(jié),info sed的3.3一節(jié),man awk的PATTERNS AND ACTIONS一節(jié),perldoc看perlrequick/perlretut,《精通正則表達式》《正則指引》是兩部更全面的參考書,可能不會需要讀到那個程度。

對于入門并掌握腳本編寫這個問題,尋找好的學習資料是一回事,真正重要的是實際動手操作。
動手操作一是解決工作中實際問題,另外就是泡論壇,找問題去做。CU論壇里帖子很多,實際問題也很多,試著做做也好。

解決工作上的常見問題,一是熟悉工具,熟悉基本操作,并至少知道這個工具可以做哪些事情,二是知道如何去搜尋答案,比如到論壇里發(fā)貼子問,搜索引擎去搜關鍵詞,到stackoverflow搜關鍵詞,看文檔RTFM,看手冊。有時候看帖子里提了問題,回帖里就把手冊里相關條目的原文貼過來,就一下明白了(英語的閱讀越熟練越好)。
Bash的手冊(http://www.gnu.org/software/bash/manual/bashref.html)有點繁瑣不像vim的手冊(http://doc.linuxpk.com/doc/vim/)那樣容易閱讀,但是Shell本身就是很繁瑣很復雜的呀,手冊是最準確最全面的資料,會查手冊很多細節(jié)就無需問別人了。
學vim的時候反復看手冊,多操作操作,每次看過文檔以后就有意識的多用幾個不熟悉的命令/快捷鍵什么的,慢慢就上手了。shell也是這樣,像C-a,C-e,C-u這些,有意識的多用一用就記住了,個別命令的參數像`uniq -c' `sort -n' `du -sh' `cp -r'多用多記,也就會了。


話題二,對shell腳本編寫有一定基礎的情況下,如何快速提高自己的水平以及編寫出“優(yōu)雅”、高效率的代碼?

這個話題我沒什么把握來回答了,因為自認為寫不到優(yōu)雅的程度。

個人認為要提高水平的話,應該多看看成熟的項目代碼,比如init.d目錄里的腳本,rvm這樣的腳本項目,github上有更多。

另外就是加深對Shell的理解,shell里變量怎么替換,參數怎么展開等等細節(jié)。多讀手冊。熟悉正則表達式。
還有上面有人說道的linux十三問,也是很精彩很有深度的帖子。CU的Shell編程大賽。其實多看看CU論壇Shell區(qū)精華版挺長知識的。

另一方面就是多泡論壇,看別人的問題,嘗試解答,看別人的解決方法。
CU論壇的Shell區(qū)、水木論壇的LinuxApp/LinuxDev區(qū)、stackoverflow等等都是非常好的。



不管是為了上手,還是為了提高,多泡論壇積累經驗,多動手加深記憶,多動腦思考,都是很重要的。

論壇徽章:
2
子鼠
日期:2014-12-09 14:03:562015年亞洲杯之巴勒斯坦
日期:2015-03-31 10:49:39
20 [報告]
發(fā)表于 2014-01-23 15:08 |只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯網協會會員  聯系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP