關於Linux作業系統

各類 Unix-Liked System 與 Server 討論區!

版主: E-Office小組

分享到: Facebook

關於Linux作業系統

文章tsaichiachin » 週三 9月 27, 2006 2:39 am

我在政大這邊加修了大三才要修的作業系統......
但是資料結構...正在學...
資料庫管理...還沒修......
不知道會不會有問題= =||

實習課要學Linux...但是我完全不懂......囧rz...
完全沒有Linux的概念...
所以...來這裡挖資源了= ="

不同於Windows的系統......真是給他完全的陌生...
最後由 tsaichiachin 於 週六 10月 07, 2006 4:42 pm 編輯,總共編輯了 1 次。
漸入佳境:http://www.wretch.cc/blog/tsaichiachin
~ 夢想的可貴 在於 追求的過程~
+~ 生命的價值 在於 追求夢想~+
頭像
tsaichiachin
充滿活力的大學生
 
文章: 363
註冊時間: 週二 10月 04, 2005 8:15 pm
來自: 射手座

Re: 關於作業系統

文章copyleft » 週三 9月 27, 2006 8:06 am

tsaichiachin 寫:我在政大這邊加修了大三才要修的作業系統......
但是資料結構...正在學...
資料庫管理...還沒修......
不知道會不會有問題= =||

不會有問題的啦 :D
我也是先 Linux 之後才 C DB DS

tsaichiachin 寫:實習課要學Linux...但是我完全不懂......囧rz...
完全沒有Linux的概念...
所以...來這裡挖資源了= ="

不同於Windows的系統......真是給他完全的陌生...

歡迎啊,這邊的 Linux 資源還不多,就靠你來幫忙補充囉。
頭像
copyleft
E-Office 小組
 
文章: 1006
註冊時間: 週六 8月 07, 2004 11:27 am
來自: Taiwan

Re:關於作業系統

文章tsaichiachin » 週六 10月 07, 2006 4:41 pm

用筆記本寫完Shell script的程式碼之後...
要存成什麼樣類型的檔案才能讓Linux去執行我寫好的script呢= =?
(不知道這樣問對不對...)
漸入佳境:http://www.wretch.cc/blog/tsaichiachin
~ 夢想的可貴 在於 追求的過程~
+~ 生命的價值 在於 追求夢想~+
頭像
tsaichiachin
充滿活力的大學生
 
文章: 363
註冊時間: 週二 10月 04, 2005 8:15 pm
來自: 射手座

Re:關於Linux作業系統

文章copyleft » 週六 10月 07, 2006 4:52 pm

Linux 的檔案系統中,沒有『副檔名』這東西,

因此你不需要在意這個問題。

我們必須拋棄掉一些受 MS Windows 的『視窗』影響而產生的觀念。
真正從頭開始了解 *nix.


大部份我們存成 xxx.sh 提醒我們它是 shell script
而目的完全只是提醒我們自己而已,對作業系統來說, xxx.sh 只是一個檔名,沒有任何特殊意義。


但是仔細想想,MS Windows 中又何嘗不是如此?
你可以試著把一個 xxx.doc 檔改名為 xxx.jpeg,接著仍然可以正常地用 MS Word 讀取它。
由此可知副檔名在 MS Windows 似乎也只是在 UI 層為了使用者方便而制定的東西而已。

我會說似乎,是因為 MS Windows 的封閉,讓人很難正確得知它到底內部是怎麼運用處理的。
頭像
copyleft
E-Office 小組
 
文章: 1006
註冊時間: 週六 8月 07, 2004 11:27 am
來自: Taiwan

Re:關於Linux作業系統

文章tsaichiachin » 週六 10月 07, 2006 5:22 pm

copyleft 寫:但是仔細想想,MS Windows 中又何嘗不是如此?
你可以試著把一個 xxx.doc 檔改名為 xxx.jpeg,接著仍然可以正常地用 MS Word 讀取它。
由此可知副檔名在 MS Windows 似乎也只是在 UI 層為了使用者方便而制定的東西而已。



