最近整理以前的筆記時候,翻到這點記錄,裡面的內容是實習時**教我的,可以說都是**的乾貨,分享一點點。
linux的profile和bashrc檔案通常被用來配置使用者自己的個性化設定或者開發環境。
login shell代表使用者登入, 比如使用 「su -「 命令, 或者用 ssh 連線到某乙個伺服器上, 都會使用該使用者預設 shell 啟動 login shell 模式。該模式下的 shell 會去自動執行 /etc/profile 和 ~/.profile 檔案, 但不會執行任何的bashrc 檔案, 所以一般在/etc/profile 或者 ~/.profile 裡我們需要手動去 source bashrc 檔案.
而 no-login shell 的情況是我們在終端下直接輸入 bash 或者 bash -c 「cmd」 來啟動的 shell。該模式下是不會自動去執行任何的 profile 檔案。
而為了方便開發,配置自己的開發環境很重要,而**當時教的就是如何實現自己的bashrc指令碼,主要是為了啟動終端時,便可以載入自己建立的版本的docker。
具體做法:將自己的環境配置,指令等單獨寫乙個檔案: .bash_name,這個檔案要放在$home目錄中,然後在$home/.bashrc中引用這個檔案。
在$home/.bashrc中加入如下
if [ -f "$home/.bash_name" ]; then
. "$home/.bash_name"
fi
以下是具體的bashrc檔案中的內容(主要是關於啟動docker的,這裡的docker映象是基於自己的開發環境建立的)
function docker_open()
function docker_open_normal()
function docker_open_fast()
docker run -t -i -v $home ubuntu:develop /bin/bash
ssh -i ~/.ssh/***x_ssh root@ip -p 2222
ssh -p 2222 root@ip 'mkdir -p .ssh && chmod 700 .ssh/authorized_keys && chmod 700 .ssh && chmod 700 /root && cat >> .ssh/authorized_keys' < ~/.ssh/***x_ssh.pub
關於生成金鑰對(公鑰和私鑰,這裡私鑰使用者加密,公鑰用於解密):
在linux上執行ssh-keygen,會生成基於rsa演算法的金鑰對。 執行這個命令後,
第一步會讓你輸入金鑰檔名,預設為id_rsa(並且預設放在$home/.ssh/檔案下),我們這裡輸入./..ssh/***_ssh,表示將在$home/.ssh/檔案下生成***_ssh金鑰檔案。
當然你也可以直接一行指令啟動:docker run -t -i -v $home:$home -w $home ubuntu:develop /bin/bash
但如果考慮敏捷開發,寫自己的bashrc指令碼是很有實用意義的,以上只是一些皮毛,當時只記下這麼多,可以去**的部落格中,看完整的指令碼。
**的部落格:
Linux中 bashrc和profile的區別
之前安裝qt 4.7.2,由於習慣了在命令列下編譯原始檔,我在網上搜了一下關於qt環境變數的配置方法,配置很簡單,在 etc profile檔案裡新增下面幾行語句 export qtdir opt qtsdk 2010.05 qt 這個路徑根據自己安裝的位置進行配置 export ld librar...
linux關於bashrc與profile的區別
bashrc與profile的區別 要搞清bashrc與profile的區別,首先要弄明白什麼是互動式shell和非互動式shell,什麼是login shell 和non login shell。互動式模式就是shell等待你的輸入,並且執行你提交的命令。這種模式被稱作互動式是因為shell與使用...
linux關於bashrc與profile的區別
bashrc與profile的區別 要搞清bashrc與profile的區別,首先要弄明白什麼是互動式shell和非互動式shell,什麼是login shell 和non login shell。互動式模式就是shell等待你的輸入,並且執行你提交的命令。這種模式被稱作互動式是因為shell與使用...