很多shell命令后面的單橫杠和雙橫杠,原來這個意思


-----------------------------------------------------------------------------------------------------------------------
shell進程是執行其它進程的進程,但在執行一個命令時,shell進程會指示內核把指定的程序作為另一個進程分開執行,並將輸出寫到終端
 
通過命令選項,我們可以修改命令執行的行為。
命令行選項可以分為 短命令行 選項長命令行選項兩種。短命令行選項是由 字母組成,長命令行選項是由 單詞組成。
短命令行選項在選項前使用 單橫杠“-”,長命令行選項前使用 雙橫杠“--”。如果選項后面需要輸入選項的參數,短命令行選項和參數之間使用 空格分隔,而長命令行選項使用 等號“=”連接選項和參數
通過在命令后面添加選項“--help”、“-h”或“-?”,我們可以獲得一個命令的幫助信息。
 
--------------------------------------------------------------------------------------------------------

挺湊巧的,最近老有同事問起這些問題,所以總結一下。

1. 首先用help理解su, sudo su, sudo

2. 其次理解"login shell" and "interactive shell". 

"When Bash starts executes the commands in a variety of different scripts. 
(1) When started as an interactive login shell: Bash reads and executes the /etc/profile (if it exists). After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile in that order, and reads and executes the first one (that exists and is readable).  When a login shell exits: Bash reads and executes ~/.bash_logout (if it exists).
(2) When started as an interactive shell (but not a login shell): Bash reads and executes ~/.bashrc (if it exists)."
顯然login shell和interactive shell在環境的設置上是存在差別的,詳細可以參考: http://groups.google.com/group/linux.debian.user/browse_thread/thread/2b71ecfc45789958/7bff24e3bae74b36?lnk=raot

3.  然后su命令的橫杠就非常容易理解了,參數橫杠-, 是為了讓切換獲取的shell是一個login shell

 -, -l, --login               make the shell a login shell


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM