作者 主題: 2009 七月份的 SA@Tainan - 輕鬆談Linux系統管理 (07/11)  (閱讀 13706 次)

0 會員 與 1 訪客 正在閱讀本文。

西歪街

  • 鑽研的研究生
  • *****
  • 文章數: 696
  • 性別: 男
    • 檢視個人資料
緣起:
想不少人在學習 Linux 的過程中都有一個困擾:在 Linux 的應用上很多東西一知半解, 霧裡看花。學到最後才發覺是底子太薄的關係。然而,要補基礎卻又不知道如何下手。因此 我想說有機會的話,準備為大家介紹一系列的 Linux 基礎講座


講題簡介:
* shell & script
* text editing & filtering
* process management
* file management & file system
* account management
* permission & security basic

只是有一點我不能確定的就是:不知道會花多少時間來完成這個計劃。
暫且當作SA@tn的系列講座來準備。形式上不會太正規,隨意發揮就是了。最好是來參與的朋友一同互動,有針 對性的解決現場討論的問題。

講者簡介:
講者介紹,就請大家 google 一下 netman 吧。我不多說了。



時間:7月11日13:30 -17:00

地點:台南市社區大學 3F 305教室

台南市社區大學網頁:
http://www.tncomu.tn.edu.tw/

地址:
台南市公園路750號
http://www.tncomu.tn.edu.tw/modules/tinyd5/content/map.gif

報名網址:
http://registrano.com/events/c1e9e4

P.S 會後都會有聚餐,歡迎各位加入我們一起吃吃喝喝^^
« 上次編輯: 2009-07-24 20:30 由 西歪街 »

mrmoneyc

  • 訪客
真是太佛心了!

可是隔天要上新竹考試.....   T_T

r3ock

  • 可愛的小學生
  • *
  • 文章數: 23
    • 檢視個人資料
可惜我在台北 Orz

很想聽 Netman 的課程 > <"

behold0815

  • 可愛的小學生
  • *
  • 文章數: 2
    • 檢視個人資料
謝謝Netman跟各位工作人員

我是一個初學者
因為工作的關係
必須開始學習Linux

對於指令真是感到無力
但是今天聽到Netman對指令的解析
讓我了解到指令的結構
突然對指令感興趣了

雖然課程後面的部分
對我來說太難了

但是今天的收穫可以讓我消化一陣子了

感謝各位

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17466
    • 檢視個人資料
    • http://www.study-area.org
謝謝Netman跟各位工作人員

我是一個初學者
因為工作的關係
必須開始學習Linux

對於指令真是感到無力
但是今天聽到Netman對指令的解析
讓我了解到指令的結構
突然對指令感興趣了

雖然課程後面的部分
對我來說太難了

但是今天的收穫可以讓我消化一陣子了

感謝各位

感謝 behold 大大鼓勵~  ^_^
講義部分我今天會整理出來,讓您可以慢慢的參考。
有問題,當然隨時歡迎上來跟大家一起討論哦~~~

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17466
    • 檢視個人資料
    • http://www.study-area.org
好了,昨天的講義在這裡:
http://www.study-area.org/TnLUG/tnlug-090710_shell.txt
(抱歉,圖都沒還沒畫,以後再更新)


有問題歡迎討論哦。 ^_^

billy3321

  • 活潑的大學生
  • ***
  • 文章數: 269
  • 性別: 男
    • 檢視個人資料
    • 雨蒼的筆記本
好了,昨天的講義在這裡:
http://www.study-area.org/TnLUG/tnlug-090710_shell.txt
(抱歉,圖都沒還沒畫,以後再更新)


有問題歡迎討論哦。 ^_^

老師有沒有考慮作成wiki啊

這樣好像比較方便些?

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17466
    • 檢視個人資料
    • http://www.study-area.org
老師有沒有考慮作成wiki啊

這樣好像比較方便些?

it is a good idea.

要幫忙架一個 wiki 不? ^_^

Aminzai (阿民)

  • 憂鬱的高中生
  • ***
  • 文章數: 98
  • 性別: 男
  • 無聊大學生= =
    • 檢視個人資料
補上影片摟!!

[youtube]http://www.youtube.com/view_play_list?p=B2F7DD813AFC0E1B[/youtube]

mythnc

  • 可愛的小學生
  • *
  • 文章數: 1
    • 檢視個人資料
很不錯的影片!
有看有推~
不知道還有沒有續集 XD