的確是這樣...= =||
感謝您的回答^^"
漸入佳境:http://www.wretch.cc/blog/tsaichiachin
~ 夢想的可貴 在於 追求的過程~
+~ 生命的價值 在於 追求夢想~+
頭像
tsaichiachin
充滿活力的大學生
 
文章: 363
註冊時間: 週二 10月 04, 2005 8:15 pm
來自: 射手座

Re:關於Linux作業系統

文章XO » 週六 10月 07, 2006 7:12 pm

還真是個念舊的系友耶! ^o^ 常回娘家來喔!

要讓前述腳本 xxx.sh 可以直接執行,需要用 chmod 指令來賦予它執行的能力,一般而言 chmod 755 xxx.sh 就可以啦!
欲知 chmod 指令詳情,可以在 Linux 命令提示下鍵入 man chmod 或是 info chmod 來閱讀說明。

再不然也可以看看這裡: http://www.zachjorgensen.net/za/chmodtutor.html
eXtra Old 的是我「不是酒」哦!
제 이름은 오조휘 입니다

臉書裡依舊是 Extra.Old: http://www.facebook.com/extra.old
頭像
XO
資管系教師
 
文章: 5473
註冊時間: 週二 4月 27, 2004 12:20 pm
來自: CQ Inc.

Re:關於Linux作業系統

文章DanielGau » 週日 10月 08, 2006 12:07 am

感覺好神奇喔!!不用副檔名...
那如果本身沒有裝可以開啟的軟體,又沒有副檔名的話...不就等死了?不知道怎麼開?
看來我已經被微軟給同化了 = =
DanielGau
E-Office 小組
 
文章: 738
註冊時間: 週二 8月 29, 2006 10:08 pm

Re:關於Linux作業系統

文章tsaichiachin » 週日 10月 08, 2006 12:35 am

XO 寫:還真是個念舊的系友耶! ^o^ 常回娘家來喔!

要讓前述腳本 xxx.sh 可以直接執行,需要用 chmod 指令來賦予它執行的能力,一般而言 chmod 755 xxx.sh 就可以啦!
欲知 chmod 指令詳情,可以在 Linux 命令提示下鍵入 man chmod 或是 info chmod 來閱讀說明。

再不然也可以看看這裡: http://www.zachjorgensen.net/za/chmodtutor.html


我將一個範例上傳到學校的伺服器平台之後
一直不能執行...
後來又去查了什麼ls -l...
看過一個叫"鳥哥"的網站才知道這件事= ="
不過 我用的是"chmod +x 檔名"
chmod 700 好像也行 @@"
漸入佳境:http://www.wretch.cc/blog/tsaichiachin
~ 夢想的可貴 在於 追求的過程~
+~ 生命的價值 在於 追求夢想~+
頭像
tsaichiachin
充滿活力的大學生
 
文章: 363
註冊時間: 週二 10月 04, 2005 8:15 pm
來自: 射手座

Re:關於Linux作業系統

文章Itemx » 週日 10月 08, 2006 12:46 am

dhg326 寫:感覺好神奇喔!!不用副檔名...
那如果本身沒有裝可以開啟的軟體,又沒有副檔名的話...不就等死了?不知道怎麼開?
看來我已經被微軟給同化了 = =


以*nux來說, 檔案只有分兩種 - 可以執行跟不可執行的

當然有ext. filename可以方便辨識是什麼類型的資料, 但是並非必要..

真的要辨識檔案格式的話, 還是必須去看檔案架構, 例如說Windows的執行檔(.exe)的開頭一定是 0x4D 0x5A (MZ兩個英文字)

