今天無意間又翻到了之前知道的一個 Linux 小技巧,來記錄一下。
在 Linux 中如果執行完指令,但是發現沒有權限怎麼辦?
假設複製了一個很長的指令(這裡使用 apt update 做示範),執行後出現沒有權限:
就需要再次執行,並且在指令前面加上 sudo:
有一個快速的小技巧, !! 代表的是上一個指令,所以可以使用 sudo + !! 來快速執行上一個指令:
不過這樣做其實有點危險,因為會使用管理員權限直接執行上一個指令。
如果不確定上一個執行的指令,同樣可以舉一反三,使用 echo + !! 來快速查看上一個指令:
那如果要再執行上上個指令呢?(因為上一個指令是 echo 顯示指令)
可以使用 !-2 來執行 (!! 代表的是 !-1)。所以使用 sudo + !-2 就是使用管理員權限執行上上個指令:
不過如果這樣做還不如直接按方向鍵 ↑ 比較快了。所以最實用的還是 sudo !! 這個指令,有機會可以試用看看!
參考資料:
GNU.org - Bash Reference Manual #9.3.1 Event Designators
在 Linux 中如果執行完指令,但是發現沒有權限怎麼辦?
假設複製了一個很長的指令(這裡使用 apt update 做示範),執行後出現沒有權限:
apt update
Reading package lists... Done
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)
W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)
就需要再次執行,並且在指令前面加上 sudo:
sudo apt update
有一個快速的小技巧, !! 代表的是上一個指令,所以可以使用 sudo + !! 來快速執行上一個指令:
sudo !!
不過這樣做其實有點危險,因為會使用管理員權限直接執行上一個指令。
如果不確定上一個執行的指令,同樣可以舉一反三,使用 echo + !! 來快速查看上一個指令:
echo !!
echo apt update
apt update
那如果要再執行上上個指令呢?(因為上一個指令是 echo 顯示指令)
可以使用 !-2 來執行 (!! 代表的是 !-1)。所以使用 sudo + !-2 就是使用管理員權限執行上上個指令:
sudo !-2
不過如果這樣做還不如直接按方向鍵 ↑ 比較快了。所以最實用的還是 sudo !! 這個指令,有機會可以試用看看!
參考資料:
GNU.org - Bash Reference Manual #9.3.1 Event Designators
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com