River-Lin

  • 可愛的小學生
  • *
  • 文章數: 17
    • 檢視個人資料
各位大大好!
     小弟實在太笨拙, 對於行程有些不解,在看完了netman大大講解後,
     因理解能力太差, 有些問題想麻煩各位大大幫忙, 謝謝!
   
    一. 在netman大大的講義中寫到
           * 所謂 source 就是讓 script 在當前 shell 內執行、而不是產生一個 sub-shell 來執行。
        而netman教學影片(第8個分段影片)中的3分46秒 ~ 3分58秒所說:
            source的話, 它會留著我們的行程, 我們會留著這個行程,
            可是把它的 (環境跑完之後會被繼承過來)

        問題在於(環境跑完之後會被繼承過來) 這一句是不是代表著source會產生子行程呢?
        教學影片中也是圈著子行程, 不知道我問的對不對, 麻煩各位大大幫忙, 謝謝!

    二. 影片中(同第8個分段影片) 3分15秒 ~ 3分35秒中所說:
            它會先結束我當時的shell,然後它會在短短的shell 環境呢,移交過去去進行,
            你會發現它跑完了, 我的shell也會跟著結束

        影片中(同第8個分段影片) 3分59秒中所說:
            如果用exec的話, 它不會產生子行程, 直接在當前的行程去移交,
            過來去跑它的script, 那跑完之後呢, 它的shell也會跟著一起結束
         
        小弟在鳥哥大大的教學網當中, 所說:
             fork and exec:程序呼叫的流程
             其實子程序與父程序之間的關係還挺複雜的,最大的複雜點在於程序互相之間的呼叫。
             在 Linux 的程序呼叫通常稱為 fork-and-exec 的流程 (註1)!程序都會藉由父程序以複製 (fork)
             的方式產生一個一模一樣的子程序, 然後被複製出來的子程序再以 exec 的方式來執行實際要進行的程式,
             最終就成為一個子程序的存在。 以下是鳥哥大大的教學網址
          http://linux.vbird.org/linux_basic/0440processcontrol.php#fork_and_exec

       問題在於exec 是先結束shell嗎? 還是跑完script 再結束當前shell呢?
       如果exec是先結束shell, 那鳥哥大大的教學中, 子程序再以 exec 的方式來執行實際要進行的程式是不是多此一舉呢?
       
       可能是小弟理解能力的問題, 如有說錯,在此先說聲抱歉! 也謝謝各位大大的幫忙, 謝謝!

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17466
    • 檢視個人資料
    • http://www.study-area.org
那是在講 shell script 啦
基本上,每一個 command 都是一個 child process,這沒錯啊。
但如果運行 shell script 的話,是先跑一個 sub shell,再跑裡面的 command。
也就是在 sub shell 下面再產生子行程。
如此,就算 command 修改了 sub shell 的環境,也不影響你當前的 shell。
然而,用 source 去跑 script,就不再有 sub shell ,因此 script 的 command 若修改了環境,
那麼當前的 shell 也會被影響到。

跟你的理解不衝突啦,只是你少看了 sub shell 這一層而已。

River-Lin

  • 可愛的小學生
  • *
  • 文章數: 17
    • 檢視個人資料
各位大大好!
     感謝netman大大的教導, 但小弟對exec仍有疑問, 可能是小弟問的不夠好,
     請各位大大見諒, 這次做了小小測試, 不知道做的對不對, 麻煩各位大大幫忙, 謝謝!
    
     1.sh 中寫到
           #!/bin/bash
           ps
           sleep 5
           echo "finish"
 
       # ps
          PID        TTY                TIME               CMD
          1187     pts/0           00:00:00              bash
          1211     pts/0           00:00:00               ps
          
       # exec ./1.sh
         PID        TTY                TIME                CMD
        1187       pts/0           00:00:00              1.sh
        1212       pts/0           00:00:00               ps
        finish
        connection to 192.168.2.152 closed.

        問題是 exec如是先結束當前bash, 為何還會執行 script 中的程式碼呢?
        那如是先執行再結束當前bash, 為何1.sh會取代當前的bash呢?

      麻煩各位大大, 謝謝!
« 上次編輯: 2010-09-30 22:44 由 River-Lin »

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17466
    • 檢視個人資料
    • http://www.study-area.org
shell 結束了,但 process 還在啊... ^_^

River-Lin

  • 可愛的小學生
  • *
  • 文章數: 17
    • 檢視個人資料
各位大大好!
     謝謝netman大大耐心教導, 懂了! ^^