其他還有很多分辨的方式, 不過養成附加一個副檔名的習慣也是可以的 :p
Connecting .................. [ OK ]
User Identify .................. [ Itemx ]
Also Locate a blog: [FLAK #0 Active Log]
頭像
Itemx
站長群
 
文章: 660
註冊時間: 週四 3月 25, 2004 1:06 am
來自: FLAK第三憐合回線

Re:關於Linux作業系統

文章Itemx » 週日 10月 08, 2006 12:49 am

tsaichiachin 寫:
XO 寫:還真是個念舊的系友耶! ^o^ 常回娘家來喔!

要讓前述腳本 xxx.sh 可以直接執行,需要用 chmod 指令來賦予它執行的能力,一般而言 chmod 755 xxx.sh 就可以啦!
欲知 chmod 指令詳情,可以在 Linux 命令提示下鍵入 man chmod 或是 info chmod 來閱讀說明。

再不然也可以看看這裡: http://www.zachjorgensen.net/za/chmodtutor.html


我將一個範例上傳到學校的伺服器平台之後
一直不能執行...
後來又去查了什麼ls -l...
看過一個叫"鳥哥"的網站才知道這件事= ="
不過 我用的是"chmod +x 檔名"
chmod 700 好像也行 @@"


+x是便於表示的方式

不過我習慣直接計算, 其實並不會很複雜而且可以指定的很明確:

unix有三個屬性, 分別是rwx

r: read = 4
w: write = 2
x: execute = 1

相加就是我們需要的權限

例如說我們要設定某檔案成 rwxrw-r-x 這種屬性組合的話, 就是設定為
r+w+x = 4+2+1 = 7
r+w = 4+2 = 6
r+x = 4+1 = 5

所以等同 chmod 765
Connecting .................. [ OK ]
User Identify .................. [ Itemx ]
Also Locate a blog: [FLAK #0 Active Log]
頭像
Itemx
站長群
 
文章: 660
註冊時間: 週四 3月 25, 2004 1:06 am
來自: FLAK第三憐合回線

Re:關於Linux作業系統

文章copyleft » 週日 10月 08, 2006 12:56 am

dhg326 寫:感覺好神奇喔!!不用副檔名...
那如果本身沒有裝可以開啟的軟體,又沒有副檔名的話...不就等死了?不知道怎麼開?
看來我已經被微軟給同化了 = =


有一個指令叫做 file
代碼: 選擇全部
file <檔名>

會告訴我們那個檔案是做什麼的 :)

例如:
代碼: 選擇全部
eoffice:/etc# file wgetrc
wgetrc: ASCII English text
頭像
copyleft
E-Office 小組
 
文章: 1006
註冊時間: 週六 8月 07, 2004 11:27 am
來自: Taiwan

Re:關於Linux作業系統

文章Itemx » 週日 10月 08, 2006 1:06 am

copyleft 寫:有一個指令叫做 file
代碼: 選擇全部
file <檔名>

會告訴我們那個檔案是做什麼的 :)


原理很簡單, 不過這程式也出現很久了啊 :p

