各問前輩們
小弟本身是個Linux超級新手
今天想說來練習一下shell script
我在我的家目錄內的bin 底下以 vim test.sh
建立文件
在打完內文想儲存時
不管是 :wq 或 :w
都會顯示 "test.sh" E212: 無法以寫入模式開啟

我使用我沒概念的低級水準Google了一下
大多都說是權限問題或有重複的檔案??
但Ubuntu 16.04.2 似乎已取消root帳號了嗎?
而且我是在自己的家目錄下怎麼會有權限問題?

而我在bin底下輸"ll" 並沒有看到其他檔案耶?
不過是有兩個 "./" "../"
[Linux 問題] Ubuntu vi 存檔錯誤

不知道算甚麼?

順便再問個蠢問題
我在圖像介面中
以右鍵只能新增文字文件
如果我自己把檔名key成***.sh
無論是用 "sh ***.sh" or "bash ***.sh"
都無法開啟,完全就是在騙自己, 請問有辦法直接建立.sh的檔案嗎?

抱歉,小弟本身對Linux系統非常不熟
對文字介面也沒甚麼概念
只是剛起步,身邊也無懂這塊的朋友能協助
有些問題,甚至連google都不知道該key甚麼關鍵字@@
希望各位大大能不吝指教,謝謝
WarBeShu wrote:
各問前輩們小弟本身...(恕刪)


先試試
$chmod g+w ../

如果不行
試試看
:w !sudo tee %
它會問你root密碼
然後在:打L

其他的editors也無法寫入嗎?

WarBeShu wrote:
如果我自己把檔名key成***.sh
無論是用 "sh ***.sh" or "bash ***.sh"
都無法開啟,完全就是在騙自己, 請問有辦法直接建立.sh的檔案嗎?...(恕刪)


你必須讓它變成可執行的檔案

$chmod u+x test.sh

You lead, follow or get out of the way.
回上一層看bin這個資料夾是誰的
我覺得還是權限問題
會不會是你用root灌什麼東西在你的家目錄 而造了這個屬於root的bin資料夾
WarBeShu wrote:
"sh ***.sh" or "bash ***.sh"

必須輸入 sh ./aaa.sh 或是 bash ./aaa.sh
開啟目前目錄下的執行檔或是 script 檔,必須加上「./」
喵~~滑鼠不能當飯吃,但可以混飯吃
非常感謝幾位大大的回應
原來小的犯蠢了
我在進入bin資料夾時
手賤在前方加了 ~
造成我進到的是



這個bin資料夾 @@

所以每個user 都只能對 home資料夾內 自己的使用者內的檔案做修改嗎!?

USP10 wrote:
你必須讓它變成可執行的檔案
$chmod u+x test.sh


大大我造您輸入的



這是成功了嘛!?
確實有出現我內文的文字耶 哈
WarBeShu wrote:
非常感謝幾位大大的...(恕刪)


試試:

chmod 777 test.sh

執行就用

./test.sh

看看會如何?


test.sh 內容是 echo "hello" 嗎?
WarBeShu wrote:
我在進入bin資料夾時
手賤在前方加了 ~...(恕刪)

你應該是少加了~
~/ 跟 $HOME 是指自己的家目錄

WarBeShu wrote:
所以每個user 都只能對 home資料夾內 自己的使用者內的檔案做修改嗎!?

是的,除非你修改權限

WarBeShu wrote:
這是成功了嘛!?

不是



同幾位大大所提及
必須加上 ./ 才可執行

試試下面 (不用打$)

$ set noclobber
$ cat > test2.sh
echo 'Hello, World.'
^D <====== 打control D
$ chmod u+x test2.sh
$ ./test2.sh


如果懶得每次打./

$ echo $PATH
$ export PATH="$PATH:~/bin"

或者
$ vim ~/.bashrc

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
後加入:~/bin 成
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:~/bin
:wq
$ source ~/.bashrc
You lead, follow or get out of the way.
給樓主一些建議:

1. 先去了解 Linux 權限的設計與使用,這是基礎所以一定要打好。

2. root 帳號預設是關閉的,官方也不建議使用 root 帳號,一般使用 sudo 就夠了。

3. 要留意的是
/ 是根目錄
~/ 是使用者的家目錄,這是縮寫,完整的路徑是 /home/<user>/

4. 除非你清楚明白自己正在做什麼,不然絕對不要亂動 / 根目錄以下一般用戶沒有權限去修改的文件,因爲權限會被鎖起來必定有其原因,而且一般用戶是沒有必要去修改任何東西以免影響系統的穩定性!(忠告)

5. sh 程式

i. 先創建文本
test.sh

ii. 輸入命令並儲存

#!/bin/sh

echo "Hello World!"
apt moo

iii. 查看權限

$ ls -l test.sh

-rw-rw-r-- 1 user user 39 Apr 5 23:00 test.sh

iv. 添加執行權限

$ chmod +x test.sh

-rwxrwxr-x 1 user user 39 Apr 5 23:05 test.sh

v. 執行程式有兩種方法(自己任選)
$ ./test.sh
$ sh tesh.sh

恭喜你寫出了一個程式 ;)
輸入sudo su,再輸入密碼取得root(#)
然後存檔沒辦法存確認權限是不是7,讀+寫+執行。
wa前加驚嘆號強制存檔離開
非常感謝各位前輩們
耐心且無私地分享

讓小弟能知道自己到底在做甚麼
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!