有沒有試過欺騙這玩意的判斷? XD
Connecting .................. [ OK ]
User Identify .................. [ Itemx ]
Also Locate a blog: [FLAK #0 Active Log]
頭像
Itemx
站長群
 
文章: 660
註冊時間: 週四 3月 25, 2004 1:06 am
來自: FLAK第三憐合回線

Re:關於Linux作業系統

文章tsaichiachin » 週日 10月 08, 2006 8:02 pm

為什麼我寫好的shell script上傳到學校提供的FTP空間測試時..
...常常不能執行....囧rz
一直出現:"cannot execute binary file"
不然就是 ":No such file or directory"
漸入佳境:http://www.wretch.cc/blog/tsaichiachin
~ 夢想的可貴 在於 追求的過程~
+~ 生命的價值 在於 追求夢想~+
頭像
tsaichiachin
充滿活力的大學生
 
文章: 363
註冊時間: 週二 10月 04, 2005 8:15 pm
來自: 射手座

Re:關於Linux作業系統

文章function1122 » 週日 10月 08, 2006 8:40 pm

tsaichiachin 寫:為什麼我寫好的shell script上傳到學校提供的FTP空間測試時..
...常常不能執行....囧rz
一直出現:"cannot execute binary file"
不然就是 ":No such file or directory"

會不會是你在Windows環境下撰寫
換行符號(按下Enter所產生的識別字元)和*nix不一樣呢

Windows 裡面換行是 "\r\n"
與*nix的 "\n" 不同(印象中)
系統沒辦法分辨所造成的
FUNction said: "這是我想到什麼就寫什麼的記事本,所以內容多不具任何樂趣,因為我的生活無趣嘛"
FUNction's Blog 無趣隨筆
頭像
function1122
E-Office 小組
 
文章: 431
註冊時間: 週日 3月 27, 2005 3:40 pm

Re:關於Linux作業系統

文章XO » 週日 10月 08, 2006 8:59 pm

tsaichiachin 寫:為什麼我寫好的shell script上傳到學校提供的FTP空間測試時..
...常常不能執行....囧rz
一直出現:"cannot execute binary file"
不然就是 ":No such file or directory"


常見 ":No such file or directory" 的解法之ㄧ是:
假如原來要執行的是 someScript

改成鍵入 ./someScript 通常都可以藥到病除。 dot (.) 是指目前目錄的意思, ./someScript 是指「目前目錄下那鍋 someScript」ㄇㄟ!

Windows 有別於 UNIX,通常目前目錄並不需要加到 PATH 搜尋路徑之列,鍵入的程式,預設都是會在目前目錄下去尋找有沒這隻要執行的程式。

UNIX 則不然,要嘛你必須把 dot (.) 加到 path 路徑裡,不然就得像上述方法,在執行時指名目前路徑。
eXtra Old 的是我「不是酒」哦!
제 이름은 오조휘 입니다

臉書裡依舊是 Extra.Old: http://www.facebook.com/extra.old
頭像
XO
資管系教師
 
文章: 5473
註冊時間: 週二 4月 27, 2004 12:20 pm
來自: CQ Inc.

Re:關於Linux作業系統

文章tsaichiachin » 週一 10月 09, 2006 5:07 pm

ㄎㄎ 我解決了......
好像是檔案編碼的問題
Linux似乎只會接受ASCII...
原本我是用筆記本寫好存成Unicode然後上傳
但是不曉得為啥仍然不行
後來我用了Ultra edit這個軟體去編輯
然後轉成Unix可辨識的檔案後上傳
就OK了^^"
漸入佳境:http://www.wretch.cc/blog/tsaichiachin
~ 夢想的可貴 在於 追求的過程~
+~ 生命的價值 在於 追求夢想~+
頭像
tsaichiachin
充滿活力的大學生
 
文章: 363
註冊時間: 週二 10月 04, 2005 8:15 pm
來自: 射手座

Re:關於Linux作業系統

文章copyleft » 週一 10月 09, 2006 5:54 pm

從你說的錯誤訊息
代碼: 選擇全部
一直出現:"cannot execute binary file"
不然就是 ":No such file or directory"


跟你的解決方法配不起來呢。

確定是這個原因嗎?


跟是不是 ASCII 應該沒有關聯。
頭像
copyleft
E-Office 小組
 
文章: 1006
註冊時間: 週六 8月 07, 2004 11:27 am
來自: Taiwan

Re:關於Linux作業系統

文章tsaichiachin » 週一 10月 09, 2006 10:14 pm

不太清楚耶= =||...

犧牲了中秋...研究了三天...終於寫好一段稍為能動的指令...


代碼: 選擇全部
#!/bin/bash

#請寫一個Shell script 命名為"srm" 的安全移除指令,需求如下:
#1.srm可接受任何參數的數字並且能輸出被移除檔案的檔名。但如果參數不存在,必須輸出使用資訊和簡略的提示。
#2.srm只對原始檔案運作(例如:非目錄)..如果不是原始檔案則需輸出錯誤訊息,否則忽略。
#3.srm將檔案移除到$HOME/.trash的目錄下。如果目錄不存在則此Shell script要能建立一個。
#4.srm不能複寫相同的檔案。如果已有相同的檔案,srm需要求使用者重新命名。
path=`pwd`
file=$1

if [ $# == 0 ] ; then
    echo "Error message: You do not give a parameter at least!"
    echo "Please input the filename you want to delete"
    read $file
fi

if [ -d "$file" ] ; then
    echo "Command stop : This is a directory that you can't delete it!"
    exit
fi

trash="$HOME/trash"

if [ ! -e $trash ] ; then
mkdir $trash
chmod 765 $trash
fi

cd $trash

while [ -e $file ] ;do

    echo "The trash already had the same filename,please rename the deleted file:"
       cd $path
    read deleted_file

  while [ -e trash/$deleted_file ] ; do
        echo "The trash also had the same filename,please rename another one:"
        read deleted_file
                                 done
    mv $file $deleted_file
    mv -i $deleted_file trash
        echo "You have already deleted the $deleted_file"
            exit
                                done

cd $path

while [ -e $file ] ; do
    mv $file $trash/$file
    echo "You have already deleted the $file"
        done

if [ -e $file ] ; then
    echo "Deleted $file fail"
fi
漸入佳境:http://www.wretch.cc/blog/tsaichiachin
~ 夢想的可貴 在於 追求的過程~
+~ 生命的價值 在於 追求夢想~+
頭像
tsaichiachin
充滿活力的大學生
 
文章: 363
註冊時間: 週二 10月 04, 2005 8:15 pm
來自: 射手座

Re:關於Linux作業系統

文章Itemx » 週二 10月 10, 2006 2:25 am

copyleft 寫:從你說的錯誤訊息
代碼: 選擇全部
一直出現:"cannot execute binary file"
不然就是 ":No such file or directory"


跟你的解決方法配不起來呢。

確定是這個原因嗎?


跟是不是 ASCII 應該沒有關聯。


不是所有的Linux都跟你的一樣可以直接讀取Unicode... :p

然而那兩個錯誤發生的原因應該是不同的 =w=
Connecting .................. [ OK ]
User Identify .................. [ Itemx ]
Also Locate a blog: [FLAK #0 Active Log]
頭像
Itemx
站長群
 
文章: 660
註冊時間: 週四 3月 25, 2004 1:06 am
來自: FLAK第三憐合回線

Re:關於Linux作業系統

文章copyleft » 週五 10月 13, 2006 1:46 am

幫忙排版一下:
代碼: 選擇全部
#!/bin/bash

#請寫一個Shell script 命名為"srm" 的安全移除指令,需求如下:
#1.srm可接受任何參數的數字並且能輸出被移除檔案的檔名。但如果參數不存在,必須輸出使用資訊和簡略的提示。
#2.srm只對原始檔案運作(例如:非目錄)..如果不是原始檔案則需輸出錯誤訊息,否則忽略。
#3.srm將檔案移除到$HOME/.trash的目錄下。如果目錄不存在則此Shell script要能建立一個。
#4.srm不能複寫相同的檔案。如果已有相同的檔案,srm需要求使用者重新命名。
path=`pwd`
file=$1

if [ $# == 0 ] ; then
    echo "Error message: You do not give a parameter at least!"
    echo "Please input the filename you want to delete"
    read $file
fi

if [ -d "$file" ] ; then
    echo "Command stop : This is a directory that you can't delete it!"
    exit
fi

trash="$HOME/trash"

if [ ! -e $trash ] ; then
    mkdir $trash
    chmod 765 $trash
fi

cd $trash

while [ -e $file ] ;do
    echo "The trash already had the same filename,please rename the deleted file:"
    cd $path
    read deleted_file

    while [ -e trash/$deleted_file ] ; do
        echo "The trash also had the same filename,please rename another one:"
        read deleted_file
    done

    mv $file $deleted_file
    mv -i $deleted_file trash
    echo "You have already deleted the $deleted_file"
    exit
done

cd $path

while [ -e $file ] ; do
    mv $file $trash/$file
    echo "You have already deleted the $file"
done

if [ -e $file ] ; then
    echo "Deleted $file fail"
fi


推薦 tsaichiachin 分享的這個 shell script
非常實用喔 :)

針對註解中的需求,提供一點可以小小改進的:
1. 如果 $HOME/trash 存在,但是 $HOME/trash 是一個檔案那怎麼辦? : p
2. 用 chmod 765 比較不恰當 ^^
3. 可以輸入多個檔案同時刪除 (ex: ./srm aaa bbb, 同時刪掉 aaa 和 bbb)
4. script 的後半部似乎 run 不到
5. 題目要的是 $HOME/.trash 不是 $HOME/trash 喔 : )
頭像
copyleft
E-Office 小組
 
文章: 1006
註冊時間: 週六 8月 07, 2004 11:27 am
來自: Taiwan

下一頁

回到 Unix/Linux/BSD 系統討論板

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客